Browse Source

Using proper functions to create tor_addr_t.

rl1987 10 years ago
parent
commit
e82e772f2b
3 changed files with 5 additions and 17 deletions
  1. 2 4
      src/or/config.c
  2. 2 11
      src/or/directory.c
  3. 1 2
      src/or/dirserv.c

+ 2 - 4
src/or/config.c

@@ -2104,8 +2104,7 @@ resolve_my_address(int warn_severity, const or_options_t *options,
              "local interface. Using that.", fmt_addr32(addr));
       strlcpy(hostname, "<guessed from interfaces>", sizeof(hostname));
     } else { /* resolved hostname into addr */
-      myaddr.family = AF_INET;
-      myaddr.addr.in_addr.s_addr = htonl(addr);
+      tor_addr_from_ipv4h(&myaddr, addr);
 
       if (!explicit_hostname &&
           tor_addr_is_internal(&myaddr, 0)) {
@@ -2142,8 +2141,7 @@ resolve_my_address(int warn_severity, const or_options_t *options,
    * out if it is and we don't want that.
    */
 
-  myaddr.family = AF_INET;
-  myaddr.addr.in_addr.s_addr = htonl(addr);
+  tor_addr_from_ipv4h(&myaddr,addr);
 
   addr_string = tor_dup_ip(addr);
   if (tor_addr_is_internal(&myaddr, 0)) {

+ 2 - 11
src/or/directory.c

@@ -1414,20 +1414,11 @@ http_set_address_origin(const char *headers, connection_t *conn)
   if (!fwd)
     fwd = http_get_header(headers, "X-Forwarded-For: ");
   if (fwd) {
-    struct in_addr in;
-    if (!tor_inet_aton(fwd, &in)) {
-      log_debug(LD_DIR, "Ignoring unrecognized IP %s",
-                escaped(fwd));
-      tor_free(fwd);
-      return;
-    }
-
     tor_addr_t toraddr;
-    toraddr.family = AF_INET;
-    toraddr.addr.in_addr = in;
+    tor_addr_parse(&toraddr,fwd);
 
     if (tor_addr_is_internal(&toraddr,0)) {
-      log_debug(LD_DIR, "Ignoring local IP %s", escaped(fwd));
+      log_debug(LD_DIR, "Ignoring local/internal IP %s", escaped(fwd));
       tor_free(fwd);
       return;
     }

+ 1 - 2
src/or/dirserv.c

@@ -535,8 +535,7 @@ dirserv_router_has_valid_address(routerinfo_t *ri)
   }
 
   tor_addr_t toraddr;
-  toraddr.family = AF_INET;
-  toraddr.addr.in_addr = iaddr;
+  tor_addr_from_in(&toraddr,&iaddr);
 
   if (tor_addr_is_internal(&toraddr, 0)) {
     log_info(LD_DIRSERV,