aboutsummaryrefslogtreecommitdiff
path: root/plugins-root/check_dhcp.c
diff options
context:
space:
mode:
authorGravatar Sven Nierlein <Sven.Nierlein@consol.de> 2013-09-17 19:56:55 +0200
committerGravatar Sven Nierlein <sven@consol.de> 2013-09-17 19:56:55 +0200
commit6e9d16809ec15a628920c0a3d7b6221aaf6aa895 (patch)
treedeecd539b95666adad915a9c5178c97f07db721d /plugins-root/check_dhcp.c
parent08d554ada1d12a0a0bc9c2e6e218789e05287af8 (diff)
downloadmonitoring-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.c13
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{