Skip to content

Commit

Permalink
Don't process interfaces twice.
Browse files Browse the repository at this point in the history
  • Loading branch information
vincentbernat committed Jan 28, 2012
1 parent 8d7efff commit 3276f3b
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion agentx-c-mib2c/ethtoolStatTable_data_access.c
Expand Up @@ -216,7 +216,7 @@ ethtoolStatTable_container_load(netsnmp_container *container)

int skfd;
struct ifaddrs *ifap;
struct ifaddrs *ifa;
struct ifaddrs *ifa, *ifaprev;

if ((skfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
return MFD_RESOURCE_UNAVAILABLE;
Expand All @@ -238,6 +238,13 @@ ethtoolStatTable_container_load(netsnmp_container *container)
struct ifreq ifr;
unsigned int n_stats, sz_str, sz_stats, i;

/* We want to process interfaces only once. Check if this one was
already processed. */
for (ifaprev = ifap;
ifaprev && ifaprev != ifa;
ifaprev = ifaprev->ifa_next)
if (strcmp(ifaprev->ifa_name, ifa->ifa_name) == 0) continue;

memset(&ifr, 0, sizeof(ifr));
strcpy(ifr.ifr_name, ifa->ifa_name);

Expand Down

0 comments on commit 3276f3b

Please sign in to comment.