Merge remote-tracking branch 'andrea/bug10616'

This commit is contained in:
Nick Mathewson 2014-06-04 15:12:45 -04:00
commit 0073c5b517
2 changed files with 19 additions and 7 deletions

4
changes/bug10616 Normal file
View File

@ -0,0 +1,4 @@
o Bugfixes:
- Squelch a spurious LD_BUG message "No origin circuit for successful
SOCKS stream" in certain hidden service failure cases; fixes bug
#10616.

View File

@ -2295,13 +2295,21 @@ connection_ap_handshake_socks_reply(entry_connection_t *conn, char *reply,
endreason == END_STREAM_REASON_RESOURCELIMIT) { endreason == END_STREAM_REASON_RESOURCELIMIT) {
if (!conn->edge_.on_circuit || if (!conn->edge_.on_circuit ||
!CIRCUIT_IS_ORIGIN(conn->edge_.on_circuit)) { !CIRCUIT_IS_ORIGIN(conn->edge_.on_circuit)) {
// DNS remaps can trigger this. So can failed hidden service if (endreason != END_STREAM_REASON_RESOLVEFAILED) {
// lookups. log_info(LD_BUG,
log_info(LD_BUG, "No origin circuit for successful SOCKS stream "U64_FORMAT
"No origin circuit for successful SOCKS stream "U64_FORMAT ". Reason: %d",
". Reason: %d", U64_PRINTF_ARG(ENTRY_TO_CONN(conn)->global_identifier),
U64_PRINTF_ARG(ENTRY_TO_CONN(conn)->global_identifier), endreason);
endreason); }
/*
* Else DNS remaps and failed hidden service lookups can send us
* here with END_STREAM_REASON_RESOLVEFAILED; ignore it
*
* Perhaps we could make the test more precise; we can tell hidden
* services by conn->edge_.renddata != NULL; anything analogous for
* the DNS remap case?
*/
} else { } else {
// XXX: Hrmm. It looks like optimistic data can't go through this // XXX: Hrmm. It looks like optimistic data can't go through this
// codepath, but someone should probably test it and make sure. // codepath, but someone should probably test it and make sure.