Lines Matching full:argv
634 char **argv = *argvp;
636 while (++argv, --argc > 0) {
637 if (strcmp(*argv, "via") == 0) {
639 rta_addattr32(rta, 4096, RTA_GATEWAY, get_addr32(*argv));
641 } else if (strcmp(*argv, "dev") == 0) {
643 if ((rtnh->rtnh_ifindex = ll_name_to_index(*argv)) == 0) {
644 fprintf(stderr, "Cannot find device \"%s\"\n", *argv);
647 } else if (strcmp(*argv, "weight") == 0) {
650 if (get_unsigned(&w, *argv, 0) || w == 0 || w > 256)
651 invarg("\"weight\" is invalid\n", *argv);
653 } else if (strcmp(*argv, "onlink") == 0) {
655 } else if (matches(*argv, "realms") == 0) {
658 if (get_rt_realms(&realm, *argv))
659 invarg("\"realm\" value is invalid\n", *argv);
666 *argvp = argv;
670 int parse_nexthops(struct nlmsghdr *n, struct rtmsg *r, int argc, char **argv)
681 if (strcmp(*argv, "nexthop") != 0) {
682 fprintf(stderr, "Error: \"nexthop\" or end of line is expected instead of \"%s\"\n", *argv);
692 parse_one_nh(rta, rtnh, &argc, &argv);
702 int iproute_modify(int cmd, unsigned flags, int argc, char **argv)
739 if (strcmp(*argv, "src") == 0) {
742 get_addr(&addr, *argv, req.r.rtm_family);
746 } else if (strcmp(*argv, "via") == 0) {
750 get_addr(&addr, *argv, req.r.rtm_family);
754 } else if (strcmp(*argv, "from") == 0) {
757 get_prefix(&addr, *argv, req.r.rtm_family);
763 } else if (strcmp(*argv, "tos") == 0 ||
764 matches(*argv, "dsfield") == 0) {
767 if (rtnl_dsfield_a2n(&tos, *argv))
768 invarg("\"tos\" value is invalid\n", *argv);
770 } else if (matches(*argv, "metric") == 0 ||
771 matches(*argv, "priority") == 0 ||
772 matches(*argv, "preference") == 0) {
775 if (get_u32(&metric, *argv, 0))
776 invarg("\"metric\" value is invalid\n", *argv);
778 } else if (strcmp(*argv, "scope") == 0) {
781 if (rtnl_rtscope_a2n(&scope, *argv))
782 invarg("invalid \"scope\" value\n", *argv);
785 } else if (strcmp(*argv, "mtu") == 0) {
788 if (strcmp(*argv, "lock") == 0) {
792 if (get_unsigned(&mtu, *argv, 0))
793 invarg("\"mtu\" value is invalid\n", *argv);
795 } else if (strcmp(*argv, "hoplimit") == 0) {
798 if (strcmp(*argv, "lock") == 0) {
802 if (get_unsigned(&hoplimit, *argv, 0))
803 invarg("\"hoplimit\" value is invalid\n", *argv);
805 } else if (strcmp(*argv, "advmss") == 0) {
808 if (strcmp(*argv, "lock") == 0) {
812 if (get_unsigned(&mss, *argv, 0))
813 invarg("\"mss\" value is invalid\n", *argv);
815 } else if (matches(*argv, "reordering") == 0) {
818 if (strcmp(*argv, "lock") == 0) {
822 if (get_unsigned(&reord, *argv, 0))
823 invarg("\"reordering\" value is invalid\n", *argv);
825 } else if (strcmp(*argv, "rtt") == 0) {
828 if (strcmp(*argv, "lock") == 0) {
832 if (get_time_rtt(&rtt, *argv, &raw))
833 invarg("\"rtt\" value is invalid\n", *argv);
836 } else if (strcmp(*argv, "rto_min") == 0) {
840 if (get_time_rtt(&rto_min, *argv, &raw))
842 *argv);
845 } else if (matches(*argv, "window") == 0) {
848 if (strcmp(*argv, "lock") == 0) {
852 if (get_unsigned(&win, *argv, 0))
853 invarg("\"window\" value is invalid\n", *argv);
855 } else if (matches(*argv, "cwnd") == 0) {
858 if (strcmp(*argv, "lock") == 0) {
862 if (get_unsigned(&win, *argv, 0))
863 invarg("\"cwnd\" value is invalid\n", *argv);
865 } else if (matches(*argv, "initcwnd") == 0) {
868 if (strcmp(*argv, "lock") == 0) {
872 if (get_unsigned(&win, *argv, 0))
873 invarg("\"initcwnd\" value is invalid\n", *argv);
875 } else if (matches(*argv, "initrwnd") == 0) {
878 if (strcmp(*argv, "lock") == 0) {
882 if (get_unsigned(&win, *argv, 0))
883 invarg("\"initrwnd\" value is invalid\n", *argv);
885 } else if (matches(*argv, "rttvar") == 0) {
888 if (strcmp(*argv, "lock") == 0) {
892 if (get_time_rtt(&win, *argv, &raw))
893 invarg("\"rttvar\" value is invalid\n", *argv);
896 } else if (matches(*argv, "ssthresh") == 0) {
899 if (strcmp(*argv, "lock") == 0) {
903 if (get_unsigned(&win, *argv, 0))
904 invarg("\"ssthresh\" value is invalid\n", *argv);
906 } else if (matches(*argv, "realms") == 0) {
909 if (get_rt_realms(&realm, *argv))
910 invarg("\"realm\" value is invalid\n", *argv);
912 } else if (strcmp(*argv, "onlink") == 0) {
914 } else if (strcmp(*argv, "nexthop") == 0) {
917 } else if (matches(*argv, "protocol") == 0) {
920 if (rtnl_rtprot_a2n(&prot, *argv))
921 invarg("\"protocol\" value is invalid\n", *argv);
923 } else if (matches(*argv, "table") == 0) {
926 if (rtnl_rttable_a2n(&tid, *argv))
927 invarg("\"table\" value is invalid\n", *argv);
935 } else if (strcmp(*argv, "dev") == 0 ||
936 strcmp(*argv, "oif") == 0) {
938 d = *argv;
943 if (strcmp(*argv, "to") == 0) {
946 if ((**argv < '0' || **argv > '9') &&
947 rtnl_rtntype_a2n(&type, *argv) == 0) {
952 if (matches(*argv, "help") == 0)
955 duparg2("to", *argv);
956 get_prefix(&dst, *argv, req.r.rtm_family);
964 argc--; argv++;
988 parse_nexthops(&req.n, &req.r, argc, argv);
1099 static int iproute_list_flush_or_save(int argc, char **argv, int action)
1121 if (matches(*argv, "table") == 0) {
1124 if (rtnl_rttable_a2n(&tid, *argv)) {
1125 if (strcmp(*argv, "all") == 0) {
1127 } else if (strcmp(*argv, "cache") == 0) {
1129 } else if (strcmp(*argv, "help") == 0) {
1132 invarg("table id value is invalid\n", *argv);
1136 } else if (matches(*argv, "cached") == 0 ||
1137 matches(*argv, "cloned") == 0) {
1139 } else if (strcmp(*argv, "tos") == 0 ||
1140 matches(*argv, "dsfield") == 0) {
1143 if (rtnl_dsfield_a2n(&tos, *argv))
1144 invarg("TOS value is invalid\n", *argv);
1147 } else if (matches(*argv, "protocol") == 0) {
1151 if (rtnl_rtprot_a2n(&prot, *argv)) {
1152 if (strcmp(*argv, "all") != 0)
1153 invarg("invalid \"protocol\"\n", *argv);
1158 } else if (matches(*argv, "scope") == 0) {
1162 if (rtnl_rtscope_a2n(&scope, *argv)) {
1163 if (strcmp(*argv, "all") != 0)
1164 argv);
1169 } else if (matches(*argv, "type") == 0) {
1173 if (rtnl_rtntype_a2n(&type, *argv))
1174 invarg("node type value is invalid\n", *argv);
1176 } else if (strcmp(*argv, "dev") == 0 ||
1177 strcmp(*argv, "oif") == 0) {
1179 od = *argv;
1180 } else if (strcmp(*argv, "iif") == 0) {
1182 id = *argv;
1183 } else if (strcmp(*argv, "mark") == 0) {
1185 get_unsigned(&mark, *argv, 0);
1187 } else if (strcmp(*argv, "via") == 0) {
1189 get_prefix(&filter.rvia, *argv, do_ipv6);
1190 } else if (strcmp(*argv, "src") == 0) {
1192 get_prefix(&filter.rprefsrc, *argv, do_ipv6);
1193 } else if (matches(*argv, "realms") == 0) {
1196 if (get_rt_realms(&realm, *argv))
1197 invarg("invalid realms\n", *argv);
1201 (*argv)[strlen(*argv) - 1] == '/')
1204 (strchr(*argv, '/') == NULL ||
1205 (*argv)[0] == '/'))
1207 } else if (matches(*argv, "from") == 0) {
1209 if (matches(*argv, "root") == 0) {
1211 get_prefix(&filter.rsrc, *argv, do_ipv6);
1212 } else if (matches(*argv, "match") == 0) {
1214 get_prefix(&filter.msrc, *argv, do_ipv6);
1216 if (matches(*argv, "exact") == 0) {
1219 get_prefix(&filter.msrc, *argv, do_ipv6);
1223 if (matches(*argv, "to") == 0) {
1226 if (matches(*argv, "root") == 0) {
1228 get_prefix(&filter.rdst, *argv, do_ipv6);
1229 } else if (matches(*argv, "match") == 0) {
1231 get_prefix(&filter.mdst, *argv, do_ipv6);
1233 if (matches(*argv, "exact") == 0) {
1236 get_prefix(&filter.mdst, *argv, do_ipv6);
1240 argc--; argv++;
1347 int iproute_get(int argc, char **argv)
1378 if (strcmp(*argv, "tos") == 0 ||
1379 matches(*argv, "dsfield") == 0) {
1382 if (rtnl_dsfield_a2n(&tos, *argv))
1383 invarg("TOS value is invalid\n", *argv);
1385 } else if (matches(*argv, "from") == 0) {
1388 if (matches(*argv, "help") == 0)
1391 get_prefix(&addr, *argv, req.r.rtm_family);
1397 } else if (matches(*argv, "iif") == 0) {
1399 idev = *argv;
1400 } else if (matches(*argv, "mark") == 0) {
1402 get_unsigned(&mark, *argv, 0);
1403 } else if (matches(*argv, "oif") == 0 ||
1404 strcmp(*argv, "dev") == 0) {
1406 odev = *argv;
1407 } else if (matches(*argv, "uid") == 0) {
1410 get_unsigned(&uid, *argv, 0);
1412 } else if (matches(*argv, "notify") == 0) {
1414 } else if (matches(*argv, "connected") == 0) {
1418 if (strcmp(*argv, "to") == 0) {
1421 if (matches(*argv, "help") == 0)
1423 get_prefix(&addr, *argv, req.r.rtm_family);
1430 argc--; argv++;
1544 int do_iproute(int argc, char **argv)
1549 if (matches(*argv, "add") == 0)
1551 argc-1, argv+1);
1552 if (matches(*argv, "change") == 0 || strcmp(*argv, "chg") == 0)
1554 argc-1, argv+1);
1555 if (matches(*argv, "replace") == 0)
1557 argc-1, argv+1);
1558 if (matches(*argv, "prepend") == 0)
1560 argc-1, argv+1);
1561 if (matches(*argv, "append") == 0)
1563 argc-1, argv+1);
1564 if (matches(*argv, "test") == 0)
1566 argc-1, argv+1);
1567 if (matches(*argv, "delete") == 0)
1569 argc-1, argv+1);
1570 if (matches(*argv, "list") == 0 || matches(*argv, "show") == 0
1571 || matches(*argv, "lst") == 0)
1572 return iproute_list_flush_or_save(argc-1, argv+1, IPROUTE_LIST);
1573 if (matches(*argv, "get") == 0)
1574 return iproute_get(argc-1, argv+1);
1575 if (matches(*argv, "flush") == 0)
1576 return iproute_list_flush_or_save(argc-1, argv+1, IPROUTE_FLUSH);
1577 if (matches(*argv, "save") == 0)
1578 return iproute_list_flush_or_save(argc-1, argv+1, IPROUTE_SAVE);
1579 if (matches(*argv, "restore") == 0)
1581 if (matches(*argv, "help") == 0)
1583 fprintf(stderr, "Command \"%s\" is unknown, try \"ip route help\".\n", *argv);