ip.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /* vi: set sw=4 ts=4: */
  2. /*
  3. * ip.c "ip" utility frontend.
  4. *
  5. * Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
  6. *
  7. * Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
  8. *
  9. *
  10. * Changes:
  11. *
  12. * Rani Assaf <rani@magic.metawire.com> 980929: resolve addresses
  13. */
  14. #include "busybox.h"
  15. #include "libiproute/utils.h"
  16. #include "libiproute/ip_common.h"
  17. int ip_main(int argc, char **argv)
  18. {
  19. int ret = EXIT_FAILURE;
  20. ip_parse_common_args(&argc, &argv);
  21. if (argc > 1) {
  22. if (ENABLE_FEATURE_IP_ADDRESS && matches(argv[1], "address") == 0) {
  23. ret = do_ipaddr(argc-2, argv+2);
  24. }
  25. if (ENABLE_FEATURE_IP_ROUTE && matches(argv[1], "route") == 0) {
  26. ret = do_iproute(argc-2, argv+2);
  27. }
  28. if (ENABLE_FEATURE_IP_LINK && matches(argv[1], "link") == 0) {
  29. ret = do_iplink(argc-2, argv+2);
  30. }
  31. if (ENABLE_FEATURE_IP_TUNNEL
  32. && (matches(argv[1], "tunnel") == 0 || strcmp(argv[1], "tunl") == 0)
  33. ) {
  34. ret = do_iptunnel(argc-2, argv+2);
  35. }
  36. if (ENABLE_FEATURE_IP_RULE && matches(argv[1], "rule") == 0) {
  37. ret = do_iprule(argc-2, argv+2);
  38. }
  39. }
  40. if (ret) {
  41. bb_show_usage();
  42. }
  43. return EXIT_SUCCESS;
  44. }