From 0e763c13e2e5c7895d34f18209ef2e2f9a07185d Mon Sep 17 00:00:00 2001 From: Doug MacEachern Date: Fri, 24 Jul 2009 17:13:19 -0700 Subject: [PATCH] stub net_interface_config ipv6 support --- include/sigar.h | 3 +++ include/sigar_private.h | 8 ++++++++ src/os/aix/aix_sigar.c | 6 ++++++ src/os/darwin/darwin_sigar.c | 9 +++++++++ src/os/hpux/hpux_sigar.c | 6 ++++++ src/os/linux/linux_sigar.c | 6 ++++++ src/os/solaris/solaris_sigar.c | 6 ++++++ src/os/win32/win32_sigar.c | 9 +++++++++ src/sigar.c | 3 +++ 9 files changed, 56 insertions(+) diff --git a/include/sigar.h b/include/sigar.h index a8c62364..63962f43 100644 --- a/include/sigar.h +++ b/include/sigar.h @@ -596,6 +596,9 @@ typedef struct { sigar_net_address_t destination; sigar_net_address_t broadcast; sigar_net_address_t netmask; + sigar_net_address_t address6; + int prefix_length; + int scope; sigar_uint64_t flags, mtu, diff --git a/include/sigar_private.h b/include/sigar_private.h index ad5ba4b7..ccef976f 100644 --- a/include/sigar_private.h +++ b/include/sigar_private.h @@ -291,6 +291,14 @@ int sigar_net_connection_list_grow(sigar_net_connection_list_t *connlist); SIGAR_ZERO(&ifconfig->hwaddr.addr.mac); \ ifconfig->hwaddr.family = SIGAR_AF_LINK +int sigar_net_interface_ipv6_config_get(sigar_t *sigar, const char *name, + sigar_net_interface_config_t *ifconfig); + +#define sigar_net_interface_ipv6_config_init(ifconfig) \ + ifconfig->address6.family = SIGAR_AF_INET6; \ + ifconfig->prefix_length = 0; \ + ifconfig->scope = 0 + int sigar_tcp_curr_estab(sigar_t *sigar, sigar_tcp_t *tcp); int sigar_who_list_create(sigar_who_list_t *wholist); diff --git a/src/os/aix/aix_sigar.c b/src/os/aix/aix_sigar.c index bac4491f..7fee1775 100644 --- a/src/os/aix/aix_sigar.c +++ b/src/os/aix/aix_sigar.c @@ -1507,6 +1507,12 @@ int sigar_net_interface_stat_get(sigar_t *sigar, } } +int sigar_net_interface_ipv6_config_get(sigar_t *sigar, const char *name, + sigar_net_interface_config_t *ifconfig) +{ + return SIGAR_ENOTIMPL; +} + #define IS_TCP_SERVER(state, flags) \ ((flags & SIGAR_NETCONN_SERVER) && (state == TCPS_LISTEN)) diff --git a/src/os/darwin/darwin_sigar.c b/src/os/darwin/darwin_sigar.c index b60e0af1..c310f689 100644 --- a/src/os/darwin/darwin_sigar.c +++ b/src/os/darwin/darwin_sigar.c @@ -2593,6 +2593,12 @@ int sigar_net_interface_list_get(sigar_t *sigar, return sigar_ifmsg_iter(sigar, &iter); } +int sigar_net_interface_ipv6_config_get(sigar_t *sigar, const char *name, + sigar_net_interface_config_t *ifconfig) +{ + return SIGAR_ENOTIMPL; +} + int sigar_net_interface_config_get(sigar_t *sigar, const char *name, sigar_net_interface_config_t *ifconfig) { @@ -2682,6 +2688,9 @@ int sigar_net_interface_config_get(sigar_t *sigar, const char *name, SIGAR_SSTRCPY(ifconfig->description, ifconfig->name); + sigar_net_interface_ipv6_config_init(ifconfig); + sigar_net_interface_ipv6_config_get(sigar, name, ifconfig); + return SIGAR_OK; } diff --git a/src/os/hpux/hpux_sigar.c b/src/os/hpux/hpux_sigar.c index 26fb314a..db1c0c5b 100644 --- a/src/os/hpux/hpux_sigar.c +++ b/src/os/hpux/hpux_sigar.c @@ -872,6 +872,12 @@ int sigar_net_interface_stat_get(sigar_t *sigar, const char *name, return SIGAR_OK; } +int sigar_net_interface_ipv6_config_get(sigar_t *sigar, const char *name, + sigar_net_interface_config_t *ifconfig) +{ + return SIGAR_ENOTIMPL; +} + static int net_conn_get_udp_listen(sigar_net_connection_walker_t *walker) { sigar_t *sigar = walker->sigar; diff --git a/src/os/linux/linux_sigar.c b/src/os/linux/linux_sigar.c index a9325953..9b5863e5 100644 --- a/src/os/linux/linux_sigar.c +++ b/src/os/linux/linux_sigar.c @@ -2092,6 +2092,12 @@ static int sigar_net_connection_get(sigar_t *sigar, return status; } +int sigar_net_interface_ipv6_config_get(sigar_t *sigar, const char *name, + sigar_net_interface_config_t *ifconfig) +{ + return SIGAR_ENOTIMPL; +} + #define SNMP_TCP_PREFIX "Tcp: " SIGAR_DECLARE(int) diff --git a/src/os/solaris/solaris_sigar.c b/src/os/solaris/solaris_sigar.c index ca159ae6..0d356902 100644 --- a/src/os/solaris/solaris_sigar.c +++ b/src/os/solaris/solaris_sigar.c @@ -2083,6 +2083,12 @@ int sigar_net_interface_stat_get(sigar_t *sigar, const char *name, } } +int sigar_net_interface_ipv6_config_get(sigar_t *sigar, const char *name, + sigar_net_interface_config_t *ifconfig) +{ + return SIGAR_ENOTIMPL; +} + #define TCPQ_SIZE(s) ((s) >= 0 ? (s) : 0) static int tcp_connection_get(sigar_net_connection_walker_t *walker, diff --git a/src/os/win32/win32_sigar.c b/src/os/win32/win32_sigar.c index d395afe7..b1549dc3 100644 --- a/src/os/win32/win32_sigar.c +++ b/src/os/win32/win32_sigar.c @@ -2637,6 +2637,12 @@ sigar_net_interface_list_get(sigar_t *sigar, return SIGAR_OK; } +int sigar_net_interface_ipv6_config_get(sigar_t *sigar, const char *name, + sigar_net_interface_config_t *ifconfig) +{ + return SIGAR_ENOTIMPL; +} + SIGAR_DECLARE(int) sigar_net_interface_config_get(sigar_t *sigar, const char *name, @@ -2717,6 +2723,9 @@ sigar_net_interface_config_get(sigar_t *sigar, SIGAR_NIC_ETHERNET); } + sigar_net_interface_ipv6_config_init(ifconfig); + sigar_net_interface_ipv6_config_get(sigar, name, ifconfig); + return SIGAR_OK; } diff --git a/src/sigar.c b/src/sigar.c index 46f09b15..114c98b5 100644 --- a/src/sigar.c +++ b/src/sigar.c @@ -1642,6 +1642,9 @@ int sigar_net_interface_config_get(sigar_t *sigar, const char *name, SIGAR_SSTRCPY(ifconfig->description, ifconfig->name); + sigar_net_interface_ipv6_config_init(ifconfig); + sigar_net_interface_ipv6_config_get(sigar, name, ifconfig); + return SIGAR_OK; }