|
|
|
@ -86,10 +86,11 @@ gather_if_info_ip() { |
|
|
|
$1 != current_if { |
|
|
|
print "IF" no "_IPV4=\"" ipv4 "\";"; |
|
|
|
print "IF" no "_IPV6=\"" ipv6 " \";"; |
|
|
|
print "IF" no "_NETWORK=\"" net "\";"; |
|
|
|
print "IF" no "_MASK=\"" mask "\";"; |
|
|
|
print "IF" no "_NETWORK=\"" networks "\";"; |
|
|
|
print "IF" no "_MASK=\"" netmasks "\";"; |
|
|
|
current_if=$1; |
|
|
|
ipv6=ipv4=""; |
|
|
|
networks=netmasks=""; |
|
|
|
} |
|
|
|
BEGIN { |
|
|
|
classes=""; |
|
|
|
@ -119,7 +120,7 @@ gather_if_info_ip() { |
|
|
|
if (i-1 == full_octets) { |
|
|
|
mpart=256-lshift(1, 8-part_octets); |
|
|
|
mask=mask mpart; |
|
|
|
net=net and(parts[i],mpart); |
|
|
|
net=net and(parts[i],mpart); |
|
|
|
} else { |
|
|
|
mask=mask "0"; |
|
|
|
net=net "0"; |
|
|
|
@ -141,22 +142,46 @@ gather_if_info_ip() { |
|
|
|
# FIXME This is outdated. It does not set classes at all. |
|
|
|
# |
|
|
|
gather_if_info_ifconfig() { |
|
|
|
eval $(${IFCONFIG} -a | ${AWK} ' |
|
|
|
/ether/ { mac=$2 } |
|
|
|
/inet / { ipv4=ipv4 $2 " "; classes=classes $2 " " } |
|
|
|
eval $(${IFCONFIG} -a | ${AWK} --non-decimal-data ' |
|
|
|
/^[^ \t]/ { |
|
|
|
if ("UP" == state) classes=classes mac " "; |
|
|
|
if ("" != name) { |
|
|
|
print "IF" no "_NAME=" name ";IF" no "_STATE=" state ";IF" no "_MAC=" mac ";" \ |
|
|
|
"IF" no "_IPV4=\"${IF" no "_IPV4}" ipv4 " \";" \ |
|
|
|
"IF" no "_IPV6=\"${IF" no "_IPV6}" ipv6 " \";"; |
|
|
|
"IF" no "_IPV4=\"" ipv4 "\";" \ |
|
|
|
"IF" no "_IPV6=\"" ipv6 "\";" \ |
|
|
|
"IF" no "_NETWORK=\"" networks "\";" \ |
|
|
|
"IF" no "_MASK=\"" netmasks "\";"; |
|
|
|
no++; |
|
|
|
} |
|
|
|
ipv4=ipv6=mac=""; |
|
|
|
networks=netmasks=""; |
|
|
|
sub(/:/,"",$1); |
|
|
|
name=$1; |
|
|
|
state="DOWN"; |
|
|
|
} |
|
|
|
/ether/ { mac=$2 } |
|
|
|
/inet / { |
|
|
|
ipv4=ipv4 $2 " "; |
|
|
|
if("0x" == substr($4,0,2)) { |
|
|
|
mask=netmask sprintf("%d.%d.%d.%d ", |
|
|
|
"0x" substr($4,2,2), |
|
|
|
"0x" substr($4,4,2), |
|
|
|
"0x" substr($4,6,2), |
|
|
|
"0x" substr($4,8,2)); |
|
|
|
} else { |
|
|
|
mask=mask $4 " "; |
|
|
|
} |
|
|
|
split($2,parts,/\./); |
|
|
|
split(mask,mparts,/\./); |
|
|
|
for(i=1; i<5; i++) { |
|
|
|
net=net and(parts[i],mparts[i]); |
|
|
|
if(i < 4) net=net "."; |
|
|
|
} |
|
|
|
classes=classes $2 " "; |
|
|
|
classes=classes net " "; |
|
|
|
networks=networks net " "; |
|
|
|
netmasks=netmasks mask " "; |
|
|
|
} |
|
|
|
/inet6/ { |
|
|
|
sub(/%.*/,"",$2); |
|
|
|
ipv6=ipv6 $2 " "; |
|
|
|
|