Bug 32040: Machine updates.

Does not require protover update, since this is just client-side.
This commit is contained in:
Mike Perry 2020-06-16 12:23:09 -05:00
parent ce9a4e5baf
commit a4a0cb8d55

View File

@ -102,9 +102,18 @@ circpad_machine_client_hide_intro_circuits(smartlist_t *machines_sl)
* INTRO_MACHINE_MAXIMUM_PADDING cells, to match the "...(inbound data cells * INTRO_MACHINE_MAXIMUM_PADDING cells, to match the "...(inbound data cells
* continue)" portion of the trace (aka the rest of an HTTPS response body). * continue)" portion of the trace (aka the rest of an HTTPS response body).
*/ */
/* Start the machine on fresh intro circs. */
client_machine->conditions.apply_purpose_mask = client_machine->conditions.apply_purpose_mask =
circpad_circ_purpose_to_mask(CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT)| circpad_circ_purpose_to_mask(CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT);
circpad_circ_purpose_to_mask(CIRCUIT_PURPOSE_C_INTRODUCE_ACKED)|
/* If the client purpose changes back to CIRCUIT_PURPOSE_C_INTRODUCING,
* or transitions to CIRCUIT_PURPOSE_C_INTRODUCE_ACKED, keep the machine
* alive, but do not launch new machines for these purposes. Also
* keep the machine around if it is in the CIRCUIT_PADDING purpose
* (but do not try to take over other machines in that purpose). */
client_machine->conditions.keep_purpose_mask =
circpad_circ_purpose_to_mask(CIRCUIT_PURPOSE_C_INTRODUCE_ACKED) |
circpad_circ_purpose_to_mask(CIRCUIT_PURPOSE_C_CIRCUIT_PADDING); circpad_circ_purpose_to_mask(CIRCUIT_PURPOSE_C_CIRCUIT_PADDING);
/* Keep the circuit alive even after the introduction has been finished, /* Keep the circuit alive even after the introduction has been finished,