]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
i *think* this is equivalent. somebody should check me on it though.
authorRoger Dingledine <arma@torproject.org>
Tue, 30 Sep 2008 08:45:40 +0000 (08:45 +0000)
committerRoger Dingledine <arma@torproject.org>
Tue, 30 Sep 2008 08:45:40 +0000 (08:45 +0000)
svn:r17009

src/or/directory.c

index 14c06b87fcb7b0db205d27b14dc58be4c3390e7f..9dfc80942abd567325fbb66db2907bc4862ce632 100644 (file)
@@ -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