Return value bugfix of tor_addr_to_PTR_name

Returns value semantics was inconsitent between IPv4 and IPv6
This commit is contained in:
Anders Sundman 2011-11-11 08:04:05 +01:00
parent f0589da0e3
commit 1b97588a31

View File

@ -470,13 +470,17 @@ tor_addr_parse_PTR_name(tor_addr_t *result, const char *address,
return 0; return 0;
} }
/** Convert <b>addr</b> to an in-addr.arpa name or a .ip6.arpa name, and store /** Convert <b>addr</b> to an in-addr.arpa name or a .ip6.arpa name,
* the result in the <b>outlen</b>-byte buffer at <b>out</b>. Return 0 on * and store the result in the <b>outlen</b>-byte buffer at
* success, -1 on failure. */ * <b>out</b>. Return the number of chars written to <b>out</b>, not
* including the trailing \0, on success. Returns -1 on failure. */
int int
tor_addr_to_PTR_name(char *out, size_t outlen, tor_addr_to_PTR_name(char *out, size_t outlen,
const tor_addr_t *addr) const tor_addr_t *addr)
{ {
tor_assert(out);
tor_assert(addr);
if (addr->family == AF_INET) { if (addr->family == AF_INET) {
uint32_t a = tor_addr_to_ipv4h(addr); uint32_t a = tor_addr_to_ipv4h(addr);
@ -499,7 +503,7 @@ tor_addr_to_PTR_name(char *out, size_t outlen,
*cp++ = '.'; *cp++ = '.';
} }
memcpy(cp, "ip6.arpa", 9); /* 8 characters plus NUL */ memcpy(cp, "ip6.arpa", 9); /* 8 characters plus NUL */
return 0; return 32 * 2 + 8;
} }
return -1; return -1;
} }