From 8f393ee9ccbf268a04dfe8a9d1044d910fa0df50 Mon Sep 17 00:00:00 2001 From: Doug MacEachern Date: Fri, 6 Apr 2007 15:44:12 +0000 Subject: [PATCH] properly handle ipv6 addresses in net_connection_get --- src/os/darwin/darwin_sigar.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/os/darwin/darwin_sigar.c b/src/os/darwin/darwin_sigar.c index 7f99d3de..ba83148f 100644 --- a/src/os/darwin/darwin_sigar.c +++ b/src/os/darwin/darwin_sigar.c @@ -2024,11 +2024,20 @@ static int net_connection_get(sigar_net_connection_walker_t *walker, int proto) SIGAR_ZERO(&conn); - sigar_net_address_set(conn.local_address, - inp->inp_laddr.s_addr); + if (inp->inp_vflag & INP_IPV6) { + sigar_net_address6_set(conn.local_address, + &inp->in6p_laddr.s6_addr); - sigar_net_address_set(conn.remote_address, - inp->inp_faddr.s_addr); + sigar_net_address6_set(conn.remote_address, + &inp->in6p_faddr.s6_addr); + } + else { + sigar_net_address_set(conn.local_address, + inp->inp_laddr.s_addr); + + sigar_net_address_set(conn.remote_address, + inp->inp_faddr.s_addr); + } conn.local_port = ntohs(inp->inp_lport); conn.remote_port = ntohs(inp->inp_fport);