summaryrefslogtreecommitdiffstats
path: root/plugins-root/check_dhcp.c
diff options
context:
space:
mode:
authorSven Nierlein <Sven.Nierlein@consol.de>2013-09-17 17:56:55 (GMT)
committerSven Nierlein <sven@consol.de>2013-09-17 17:56:55 (GMT)
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 b02ee49..42eedec 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){
372 char *p; 372 char *p;
373 int unit; 373 int unit;
374 374
375 for(p = interface_name; *p && isalpha(*p); p++) 375 /* get last number from interfacename, eg lnc0, e1000g0*/
376 /* no-op */ ; 376 int i;
377 if( p != '\0' ){ 377 p = interface_name + strlen(interface_name) -1;
378 for(i = strlen(interface_name) -1; i > 0; p--) {
379 if(isalpha(*p))
380 break;
381 }
382 p++;
383 if( p != interface_name ){
378 unit = atoi(p) ; 384 unit = atoi(p) ;
379 *p = '\0' ;
380 strncat(dev, interface_name, 6) ; 385 strncat(dev, interface_name, 6) ;
381 } 386 }
382 else{ 387 else{