From 6e9d16809ec15a628920c0a3d7b6221aaf6aa895 Mon Sep 17 00:00:00 2001 From: Sven Nierlein Date: Tue, 17 Sep 2013 19:56:55 +0200 Subject: 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. --- plugins-root/check_dhcp.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'plugins-root') 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{ -- cgit v1.2.3