diff --git a/ChangeLog b/ChangeLog index 0f8155a907..c78300f640 100644 --- a/ChangeLog +++ b/ChangeLog @@ -67,6 +67,8 @@ Changes in version 0.2.0.20-?? - 2008-02-?? on the socket. Bugfix on 0.1.2.x. - Change the behavior of "getinfo status/good-server-descriptor" so it doesn't return failure when any authority disappears. + - Even though the man page said that "TrackHostExits ." should + work, nobody had ever implemented it. Bugfix on 0.1.0.x. o Code simplifications and refactoring: - Remove the tor_strpartition function: its logic was confused, diff --git a/src/or/circuituse.c b/src/or/circuituse.c index 668d5db5cd..b1b65754b4 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -1185,7 +1185,8 @@ consider_recording_trackhost(edge_connection_t *conn, origin_circuit_t *circ) SMARTLIST_FOREACH(options->TrackHostExits, const char *, cp, { if (cp[0] == '.') { /* match end */ - if (!strcasecmpend(conn->socks_request->address, cp) || + if (cp[1] == '\0' || + !strcasecmpend(conn->socks_request->address, cp) || !strcasecmp(conn->socks_request->address, &cp[1])) found_needle = 1; } else if (strcasecmp(cp, conn->socks_request->address) == 0) {