Browse Source

i *think* this is equivalent. somebody should check me on it though.

svn:r17009
Roger Dingledine 17 years ago
parent
commit
49a250b208
1 changed files with 3 additions and 20 deletions
  1. 3 20
      src/or/directory.c

+ 3 - 20
src/or/directory.c

@@ -2622,26 +2622,9 @@ directory_handle_command_get(dir_connection_t *conn, const char *headers,
     {
       geoip_client_action_t act =
         is_v3 ? GEOIP_CLIENT_NETWORKSTATUS : GEOIP_CLIENT_NETWORKSTATUS_V2;
-
-      if (tor_addr_family(&conn->_base.addr) == AF_INET) {
-        uint32_t addr = tor_addr_to_ipv4h(&conn->_base.addr);
-
-        if (conn->_base.linked_conn) {
-          connection_t *c = conn->_base.linked_conn;
-          if (c->type == CONN_TYPE_EXIT) {
-            circuit_t *circ = TO_EDGE_CONN(c)->on_circuit;
-            if (! CIRCUIT_IS_ORIGIN(circ)) {
-              or_connection_t *orconn = TO_OR_CIRCUIT(circ)->p_conn;
-              if (tor_addr_family(&conn->_base.addr) == AF_INET)
-                addr = tor_addr_to_ipv4h(&orconn->_base.addr);
-              else
-                addr = 0;
-            }
-          }
-        }
-        if (addr)
-          geoip_note_client_seen(act, addr, time(NULL));
-      }
+      struct in_addr in;
+      if (!tor_inet_aton((TO_CONN(conn))->address, &in))
+        geoip_note_client_seen(act, ntohl(in.s_addr), time(NULL));
     }
 #endif