Ver código fonte

Set routerinfo->addr properly for own routerinfo; do casei routerinfo compare

svn:r1514
Nick Mathewson 21 anos atrás
pai
commit
fdb58e8ea3
3 arquivos alterados com 8 adições e 4 exclusões
  1. 0 1
      src/or/connection_edge.c
  2. 6 1
      src/or/router.c
  3. 2 2
      src/or/routerlist.c

+ 0 - 1
src/or/connection_edge.c

@@ -11,7 +11,6 @@ extern char *conn_state_to_string[][_CONN_TYPE_MAX+1];
 static int connection_ap_handshake_process_socks(connection_t *conn);
 
 static int connection_exit_begin_conn(cell_t *cell, circuit_t *circ);
-static int connection_exit_set_rendezvous_addr_port(connection_t *conn);
 static void connection_edge_consider_sending_sendme(connection_t *conn);
 
 static uint32_t client_dns_lookup_entry(const char *address);

+ 6 - 1
src/or/router.c

@@ -343,11 +343,16 @@ const char *router_get_my_descriptor(void) {
 
 int router_rebuild_descriptor(void) {
   routerinfo_t *ri;
+  struct in_addr addr;
+  if (!tor_inet_aton(options.Address, &addr)) {
+    log_fn(LOG_ERR, "options.Address didn't hold an IP.");
+    return -1;
+  }
 
   ri = tor_malloc_zero(sizeof(routerinfo_t));
   ri->address = tor_strdup(options.Address);
   ri->nickname = tor_strdup(options.Nickname);
-  /* No need to set addr. */
+  ri->addr = (uint32_t) addr.s_addr;
   ri->or_port = options.ORPort;
   ri->socks_port = options.SocksPort;
   ri->dir_port = options.DirPort;

+ 2 - 2
src/or/routerlist.c

@@ -311,11 +311,11 @@ routerinfo_t *router_get_by_nickname(char *nickname)
 
   for(i=0;i<routerlist->n_routers;i++) {
     router = routerlist->routers[i];
-    if (0 == strcmp(router->nickname, nickname))
+    if (0 == strcasecmp(router->nickname, nickname))
       return router;
   }
   router = router_get_my_routerinfo();
-  if (router && 0 == strcmp(router->nickname, nickname))
+  if (router && 0 == strcasecmp(router->nickname, nickname))
     return router;
 
   return NULL;