mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
Don't treat END_STREAM_REASON_INTERNAL as total circuit failure
It can happen because we sent something that got an ENETUNREACH response. Bugfix on 0.2.4.8-alpha; fixes a part of bug 10777.
This commit is contained in:
parent
9bb34aa897
commit
b15f75b632
4
changes/bug10777_internal_024
Normal file
4
changes/bug10777_internal_024
Normal file
@ -0,0 +1,4 @@
|
||||
o Major bugfixes:
|
||||
- Do not treat END_STREAM_REASON_INTERNAL as indicating a definite
|
||||
circuit failure, since it could also indicate an ENETUNREACH
|
||||
error. Fixes part of bug 10777; bugfix on 0.2.4.8-alpha.
|
@ -731,13 +731,15 @@ connection_ap_process_end_not_open(
|
||||
|
||||
if (rh->length > 0) {
|
||||
if (reason == END_STREAM_REASON_TORPROTOCOL ||
|
||||
reason == END_STREAM_REASON_INTERNAL ||
|
||||
reason == END_STREAM_REASON_DESTROY) {
|
||||
/* All three of these reasons could mean a failed tag
|
||||
/* Both of these reasons could mean a failed tag
|
||||
* hit the exit and it complained. Do not probe.
|
||||
* Fail the circuit. */
|
||||
circ->path_state = PATH_STATE_USE_FAILED;
|
||||
return -END_CIRC_REASON_TORPROTOCOL;
|
||||
} else if (reason == END_STREAM_REASON_INTERNAL) {
|
||||
/* We can't infer success or failure, since older Tors report
|
||||
* ENETUNREACH as END_STREAM_REASON_INTERNAL. */
|
||||
} else {
|
||||
/* Path bias: If we get a valid reason code from the exit,
|
||||
* it wasn't due to tagging.
|
||||
|
Loading…
Reference in New Issue
Block a user