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 @@ int ip_main(int argc, char **argv); int ip_main(int argc, char **argv) { - int ret = EXIT_FAILURE; - ip_parse_common_args(&argc, &argv); - if (argc > 1) { - if (ENABLE_FEATURE_IP_ADDRESS && matches(argv[1], "address") == 0) { - ret = do_ipaddr(argc-2, argv+2); - } - if (ENABLE_FEATURE_IP_ROUTE && matches(argv[1], "route") == 0) { - ret = do_iproute(argc-2, argv+2); - } - if (ENABLE_FEATURE_IP_LINK && matches(argv[1], "link") == 0) { - ret = do_iplink(argc-2, argv+2); - } - if (ENABLE_FEATURE_IP_TUNNEL - && (matches(argv[1], "tunnel") == 0 || strcmp(argv[1], "tunl") == 0) - ) { - ret = do_iptunnel(argc-2, argv+2); - } - if (ENABLE_FEATURE_IP_RULE && matches(argv[1], "rule") == 0) { - ret = do_iprule(argc-2, argv+2); - } - } - if (ret) { + if (argc <= 1) bb_show_usage(); + + if (ENABLE_FEATURE_IP_ADDRESS && matches(argv[1], "address") == 0) { + return do_ipaddr(argc-2, argv+2); + } + if (ENABLE_FEATURE_IP_ROUTE && matches(argv[1], "route") == 0) { + return do_iproute(argc-2, argv+2); } - return EXIT_SUCCESS; + if (ENABLE_FEATURE_IP_LINK && matches(argv[1], "link") == 0) { + return do_iplink(argc-2, argv+2); + } + if (ENABLE_FEATURE_IP_TUNNEL + && (matches(argv[1], "tunnel") == 0 || strcmp(argv[1], "tunl") == 0) + ) { + return do_iptunnel(argc-2, argv+2); + } + if (ENABLE_FEATURE_IP_RULE && matches(argv[1], "rule") == 0) { + return do_iprule(argc-2, argv+2); + } + + bb_show_usage(); } |