mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 14:23:30 +01:00
Bug 28780: Add purpose for keeping padding circuits open
This commit is contained in:
parent
43d4119454
commit
d44e3e57b0
@ -823,6 +823,8 @@ circuit_purpose_to_controller_string(uint8_t purpose)
|
||||
return "PATH_BIAS_TESTING";
|
||||
case CIRCUIT_PURPOSE_HS_VANGUARDS:
|
||||
return "HS_VANGUARDS";
|
||||
case CIRCUIT_PURPOSE_C_CIRCUIT_PADDING:
|
||||
return "CIRCUIT_PADDING";
|
||||
|
||||
default:
|
||||
tor_snprintf(buf, sizeof(buf), "UNKNOWN_%d", (int)purpose);
|
||||
@ -852,6 +854,7 @@ circuit_purpose_to_controller_hs_state_string(uint8_t purpose)
|
||||
case CIRCUIT_PURPOSE_CONTROLLER:
|
||||
case CIRCUIT_PURPOSE_PATH_BIAS_TESTING:
|
||||
case CIRCUIT_PURPOSE_HS_VANGUARDS:
|
||||
case CIRCUIT_PURPOSE_C_CIRCUIT_PADDING:
|
||||
return NULL;
|
||||
|
||||
case CIRCUIT_PURPOSE_INTRO_POINT:
|
||||
@ -952,6 +955,9 @@ circuit_purpose_to_string(uint8_t purpose)
|
||||
case CIRCUIT_PURPOSE_HS_VANGUARDS:
|
||||
return "Hidden service: Pre-built vanguard circuit";
|
||||
|
||||
case CIRCUIT_PURPOSE_C_CIRCUIT_PADDING:
|
||||
return "Circuit kept open for padding";
|
||||
|
||||
default:
|
||||
tor_snprintf(buf, sizeof(buf), "UNKNOWN_%d", (int)purpose);
|
||||
return buf;
|
||||
|
@ -92,31 +92,33 @@
|
||||
#define CIRCUIT_PURPOSE_C_HS_MAX_ 13
|
||||
/** This circuit is used for build time measurement only */
|
||||
#define CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT 14
|
||||
#define CIRCUIT_PURPOSE_C_MAX_ 14
|
||||
/** This circuit is being held open by circuit padding */
|
||||
#define CIRCUIT_PURPOSE_C_CIRCUIT_PADDING 15
|
||||
#define CIRCUIT_PURPOSE_C_MAX_ 15
|
||||
|
||||
#define CIRCUIT_PURPOSE_S_HS_MIN_ 15
|
||||
#define CIRCUIT_PURPOSE_S_HS_MIN_ 16
|
||||
/** Hidden-service-side circuit purpose: at the service, waiting for
|
||||
* introductions. */
|
||||
#define CIRCUIT_PURPOSE_S_ESTABLISH_INTRO 15
|
||||
#define CIRCUIT_PURPOSE_S_ESTABLISH_INTRO 16
|
||||
/** Hidden-service-side circuit purpose: at the service, successfully
|
||||
* established intro. */
|
||||
#define CIRCUIT_PURPOSE_S_INTRO 16
|
||||
#define CIRCUIT_PURPOSE_S_INTRO 17
|
||||
/** Hidden-service-side circuit purpose: at the service, connecting to rend
|
||||
* point. */
|
||||
#define CIRCUIT_PURPOSE_S_CONNECT_REND 17
|
||||
#define CIRCUIT_PURPOSE_S_CONNECT_REND 18
|
||||
/** Hidden-service-side circuit purpose: at the service, rendezvous
|
||||
* established. */
|
||||
#define CIRCUIT_PURPOSE_S_REND_JOINED 18
|
||||
#define CIRCUIT_PURPOSE_S_REND_JOINED 19
|
||||
/** This circuit is used for uploading hsdirs */
|
||||
#define CIRCUIT_PURPOSE_S_HSDIR_POST 19
|
||||
#define CIRCUIT_PURPOSE_S_HS_MAX_ 19
|
||||
#define CIRCUIT_PURPOSE_S_HSDIR_POST 20
|
||||
#define CIRCUIT_PURPOSE_S_HS_MAX_ 20
|
||||
|
||||
/** A testing circuit; not meant to be used for actual traffic. */
|
||||
#define CIRCUIT_PURPOSE_TESTING 20
|
||||
#define CIRCUIT_PURPOSE_TESTING 21
|
||||
/** A controller made this circuit and Tor should not use it. */
|
||||
#define CIRCUIT_PURPOSE_CONTROLLER 21
|
||||
#define CIRCUIT_PURPOSE_CONTROLLER 22
|
||||
/** This circuit is used for path bias probing only */
|
||||
#define CIRCUIT_PURPOSE_PATH_BIAS_TESTING 22
|
||||
#define CIRCUIT_PURPOSE_PATH_BIAS_TESTING 23
|
||||
|
||||
/** This circuit is used for vanguards/restricted paths.
|
||||
*
|
||||
@ -124,9 +126,9 @@
|
||||
* on-demand. When an HS operation needs to take place (e.g. connect to an
|
||||
* intro point), these circuits are then cannibalized and repurposed to the
|
||||
* actual needed HS purpose. */
|
||||
#define CIRCUIT_PURPOSE_HS_VANGUARDS 23
|
||||
#define CIRCUIT_PURPOSE_HS_VANGUARDS 24
|
||||
|
||||
#define CIRCUIT_PURPOSE_MAX_ 23
|
||||
#define CIRCUIT_PURPOSE_MAX_ 24
|
||||
/** A catch-all for unrecognized purposes. Currently we don't expect
|
||||
* to make or see any circuits with this purpose. */
|
||||
#define CIRCUIT_PURPOSE_UNKNOWN 255
|
||||
|
@ -1514,6 +1514,7 @@ circuit_expire_old_circuits_clientside(void)
|
||||
circ->purpose == CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT ||
|
||||
circ->purpose == CIRCUIT_PURPOSE_S_ESTABLISH_INTRO ||
|
||||
circ->purpose == CIRCUIT_PURPOSE_TESTING ||
|
||||
circ->purpose == CIRCUIT_PURPOSE_C_CIRCUIT_PADDING ||
|
||||
(circ->purpose >= CIRCUIT_PURPOSE_C_INTRODUCING &&
|
||||
circ->purpose <= CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED) ||
|
||||
circ->purpose == CIRCUIT_PURPOSE_S_CONNECT_REND) {
|
||||
|
Loading…
Reference in New Issue
Block a user