Relays and bridges are not counting directory requests coming in via IPv6
While testing my legacy/trac#8786 branch I found that relays and bridges are currently not counting directory requests coming in via IPv6 at all. The reason is the `if` in the following code snippet from `directory_handle_command_get()`: ``` struct in_addr in; tor_addr_t addr; if (tor_inet_aton((TO_CONN(conn))->address, &in)) { tor_addr_from_ipv4h(&addr, ntohl(in.s_addr)); geoip_note_client_seen(GEOIP_CLIENT_NETWORKSTATUS, &addr, NULL, time(NULL)); ``` `tor_inet_aton` expects an IPv4 address in dotted-quad notation and returns 0 if it's given an IPv6 address. When digging deeper into Git history, I found that I had changed that code to `&TO_CONN(conn)->addr` 4 years ago and then again to the code above in 4741aa4 because "Roger notes that address and addr are two different things." I _think_ this was a mistake and that we can fix this by just reverting 4741aa4. I'll post a branch in a minute that I tested using Chutney's "bridges+ipv6" network (together with teor's legacy/trac#17153 fix). Please correct me if we should really use `address` here instead of `addr`. In that case we'll probably want to look if `address` contains an IPv6 address string and handle that separately.
issue