Browse Source

Cosmetic patch for arma's fix for The Bug: Don't set the state to
RESOLVEFAILED if the resolve didn't fail; set it to CONNECTING
instead.


svn:r1590

Nick Mathewson 21 years ago
parent
commit
c024745bd4
1 changed files with 4 additions and 2 deletions
  1. 4 2
      src/or/dns.c

+ 4 - 2
src/or/dns.c

@@ -378,14 +378,16 @@ static void dns_found_answer(char *address, uint32_t addr, char outcome) {
     assert_connection_ok(pend->conn,time(NULL));
     pend->conn->addr = resolve->addr;
 
-    /* prevent double-remove. (this may get changed below.) */
-    pend->conn->state = EXIT_CONN_STATE_RESOLVEFAILED;
 
     if(resolve->state == CACHE_STATE_FAILED) {
       pendconn = pend->conn; /* don't pass complex things to the
                                 connection_mark_for_close macro */
+      /* prevent double-remove. */
+      pend->conn->state = EXIT_CONN_STATE_RESOLVEFAILED;
       connection_mark_for_close(pendconn, END_STREAM_REASON_RESOLVEFAILED);
     } else {
+      /* prevent double-remove. */
+      pend->conn->state = EXIT_CONN_STATE_CONNECTING;
       connection_exit_connect(pend->conn);
     }
     resolve->pending_connections = pend->next;