|
@@ -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
|
|
|
|