From b78cc5869307ddb93a7b1795af992356a54d1d21 Mon Sep 17 00:00:00 2001 From: netblue30 Date: Wed, 25 Jul 2018 10:21:19 -0400 Subject: fix --net=wlan --- src/firejail/checkcfg.c | 8 -------- src/fnet/main.c | 9 ++------- src/fnet/veth.c | 9 +++++++-- 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/src/firejail/checkcfg.c b/src/firejail/checkcfg.c index 68e93e16e..42ff31976 100644 --- a/src/firejail/checkcfg.c +++ b/src/firejail/checkcfg.c @@ -486,12 +486,4 @@ void print_compiletime_support(void) { "disabled" #endif ); - printf("\t- Wireless interface support is %s\n", -#ifdef IPVLAN_MODE_L2 - "enabled" -#else - "disabled" -#endif - ); - } diff --git a/src/fnet/main.c b/src/fnet/main.c index 5be15bc75..ec8b2cade 100644 --- a/src/fnet/main.c +++ b/src/fnet/main.c @@ -20,6 +20,7 @@ #include "fnet.h" #include #include +#include int arg_quiet = 0; @@ -91,10 +92,7 @@ printf("\n"); else if (argc == 6 && strcmp(argv[1], "create") == 0 && strcmp(argv[2], "macvlan") == 0) { // use ipvlan for wireless devices // ipvlan driver was introduced in Linux kernel 3.19 - // detect both compile time and run time -#ifndef IPVLAN_MODE_L2 // compile time - net_create_macvlan(argv[3], argv[4], atoi(argv[5])); -#else + // check kernel version struct utsname u; int rv = uname(&u); @@ -107,8 +105,6 @@ printf("\n"); exit(1); } - if (arg_debug) - printf("Linux kernel version %d.%d\n", major, minor); if (major <= 3 && minor < 18) net_create_macvlan(argv[3], argv[4], atoi(argv[5])); else { @@ -121,7 +117,6 @@ printf("\n"); else // regular ethernet net_create_macvlan(argv[3], argv[4], atoi(argv[5])); } -#endif } else if (argc == 7 && strcmp(argv[1], "config") == 0 && strcmp(argv[2], "interface") == 0) { char *dev = argv[3]; diff --git a/src/fnet/veth.c b/src/fnet/veth.c index 36362f1c1..39a4f35d8 100644 --- a/src/fnet/veth.c +++ b/src/fnet/veth.c @@ -50,6 +50,13 @@ #include #include +// Debian Jessie and distributions before that don't have support for IPVLAN +// in /usr/include/linux/if_link.h. We only need a definition for IPVLAN_MODE_L2. +// The kernel version detection happens at run time. +#ifndef IFLA_IPVLAN_MAX +#define IPVLAN_MODE_L2 0 +#endif + struct iplink_req { struct nlmsghdr n; @@ -176,7 +183,6 @@ int net_create_macvlan(const char *dev, const char *parent, unsigned pid) { return 0; } -#ifdef IPVLAN_MODE_L2 int net_create_ipvlan(const char *dev, const char *parent, unsigned pid) { int len; struct iplink_req req; @@ -238,7 +244,6 @@ int net_create_ipvlan(const char *dev, const char *parent, unsigned pid) { return 0; } -#endif // move the interface dev in namespace of program pid // when the interface is moved, netlink does not preserve interface configuration -- cgit v1.2.3-54-g00ecf