aboutsummaryrefslogtreecommitdiffstats
path: root/sbin/ifconfig/af_inet.c
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/ifconfig/af_inet.c')
-rw-r--r--sbin/ifconfig/af_inet.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/sbin/ifconfig/af_inet.c b/sbin/ifconfig/af_inet.c
index 4fd74d481b3a..c467122c04eb 100644
--- a/sbin/ifconfig/af_inet.c
+++ b/sbin/ifconfig/af_inet.c
@@ -71,7 +71,6 @@ static struct in_pdata in_add, in_del;
#endif
static char addr_buf[NI_MAXHOST]; /*for getnameinfo()*/
-extern char *f_inet, *f_addr;
static void
print_addr(struct sockaddr_in *sin)
@@ -116,7 +115,9 @@ in_status(if_ctx *ctx __unused, const struct ifaddrs *ifa)
sin = satosin(ifa->ifa_netmask);
if (sin == NULL)
sin = &null_sin;
- if (f_inet != NULL && strcmp(f_inet, "cidr") == 0) {
+
+ switch (f_inet) {
+ case INET_CIDR: {
int cidr = 32;
unsigned long smask;
@@ -128,10 +129,15 @@ in_status(if_ctx *ctx __unused, const struct ifaddrs *ifa)
break;
}
printf("/%d", cidr);
- } else if (f_inet != NULL && strcmp(f_inet, "dotted") == 0)
+ break;
+ }
+ case INET_DOTTED:
printf(" netmask %s", inet_ntoa(sin->sin_addr));
- else
+ break;
+ case INET_HEX:
printf(" netmask 0x%lx", (unsigned long)ntohl(sin->sin_addr.s_addr));
+ break;
+ }
if (ifa->ifa_flags & IFF_BROADCAST) {
sin = satosin(ifa->ifa_broadaddr);
@@ -168,12 +174,18 @@ in_status_nl(if_ctx *ctx __unused, if_link_t *link, if_addr_t *ifa)
printf(" --> %s", inet_ntoa(dst->sin_addr));
}
- if (f_inet != NULL && strcmp(f_inet, "cidr") == 0) {
+
+ switch (f_inet) {
+ case INET_CIDR:
printf("/%d", plen);
- } else if (f_inet != NULL && strcmp(f_inet, "dotted") == 0)
+ break;
+ case INET_DOTTED:
printf(" netmask %s", inet_ntoa(get_mask(plen)));
- else
+ break;
+ case INET_HEX:
printf(" netmask 0x%lx", (unsigned long)ntohl(get_mask(plen).s_addr));
+ break;
+ }
if ((link->ifi_flags & IFF_BROADCAST) && plen != 0) {
struct sockaddr_in *brd = satosin(ifa->ifa_broadcast);