diff options
Diffstat (limited to '')
-rw-r--r-- | plugin_netinfo.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/plugin_netinfo.c b/plugin_netinfo.c index c2af6fd..57c79b2 100644 --- a/plugin_netinfo.c +++ b/plugin_netinfo.c @@ -143,8 +143,10 @@ static void my_hwaddr(RESULT * result, RESULT * arg1) } strncpy(ifreq.ifr_name, R2S(arg1), sizeof(ifreq.ifr_name)); - if (ioctl(socknr, SIOCGIFHWADDR, &ifreq) < 0) { - errcount++; + // if (ioctl(socknr, SIOCGIFHWADDR, &ifreq) < 0) { + // if (ioctl(socknr, SIOCGIFMAC, &ifreq) < 0) { + if (ioctl(socknr, SIOCGLIFPHYADDR, &ifreq) < 0) { + errcount++; if (1 == errcount % 1000) { error("%s: ioctl(IFHWADDR %s) failed: %s", "plugin_netinfo", ifreq.ifr_name, strerror(errno)); error(" (skip next 1000 errors)"); @@ -152,7 +154,8 @@ static void my_hwaddr(RESULT * result, RESULT * arg1) SetResult(&result, R_STRING, ""); return; } - hw = (unsigned char *) ifreq.ifr_hwaddr.sa_data; + // hw = (unsigned char *) ifreq.ifr_hwaddr.sa_data; + hw = (unsigned char *) ifreq.ifr_data; qprintf(value, sizeof(value), "%02x:%02x:%02x:%02x:%02x:%02x", *hw, *(hw + 1), *(hw + 2), *(hw + 3), *(hw + 4), *(hw + 5)); @@ -215,7 +218,8 @@ static void my_netmask(RESULT * result, RESULT * arg1) SetResult(&result, R_STRING, ""); return; } - sin = (struct sockaddr_in *) &ifreq.ifr_netmask; + // sin = (struct sockaddr_in *) &ifreq.ifr_netmask; + sin = (struct sockaddr_in *) &ifreq.ifr_data; qprintf(value, sizeof(value), "%s", inet_ntoa(sin->sin_addr)); SetResult(&result, R_STRING, value); |