( adam stokes ) || ( adam.stokes(a)gmail.com )
On Mon, Jan 31, 2011 at 12:27 PM, Adam Stokes <astokes(a)fedoraproject.org> wrote:
- Uses network interface description in place of sigar's
ethX naming scheme. This does not allow for an administrator
to disable/enable the device, but at least gives identifiable
names.
---
include/sigar.h | 8 ++++----
src/os/win32/win32_sigar.c | 13 ++++++-------
2 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/include/sigar.h b/include/sigar.h
index 48974ed..309cd0f 100644
--- a/include/sigar.h
+++ b/include/sigar.h
@@ -529,7 +529,7 @@ typedef struct {
typedef struct {
char default_gateway[SIGAR_INET6_ADDRSTRLEN];
- char default_gateway_interface[16];
+ char default_gateway_interface[256];
char host_name[SIGAR_MAXHOSTNAMELEN];
char domain_name[SIGAR_MAXDOMAINNAMELEN];
char primary_dns[SIGAR_INET6_ADDRSTRLEN];
@@ -556,7 +556,7 @@ typedef struct {
mtu,
window,
irtt;
- char ifname[16];
+ char ifname[256];
} sigar_net_route_t;
typedef struct {
@@ -602,7 +602,7 @@ SIGAR_DECLARE(int) sigar_net_route_list_destroy(sigar_t *sigar,
#define SIGAR_IPV6_ADDR_COMPATv4 0x0080
typedef struct {
- char name[16];
+ char name[256];
As soon as name gets an increased buffer size sigar completely dies
with access violations. unfortunately drmingw doesn't give me any
clues as to why that is.
Any ideas?
Thanks
char type[64];
char description[256];
sigar_net_address_t hwaddr;
@@ -847,7 +847,7 @@ sigar_net_listen_address_get(sigar_t *sigar,
sigar_net_address_t *address);
typedef struct {
- char ifname[16];
+ char ifname[256];
char type[64];
sigar_net_address_t hwaddr;
sigar_net_address_t address;
diff --git a/src/os/win32/win32_sigar.c b/src/os/win32/win32_sigar.c
index 87076c8..0960ac1 100755
--- a/src/os/win32/win32_sigar.c
+++ b/src/os/win32/win32_sigar.c
@@ -2701,8 +2701,8 @@ sigar_net_interface_list_get(sigar_t *sigar,
}
for (i=0; i<ift->dwNumEntries; i++) {
- char name[16];
- int key;
+ char name[256];
+ int key, j;
MIB_IFROW *ifr = ift->table + i;
sigar_cache_entry_t *entry;
@@ -2710,13 +2710,11 @@ sigar_net_interface_list_get(sigar_t *sigar,
/* special-case */
sprintf(name, NETIF_LA "%d", la++);
}
- else if (ifr->dwType == MIB_IF_TYPE_LOOPBACK) {
- sprintf(name, "lo%d", lo++);
- }
else if ((ifr->dwType == MIB_IF_TYPE_ETHERNET) ||
- (ifr->dwType == IF_TYPE_IEEE80211))
+ (ifr->dwType == IF_TYPE_IEEE80211) ||
+ (ifr->dwType == MIB_IF_TYPE_LOOPBACK))
{
- sprintf(name, "eth%d", eth++);
+ SIGAR_SSTRCPY(name, ifr->bDescr);
}
else {
continue; /*XXX*/
@@ -2725,6 +2723,7 @@ sigar_net_interface_list_get(sigar_t *sigar,
if (iflist) {
iflist->data[iflist->number++] = sigar_strdup(name);
}
+ fprintf(stderr,"> SIGAR iface: %s\n", name);
key = netif_hash(name);
entry = sigar_cache_get(sigar->netif_mib_rows, key);
--
1.7.3.5