diff options
author | netblue30 <netblue30@yahoo.com> | 2016-10-30 15:54:05 -0400 |
---|---|---|
committer | netblue30 <netblue30@yahoo.com> | 2016-10-30 15:54:05 -0400 |
commit | f898290fd79e0e64d13ceef56fc5960da879d179 (patch) | |
tree | 7112345d8121d1d61f90995e09754bbfbfbf467f /src/fnet/main.c | |
parent | Merge pull request #878 from msva/patch-1 (diff) | |
download | firejail-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.c | 39 |
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 | ||
29 | int main(int argc, char **argv) { | 35 | int main(int argc, char **argv) { |
30 | #if 0 | 36 | #if 0 |
31 | { | 37 | { |
32 | system("cat /proc/self/status"); | 38 | //system("cat /proc/self/status"); |
33 | int i; | 39 | int i; |
34 | for (i = 0; i < argc; i++) | 40 | for (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; |