/* Return value becomes exitcode. It's okay to not return at all */ int do_ipaddr(int argc, char **argv) { static const char *const commands[] = { "add", "delete", "list", "show", "lst", "flush", 0 }; int command_num = 2; if (*argv) { command_num = index_in_substr_array(commands, *argv); } switch (command_num) { case 0: /* add */ return ipaddr_modify(RTM_NEWADDR, argc-1, argv+1); case 1: /* delete */ return ipaddr_modify(RTM_DELADDR, argc-1, argv+1); case 2: /* list */ case 3: /* show */ case 4: /* lst */ return ipaddr_list_or_flush(argc-1, argv+1, 0); case 5: /* flush */ return ipaddr_list_or_flush(argc-1, argv+1, 1); } bb_error_msg_and_die("unknown command %s", *argv); }
int do_ipaddr(int argc, char **argv) { if (argc < 1) return ipaddr_list_or_flush(0, NULL, 0); if (matches(*argv, "add") == 0) return ipaddr_modify(RTM_NEWADDR, argc-1, argv+1); if (matches(*argv, "delete") == 0) return ipaddr_modify(RTM_DELADDR, argc-1, argv+1); if (matches(*argv, "list") == 0 || matches(*argv, "show") == 0 || matches(*argv, "lst") == 0) return ipaddr_list_or_flush(argc-1, argv+1, 0); if (matches(*argv, "flush") == 0) return ipaddr_list_or_flush(argc-1, argv+1, 1); if (matches(*argv, "help") == 0) usage(); fprintf(stderr, "Command \"%s\" is unknown, try \"ip address help\".\n", *argv); exit(-1); }
/* Return value becomes exitcode. It's okay to not return at all */ int do_ipaddr(int argc, char **argv) { static const char commands[] ALIGN1 = "add\0""delete\0""list\0""show\0""lst\0""flush\0"; int command_num = 2; /* default command is list */ if (*argv) { command_num = index_in_substrings(commands, *argv); } if (command_num < 0 || command_num > 5) bb_error_msg_and_die("unknown command %s", *argv); --argc; ++argv; if (command_num == 0) /* add */ return ipaddr_modify(RTM_NEWADDR, argc, argv); else if (command_num == 1) /* delete */ return ipaddr_modify(RTM_DELADDR, argc, argv); else if (command_num == 5) /* flush */ return ipaddr_list_or_flush(argc, argv, 1); else /* 2 == list, 3 == show, 4 == lst */ return ipaddr_list_or_flush(argc, argv, 0); }
int do_ipaddr(int argc, char **argv) { if (argc < 1) return ipaddr_list_or_flush(0, NULL, 0); if (matches(*argv, "add") == 0) return ipaddr_modify(RTM_NEWADDR, NLM_F_CREATE|NLM_F_EXCL, argc-1, argv+1); if (matches(*argv, "change") == 0 || strcmp(*argv, "chg") == 0) return ipaddr_modify(RTM_NEWADDR, NLM_F_REPLACE, argc-1, argv+1); if (matches(*argv, "replace") == 0) return ipaddr_modify(RTM_NEWADDR, NLM_F_CREATE|NLM_F_REPLACE, argc-1, argv+1); if (matches(*argv, "delete") == 0) return ipaddr_modify(RTM_DELADDR, 0, argc-1, argv+1); if (matches(*argv, "list") == 0 || matches(*argv, "show") == 0 || matches(*argv, "lst") == 0) return ipaddr_list_or_flush(argc-1, argv+1, 0); if (matches(*argv, "flush") == 0) return ipaddr_list_or_flush(argc-1, argv+1, 1); if (matches(*argv, "help") == 0) usage(); fprintf(stderr, "Command \"%s\" is unknown, try \"ip addr help\".\n", *argv); exit(-1); }
static int ipaddr_list_link(char **argv) { preferred_family = AF_PACKET; return ipaddr_list_or_flush(argv, 0); }
static int ipaddr_list_link(int argc, char **argv) { preferred_family = AF_PACKET; do_link = 1; return ipaddr_list_or_flush(argc, argv, 0); }