From e62246a8a3e0e795a37535f9e41dffdfdfa9f77a Mon Sep 17 00:00:00 2001 From: netblue30 Date: Sat, 9 Jun 2018 07:57:32 -0400 Subject: support wireless interfaces for --net --- src/fnet/main.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/fnet/main.c') diff --git a/src/fnet/main.c b/src/fnet/main.c index 6f149b497..3832cfaef 100644 --- a/src/fnet/main.c +++ b/src/fnet/main.c @@ -18,6 +18,9 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "fnet.h" +#include +#include + int arg_quiet = 0; void fmessage(char* fmt, ...) { // TODO: this function is duplicated in src/firejail/util.c @@ -86,7 +89,15 @@ printf("\n"); net_if_up(argv[3]); } else if (argc == 6 && strcmp(argv[1], "create") == 0 && strcmp(argv[2], "macvlan") == 0) { - net_create_macvlan(argv[3], argv[4], atoi(argv[5])); + // use ipvlan for wireless devices + struct stat s; + char *fname; + if (asprintf(&fname, "/sys/class/net/%s/wireless", argv[4]) == -1) + errExit("asprintf"); + if (stat(fname, &s) == 0) // wireless + net_create_ipvlan(argv[3], argv[4], atoi(argv[5])); + else // regular ethernet + net_create_macvlan(argv[3], argv[4], atoi(argv[5])); } else if (argc == 7 && strcmp(argv[1], "config") == 0 && strcmp(argv[2], "interface") == 0) { char *dev = argv[3]; -- cgit v1.2.3-70-g09d2