]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
ipmonitor: fix ip monitor can't work when NET_NS is not enabled
authorLiping Zhang <liping.zhang@spreadtrum.com>
Tue, 20 Sep 2016 09:09:02 +0000 (02:09 -0700)
committerStephen Hemminger <stephen@networkplumber.org>
Wed, 21 Sep 2016 23:32:44 +0000 (16:32 -0700)
In ip monitor, netns_map_init will check getnsid is supported or not.
But when /proc/self/ns/net does not exist, we just print out error
messages and exit. So user cannot use ip monitor anymore when
CONFIG_NET_NS is disabled:
  # ip monitor
  open("/proc/self/ns/net"): No such file or directory

If open "/proc/self/ns/net" failed, set have_rtnl_getnsid to false.

Fixes: d652ccbf8195 ("netns: allow to dump and monitor nsid")
Signed-off-by: Liping Zhang <liping.zhang@spreadtrum.com>
Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
ip/ipnetns.c

index af87065309e2831a37c662f308f1bc793ee4afaf..ccc652c13263a46235b498aeb3ffa35295930b6b 100644 (file)
@@ -72,8 +72,8 @@ static int ipnetns_have_nsid(void)
        if (have_rtnl_getnsid < 0) {
                fd = open("/proc/self/ns/net", O_RDONLY);
                if (fd < 0) {
-                       perror("open(\"/proc/self/ns/net\")");
-                       exit(1);
+                       have_rtnl_getnsid = 0;
+                       return 0;
                }
 
                addattr32(&req.n, 1024, NETNSA_FD, fd);