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.
This commit is contained in:
Sven Nierlein 2013-09-17 19:56:55 +02:00 committed by Sven Nierlein
parent 08d554ada1
commit 6e9d16809e

View file

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