diff options
Diffstat (limited to 'src/or/connection_edge.c')
-rw-r--r-- | src/or/connection_edge.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 9692edaad..e8902273d 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -790,9 +790,9 @@ client_dns_set_addressmap(const char *address, uint32_t val, { struct in_addr in; /* <address>.<hex or nickname>.exit\0 or just <address>\0 */ - char extendedaddress[MAX_SOCKS_ADDR_LEN+MAX_HEX_NICKNAME_LEN+10]; + char extendedaddress[MAX_SOCKS_ADDR_LEN+MAX_VERBOSE_NICKNAME_LEN+10]; /* 123.123.123.123.<hex or nickname>.exit\0 or just 123.123.123.123\0 */ - char extendedval[INET_NTOA_BUF_LEN+MAX_HEX_NICKNAME_LEN+10]; + char extendedval[INET_NTOA_BUF_LEN+MAX_VERBOSE_NICKNAME_LEN+10]; char valbuf[INET_NTOA_BUF_LEN]; tor_assert(address); @@ -808,6 +808,9 @@ client_dns_set_addressmap(const char *address, uint32_t val, in.s_addr = htonl(val); tor_inet_ntoa(&in,valbuf,sizeof(valbuf)); if (exitname) { + /* XXXX fails to ever get attempts to get an exit address of + * google.com.digest[=~]nickname.exit; we need a syntax for this that + * won't make strict RFC952-compliant applications (like us) barf. */ tor_snprintf(extendedaddress, sizeof(extendedaddress), "%s.%s.exit", address, exitname); tor_snprintf(extendedval, sizeof(extendedval), |