Loading changes/bug1739 0 → 100644 +4 −0 Original line number Diff line number Diff line o Minor bugfixes: - Fix to resume generating CIRC FAILED REASON=TIMEOUT control port messages, which were disabled by the circuit build timeout changes in 0.2.2.14-alpha. Bugfix on 0.2.2.14-alpha; fixes bug #1739. doc/spec/control-spec.txt +2 −1 Original line number Diff line number Diff line Loading @@ -1005,7 +1005,8 @@ Reason = "NONE" / "TORPROTOCOL" / "INTERNAL" / "REQUESTED" / "HIBERNATING" / "RESOURCELIMIT" / "CONNECTFAILED" / "OR_IDENTITY" / "OR_CONN_CLOSED" / "TIMEOUT" / "FINISHED" / "DESTROYED" / "NOPATH" / "NOSUCHSERVICE" "FINISHED" / "DESTROYED" / "NOPATH" / "NOSUCHSERVICE" / "MEASUREMENT_EXPIRED" The path is provided only when the circuit has been extended at least one hop. Loading src/or/circuitlist.c +1 −1 Original line number Diff line number Diff line Loading @@ -368,7 +368,7 @@ circuit_purpose_to_controller_string(uint8_t purpose) case CIRCUIT_PURPOSE_TESTING: return "TESTING"; case CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT: return "EXPIRED"; return "MEASURE_TIMEOUT"; case CIRCUIT_PURPOSE_CONTROLLER: return "CONTROLLER"; Loading src/or/circuituse.c +7 −1 Original line number Diff line number Diff line Loading @@ -389,6 +389,9 @@ circuit_expire_building(time_t now) /* Circuits are allowed to last longer for measurement. * Switch their purpose and wait. */ if (victim->purpose != CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT) { control_event_circuit_status(TO_ORIGIN_CIRCUIT(victim), CIRC_EVENT_FAILED, END_CIRC_REASON_TIMEOUT); victim->purpose = CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT; /* Record this failure to check for too many timeouts * in a row. This function does not record a time value yet Loading Loading @@ -430,6 +433,9 @@ circuit_expire_building(time_t now) circuit_state_to_string(victim->state), victim->purpose); circuit_log_path(LOG_INFO,LD_CIRC,TO_ORIGIN_CIRCUIT(victim)); if (victim->purpose == CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT) circuit_mark_for_close(victim, END_CIRC_REASON_MEASUREMENT_EXPIRED); else circuit_mark_for_close(victim, END_CIRC_REASON_TIMEOUT); } } Loading src/or/or.h +4 −0 Original line number Diff line number Diff line Loading @@ -614,6 +614,10 @@ typedef enum { /* Negative reasons are internal: we never send them in a DESTROY or TRUNCATE * call; they only go to the controller for tracking */ /** Our post-timeout circuit time measurement period expired. * We must give up now */ #define END_CIRC_REASON_MEASUREMENT_EXPIRED -3 /** We couldn't build a path for this circuit. */ #define END_CIRC_REASON_NOPATH -2 /** Catch-all "other" reason for closing origin circuits. */ Loading Loading
changes/bug1739 0 → 100644 +4 −0 Original line number Diff line number Diff line o Minor bugfixes: - Fix to resume generating CIRC FAILED REASON=TIMEOUT control port messages, which were disabled by the circuit build timeout changes in 0.2.2.14-alpha. Bugfix on 0.2.2.14-alpha; fixes bug #1739.
doc/spec/control-spec.txt +2 −1 Original line number Diff line number Diff line Loading @@ -1005,7 +1005,8 @@ Reason = "NONE" / "TORPROTOCOL" / "INTERNAL" / "REQUESTED" / "HIBERNATING" / "RESOURCELIMIT" / "CONNECTFAILED" / "OR_IDENTITY" / "OR_CONN_CLOSED" / "TIMEOUT" / "FINISHED" / "DESTROYED" / "NOPATH" / "NOSUCHSERVICE" "FINISHED" / "DESTROYED" / "NOPATH" / "NOSUCHSERVICE" / "MEASUREMENT_EXPIRED" The path is provided only when the circuit has been extended at least one hop. Loading
src/or/circuitlist.c +1 −1 Original line number Diff line number Diff line Loading @@ -368,7 +368,7 @@ circuit_purpose_to_controller_string(uint8_t purpose) case CIRCUIT_PURPOSE_TESTING: return "TESTING"; case CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT: return "EXPIRED"; return "MEASURE_TIMEOUT"; case CIRCUIT_PURPOSE_CONTROLLER: return "CONTROLLER"; Loading
src/or/circuituse.c +7 −1 Original line number Diff line number Diff line Loading @@ -389,6 +389,9 @@ circuit_expire_building(time_t now) /* Circuits are allowed to last longer for measurement. * Switch their purpose and wait. */ if (victim->purpose != CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT) { control_event_circuit_status(TO_ORIGIN_CIRCUIT(victim), CIRC_EVENT_FAILED, END_CIRC_REASON_TIMEOUT); victim->purpose = CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT; /* Record this failure to check for too many timeouts * in a row. This function does not record a time value yet Loading Loading @@ -430,6 +433,9 @@ circuit_expire_building(time_t now) circuit_state_to_string(victim->state), victim->purpose); circuit_log_path(LOG_INFO,LD_CIRC,TO_ORIGIN_CIRCUIT(victim)); if (victim->purpose == CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT) circuit_mark_for_close(victim, END_CIRC_REASON_MEASUREMENT_EXPIRED); else circuit_mark_for_close(victim, END_CIRC_REASON_TIMEOUT); } } Loading
src/or/or.h +4 −0 Original line number Diff line number Diff line Loading @@ -614,6 +614,10 @@ typedef enum { /* Negative reasons are internal: we never send them in a DESTROY or TRUNCATE * call; they only go to the controller for tracking */ /** Our post-timeout circuit time measurement period expired. * We must give up now */ #define END_CIRC_REASON_MEASUREMENT_EXPIRED -3 /** We couldn't build a path for this circuit. */ #define END_CIRC_REASON_NOPATH -2 /** Catch-all "other" reason for closing origin circuits. */ Loading