From: David Fifield Date: Fri, 5 Oct 2012 02:43:44 +0000 (-0700) Subject: Add fmt_addrport. X-Git-Tag: tor-0.2.4.4-alpha~36^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78e2d8c7a85c8ec2defe5d1873ae19ba9b82b14c;p=thirdparty%2Ftor.git Add fmt_addrport. This function formats an addr:port pair, and always decorates IPv6 addresses. --- diff --git a/src/common/address.c b/src/common/address.c index dffbcaff44..9a61872af3 100644 --- a/src/common/address.c +++ b/src/common/address.c @@ -1006,6 +1006,19 @@ fmt_addr_impl(const tor_addr_t *addr, int decorate) return "???"; } +/** Return a string representing the pair addr and port. + * This calls fmt_and_decorate_addr internally, so IPv6 addresses will + * have brackets, and the caveats of fmt_addr_impl apply. + */ +const char * +fmt_addrport(const tor_addr_t *addr, uint16_t port) +{ + /* Add space for a colon and up to 5 digits. */ + static char buf[TOR_ADDR_BUF_LEN + 6]; + tor_snprintf(buf, sizeof(buf), "%s:%u", fmt_and_decorate_addr(addr), port); + return buf; +} + /** Like fmt_addr(), but takes addr as a host-order IPv4 * addresses. Also not thread-safe, also clobbers its return buffer on * repeated calls. */ diff --git a/src/common/address.h b/src/common/address.h index 7a779d8880..68775fb291 100644 --- a/src/common/address.h +++ b/src/common/address.h @@ -145,6 +145,7 @@ char *tor_dup_addr(const tor_addr_t *addr) ATTR_MALLOC; * addresses. */ #define fmt_and_decorate_addr(a) fmt_addr_impl((a), 1) const char *fmt_addr_impl(const tor_addr_t *addr, int decorate); +const char *fmt_addrport(const tor_addr_t *addr, uint16_t port); const char * fmt_addr32(uint32_t addr); int get_interface_address6(int severity, sa_family_t family, tor_addr_t *addr);