argc--;
argv++;
if (argc <= 1)
- usage();
+ missarg("loop count");
max_flush_loops = atoi(argv[1]);
} else if (matches(opt, "-family") == 0) {
argc--;
argv++;
if (argc <= 1)
- usage();
+ missarg("family type");
if (strcmp(argv[1], "help") == 0)
- usage();
+ do_help(argc, argv);
else
preferred_family = read_family(argv[1]);
if (preferred_family == AF_UNSPEC)
argc--;
argv++;
if (argc <= 1)
- usage();
+ missarg("batch file");
batch_file = argv[1];
} else if (matches(opt, "-brief") == 0) {
++brief;
argc--;
argv++;
if (argc <= 1)
- usage();
+ missarg("rcvbuf size");
if (get_unsigned(&size, argv[1], 0)) {
fprintf(stderr, "Invalid rcvbuf size '%s'\n",
argv[1]);
invarg("\"encap type\" value is invalid\n", *argv);
NEXT_ARG();
- if (argc <= 1) {
- fprintf(stderr,
- "Error: unexpected end of line after \"encap\"\n");
- exit(-1);
- }
+ if (argc <= 1)
+ missarg("encap type");
nest = rta_nest(rta, len, encap_attr);
switch (type) {
argc--;
argv++;
if (argc <= 1)
- usage();
+ missarg("family type");
if (strcmp(argv[1], "inet") == 0)
family = AF_INET;
else if (strcmp(argv[1], "inet6") == 0)
argc--;
argv++;
if (argc <= 1)
- usage();
+ missarg("file");
file = argv[1];
} else if (matches(argv[1], "link") == 0) {
llink = 1;
struct tc_u32_mark mark;
if (argc <= 1)
- return -1;
+ missarg("mark");
if (get_u32(&mark.val, *argv, 0)) {
fprintf(stderr, "Illegal \"mark\" value\n");
__u32 group;
__u32 rate;
- if (argc <= 1) {
- fprintf(stderr, "sample bad argument count %d\n", argc);
- usage();
- return -1;
- }
+ if (argc <= 1)
+ missarg("sample count");
if (matches(*argv, "sample") == 0) {
NEXT_ARG();
} else if (matches(argv[1], "-batch") == 0) {
argc--; argv++;
if (argc <= 1)
- usage();
+ missarg("batch file");
batch_file = argv[1];
} else if (matches(argv[1], "-netns") == 0) {
NEXT_ARG();