summaryrefslogtreecommitdiffstats
path: root/sys-utils/lsns.c
diff options
context:
space:
mode:
authorMasatake YAMATO2017-11-24 11:31:04 +0100
committerKarel Zak2017-11-27 15:54:52 +0100
commit7a360346d337e474a835aaad52f702b413e6de5b (patch)
treead4df256a2db1647d9e848cf2f53305d7e655dd5 /sys-utils/lsns.c
parentlsns: add netnsid column (diff)
downloadkernel-qcow2-util-linux-7a360346d337e474a835aaad52f702b413e6de5b.tar.gz
kernel-qcow2-util-linux-7a360346d337e474a835aaad52f702b413e6de5b.tar.xz
kernel-qcow2-util-linux-7a360346d337e474a835aaad52f702b413e6de5b.zip
lsns: disable netnsid column by default
Enable only when * --type=net is given, or * -o NETNSID is given. Suggested by Karel Zak. Signed-off-by: Masatake YAMATO <yamato@redhat.com>
Diffstat (limited to 'sys-utils/lsns.c')
-rw-r--r--sys-utils/lsns.c25
1 files changed, 20 insertions, 5 deletions
diff --git a/sys-utils/lsns.c b/sys-utils/lsns.c
index 7ccc733a4..bb7d3956d 100644
--- a/sys-utils/lsns.c
+++ b/sys-utils/lsns.c
@@ -839,6 +839,7 @@ int main(int argc, char *argv[])
{ 0 }
};
int excl_st[ARRAY_SIZE(excl)] = UL_EXCL_STATUS_INIT;
+ bool enabling_netnsid = false;
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
@@ -891,6 +892,8 @@ int main(int argc, char *argv[])
errx(EXIT_FAILURE, _("unknown namespace type: %s"), optarg);
ls.fltr_types[type] = 1;
ls.fltr_ntypes++;
+ if (type == LSNS_ID_NET)
+ enabling_netnsid = true;
break;
}
default:
@@ -900,6 +903,7 @@ int main(int argc, char *argv[])
if (!ls.fltr_ntypes) {
size_t i;
+
for (i = 0; i < ARRAY_SIZE(ns_names); i++)
ls.fltr_types[i] = 1;
}
@@ -924,14 +928,24 @@ int main(int argc, char *argv[])
columns[ncolumns++] = COL_NPROCS;
columns[ncolumns++] = COL_PID;
columns[ncolumns++] = COL_USER;
- columns[ncolumns++] = COL_NETNSID;
+ if (enabling_netnsid)
+ columns[ncolumns++] = COL_NETNSID;
columns[ncolumns++] = COL_COMMAND;
}
- if (outarg && string_add_to_idarray(outarg, columns, ARRAY_SIZE(columns),
- &ncolumns, column_name_to_id) < 0)
- return EXIT_FAILURE;
+ if (outarg) {
+ size_t i;
+ if (string_add_to_idarray(outarg, columns, ARRAY_SIZE(columns),
+ &ncolumns, column_name_to_id) < 0)
+ return EXIT_FAILURE;
+ for (i = 0; i < ncolumns; i++) {
+ if (columns[i] == COL_NETNSID) {
+ enabling_netnsid = true;
+ break;
+ }
+ }
+ }
scols_init_debug(0);
uid_cache = new_idcache();
@@ -939,7 +953,8 @@ int main(int argc, char *argv[])
err(EXIT_FAILURE, _("failed to allocate UID cache"));
#ifdef HAVE_LINUX_NET_NAMESPACE_H
- netlink_fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
+ if (enabling_netnsid)
+ netlink_fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
#endif
r = read_processes(&ls);
if (!r)