Lines Matching refs:argv
173 static int get_action(char ***argv, struct _arglist *list)
177 if (!**argv) return 0;
179 if (!strcmp(**argv, alist->arg)) {
180 *argv += 1;
191 static void get_next_params(char **argv, struct rtentry *rt, char **netmask)
193 for (;*argv;argv++) {
194 if (!strcmp(*argv, "reject")) rt->rt_flags |= RTF_REJECT;
195 else if (!strcmp(*argv, "mod")) rt->rt_flags |= RTF_MODIFIED;
196 else if (!strcmp(*argv, "dyn")) rt->rt_flags |= RTF_DYNAMIC;
197 else if (!strcmp(*argv, "reinstate")) rt->rt_flags |= RTF_REINSTATE;
199 if (!argv[1]) help_exit(0);
202 if (!strcmp(*argv, "metric"))
203 rt->rt_metric = atolx_range(argv[1], 0, ULONG_MAX) + 1;
204 else if (!strcmp(*argv, "netmask")) {
210 *netmask = argv[1];
213 } else if (!strcmp(*argv, "gw")) {
216 if (!get_hostname(argv[1], (struct sockaddr_in *) &rt->rt_gateway))
218 else perror_exit("gateway '%s' is a NETWORK", argv[1]);
220 } else if (!strcmp(*argv, "mss")) {
222 rt->rt_mtu = atolx_range(argv[1], 64, 65536);
224 } else if (!strcmp(*argv, "window")) {
226 rt->rt_window = atolx_range(argv[1], 128, INT_MAX); //win low
228 } else if (!strcmp(*argv, "irtt")) {
229 rt->rt_irtt = atolx_range(argv[1], 0, INT_MAX);
231 } else if (!strcmp(*argv, "dev") && !rt->rt_dev) rt->rt_dev = argv[1];
232 else help_exit("no '%s'", *argv);
233 argv++;
257 static void setroute(char **argv)
262 int action = get_action(&argv, arglist1); //verify the arg for add/del.
264 if (!action || !*argv) help_exit("setroute");
266 arg2_action = get_action(&argv, arglist2); //verify the arg for -net or -host
267 if (!*argv) help_exit("setroute");
270 targetip = *argv++;
287 get_next_params(argv, &rt, (char **)&netmask);
321 static void get_next_params_inet6(char **argv, struct sockaddr_in6 *sock_in6, struct in6_rtmsg *rt, char **dev_name)
323 for (;*argv;argv++) {
324 if (!strcmp(*argv, "mod")) rt->rtmsg_flags |= RTF_MODIFIED;
325 else if (!strcmp(*argv, "dyn")) rt->rtmsg_flags |= RTF_DYNAMIC;
327 if (!argv[1]) help_exit(0);
329 if (!strcmp(*argv, "metric"))
330 rt->rtmsg_metric = atolx_range(argv[1], 0, ULONG_MAX);
331 else if (!strcmp(*argv, "gw")) {
334 if (!get_addrinfo(argv[1], (struct sockaddr_in6 *) &sock_in6)) {
337 } else perror_exit("resolving '%s'", argv[1]);
339 } else if (!strcmp(*argv, "dev")) {
340 if (!*dev_name) *dev_name = argv[1];
342 argv++;
348 static void setroute_inet6(char **argv)
353 int sockfd, action = get_action(&argv, arglist1);
355 if (!action || !*argv) help_exit(0);
358 targetip = *argv++;
359 if (!*argv) help_exit(0);
371 get_next_params_inet6(argv, &sock_in6, &rt, (char **)&dev_name);