int do_iplink(int argc, char **argv) { if (argc > 0) { if (matches(*argv, "set") == 0) return do_set(argc-1, argv+1); if (matches(*argv, "show") == 0 || matches(*argv, "lst") == 0 || matches(*argv, "list") == 0) return ipaddr_list_link(argc-1, argv+1); } else return ipaddr_list_link(0, NULL); bb_error_msg("Command \"%s\" is unknown.", *argv); exit(-1); }
/* Return value becomes exitcode. It's okay to not return at all */ int do_iplink(char **argv) { static const char keywords[] ALIGN1 = "set\0""show\0""lst\0""list\0"; int key; if (!*argv) return ipaddr_list_link(argv); key = index_in_substrings(keywords, *argv); if (key < 0) bb_error_msg_and_die(bb_msg_invalid_arg, *argv, applet_name); argv++; if (key == 0) /* set */ return do_set(argv); /* show, lst, list */ return ipaddr_list_link(argv); }
int do_iplink(int argc, char **argv) { if (argc > 0) { if (matches(*argv, "set") == 0) return do_set(argc-1, argv+1); if (matches(*argv, "show") == 0 || matches(*argv, "lst") == 0 || matches(*argv, "list") == 0) return ipaddr_list_link(argc-1, argv+1); if (matches(*argv, "help") == 0) usage(); } else return ipaddr_list_link(0, NULL); fprintf(stderr, "Command \"%s\" is unknown, try \"ip link help\".\n", *argv); exit(-1); }
int do_iplink(int argc, char **argv) { if (argc > 0) { if (iplink_have_newlink()) { if (matches(*argv, "add") == 0) return iplink_modify(RTM_NEWLINK, NLM_F_CREATE|NLM_F_EXCL, argc-1, argv+1); if (matches(*argv, "set") == 0 || matches(*argv, "change") == 0) return iplink_modify(RTM_NEWLINK, 0, argc-1, argv+1); if (matches(*argv, "replace") == 0) return iplink_modify(RTM_NEWLINK, NLM_F_CREATE|NLM_F_REPLACE, argc-1, argv+1); if (matches(*argv, "delete") == 0) return iplink_modify(RTM_DELLINK, 0, argc-1, argv+1); } else { #if IPLINK_IOCTL_COMPAT if (matches(*argv, "set") == 0) return do_set(argc-1, argv+1); #endif } if (matches(*argv, "show") == 0 || matches(*argv, "lst") == 0 || matches(*argv, "list") == 0) return ipaddr_list_link(argc-1, argv+1); if (matches(*argv, "help") == 0) usage(); } else return ipaddr_list_link(0, NULL); fprintf(stderr, "Command \"%s\" is unknown, try \"ip link help\".\n", *argv); exit(-1); }
/* Return value becomes exitcode. It's okay to not return at all */ int FAST_FUNC do_iplink(char **argv) { static const char keywords[] ALIGN1 = "add\0""delete\0""set\0""show\0""lst\0""list\0"; if (*argv) { int key = index_in_substrings(keywords, *argv); if (key < 0) /* invalid argument */ invarg(*argv, applet_name); argv++; if (key <= 1) /* add/delete */ return do_add_or_delete(argv, key ? RTM_DELLINK : RTM_NEWLINK); if (key == 2) /* set */ return do_set(argv); } /* show, lst, list */ return ipaddr_list_link(argv); }