Commit d116ff34 authored by Vadim Kochan's avatar Vadim Kochan Committed by Stephen Hemminger

ip netns: Fix rtnl error while print netns list

Observed on the Linux 3.18:

    # ip netns
    RTNETLINK answers: Operation not supported
    net0

CC: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Fixes: d182ee13 ("ipnetns: allow to get and set netns ids")
Signed-off-by: default avatarVadim Kochan <vadim4j@gmail.com>
parent f3a2ddc1
......@@ -201,7 +201,7 @@ check_setns()
{
cat >$TMPDIR/setnstest.c <<EOF
#include <sched.h>
int main(int argc, char **argv)
int main(int argc, char **argv)
{
(void)setns(0,0);
return 0;
......@@ -218,6 +218,23 @@ EOF
rm -f $TMPDIR/setnstest.c $TMPDIR/setnstest
}
check_netnsid()
{
cat >$TMPDIR/netnsid.c <<EOF
#include <linux/rtnetlink.h>
int test_def = RTM_GETNSID;
EOF
$CC -c $TMPDIR/netnsid.c >/dev/null 2>&1
if [ $? -eq 0 ]
then
echo "IP_CONFIG_NETNSID:=y" >> Config
echo "yes"
else
echo "no"
fi
rm -f $TMPDIR/netnsid.c $TMPDIR/netnsid.o
}
check_ipset()
{
cat >$TMPDIR/ipsettest.c <<EOF
......@@ -283,6 +300,8 @@ check_ipt_lib_dir
echo -n "libc has setns: "
check_setns
echo -n "netns has peer id suport: "
check_netnsid
echo -n "SELinux support: "
check_selinux
......
......@@ -16,6 +16,10 @@ ifeq ($(IP_CONFIG_SETNS),y)
CFLAGS += -DHAVE_SETNS
endif
ifeq ($(IP_CONFIG_NETNSID),y)
CFLAGS += -DHAVE_NETNSID
endif
ALLOBJ=$(IPOBJ) $(RTMONOBJ)
SCRIPTS=ifcfg rtpr routel routef
TARGETS=ip rtmon
......
......@@ -34,6 +34,7 @@ static int usage(void)
exit(-1);
}
#ifdef HAVE_NETNSID
static int get_netnsid_from_name(const char *name)
{
struct {
......@@ -78,6 +79,12 @@ static int get_netnsid_from_name(const char *name)
return -1;
}
#else
static int get_netnsid_from_name(const char *name)
{
return -1;
}
#endif /* HAVE_NETNSID */
static int netns_list(int argc, char **argv)
{
......
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