diff options
Diffstat (limited to 'networking/ip.c')
-rw-r--r-- | networking/ip.c | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/networking/ip.c b/networking/ip.c index fdd848049..d51689542 100644 --- a/networking/ip.c +++ b/networking/ip.c | |||
@@ -20,31 +20,28 @@ | |||
20 | int ip_main(int argc, char **argv); | 20 | int ip_main(int argc, char **argv); |
21 | int ip_main(int argc, char **argv) | 21 | int ip_main(int argc, char **argv) |
22 | { | 22 | { |
23 | int ret = EXIT_FAILURE; | ||
24 | |||
25 | ip_parse_common_args(&argc, &argv); | 23 | ip_parse_common_args(&argc, &argv); |
26 | 24 | ||
27 | if (argc > 1) { | 25 | if (argc <= 1) |
28 | if (ENABLE_FEATURE_IP_ADDRESS && matches(argv[1], "address") == 0) { | ||
29 | ret = do_ipaddr(argc-2, argv+2); | ||
30 | } | ||
31 | if (ENABLE_FEATURE_IP_ROUTE && matches(argv[1], "route") == 0) { | ||
32 | ret = do_iproute(argc-2, argv+2); | ||
33 | } | ||
34 | if (ENABLE_FEATURE_IP_LINK && matches(argv[1], "link") == 0) { | ||
35 | ret = do_iplink(argc-2, argv+2); | ||
36 | } | ||
37 | if (ENABLE_FEATURE_IP_TUNNEL | ||
38 | && (matches(argv[1], "tunnel") == 0 || strcmp(argv[1], "tunl") == 0) | ||
39 | ) { | ||
40 | ret = do_iptunnel(argc-2, argv+2); | ||
41 | } | ||
42 | if (ENABLE_FEATURE_IP_RULE && matches(argv[1], "rule") == 0) { | ||
43 | ret = do_iprule(argc-2, argv+2); | ||
44 | } | ||
45 | } | ||
46 | if (ret) { | ||
47 | bb_show_usage(); | 26 | bb_show_usage(); |
27 | |||
28 | if (ENABLE_FEATURE_IP_ADDRESS && matches(argv[1], "address") == 0) { | ||
29 | return do_ipaddr(argc-2, argv+2); | ||
30 | } | ||
31 | if (ENABLE_FEATURE_IP_ROUTE && matches(argv[1], "route") == 0) { | ||
32 | return do_iproute(argc-2, argv+2); | ||
48 | } | 33 | } |
49 | return EXIT_SUCCESS; | 34 | if (ENABLE_FEATURE_IP_LINK && matches(argv[1], "link") == 0) { |
35 | return do_iplink(argc-2, argv+2); | ||
36 | } | ||
37 | if (ENABLE_FEATURE_IP_TUNNEL | ||
38 | && (matches(argv[1], "tunnel") == 0 || strcmp(argv[1], "tunl") == 0) | ||
39 | ) { | ||
40 | return do_iptunnel(argc-2, argv+2); | ||
41 | } | ||
42 | if (ENABLE_FEATURE_IP_RULE && matches(argv[1], "rule") == 0) { | ||
43 | return do_iprule(argc-2, argv+2); | ||
44 | } | ||
45 | |||
46 | bb_show_usage(); | ||
50 | } | 47 | } |