Merge remote-tracking branch 'public/bug16013_025' into maint-0.2.6
This commit is contained in:
commit
1c1d71fe1a
|
@ -0,0 +1,5 @@
|
||||||
|
o Major bugfixes (hidden service, stability):
|
||||||
|
- Stop randomly crashing with an assertion failure when connecting to a
|
||||||
|
busy hidden service, or connecting to a hidden service while a NEWNYM
|
||||||
|
is in progress. Fixes bug 16013; bugfix on 0.1.0.1-rc.
|
||||||
|
|
|
@ -2406,6 +2406,18 @@ connection_ap_handshake_attach_circuit(entry_connection_t *conn)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* At this point we need to re-check the state, since it's possible that
|
||||||
|
* our call to circuit_get_open_circ_or_launch() changed the connection's
|
||||||
|
* state from "CIRCUIT_WAIT" to "RENDDESC_WAIT" because we decided to
|
||||||
|
* re-fetch the descriptor.
|
||||||
|
*/
|
||||||
|
if (ENTRY_TO_CONN(conn)->state != AP_CONN_STATE_CIRCUIT_WAIT) {
|
||||||
|
log_info(LD_REND, "This connection is no longer ready to attach; its "
|
||||||
|
"state changed."
|
||||||
|
"(We probably have to re-fetch its descriptor.)");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (rendcirc && (rendcirc->base_.purpose ==
|
if (rendcirc && (rendcirc->base_.purpose ==
|
||||||
CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED)) {
|
CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED)) {
|
||||||
log_info(LD_REND,
|
log_info(LD_REND,
|
||||||
|
|
Loading…
Reference in New Issue