Browse Source

Merge remote-tracking branch 'arma/ticket5528'

Conflicts:
	src/or/router.c
	src/test/test_dir.c
Nick Mathewson 10 years ago
parent
commit
f0b2dc83b6

+ 4 - 0
changes/ticket5528

@@ -0,0 +1,4 @@
+  o Code simplifications and refactoring:
+    - Get rid of router->address, since in all cases it was just the
+      string representation of router->addr. Resolves ticket 5528.
+

+ 7 - 4
src/or/circuitbuild.c

@@ -606,27 +606,30 @@ int
 inform_testing_reachability(void)
 {
   char dirbuf[128];
+  char *address;
   const routerinfo_t *me = router_get_my_routerinfo();
   if (!me)
     return 0;
+  address = tor_dup_ip(me->addr);
   control_event_server_status(LOG_NOTICE,
                               "CHECKING_REACHABILITY ORADDRESS=%s:%d",
-                              me->address, me->or_port);
+                              address, me->or_port);
   if (me->dir_port) {
     tor_snprintf(dirbuf, sizeof(dirbuf), " and DirPort %s:%d",
-                 me->address, me->dir_port);
+                 address, me->dir_port);
     control_event_server_status(LOG_NOTICE,
                                 "CHECKING_REACHABILITY DIRADDRESS=%s:%d",
-                                me->address, me->dir_port);
+                                address, me->dir_port);
   }
   log_notice(LD_OR, "Now checking whether ORPort %s:%d%s %s reachable... "
                          "(this may take up to %d minutes -- look for log "
                          "messages indicating success)",
-      me->address, me->or_port,
+      address, me->or_port,
       me->dir_port ? dirbuf : "",
       me->dir_port ? "are" : "is",
       TIMEOUT_UNTIL_UNREACHABILITY_COMPLAINT/60);
 
+  tor_free(address);
   return 1;
 }
 

+ 7 - 19
src/or/directory.c

@@ -82,8 +82,7 @@ static void dir_microdesc_download_failed(smartlist_t *failed,
 static void note_client_request(int purpose, int compressed, size_t bytes);
 static int client_likes_consensus(networkstatus_t *v, const char *want_url);
 
-static void directory_initiate_command_rend(const char *address,
-                                            const tor_addr_t *addr,
+static void directory_initiate_command_rend(const tor_addr_t *addr,
                                             uint16_t or_port,
                                             uint16_t dir_port,
                                             const char *digest,
@@ -464,7 +463,7 @@ directory_get_from_dirserver(uint8_t dir_purpose, uint8_t router_purpose,
         tor_addr_t addr;
         routerinfo_t *ri = node->ri;
         node_get_addr(node, &addr);
-        directory_initiate_command(ri->address, &addr,
+        directory_initiate_command(&addr,
                                    ri->or_port, 0/*no dirport*/,
                                    ri->cache_info.identity_digest,
                                    dir_purpose,
@@ -593,9 +592,6 @@ directory_initiate_command_routerstatus_rend(const routerstatus_t *status,
 {
   const or_options_t *options = get_options();
   const node_t *node;
-  char address_buf[INET_NTOA_BUF_LEN+1];
-  struct in_addr in;
-  const char *address;
   tor_addr_t addr;
   const int anonymized_connection = dirind_is_anon(indirection);
   node = node_get_by_id(status->identity_digest);
@@ -605,13 +601,6 @@ directory_initiate_command_routerstatus_rend(const routerstatus_t *status,
              "don't have its router descriptor.",
              routerstatus_describe(status));
     return;
-  } else if (node) {
-    node_get_address_string(node, address_buf, sizeof(address_buf));
-    address = address_buf;
-  } else {
-    in.s_addr = htonl(status->addr);
-    tor_inet_ntoa(&in, address_buf, sizeof(address_buf));
-    address = address_buf;
   }
   tor_addr_from_ipv4h(&addr, status->addr);
 
@@ -625,7 +614,7 @@ directory_initiate_command_routerstatus_rend(const routerstatus_t *status,
     return;
   }
 
-  directory_initiate_command_rend(address, &addr,
+  directory_initiate_command_rend(&addr,
                              status->or_port, status->dir_port,
                              status->identity_digest,
                              dir_purpose, router_purpose,
@@ -867,7 +856,7 @@ directory_command_should_use_begindir(const or_options_t *options,
  * <b>supports_begindir</b>, and whose identity key digest is
  * <b>digest</b>. */
 void
-directory_initiate_command(const char *address, const tor_addr_t *_addr,
+directory_initiate_command(const tor_addr_t *_addr,
                            uint16_t or_port, uint16_t dir_port,
                            const char *digest,
                            uint8_t dir_purpose, uint8_t router_purpose,
@@ -875,7 +864,7 @@ directory_initiate_command(const char *address, const tor_addr_t *_addr,
                            const char *payload, size_t payload_len,
                            time_t if_modified_since)
 {
-  directory_initiate_command_rend(address, _addr, or_port, dir_port,
+  directory_initiate_command_rend(_addr, or_port, dir_port,
                              digest, dir_purpose,
                              router_purpose, indirection,
                              resource, payload, payload_len,
@@ -897,7 +886,7 @@ is_sensitive_dir_purpose(uint8_t dir_purpose)
 /** Same as directory_initiate_command(), but accepts rendezvous data to
  * fetch a hidden service descriptor. */
 static void
-directory_initiate_command_rend(const char *address, const tor_addr_t *_addr,
+directory_initiate_command_rend(const tor_addr_t *_addr,
                                 uint16_t or_port, uint16_t dir_port,
                                 const char *digest,
                                 uint8_t dir_purpose, uint8_t router_purpose,
@@ -915,7 +904,6 @@ directory_initiate_command_rend(const char *address, const tor_addr_t *_addr,
   const int anonymized_connection = dirind_is_anon(indirection);
   tor_addr_t addr;
 
-  tor_assert(address);
   tor_assert(_addr);
   tor_assert(or_port || dir_port);
   tor_assert(digest);
@@ -948,7 +936,7 @@ directory_initiate_command_rend(const char *address, const tor_addr_t *_addr,
   /* set up conn so it's got all the data we need to remember */
   tor_addr_copy(&conn->base_.addr, &addr);
   conn->base_.port = use_begindir ? or_port : dir_port;
-  conn->base_.address = tor_strdup(address);
+  conn->base_.address = tor_dup_addr(&addr);
   memcpy(conn->identity_digest, digest, DIGEST_LEN);
 
   conn->base_.purpose = dir_purpose;

+ 1 - 1
src/or/directory.h

@@ -63,7 +63,7 @@ int connection_dir_process_inbuf(dir_connection_t *conn);
 int connection_dir_finished_flushing(dir_connection_t *conn);
 int connection_dir_finished_connecting(dir_connection_t *conn);
 void connection_dir_about_to_close(dir_connection_t *dir_conn);
-void directory_initiate_command(const char *address, const tor_addr_t *addr,
+void directory_initiate_command(const tor_addr_t *addr,
                                 uint16_t or_port, uint16_t dir_port,
                                 const char *digest,
                                 uint8_t dir_purpose, uint8_t router_purpose,

+ 10 - 23
src/or/dirserv.c

@@ -79,7 +79,6 @@ static int add_fingerprint_to_dir(const char *nickname, const char *fp,
                                   struct authdir_config_t *list);
 static uint32_t
 dirserv_get_status_impl(const char *fp, const char *nickname,
-                        const char *address,
                         uint32_t addr, uint16_t or_port,
                         const char *platform, const char *contact,
                         const char **msg, int should_log);
@@ -327,7 +326,6 @@ dirserv_router_get_status(const routerinfo_t *router, const char **msg)
   }
 
   return dirserv_get_status_impl(d, router->nickname,
-                                 router->address,
                                  router->addr, router->or_port,
                                  router->platform, router->contact_info,
                                  msg, 1);
@@ -341,7 +339,6 @@ dirserv_would_reject_router(const routerstatus_t *rs)
   uint32_t res;
 
   res = dirserv_get_status_impl(rs->identity_digest, rs->nickname,
-                                "", /* address is only used in logs */
                                 rs->addr, rs->or_port,
                                 NULL, NULL,
                                 NULL, 0);
@@ -380,7 +377,6 @@ dirserv_get_name_status(const char *id_digest, const char *nickname)
  */
 static uint32_t
 dirserv_get_status_impl(const char *id_digest, const char *nickname,
-                        const char *address,
                         uint32_t addr, uint16_t or_port,
                         const char *platform, const char *contact,
                         const char **msg, int should_log)
@@ -452,14 +448,14 @@ dirserv_get_status_impl(const char *id_digest, const char *nickname,
     if (should_log)
       log_info(LD_DIRSERV,
                "Marking '%s' as bad directory because of address '%s'",
-               nickname, address);
+               nickname, fmt_addr32(addr));
     result |= FP_BADDIR;
   }
 
   if (authdir_policy_badexit_address(addr, or_port)) {
     if (should_log)
       log_info(LD_DIRSERV, "Marking '%s' as bad exit because of address '%s'",
-               nickname, address);
+               nickname, fmt_addr32(addr));
     result |= FP_BADEXIT;
   }
 
@@ -467,7 +463,7 @@ dirserv_get_status_impl(const char *id_digest, const char *nickname,
     if (!authdir_policy_permits_address(addr, or_port)) {
       if (should_log)
         log_info(LD_DIRSERV, "Rejecting '%s' because of address '%s'",
-                 nickname, address);
+                 nickname, fmt_addr32(addr));
       if (msg)
         *msg = "Authdir is rejecting routers in this range.";
       return FP_REJECT;
@@ -475,7 +471,7 @@ dirserv_get_status_impl(const char *id_digest, const char *nickname,
     if (!authdir_policy_valid_address(addr, or_port)) {
       if (should_log)
         log_info(LD_DIRSERV, "Not marking '%s' valid because of address '%s'",
-                 nickname, address);
+                 nickname, fmt_addr32(addr));
       result |= FP_INVALID;
     }
     if (reject_unlisted) {
@@ -524,19 +520,12 @@ dirserv_free_fingerprint_list(void)
 static int
 dirserv_router_has_valid_address(routerinfo_t *ri)
 {
-  struct in_addr iaddr;
   if (get_options()->DirAllowPrivateAddresses)
     return 0; /* whatever it is, we're fine with it */
-  if (!tor_inet_aton(ri->address, &iaddr)) {
-    log_info(LD_DIRSERV,"Router %s published non-IP address '%s'. Refusing.",
-             router_describe(ri),
-             ri->address);
-    return -1;
-  }
-  if (is_internal_IP(ntohl(iaddr.s_addr), 0)) {
+  if (is_internal_IP(ri->addr, 0)) {
     log_info(LD_DIRSERV,
-             "Router %s published internal IP address '%s'. Refusing.",
-             router_describe(ri), ri->address);
+             "Router %s published internal IP address. Refusing.",
+             router_describe(ri));
     return -1; /* it's a private IP, we should reject it */
   }
   return 0;
@@ -588,12 +577,10 @@ authdir_wants_to_reject_router(routerinfo_t *ri, const char **msg,
   }
   if (dirserv_router_has_valid_address(ri) < 0) {
     log_fn(severity, LD_DIRSERV,
-           "Router %s has invalid address '%s'. "
-           "Not adding (%s).",
+           "Router %s has invalid address. Not adding (%s).",
            router_describe(ri),
-           ri->address,
            esc_router_info(ri));
-    *msg = "Rejected: Address is not an IP, or IP is a private address.";
+    *msg = "Rejected: Address is a private address.";
     return -1;
   }
 
@@ -3279,7 +3266,7 @@ dirserv_single_reachability_test(time_t now, routerinfo_t *router)
 
   /* IPv4. */
   log_debug(LD_OR,"Testing reachability of %s at %s:%u.",
-            router->nickname, router->address, router->or_port);
+            router->nickname, fmt_addr32(router->addr), router->or_port);
   tor_addr_from_ipv4h(&router_addr, router->addr);
   chan = channel_tls_connect(&router_addr, router->or_port,
                              router->cache_info.identity_digest);

+ 2 - 8
src/or/entrynodes.c

@@ -1967,7 +1967,6 @@ get_socks_args_by_bridge_addrport(const tor_addr_t *addr, uint16_t port)
 static void
 launch_direct_bridge_descriptor_fetch(bridge_info_t *bridge)
 {
-  char *address;
   const or_options_t *options = get_options();
 
   if (connection_get_by_type_addr_port_purpose(
@@ -1982,15 +1981,12 @@ launch_direct_bridge_descriptor_fetch(bridge_info_t *bridge)
     return;
   }
 
-  address = tor_dup_addr(&bridge->addr);
-
-  directory_initiate_command(address, &bridge->addr,
+  directory_initiate_command(&bridge->addr,
                              bridge->port, 0/*no dirport*/,
                              bridge->identity,
                              DIR_PURPOSE_FETCH_SERVERDESC,
                              ROUTER_PURPOSE_BRIDGE,
                              DIRIND_ONEHOP, "authority.z", NULL, 0, 0);
-  tor_free(address);
 }
 
 /** Fetching the bridge descriptor from the bridge authority returned a
@@ -2108,13 +2104,11 @@ rewrite_node_address_for_bridge(const bridge_info_t *bridge, node_t *node)
     } else {
       if (tor_addr_family(&bridge->addr) == AF_INET) {
         ri->addr = tor_addr_to_ipv4h(&bridge->addr);
-        tor_free(ri->address);
-        ri->address = tor_dup_ip(ri->addr);
         ri->or_port = bridge->port;
         log_info(LD_DIR,
                  "Adjusted bridge routerinfo for '%s' to match configured "
                  "address %s:%d.",
-                 ri->nickname, ri->address, ri->or_port);
+                 ri->nickname, fmt_addr32(ri->addr), ri->or_port);
       } else if (tor_addr_family(&bridge->addr) == AF_INET6) {
         tor_addr_copy(&ri->ipv6_addr, &bridge->addr);
         ri->ipv6_orport = bridge->port;

+ 8 - 4
src/or/main.c

@@ -1670,24 +1670,28 @@ second_elapsed_callback(periodic_timer_t *timer, void *arg)
     /* every 20 minutes, check and complain if necessary */
     const routerinfo_t *me = router_get_my_routerinfo();
     if (me && !check_whether_orport_reachable()) {
+      char *address = tor_dup_ip(me->addr);
       log_warn(LD_CONFIG,"Your server (%s:%d) has not managed to confirm that "
                "its ORPort is reachable. Please check your firewalls, ports, "
                "address, /etc/hosts file, etc.",
-               me->address, me->or_port);
+               address, me->or_port);
       control_event_server_status(LOG_WARN,
                                   "REACHABILITY_FAILED ORADDRESS=%s:%d",
-                                  me->address, me->or_port);
+                                  address, me->or_port);
+      tor_free(address);
     }
 
     if (me && !check_whether_dirport_reachable()) {
+      char *address = tor_dup_ip(me->addr);
       log_warn(LD_CONFIG,
                "Your server (%s:%d) has not managed to confirm that its "
                "DirPort is reachable. Please check your firewalls, ports, "
                "address, /etc/hosts file, etc.",
-               me->address, me->dir_port);
+               address, me->dir_port);
       control_event_server_status(LOG_WARN,
                                   "REACHABILITY_FAILED DIRADDRESS=%s:%d",
-                                  me->address, me->dir_port);
+                                  address, me->dir_port);
+      tor_free(address);
     }
   }
 

+ 1 - 1
src/or/nodelist.c

@@ -785,7 +785,7 @@ void
 node_get_address_string(const node_t *node, char *buf, size_t len)
 {
   if (node->ri) {
-    strlcpy(buf, node->ri->address, len);
+    strlcpy(buf, fmt_addr32(node->ri->addr), len);
   } else if (node->rs) {
     tor_addr_t addr;
     tor_addr_from_ipv4h(&addr, node->rs->addr);

+ 0 - 1
src/or/or.h

@@ -2009,7 +2009,6 @@ typedef int16_t country_t;
 /** Information about another onion router in the network. */
 typedef struct {
   signed_descriptor_t cache_info;
-  char *address; /**< Location of OR: either a hostname or an IP address. */
   char *nickname; /**< Human-readable OR name. */
 
   uint32_t addr; /**< IPv4 address of OR, in host order. */

+ 3 - 3
src/or/policies.c

@@ -438,7 +438,7 @@ validate_addr_policies(const or_options_t *options, char **msg)
 
   if (policies_parse_exit_policy(options->ExitPolicy, &addr_policy,
                                  options->IPv6Exit,
-                                 options->ExitPolicyRejectPrivate, NULL,
+                                 options->ExitPolicyRejectPrivate, 0,
                                  !options->BridgeRelay))
     REJECT("Error in ExitPolicy entry.");
 
@@ -962,7 +962,7 @@ exit_policy_remove_redundancies(smartlist_t *dest)
 int
 policies_parse_exit_policy(config_line_t *cfg, smartlist_t **dest,
                            int ipv6_exit,
-                           int rejectprivate, const char *local_address,
+                           int rejectprivate, uint32_t local_address,
                            int add_default_policy)
 {
   if (!ipv6_exit) {
@@ -972,7 +972,7 @@ policies_parse_exit_policy(config_line_t *cfg, smartlist_t **dest,
     append_exit_policy_string(dest, "reject private:*");
     if (local_address) {
       char buf[POLICY_BUF_LEN];
-      tor_snprintf(buf, sizeof(buf), "reject %s:*", local_address);
+      tor_snprintf(buf, sizeof(buf), "reject %s:*", fmt_addr32(local_address));
       append_exit_policy_string(dest, buf);
     }
   }

+ 1 - 1
src/or/policies.h

@@ -45,7 +45,7 @@ addr_policy_result_t compare_tor_addr_to_node_policy(const tor_addr_t *addr,
 
 int policies_parse_exit_policy(config_line_t *cfg, smartlist_t **dest,
                                int ipv6exit,
-                               int rejectprivate, const char *local_address,
+                               int rejectprivate, uint32_t local_address,
                                int add_default_policy);
 void policies_exit_policy_append_reject_star(smartlist_t **dest);
 void addr_policy_append_reject_addr(smartlist_t **dest,

+ 14 - 9
src/or/router.c

@@ -1177,7 +1177,7 @@ consider_testing_reachability(int test_or, int test_dir)
     /* XXX IPv6 self testing */
     log_info(LD_CIRC, "Testing %s of my ORPort: %s:%d.",
              !orport_reachable ? "reachability" : "bandwidth",
-             me->address, me->or_port);
+             fmt_addr32(me->addr), me->or_port);
     circuit_launch_by_extend_info(CIRCUIT_PURPOSE_TESTING, ei,
                             CIRCLAUNCH_NEED_CAPACITY|CIRCLAUNCH_IS_INTERNAL);
     extend_info_free(ei);
@@ -1189,7 +1189,7 @@ consider_testing_reachability(int test_or, int test_dir)
                 CONN_TYPE_DIR, &addr, me->dir_port,
                 DIR_PURPOSE_FETCH_SERVERDESC)) {
     /* ask myself, via tor, for my server descriptor. */
-    directory_initiate_command(me->address, &addr,
+    directory_initiate_command(&addr,
                                me->or_port, me->dir_port,
                                me->cache_info.identity_digest,
                                DIR_PURPOSE_FETCH_SERVERDESC,
@@ -1204,6 +1204,7 @@ router_orport_found_reachable(void)
 {
   const routerinfo_t *me = router_get_my_routerinfo();
   if (!can_reach_or_port && me) {
+    char *address = tor_dup_ip(me->addr);
     log_notice(LD_OR,"Self-testing indicates your ORPort is reachable from "
                "the outside. Excellent.%s",
                get_options()->PublishServerDescriptor_ != NO_DIRINFO ?
@@ -1212,7 +1213,8 @@ router_orport_found_reachable(void)
     mark_my_descriptor_dirty("ORPort found reachable");
     control_event_server_status(LOG_NOTICE,
                                 "REACHABILITY_SUCCEEDED ORADDRESS=%s:%d",
-                                me->address, me->or_port);
+                                address, me->or_port);
+    tor_free(address);
   }
 }
 
@@ -1222,6 +1224,7 @@ router_dirport_found_reachable(void)
 {
   const routerinfo_t *me = router_get_my_routerinfo();
   if (!can_reach_dir_port && me) {
+    char *address = tor_dup_ip(me->addr);
     log_notice(LD_DIRSERV,"Self-testing indicates your DirPort is reachable "
                "from the outside. Excellent.");
     can_reach_dir_port = 1;
@@ -1229,7 +1232,8 @@ router_dirport_found_reachable(void)
       mark_my_descriptor_dirty("DirPort found reachable");
     control_event_server_status(LOG_NOTICE,
                                 "REACHABILITY_SUCCEEDED DIRADDRESS=%s:%d",
-                                me->address, me->dir_port);
+                                address, me->dir_port);
+    tor_free(address);
   }
 }
 
@@ -1800,7 +1804,6 @@ router_rebuild_descriptor(int force)
 
   ri = tor_malloc_zero(sizeof(routerinfo_t));
   ri->cache_info.routerlist_index = -1;
-  ri->address = tor_dup_ip(addr);
   ri->nickname = tor_strdup(options->Nickname);
   ri->addr = addr;
   ri->or_port = router_get_advertised_or_port(options);
@@ -1865,7 +1868,7 @@ router_rebuild_descriptor(int force)
     policies_parse_exit_policy(options->ExitPolicy, &ri->exit_policy,
                                options->IPv6Exit,
                                options->ExitPolicyRejectPrivate,
-                               ri->address, !options->BridgeRelay);
+                               ri->addr, !options->BridgeRelay);
   }
   ri->policy_is_reject_star =
     policy_is_reject_star(ri->exit_policy, AF_INET) &&
@@ -2271,8 +2274,7 @@ char *
 router_dump_router_to_string(routerinfo_t *router,
                              crypto_pk_t *ident_key)
 {
-  /* XXXX025 Make this look entirely at its arguments, and not at globals.
-   */
+  char *address = NULL;
   char *onion_pkey = NULL; /* Onion key, PEM-encoded. */
   char *identity_pkey = NULL; /* Identity key, PEM-encoded. */
   char digest[DIGEST_LEN];
@@ -2346,7 +2348,9 @@ router_dump_router_to_string(routerinfo_t *router,
     }
   }
 
+  address = tor_dup_ip(router->addr);
   chunks = smartlist_new();
+
   /* Generate the easy portion of the router descriptor. */
   smartlist_add_asprintf(chunks,
                     "router %s %s %d 0 %d\n"
@@ -2362,7 +2366,7 @@ router_dump_router_to_string(routerinfo_t *router,
                     "signing-key\n%s"
                     "%s%s%s%s",
     router->nickname,
-    router->address,
+    address,
     router->or_port,
     decide_to_advertise_dirport(options, router->dir_port),
     extra_or_address ? extra_or_address : "",
@@ -2476,6 +2480,7 @@ router_dump_router_to_string(routerinfo_t *router,
     SMARTLIST_FOREACH(chunks, char *, cp, tor_free(cp));
     smartlist_free(chunks);
   }
+  tor_free(address);
   tor_free(family_line);
   tor_free(onion_pkey);
   tor_free(identity_pkey);

+ 1 - 2
src/or/routerlist.c

@@ -2709,7 +2709,6 @@ routerinfo_free(routerinfo_t *router)
     return;
 
   tor_free(router->cache_info.signed_descriptor_body);
-  tor_free(router->address);
   tor_free(router->nickname);
   tor_free(router->platform);
   tor_free(router->contact_info);
@@ -4720,7 +4719,7 @@ router_differences_are_cosmetic(const routerinfo_t *r1, const routerinfo_t *r2)
   }
 
   /* If any key fields differ, they're different. */
-  if (strcasecmp(r1->address, r2->address) ||
+  if (r1->addr != r2->addr ||
       strcasecmp(r1->nickname, r2->nickname) ||
       r1->or_port != r2->or_port ||
       !tor_addr_eq(&r1->ipv6_addr, &r2->ipv6_addr) ||

+ 1 - 2
src/or/routerparse.c

@@ -1195,8 +1195,7 @@ router_parse_entry_from_string(const char *s, const char *end,
     log_warn(LD_DIR,"Router nickname is invalid");
     goto err;
   }
-  router->address = tor_strdup(tok->args[1]);
-  if (!tor_inet_aton(router->address, &in)) {
+  if (!tor_inet_aton(tok->args[1], &in)) {
     log_warn(LD_DIR,"Router address is not an IP address.");
     goto err;
   }

+ 3 - 3
src/test/test.c

@@ -638,7 +638,7 @@ test_policy_summary_helper(const char *policy_str,
   line.value = (char *)policy_str;
   line.next = NULL;
 
-  r = policies_parse_exit_policy(&line, &policy, 1, 0, NULL, 1);
+  r = policies_parse_exit_policy(&line, &policy, 1, 0, 0, 1);
   test_eq(r, 0);
   summary = policy_summarize(policy, AF_INET);
 
@@ -695,7 +695,7 @@ test_policies(void)
   test_assert(ADDR_POLICY_REJECTED ==
           compare_tor_addr_to_addr_policy(&tar, 2, policy));
 
-  test_assert(0 == policies_parse_exit_policy(NULL, &policy2, 1, 1, NULL, 1));
+  test_assert(0 == policies_parse_exit_policy(NULL, &policy2, 1, 1, 0, 1));
   test_assert(policy2);
 
   policy3 = smartlist_new();
@@ -782,7 +782,7 @@ test_policies(void)
   line.key = (char*)"foo";
   line.value = (char*)"accept *:80,reject private:*,reject *:*";
   line.next = NULL;
-  test_assert(0 == policies_parse_exit_policy(&line, &policy, 1, 0, NULL, 1));
+  test_assert(0 == policies_parse_exit_policy(&line, &policy, 1, 0, 0, 1));
   test_assert(policy);
   //test_streq(policy->string, "accept *:80");
   //test_streq(policy->next->string, "reject *:*");

+ 4 - 6
src/test/test_dir.c

@@ -97,7 +97,6 @@ test_dir_formats(void)
 
   get_platform_str(platform, sizeof(platform));
   r1 = tor_malloc_zero(sizeof(routerinfo_t));
-  r1->address = tor_strdup("18.244.0.1");
   r1->addr = 0xc0a80001u; /* 192.168.0.1 */
   r1->cache_info.published_on = 0;
   r1->or_port = 9000;
@@ -124,7 +123,6 @@ test_dir_formats(void)
   ex2->maskbits = 8;
   ex2->prt_min = ex2->prt_max = 24;
   r2 = tor_malloc_zero(sizeof(routerinfo_t));
-  r2->address = tor_strdup("1.1.1.1");
   r2->addr = 0x0a030201u; /* 10.3.2.1 */
   r2->platform = tor_strdup(platform);
   r2->cache_info.published_on = 5;
@@ -153,7 +151,7 @@ test_dir_formats(void)
   tor_free(options->ContactInfo);
   test_assert(buf);
 
-  strlcpy(buf2, "router Magri 18.244.0.1 9000 0 9003\n"
+  strlcpy(buf2, "router Magri 192.168.0.1 9000 0 9003\n"
           "or-address [1:2:3:4::]:9999\n"
           "platform Tor "VERSION" on ", sizeof(buf2));
   strlcat(buf2, get_uname(), sizeof(buf2));
@@ -187,7 +185,7 @@ test_dir_formats(void)
   cp = buf;
   rp1 = router_parse_entry_from_string((const char*)cp,NULL,1,0,NULL);
   test_assert(rp1);
-  test_streq(rp1->address, r1->address);
+  test_eq(rp1->addr, r1->addr);
   test_eq(rp1->or_port, r1->or_port);
   //test_eq(rp1->dir_port, r1->dir_port);
   test_eq(rp1->bandwidthrate, r1->bandwidthrate);
@@ -198,7 +196,7 @@ test_dir_formats(void)
   //test_assert(rp1->exit_policy == NULL);
 
   strlcpy(buf2,
-          "router Fred 1.1.1.1 9005 0 0\n"
+          "router Fred 10.3.2.1 9005 0 0\n"
           "platform Tor "VERSION" on ", sizeof(buf2));
   strlcat(buf2, get_uname(), sizeof(buf2));
   strlcat(buf2, "\n"
@@ -231,7 +229,7 @@ test_dir_formats(void)
   cp = buf;
   rp2 = router_parse_entry_from_string((const char*)cp,NULL,1,0,NULL);
   test_assert(rp2);
-  test_streq(rp2->address, r2->address);
+  test_eq(rp2->addr, r2->addr);
   test_eq(rp2->or_port, r2->or_port);
   test_eq(rp2->dir_port, r2->dir_port);
   test_eq(rp2->bandwidthrate, r2->bandwidthrate);