From: Peter Jones Date: Tue, 9 Aug 2016 14:00:24 +0000 (-0400) Subject: dp-message: make format_ipv6_port_helper() use the common formatting macros. X-Git-Tag: android-x86-7.1-r1~125 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=3d67c5c68e32357047d70310ba2a5fe99005cdbd;p=android-x86%2Fexternal-efivar.git dp-message: make format_ipv6_port_helper() use the common formatting macros. Signed-off-by: Peter Jones --- diff --git a/src/dp-message.c b/src/dp-message.c index 385e3f7..a4d9a92 100644 --- a/src/dp-message.c +++ b/src/dp-message.c @@ -28,17 +28,17 @@ #include "dp.h" static ssize_t -format_ipv6_port_helper(char *buffer, size_t buffer_size, +format_ipv6_port_helper(char *buf, size_t size, uint8_t const *ipaddr, uint16_t port) { uint16_t *ip = (uint16_t *)ipaddr; - off_t offset = 0; - ssize_t needed; + ssize_t off = 0; + ssize_t sz; - needed = snprintf(buffer, buffer_size, "["); - if (needed < 0) + sz = format(buf, size, off, "["); + if (sz < 0) return -1; - offset += needed; + off += sz; // deciding how to print an ipv6 ip requires 2 passes, because // RFC5952 says we have to use :: a) only once and b) to maximum effect. @@ -82,41 +82,31 @@ format_ipv6_port_helper(char *buffer, size_t buffer_size, for (i = 0; i < 8; i++) { if (largest_zero_block_offset == i) { - needed = snprintf(buffer + offset, - buffer_size == 0 ? 0 - : buffer_size - offset, - "::"); - if (needed < 0) - return -1; - offset += needed; + sz = format(buf, size, off, "::"); + if (sz < 0) + return sz; + off += sz; i += largest_zero_block_size -1; continue; } else if (i > 0) { - needed = snprintf(buffer + offset, - buffer_size == 0 ? 0 - : buffer_size - offset, - ":"); - if (needed < 0) + sz = format(buf, size, off, ":"); + if (sz < 0) return -1; - offset += needed; + off += sz; } - needed = snprintf(buffer + offset, - buffer_size == 0 ? 0 : buffer_size - offset, - "%x", ip[i]); - if (needed < 0) + sz = format(buf, size, off, "%x", ip[i]); + if (sz < 0) return -1; - offset += needed; + off += sz; } - needed = snprintf(buffer + offset, - buffer_size == 0 ? 0 : buffer_size - offset, - "]:%d", port); - if (needed < 0) + sz = format(buf, size, off, "]:%d", port); + if (sz < 0) return -1; - offset += needed; + off += sz; - return offset; + return off; } #define format_ipv6_port(buf, size, off, ipaddr, port) \