From: Marko Kreen Date: Mon, 8 Apr 2013 19:24:35 +0000 (+0300) Subject: log: wrap ipv6 address with [] X-Git-Tag: pgbouncer_1_6_rc1~35 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3d17e25fdf34e6d18dc290e67559c27d0fdf5413;p=pgbouncer log: wrap ipv6 address with [] --- diff --git a/include/bouncer.h b/include/bouncer.h index ea62f98..b3091d6 100644 --- a/include/bouncer.h +++ b/include/bouncer.h @@ -156,6 +156,7 @@ union PgAddr { struct sockaddr_ucreds scred; }; +static inline unsigned int pga_family(const PgAddr *a) { return a->sa.sa_family; } static inline bool pga_is_unix(const PgAddr *a) { return a->sa.sa_family == AF_UNIX; } int pga_port(const PgAddr *a); diff --git a/src/util.c b/src/util.c index de01489..79856f2 100644 --- a/src/util.c +++ b/src/util.c @@ -30,12 +30,15 @@ int log_socket_prefix(enum LogLevel lev, void *ctx, char *dst, unsigned int dstl const char *user, *db, *host; char host6[PGADDR_BUF]; int port; + char stype; /* no prefix */ if (!sock) return 0; /* format prefix */ + stype = is_server_socket(sock) ? 'S' : 'C'; + port = pga_port(&sock->remote_addr); db = sock->pool ? sock->pool->db->name : "(nodb)"; user = sock->auth_user ? sock->auth_user->name : "(nouser)"; if (pga_is_unix(&sock->remote_addr)) { @@ -49,11 +52,13 @@ int log_socket_prefix(enum LogLevel lev, void *ctx, char *dst, unsigned int dstl } else { host = pga_ntop(&sock->remote_addr, host6, sizeof(host6)); } - port = pga_port(&sock->remote_addr); - return snprintf(dst, dstlen, "%c-%p: %s/%s@%s:%d ", - is_server_socket(sock) ? 'S' : 'C', - sock, db, user, host, port); + if (pga_family(&sock->remote_addr) == AF_INET6) + return snprintf(dst, dstlen, "%c-%p: %s/%s@[%s]:%d ", + stype, sock, db, user, host, port); + else + return snprintf(dst, dstlen, "%c-%p: %s/%s@%s:%d ", + stype, sock, db, user, host, port); } const char *bin2hex(const uint8_t *src, unsigned srclen, char *dst, unsigned dstlen) @@ -328,11 +333,6 @@ void pga_copy(PgAddr *a, const struct sockaddr *sa) } } -static inline unsigned pga_family(const PgAddr *a) -{ - return a->sa.sa_family; -} - int pga_cmp_addr(const PgAddr *a, const PgAddr *b) { if (pga_family(a) != pga_family(b))