Commit 0948adc0 authored by vadimk's avatar vadimk Committed by Stephen Hemminger

ip netns: Identify netns for the current process

As 'ip' util will share the same netns from the caller
process then we can just look at /proc/self/.. to show
the netns of the current process by:

    ip netns id
Signed-off-by: default avatarVadim Kochan <vadim4j@gmail.com>
parent 18f39a3a
......@@ -59,7 +59,7 @@ static int usage(void)
fprintf(stderr, "Usage: ip netns list\n");
fprintf(stderr, " ip netns add NAME\n");
fprintf(stderr, " ip netns delete NAME\n");
fprintf(stderr, " ip netns identify PID\n");
fprintf(stderr, " ip netns identify [PID]\n");
fprintf(stderr, " ip netns pids NAME\n");
fprintf(stderr, " ip netns exec NAME cmd ...\n");
fprintf(stderr, " ip netns monitor\n");
......@@ -299,19 +299,17 @@ static int netns_identify(int argc, char **argv)
struct dirent *entry;
if (argc < 1) {
fprintf(stderr, "No pid specified\n");
return -1;
}
if (argc > 1) {
pidstr = "self";
} else if (argc > 1) {
fprintf(stderr, "extra arguments specified\n");
return -1;
}
pidstr = argv[0];
if (!is_pid(pidstr)) {
fprintf(stderr, "Specified string '%s' is not a pid\n",
pidstr);
return -1;
} else {
pidstr = argv[0];
if (!is_pid(pidstr)) {
fprintf(stderr, "Specified string '%s' is not a pid\n",
pidstr);
return -1;
}
}
snprintf(net_path, sizeof(net_path), "/proc/%s/ns/net", pidstr);
......
......@@ -21,7 +21,7 @@ ip-netns \- process network namespace management
.ti -8
.BR "ip netns identify"
.I PID
.RI "[ " PID " ]"
.ti -8
.BR "ip netns pids"
......@@ -85,10 +85,11 @@ persists until it has no more users. ip netns delete may fail if
the mount point is in use in another mount namespace.
.TP
.B ip netns identify PID - Report network namespaces names for process
.B ip netns identify [PID] - Report network namespaces names for process
.sp
This command walks through /var/run/netns and finds all the network
namespace names for network namespace of the specified process.
namespace names for network namespace of the specified process, if PID is
not specified then the current process will be used.
.TP
.B ip netns pids NAME - Report processes in the named network namespace
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment