mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-27 04:53:28 +00:00
ifconfig: Add format shortcuts.
MFC after: 1 week
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D45166
(cherry picked from commit 847ef59d4b
)
This commit is contained in:
parent
b6011652be
commit
54290c48db
@ -27,7 +27,7 @@
|
||||
.\"
|
||||
.\" From: @(#)ifconfig.8 8.3 (Berkeley) 1/5/94
|
||||
.\"
|
||||
.Dd February 1, 2023
|
||||
.Dd May 12, 2024
|
||||
.Dt IFCONFIG 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -131,7 +131,7 @@ and their associated
|
||||
.Ar format
|
||||
strings are:
|
||||
.Pp
|
||||
.Bl -tag -width ether
|
||||
.Bl -tag -width default
|
||||
.It Cm addr
|
||||
Adjust the display of inet and inet6 addresses:
|
||||
.Pp
|
||||
@ -193,6 +193,16 @@ Integer format, for example:
|
||||
.Ql prefixlen 64
|
||||
.El
|
||||
.El
|
||||
.Pp
|
||||
In addition, the following shortcuts are accepted:
|
||||
.Bl -tag -width default
|
||||
.It Cm default
|
||||
Resets all formats to their default values.
|
||||
.It Cm cidr
|
||||
Shortcut notation for
|
||||
.Cm inet:cidr,inet6:cidr .
|
||||
.El
|
||||
.Pp
|
||||
.It Fl G Ar groupname
|
||||
Exclude members of the specified
|
||||
.Ar groupname
|
||||
|
@ -303,14 +303,10 @@ cmpifaddrs(struct ifaddrs *a, struct ifaddrs *b, struct ifa_queue *q)
|
||||
static void freeformat(void)
|
||||
{
|
||||
|
||||
if (f_inet != NULL)
|
||||
free(f_inet);
|
||||
if (f_inet6 != NULL)
|
||||
free(f_inet6);
|
||||
if (f_ether != NULL)
|
||||
free(f_ether);
|
||||
if (f_addr != NULL)
|
||||
free(f_addr);
|
||||
free(f_inet);
|
||||
free(f_inet6);
|
||||
free(f_ether);
|
||||
free(f_addr);
|
||||
}
|
||||
|
||||
static void setformat(char *input)
|
||||
@ -320,9 +316,18 @@ static void setformat(char *input)
|
||||
formatstr = strdup(input);
|
||||
while ((category = strsep(&formatstr, ",")) != NULL) {
|
||||
modifier = strchr(category, ':');
|
||||
if (modifier == NULL || modifier[1] == '\0') {
|
||||
warnx("Skipping invalid format specification: %s\n",
|
||||
category);
|
||||
if (modifier == NULL) {
|
||||
if (strcmp(category, "default") == 0) {
|
||||
freeformat();
|
||||
} else if (strcmp(category, "cidr") == 0) {
|
||||
free(f_inet);
|
||||
f_inet = strdup(category);
|
||||
free(f_inet6);
|
||||
f_inet6 = strdup(category);
|
||||
} else {
|
||||
warnx("Skipping invalid format: %s\n",
|
||||
category);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -330,14 +335,19 @@ static void setformat(char *input)
|
||||
modifier[0] = '\0';
|
||||
modifier++;
|
||||
|
||||
if (strcmp(category, "addr") == 0)
|
||||
if (strcmp(category, "addr") == 0) {
|
||||
free(f_addr);
|
||||
f_addr = strdup(modifier);
|
||||
else if (strcmp(category, "ether") == 0)
|
||||
} else if (strcmp(category, "ether") == 0) {
|
||||
free(f_ether);
|
||||
f_ether = strdup(modifier);
|
||||
else if (strcmp(category, "inet") == 0)
|
||||
} else if (strcmp(category, "inet") == 0) {
|
||||
free(f_inet);
|
||||
f_inet = strdup(modifier);
|
||||
else if (strcmp(category, "inet6") == 0)
|
||||
} else if (strcmp(category, "inet6") == 0) {
|
||||
free(f_inet6);
|
||||
f_inet6 = strdup(modifier);
|
||||
}
|
||||
}
|
||||
free(formatstr);
|
||||
}
|
||||
@ -427,7 +437,6 @@ main(int argc, char *argv[])
|
||||
#endif
|
||||
|
||||
all = downonly = uponly = namesonly = noload = verbose = 0;
|
||||
f_inet = f_inet6 = f_ether = f_addr = NULL;
|
||||
matchgroup = nogroup = NULL;
|
||||
|
||||
lifh = ifconfig_open();
|
||||
|
Loading…
Reference in New Issue
Block a user