Changeset View
Changeset View
Standalone View
Standalone View
usr.bin/netstat/if.c
Show First 20 Lines • Show All 278 Lines • ▼ Show 20 Lines | intpr(void (*pfunc)(char *), int af) | ||||
if (interval) | if (interval) | ||||
return sidewaysintpr(); | return sidewaysintpr(); | ||||
if (getifaddrs(&ifap) != 0) | if (getifaddrs(&ifap) != 0) | ||||
err(EX_OSERR, "getifaddrs"); | err(EX_OSERR, "getifaddrs"); | ||||
if (aflag && getifmaddrs(&ifmap) != 0) | if (aflag && getifmaddrs(&ifmap) != 0) | ||||
err(EX_OSERR, "getifmaddrs"); | err(EX_OSERR, "getifmaddrs"); | ||||
if (Wflag) { | |||||
for (ifa = ifap; ifa; ifa = ifa->ifa_next) { | for (ifa = ifap; ifa; ifa = ifa->ifa_next) { | ||||
if (interface != NULL && | if (interface != NULL && | ||||
strcmp(ifa->ifa_name, interface) != 0) | strcmp(ifa->ifa_name, interface) != 0) | ||||
continue; | continue; | ||||
if (af != AF_UNSPEC && ifa->ifa_addr->sa_family != af) | if (af != AF_UNSPEC && ifa->ifa_addr->sa_family != af) | ||||
continue; | continue; | ||||
ifn_len = strlen(ifa->ifa_name); | ifn_len = strlen(ifa->ifa_name); | ||||
if ((ifa->ifa_flags & IFF_UP) == 0) | if ((ifa->ifa_flags & IFF_UP) == 0) | ||||
++ifn_len; | ++ifn_len; | ||||
ifn_len_max = MAX(ifn_len_max, ifn_len); | ifn_len_max = MAX(ifn_len_max, ifn_len); | ||||
if (ifa->ifa_addr->sa_family == AF_INET6) | if (ifa->ifa_addr->sa_family == AF_INET6) | ||||
has_ipv6 = 1; | has_ipv6 = 1; | ||||
} | } | ||||
if (Wflag) { | |||||
if (has_ipv6) { | if (has_ipv6) { | ||||
net_len = 24; | net_len = 24; | ||||
addr_len = 39; | addr_len = 39; | ||||
} else | } else | ||||
net_len = 18; | net_len = 18; | ||||
} | } | ||||
xo_open_list("interface"); | xo_open_list("interface"); | ||||
▲ Show 20 Lines • Show All 349 Lines • Show Last 20 Lines |