diff --git a/lib/socket.h b/lib/socket.h index e5bd0da57..fbb4a4025 100644 --- a/lib/socket.h +++ b/lib/socket.h @@ -134,6 +134,15 @@ INLINE char *sockaddr_print_buf(const sockaddr_t *a) { sockaddr_print(a, buf, THREAD_BUF_SIZE); return buf; } +INLINE int sockaddr_print_gstring(GString *s, const sockaddr_t *a) { + if (!a->family) + return 0; + char buf[THREAD_BUF_SIZE]; + if (sockaddr_print(a, buf, THREAD_BUF_SIZE)) + return -1; + g_string_append(s, buf); + return 0; +} INLINE int sockaddr_print_p(const sockaddr_t *a, char *buf, size_t len) { if (!a->family) { buf[0] = '\0'; @@ -161,12 +170,23 @@ INLINE char *sockaddr_print_port_buf(const sockaddr_t *a, unsigned int port) { sockaddr_print_port(a, port, buf, THREAD_BUF_SIZE); return buf; } +INLINE int sockaddr_print_port_gstring(GString *s, const sockaddr_t *a, unsigned int port) { + char buf[THREAD_BUF_SIZE]; + if (sockaddr_print_port(a, port, buf, THREAD_BUF_SIZE)) + return -1; + g_string_append(s, buf); + return 0; + +} INLINE int endpoint_print(const endpoint_t *ep, char *buf, size_t len) { return sockaddr_print_port(&ep->address, ep->port, buf, len); } INLINE char *endpoint_print_buf(const endpoint_t *ep) { return sockaddr_print_port_buf(&ep->address, ep->port); } +INLINE int endpoint_print_gstring(GString *s, const endpoint_t *ep) { + return sockaddr_print_port_gstring(s, &ep->address, ep->port); +} INLINE int is_addr_unspecified(const sockaddr_t *a) { if (!a || !a->family) return 1;