aboutsummaryrefslogtreecommitdiffstats
path: root/src/fnet/main.c
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@yahoo.com>2018-06-09 07:57:32 -0400
committerLibravatar netblue30 <netblue30@yahoo.com>2018-06-09 07:57:32 -0400
commite62246a8a3e0e795a37535f9e41dffdfdfa9f77a (patch)
tree28b8c0b1667fd0170fa113c1bec90046a15ce6da /src/fnet/main.c
parentAppArmor: allow dbus access by default (diff)
downloadfirejail-e62246a8a3e0e795a37535f9e41dffdfdfa9f77a.tar.gz
firejail-e62246a8a3e0e795a37535f9e41dffdfdfa9f77a.tar.zst
firejail-e62246a8a3e0e795a37535f9e41dffdfdfa9f77a.zip
support wireless interfaces for --net
Diffstat (limited to 'src/fnet/main.c')
-rw-r--r--src/fnet/main.c13
1 files changed, 12 insertions, 1 deletions
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 @@
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*/ 19*/
20#include "fnet.h" 20#include "fnet.h"
21#include <sys/types.h>
22#include <sys/stat.h>
23
21int arg_quiet = 0; 24int arg_quiet = 0;
22 25
23void fmessage(char* fmt, ...) { // TODO: this function is duplicated in src/firejail/util.c 26void fmessage(char* fmt, ...) { // TODO: this function is duplicated in src/firejail/util.c
@@ -86,7 +89,15 @@ printf("\n");
86 net_if_up(argv[3]); 89 net_if_up(argv[3]);
87 } 90 }
88 else if (argc == 6 && strcmp(argv[1], "create") == 0 && strcmp(argv[2], "macvlan") == 0) { 91 else if (argc == 6 && strcmp(argv[1], "create") == 0 && strcmp(argv[2], "macvlan") == 0) {
89 net_create_macvlan(argv[3], argv[4], atoi(argv[5])); 92 // use ipvlan for wireless devices
93 struct stat s;
94 char *fname;
95 if (asprintf(&fname, "/sys/class/net/%s/wireless", argv[4]) == -1)
96 errExit("asprintf");
97 if (stat(fname, &s) == 0) // wireless
98 net_create_ipvlan(argv[3], argv[4], atoi(argv[5]));
99 else // regular ethernet
100 net_create_macvlan(argv[3], argv[4], atoi(argv[5]));
90 } 101 }
91 else if (argc == 7 && strcmp(argv[1], "config") == 0 && strcmp(argv[2], "interface") == 0) { 102 else if (argc == 7 && strcmp(argv[1], "config") == 0 && strcmp(argv[2], "interface") == 0) {
92 char *dev = argv[3]; 103 char *dev = argv[3];