[nagiosplug] check_dhcp: fix mac address and interface number ...

Nagios Plugin Development nagios-plugins at users.sourceforge.net
Tue Sep 17 23:40:26 CEST 2013


    Module: nagiosplug
    Branch: master
    Commit: 6e9d16809ec15a628920c0a3d7b6221aaf6aa895
    Author: Sven Nierlein <Sven.Nierlein at consol.de>
 Committer: Sven Nierlein <sven at consol.de>
      Date: Tue Sep 17 19:56:55 2013 +0200
       URL: http://nagiosplug.git.sf.net/git/gitweb.cgi?p=nagiosplug/nagiosplug;a=commit;h=6e9d168

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 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){
 	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{





More information about the Commits mailing list