Pārlūkot izejas kodu

Switch most uses of *_by_addr_port to *_by_identity_digest

svn:r1997
Nick Mathewson 21 gadi atpakaļ
vecāks
revīzija
cbab134bd9
5 mainītis faili ar 16 papildinājumiem un 9 dzēšanām
  1. 7 5
      src/or/circuitbuild.c
  2. 3 2
      src/or/connection_or.c
  3. 2 0
      src/or/cpuworker.c
  4. 2 1
      src/or/router.c
  5. 2 1
      src/or/routerlist.c

+ 7 - 5
src/or/circuitbuild.c

@@ -77,7 +77,7 @@ void circuit_log_path(int severity, circuit_t *circ) {
   hop=circ->cpath;
   do {
     s = buf + strlen(buf);
-    router = router_get_by_addr_port(hop->addr,hop->port);
+    router = router_get_by_digest(hop->identity_digest);
     if(router) {
       snprintf(s, sizeof(buf) - (s - buf), "%s(%s) ",
                router->nickname, states[hop->state]);
@@ -115,7 +115,7 @@ void circuit_rep_hist_note_result(circuit_t *circ) {
     prev_nickname = options.Nickname;
   }
   do {
-    router = router_get_by_addr_port(hop->addr,hop->port);
+    router = router_get_by_digest(hop->identity_digest);
     if (router) {
       if (prev_nickname) {
         if (hop->state == CPATH_STATE_OPEN)
@@ -218,7 +218,8 @@ circuit_t *circuit_establish_circuit(uint8_t purpose,
 
   log_fn(LOG_DEBUG,"Looking for firsthop '%s:%u'",
       firsthop->address,firsthop->or_port);
-  n_conn = connection_twin_get_by_addr_port(firsthop->addr,firsthop->or_port);
+  n_conn = connection_get_by_identity_digest(firsthop->identity_digest,
+                                             CONN_TYPE_OR);
   if(!n_conn || n_conn->state != OR_CONN_STATE_OPEN) { /* not currently connected */
     circ->n_addr = firsthop->addr;
     circ->n_port = firsthop->or_port;
@@ -954,7 +955,8 @@ static int count_acceptable_routers(smartlist_t *routers) {
       goto next_i_loop;
     }
     if(options.ORPort) {
-      conn = connection_exact_get_by_addr_port(r->addr, r->or_port);
+      conn = connection_get_by_identity_digest(r->identity_digest,
+                                               CONN_TYPE_OR);
       if(!conn || conn->type != CONN_TYPE_OR || conn->state != OR_CONN_STATE_OPEN) {
         log_fn(LOG_DEBUG,"Nope, %d is not connected.",i);
         goto next_i_loop;
@@ -1090,7 +1092,7 @@ onion_extend_cpath(crypt_path_t **head_ptr, cpath_build_state_t
     remove_twins_from_smartlist(sl,router_get_by_nickname(state->chosen_exit));
     remove_twins_from_smartlist(sl,router_get_my_routerinfo());
     for (i = 0, cpath = *head_ptr; i < cur_len; ++i, cpath=cpath->next) {
-      r = router_get_by_addr_port(cpath->addr, cpath->port);
+      r = router_get_by_digest(cpath->identity_digest);
       tor_assert(r);
       remove_twins_from_smartlist(sl,r);
     }

+ 3 - 2
src/or/connection_or.c

@@ -160,7 +160,8 @@ connection_t *connection_or_connect(routerinfo_t *router) {
 
   /* this function should never be called if we're already connected to router, but */
   /* check first to be sure */
-  conn = connection_exact_get_by_addr_port(router->addr,router->or_port);
+  conn = connection_get_by_identity_digest(router->identity_digest,
+                                           CONN_TYPE_OR);
   if(conn)
     return conn;
 
@@ -304,7 +305,7 @@ connection_tls_finish_handshake(connection_t *conn) {
       return -1;
     }
   } else {
-    if((c=connection_exact_get_by_addr_port(router->addr,router->or_port))) {
+    if((c=connection_get_by_identity_digest(router->identity_digest, CONN_TYPE_OR))) {
       log_fn(LOG_INFO,"Router %s is already connected on fd %d. Dropping fd %d.", router->nickname, c->s, conn->s);
       return -1;
     }

+ 2 - 0
src/or/cpuworker.c

@@ -132,6 +132,8 @@ int connection_cpu_process_inbuf(connection_t *conn) {
     /* parse out the circ it was talking about */
     tag_unpack(buf, &addr, &port, &circ_id);
     circ = NULL;
+    /* XXXX This is actually right: we want a specific port here in
+     * case there are multiple connections. */
     p_conn = connection_exact_get_by_addr_port(addr,port);
     if(p_conn)
       circ = circuit_get_by_circ_id_conn(circ_id, p_conn);

+ 2 - 1
src/or/router.c

@@ -317,7 +317,8 @@ void router_retry_connections(void) {
     router = smartlist_get(rl->routers, i);
     if(router_is_me(router))
       continue;
-    if(!connection_exact_get_by_addr_port(router->addr,router->or_port)) {
+    if(!connection_get_by_identity_digest(router->identity_digest,
+                                          CONN_TYPE_OR)) {
       /* not in the list */
       log_fn(LOG_DEBUG,"connecting to OR %s:%u.",router->address,router->or_port);
       connection_or_connect(router);

+ 2 - 1
src/or/routerlist.c

@@ -147,7 +147,8 @@ void router_add_running_routers_to_smartlist(smartlist_t *sl) {
     router = smartlist_get(routerlist->routers, i);
     if(router->is_running &&
        (!options.ORPort ||
-        connection_twin_get_by_addr_port(router->addr, router->or_port) ))
+        connection_get_by_identity_digest(router->identity_digest,
+                                          CONN_TYPE_OR)))
       smartlist_add(sl, router);
   }
 }