From 69fecdd3d64aac4d19a2fa5777ea2b6c017fe9cf Mon Sep 17 00:00:00 2001 From: volker Date: Fri, 15 Jan 2010 21:44:04 +0000 Subject: Ticket 182 git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@1079 3ae390bd-cb1e-0410-b409-cd5a39f66f1f --- plugin_netinfo.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'plugin_netinfo.c') diff --git a/plugin_netinfo.c b/plugin_netinfo.c index 57c79b2..08eaee9 100644 --- a/plugin_netinfo.c +++ b/plugin_netinfo.c @@ -143,19 +143,26 @@ static void my_hwaddr(RESULT * result, RESULT * arg1) } strncpy(ifreq.ifr_name, R2S(arg1), sizeof(ifreq.ifr_name)); - // if (ioctl(socknr, SIOCGIFHWADDR, &ifreq) < 0) { - // if (ioctl(socknr, SIOCGIFMAC, &ifreq) < 0) { +#ifndef __MAC_OS_X_VERSION_10_3 + // Linux: get interface MAC address + if (ioctl(socknr, SIOCGIFHWADDR, &ifreq) < 0) { +#else + // MacOS: get interface MAC address if (ioctl(socknr, SIOCGLIFPHYADDR, &ifreq) < 0) { - errcount++; +#endif + errcount++; if (1 == errcount % 1000) { - error("%s: ioctl(IFHWADDR %s) failed: %s", "plugin_netinfo", ifreq.ifr_name, strerror(errno)); + error("%s: ioctl(IF_HARDW_ADDR %s) failed: %s", "plugin_netinfo", ifreq.ifr_name, strerror(errno)); error(" (skip next 1000 errors)"); } SetResult(&result, R_STRING, ""); return; } - // hw = (unsigned char *) ifreq.ifr_hwaddr.sa_data; +#ifndef __MAC_OS_X_VERSION_10_3 + hw = (unsigned char *) ifreq.ifr_hwaddr.sa_data; +#else hw = (unsigned char *) ifreq.ifr_data; +#endif qprintf(value, sizeof(value), "%02x:%02x:%02x:%02x:%02x:%02x", *hw, *(hw + 1), *(hw + 2), *(hw + 3), *(hw + 4), *(hw + 5)); @@ -218,8 +225,11 @@ static void my_netmask(RESULT * result, RESULT * arg1) SetResult(&result, R_STRING, ""); return; } - // sin = (struct sockaddr_in *) &ifreq.ifr_netmask; +#ifndef __MAC_OS_X_VERSION_10_3 + sin = (struct sockaddr_in *) &ifreq.ifr_netmask; +#else sin = (struct sockaddr_in *) &ifreq.ifr_data; +#endif qprintf(value, sizeof(value), "%s", inet_ntoa(sin->sin_addr)); SetResult(&result, R_STRING, value); -- cgit v1.2.3