aboutsummaryrefslogtreecommitdiffstats
path: root/src/fnet/main.c
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@yahoo.com>2016-10-30 15:54:05 -0400
committerLibravatar netblue30 <netblue30@yahoo.com>2016-10-30 15:54:05 -0400
commitf898290fd79e0e64d13ceef56fc5960da879d179 (patch)
tree7112345d8121d1d61f90995e09754bbfbfbf467f /src/fnet/main.c
parentMerge pull request #878 from msva/patch-1 (diff)
downloadfirejail-f898290fd79e0e64d13ceef56fc5960da879d179.tar.gz
firejail-f898290fd79e0e64d13ceef56fc5960da879d179.tar.zst
firejail-f898290fd79e0e64d13ceef56fc5960da879d179.zip
major cleanup
Diffstat (limited to 'src/fnet/main.c')
-rw-r--r--src/fnet/main.c39
1 files changed, 36 insertions, 3 deletions
diff --git a/src/fnet/main.c b/src/fnet/main.c
index f17287cb9..4ae9eb6e3 100644
--- a/src/fnet/main.c
+++ b/src/fnet/main.c
@@ -24,12 +24,18 @@ static void usage(void) {
24 printf("\tfnet create veth dev1 dev2 bridge child\n"); 24 printf("\tfnet create veth dev1 dev2 bridge child\n");
25 printf("\tfnet create macvlan dev parent child\n"); 25 printf("\tfnet create macvlan dev parent child\n");
26 printf("\tfnet moveif dev proc\n"); 26 printf("\tfnet moveif dev proc\n");
27 printf("\tfnet printif\n");
28 printf("\tfnet printif scan\n");
29 printf("\tfnet config interface dev ip mask mtu\n");
30 printf("\tfnet config mac addr\n");
31 printf("\tfnet config ipv6 dev ipn");
32 printf("\tfmet ifup dev\n");
27} 33}
28 34
29int main(int argc, char **argv) { 35int main(int argc, char **argv) {
30#if 0 36#if 0
31{ 37{
32system("cat /proc/self/status"); 38//system("cat /proc/self/status");
33int i; 39int i;
34for (i = 0; i < argc; i++) 40for (i = 0; i < argc; i++)
35 printf("*%s* ", argv[i]); 41 printf("*%s* ", argv[i]);
@@ -45,22 +51,49 @@ printf("\n");
45 usage(); 51 usage();
46 return 0; 52 return 0;
47 } 53 }
54 else if (argc == 3 && strcmp(argv[1], "ifup") == 0) {
55 net_if_up(argv[2]);
56 }
57 else if (argc == 2 && strcmp(argv[1], "printif") == 0) {
58 net_ifprint(0);
59 }
60 else if (argc == 3 && strcmp(argv[1], "printif") == 0 && strcmp(argv[2], "scan") == 0) {
61 net_ifprint(1);
62 }
48 else if (argc == 7 && strcmp(argv[1], "create") == 0 && strcmp(argv[2], "veth") == 0) { 63 else if (argc == 7 && strcmp(argv[1], "create") == 0 && strcmp(argv[2], "veth") == 0) {
49 // create veth pair and move one end in the the namespace 64 // create veth pair and move one end in the the namespace
50 net_create_veth(argv[3], argv[4], atoi(argv[6])); 65 net_create_veth(argv[3], argv[4], atoi(argv[6]));
51
52 // connect the ohter veth end to the bridge ... 66 // connect the ohter veth end to the bridge ...
53 net_bridge_add_interface(argv[5], argv[3]); 67 net_bridge_add_interface(argv[5], argv[3]);
54
55 // ... and bring it up 68 // ... and bring it up
56 net_if_up(argv[3]); 69 net_if_up(argv[3]);
57 } 70 }
58 else if (argc == 6 && strcmp(argv[1], "create") == 0 && strcmp(argv[2], "macvlan") == 0) { 71 else if (argc == 6 && strcmp(argv[1], "create") == 0 && strcmp(argv[2], "macvlan") == 0) {
59 net_create_macvlan(argv[3], argv[4], atoi(argv[5])); 72 net_create_macvlan(argv[3], argv[4], atoi(argv[5]));
60 } 73 }
74 else if (argc == 7 && strcmp(argv[1], "config") == 0 && strcmp(argv[2], "interface") == 0) {
75 char *dev = argv[3];
76 uint32_t ip = (uint32_t) atoll(argv[4]);
77 uint32_t mask = (uint32_t) atoll(argv[5]);
78 int mtu = atoi(argv[6]);
79 // configure interface
80 net_if_ip(dev, ip, mask, mtu);
81 // ... and bring it up
82 net_if_up(dev);
83 }
84 else if (argc == 5 && strcmp(argv[1], "config") == 0 && strcmp(argv[2], "mac") == 0) {
85 unsigned char mac[6];
86 if (atomac(argv[4], mac)) {
87 fprintf(stderr, "Error fnet: invalid mac address %s\n", argv[4]);
88 }
89 net_if_mac(argv[3], mac);
90 }
61 else if (argc == 4 && strcmp(argv[1], "moveif") == 0) { 91 else if (argc == 4 && strcmp(argv[1], "moveif") == 0) {
62 net_move_interface(argv[2], atoi(argv[3])); 92 net_move_interface(argv[2], atoi(argv[3]));
63 } 93 }
94 else if (argc == 5 && strcmp(argv[1], "config") == 0 && strcmp(argv[2], "ipv6") == 0) {
95 net_if_ip6(argv[3], argv[4]);
96 }
64 else { 97 else {
65 fprintf(stderr, "Error fnet: invalid arguments\n"); 98 fprintf(stderr, "Error fnet: invalid arguments\n");
66 return 1; 99 return 1;