[or-cvs] if the network is down, and we try to connect to a conn bec...

arma at seul.org arma at seul.org
Tue Dec 27 09:25:52 UTC 2005


Update of /home2/or/cvsroot/tor/src/or
In directory moria:/home/arma/work/onion/cvs/tor/src/or

Modified Files:
	circuituse.c 
Log Message:
if the network is down, and we try to connect to a conn because we
have a circuit in mind, and we timeout (30 seconds) because the
network never answers, we were expiring the circuit, but we weren't
obsoleting the connection or telling the helper functions. now do that.


Index: circuituse.c
===================================================================
RCS file: /home2/or/cvsroot/tor/src/or/circuituse.c,v
retrieving revision 1.105
retrieving revision 1.106
diff -u -p -d -r1.105 -r1.106
--- circuituse.c	15 Dec 2005 20:44:15 -0000	1.105
+++ circuituse.c	27 Dec 2005 09:25:50 -0000	1.106
@@ -668,12 +668,19 @@ circuit_build_failed(circuit_t *circ)
       circ->cpath->state != CPATH_STATE_OPEN) {
     /* We failed at the first hop. If there's an OR connection
        to blame, blame it. */
+    connection_t *n_conn = NULL;
     if (circ->n_conn) {
+      n_conn = circ->n_conn;
+    } else if (circ->state == CIRCUIT_STATE_OR_WAIT) {
+      /* we have to hunt for it */
+      n_conn = connection_or_get_by_identity_digest(circ->n_conn_id_digest);
+    }
+    if (n_conn) {
       info(LD_OR, "Our circuit failed to get a response from the first hop "
            "(%s:%d). I'm going to try to rotate to a better connection.",
-           circ->n_conn->address, circ->n_conn->port);
-      circ->n_conn->is_obsolete = 1;
-      helper_node_set_status(circ->n_conn->identity_digest, 0);
+           n_conn->address, n_conn->port);
+      n_conn->is_obsolete = 1;
+      helper_node_set_status(n_conn->identity_digest, 0);
     }
   }
 



More information about the tor-commits mailing list