diff options
author | Sven Nierlein <Sven.Nierlein@consol.de> | 2013-09-17 19:56:55 +0200 |
---|---|---|
committer | Sven Nierlein <sven@consol.de> | 2013-09-17 19:56:55 +0200 |
commit | 6e9d16809ec15a628920c0a3d7b6221aaf6aa895 (patch) | |
tree | deecd539b95666adad915a9c5178c97f07db721d /plugins-root/check_dhcp.c | |
parent | 08d554ada1d12a0a0bc9c2e6e218789e05287af8 (diff) | |
download | monitoring-plugins-6e9d16809ec15a628920c0a3d7b6221aaf6aa895.tar.gz |
check_dhcp: fix mac address and interface number detection on solaris
newer (or x86) solaris implementations have interface names like e1000g0
which includes numbers. So we reverse the interface number detection to
get the last number, instead of the first number.
Diffstat (limited to 'plugins-root/check_dhcp.c')
-rw-r--r-- | plugins-root/check_dhcp.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/plugins-root/check_dhcp.c b/plugins-root/check_dhcp.c index b02ee49c..42eedec8 100644 --- a/plugins-root/check_dhcp.c +++ b/plugins-root/check_dhcp.c @@ -372,11 +372,16 @@ int get_hardware_address(int sock,char *interface_name){ char *p; int unit; - for(p = interface_name; *p && isalpha(*p); p++) - /* no-op */ ; - if( p != '\0' ){ + /* get last number from interfacename, eg lnc0, e1000g0*/ + int i; + p = interface_name + strlen(interface_name) -1; + for(i = strlen(interface_name) -1; i > 0; p--) { + if(isalpha(*p)) + break; + } + p++; + if( p != interface_name ){ unit = atoi(p) ; - *p = '\0' ; strncat(dev, interface_name, 6) ; } else{ |