Lines Matching full:argv
35 #define TEST_ARGV(argv) if (!*argv) show_route_help()
159 static int get_action(char ***argv, struct _arglist *list)
163 if (!**argv) return 0;
165 if (!strcmp(**argv, alist->arg)) {
166 *argv += 1;
195 static void get_next_params(char **argv, struct rtentry *rt, char **netmask)
197 while (*argv) {
199 if (!strcmp(*argv, "metric")) {
200 argv++;
201 TEST_ARGV(argv);
202 rt->rt_metric = atolx_range(*argv, 0, ULONG_MAX) + 1;
203 argv++;
204 } else if (!strcmp(*argv, "netmask")) {
209 argv++;
210 TEST_ARGV(argv);
211 *netmask = *argv;
215 argv++;
216 } else if (!strcmp(*argv, "gw")) {
220 argv++;
221 TEST_ARGV(argv);
222 if ((ishost = get_hostname(*argv, (struct sockaddr_in *) &rt->rt_gateway)) == 0) {
224 argv++;
225 } else if (ishost < 0) perror_exit("resolving '%s'", *argv);
226 else perror_exit("gateway '%s' is a NETWORK", *argv);
228 } else if (!strcmp(*argv, "mss")) {
230 argv++;
231 TEST_ARGV(argv);
232 rt->rt_mss = atolx_range(*argv, 64, 32768); //MSS low and max
234 argv++;
235 } else if (!strcmp(*argv, "window")) {
237 argv++;
238 TEST_ARGV(argv);
239 rt->rt_window = atolx_range(*argv, 128, INT_MAX); //win low
241 argv++;
242 } else if (!strcmp(*argv, "irtt")) {
244 argv++;
245 TEST_ARGV(argv);
247 rt->rt_irtt = strtoul(*argv, NULL, 10);
250 argv++;
251 } else if (!strcmp(*argv, "dev")) {
252 argv++;
253 TEST_ARGV(argv);
254 if ((!rt->rt_dev)) rt->rt_dev = *argv;
255 argv++;
256 } else if (!strcmp(*argv, "reject")) {
258 argv++;
259 } else if (!strcmp(*argv, "mod")) {
261 argv++;
262 } else if (!strcmp(*argv, "dyn")) {
264 argv++;
265 } else if (!strcmp(*argv, "reinstate")) {
267 argv++;
291 static void setroute(char **argv)
296 int action = get_action(&argv, arglist1); //verify the arg for add/del.
298 if (!action || !*argv) show_route_help();
300 arg2_action = get_action(&argv, arglist2); //verify the arg for -net or -host
301 if (!*argv) show_route_help();
304 targetip = *argv++;
314 get_next_params(argv, &rt, (char **)&netmask);
348 static void get_next_params_inet6(char **argv, struct sockaddr_in6 *sock_in6, struct in6_rtmsg *rt, char **dev_name)
350 while (*argv) {
351 if (!strcmp(*argv, "metric")) {
353 argv++;
354 TEST_ARGV(argv);
355 rt->rtmsg_metric = atolx_range(*argv, 0, ULONG_MAX);
356 argv++;
357 } else if (!strcmp(*argv, "gw")) {
360 argv++;
361 TEST_ARGV(argv);
362 if (!get_addrinfo(*argv, (struct sockaddr_in6 *) &sock_in6)) {
365 argv++;
366 } else perror_exit("resolving '%s'", *argv);
368 } else if (!strcmp(*argv, "dev")) {
369 argv++;
370 TEST_ARGV(argv);
371 if (!*dev_name) *dev_name = *argv;
372 argv++;
373 } else if (!strcmp(*argv, "mod")) {
375 argv++;
376 } else if (!strcmp(*argv, "dyn")) {
378 argv++;
384 static void setroute_inet6(char **argv)
389 int sockfd, action = get_action(&argv, arglist1);
391 if (!action || !*argv) show_route_help();
394 targetip = *argv++;
395 if (*argv) {
408 get_next_params_inet6(argv, &sock_in6, &rt, (char **)&dev_name);