vti/vti6: Unify vti_print_help()
Reduce diff lines between vti and vti6 help printing code. Use @struct link_util ->id field to print correct link help: all callers now pass this data structure to vti_print_help(). Get rid of custom print_usage() and usage() functions and use vti_print_help() directly, return from function on "... type <help|garbage>" instead of exit(2). Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com> Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
parent
432e5f97be
commit
4aa552eac1
|
|
@ -23,27 +23,25 @@
|
|||
#include "ip_common.h"
|
||||
#include "tunnel.h"
|
||||
|
||||
|
||||
static void print_usage(FILE *f)
|
||||
static void vti_print_help(struct link_util *lu, int argc, char **argv, FILE *f)
|
||||
{
|
||||
fprintf(f,
|
||||
"Usage: ... vti [ remote ADDR ]\n"
|
||||
" [ local ADDR ]\n"
|
||||
" [ [i|o]key KEY ]\n"
|
||||
" [ dev PHYS_DEV ]\n"
|
||||
" [ fwmark MARK ]\n"
|
||||
"\n"
|
||||
"Where: ADDR := { IP_ADDRESS }\n"
|
||||
" KEY := { DOTTED_QUAD | NUMBER }\n"
|
||||
" MARK := { 0x0..0xffffffff }\n"
|
||||
"Usage: ... %-4s [ remote ADDR ]\n",
|
||||
lu->id
|
||||
);
|
||||
fprintf(f,
|
||||
" [ local ADDR ]\n"
|
||||
" [ [i|o]key KEY ]\n"
|
||||
" [ dev PHYS_DEV ]\n"
|
||||
" [ fwmark MARK ]\n"
|
||||
"\n"
|
||||
);
|
||||
fprintf(f,
|
||||
"Where: ADDR := { IP%s_ADDRESS }\n"
|
||||
" KEY := { DOTTED_QUAD | NUMBER }\n"
|
||||
" MARK := { 0x0..0xffffffff }\n",
|
||||
""
|
||||
);
|
||||
}
|
||||
|
||||
static void usage(void) __attribute__((noreturn));
|
||||
static void usage(void)
|
||||
{
|
||||
print_usage(stderr);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
static int vti_parse_opt(struct link_util *lu, int argc, char **argv,
|
||||
|
|
@ -147,8 +145,10 @@ get_failed:
|
|||
NEXT_ARG();
|
||||
if (get_u32(&fwmark, *argv, 0))
|
||||
invarg("invalid fwmark\n", *argv);
|
||||
} else
|
||||
usage();
|
||||
} else {
|
||||
vti_print_help(lu, argc, argv, stderr);
|
||||
return -1;
|
||||
}
|
||||
argc--; argv++;
|
||||
}
|
||||
|
||||
|
|
@ -208,12 +208,6 @@ static void vti_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
|
|||
}
|
||||
}
|
||||
|
||||
static void vti_print_help(struct link_util *lu, int argc, char **argv,
|
||||
FILE *f)
|
||||
{
|
||||
print_usage(f);
|
||||
}
|
||||
|
||||
struct link_util vti_link_util = {
|
||||
.id = "vti",
|
||||
.maxattr = IFLA_VTI_MAX,
|
||||
|
|
|
|||
|
|
@ -24,26 +24,26 @@
|
|||
#include "ip_common.h"
|
||||
#include "tunnel.h"
|
||||
|
||||
static void print_usage(FILE *f)
|
||||
static void vti6_print_help(struct link_util *lu, int argc, char **argv,
|
||||
FILE *f)
|
||||
{
|
||||
fprintf(f,
|
||||
"Usage: ... vti6 [ remote ADDR ]\n"
|
||||
"Usage: ... %-4s [ remote ADDR ]\n",
|
||||
lu->id
|
||||
);
|
||||
fprintf(f,
|
||||
" [ local ADDR ]\n"
|
||||
" [ [i|o]key KEY ]\n"
|
||||
" [ dev PHYS_DEV ]\n"
|
||||
" [ fwmark MARK ]\n"
|
||||
"\n"
|
||||
"Where: ADDR := { IPV6_ADDRESS }\n"
|
||||
" KEY := { DOTTED_QUAD | NUMBER }\n"
|
||||
" MARK := { 0x0..0xffffffff }\n"
|
||||
);
|
||||
}
|
||||
|
||||
static void usage(void) __attribute__((noreturn));
|
||||
static void usage(void)
|
||||
{
|
||||
print_usage(stderr);
|
||||
exit(-1);
|
||||
fprintf(f,
|
||||
"Where: ADDR := { IP%s_ADDRESS }\n"
|
||||
" KEY := { DOTTED_QUAD | NUMBER }\n"
|
||||
" MARK := { 0x0..0xffffffff }\n",
|
||||
"V6"
|
||||
);
|
||||
}
|
||||
|
||||
static int vti6_parse_opt(struct link_util *lu, int argc, char **argv,
|
||||
|
|
@ -153,8 +153,10 @@ get_failed:
|
|||
NEXT_ARG();
|
||||
if (get_u32(&fwmark, *argv, 0))
|
||||
invarg("invalid fwmark\n", *argv);
|
||||
} else
|
||||
usage();
|
||||
} else {
|
||||
vti6_print_help(lu, argc, argv, stderr);
|
||||
return -1;
|
||||
}
|
||||
argc--; argv++;
|
||||
}
|
||||
|
||||
|
|
@ -214,12 +216,6 @@ static void vti6_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
|
|||
}
|
||||
}
|
||||
|
||||
static void vti6_print_help(struct link_util *lu, int argc, char **argv,
|
||||
FILE *f)
|
||||
{
|
||||
print_usage(f);
|
||||
}
|
||||
|
||||
struct link_util vti6_link_util = {
|
||||
.id = "vti6",
|
||||
.maxattr = IFLA_VTI_MAX,
|
||||
|
|
|
|||
Loading…
Reference in New Issue