Commit e8740e42 authored by David Ward's avatar David Ward Committed by Stephen Hemminger

ip/xfrm: Improve error strings

Quotation marks are now used only to indicate literal text on the
command line.
Signed-off-by: default avatarDavid Ward <david.ward@ll.mit.edu>
parent 29665f92
...@@ -660,7 +660,7 @@ int xfrm_parse_mark(struct xfrm_mark *mark, int *argcp, char ***argvp) ...@@ -660,7 +660,7 @@ int xfrm_parse_mark(struct xfrm_mark *mark, int *argcp, char ***argvp)
NEXT_ARG(); NEXT_ARG();
if (get_u32(&mark->v, *argv, 0)) { if (get_u32(&mark->v, *argv, 0)) {
invarg("Illegal \"mark\" value\n", *argv); invarg("MARK value is invalid\n", *argv);
} }
if (argc > 1) if (argc > 1)
NEXT_ARG(); NEXT_ARG();
...@@ -672,7 +672,7 @@ int xfrm_parse_mark(struct xfrm_mark *mark, int *argcp, char ***argvp) ...@@ -672,7 +672,7 @@ int xfrm_parse_mark(struct xfrm_mark *mark, int *argcp, char ***argvp)
if (strcmp(*argv, "mask") == 0) { if (strcmp(*argv, "mask") == 0) {
NEXT_ARG(); NEXT_ARG();
if (get_u32(&mark->m, *argv, 0)) { if (get_u32(&mark->m, *argv, 0)) {
invarg("Illegal \"mark\" mask\n", *argv); invarg("MASK value is invalid\n", *argv);
} }
} else { } else {
mark->m = 0xffffffff; mark->m = 0xffffffff;
...@@ -1010,7 +1010,7 @@ int xfrm_id_parse(xfrm_address_t *saddr, struct xfrm_id *id, __u16 *family, ...@@ -1010,7 +1010,7 @@ int xfrm_id_parse(xfrm_address_t *saddr, struct xfrm_id *id, __u16 *family,
get_prefix(&src, *argv, preferred_family); get_prefix(&src, *argv, preferred_family);
if (src.family == AF_UNSPEC) if (src.family == AF_UNSPEC)
invarg("\"src\" address family is AF_UNSPEC", *argv); invarg("value after \"src\" has an unrecognized address family", *argv);
if (family) if (family)
*family = src.family; *family = src.family;
...@@ -1023,7 +1023,7 @@ int xfrm_id_parse(xfrm_address_t *saddr, struct xfrm_id *id, __u16 *family, ...@@ -1023,7 +1023,7 @@ int xfrm_id_parse(xfrm_address_t *saddr, struct xfrm_id *id, __u16 *family,
get_prefix(&dst, *argv, preferred_family); get_prefix(&dst, *argv, preferred_family);
if (dst.family == AF_UNSPEC) if (dst.family == AF_UNSPEC)
invarg("\"dst\" address family is AF_UNSPEC", *argv); invarg("value after \"dst\" has an unrecognized address family", *argv);
if (family) if (family)
*family = dst.family; *family = dst.family;
...@@ -1038,7 +1038,7 @@ int xfrm_id_parse(xfrm_address_t *saddr, struct xfrm_id *id, __u16 *family, ...@@ -1038,7 +1038,7 @@ int xfrm_id_parse(xfrm_address_t *saddr, struct xfrm_id *id, __u16 *family,
ret = xfrm_xfrmproto_getbyname(*argv); ret = xfrm_xfrmproto_getbyname(*argv);
if (ret < 0) if (ret < 0)
invarg("\"XFRM-PROTO\" is invalid", *argv); invarg("XFRM-PROTO value is invalid", *argv);
id->proto = (__u8)ret; id->proto = (__u8)ret;
...@@ -1049,7 +1049,7 @@ int xfrm_id_parse(xfrm_address_t *saddr, struct xfrm_id *id, __u16 *family, ...@@ -1049,7 +1049,7 @@ int xfrm_id_parse(xfrm_address_t *saddr, struct xfrm_id *id, __u16 *family,
NEXT_ARG(); NEXT_ARG();
if (get_u32(&spi, *argv, 0)) if (get_u32(&spi, *argv, 0))
invarg("\"SPI\" is invalid", *argv); invarg("SPI value is invalid", *argv);
spi = htonl(spi); spi = htonl(spi);
id->spi = spi; id->spi = spi;
...@@ -1067,7 +1067,7 @@ int xfrm_id_parse(xfrm_address_t *saddr, struct xfrm_id *id, __u16 *family, ...@@ -1067,7 +1067,7 @@ int xfrm_id_parse(xfrm_address_t *saddr, struct xfrm_id *id, __u16 *family,
} }
if (src.family && dst.family && (src.family != dst.family)) if (src.family && dst.family && (src.family != dst.family))
invarg("the same address family is required between \"src\" and \"dst\"", *argv); invarg("the same address family is required between values after \"src\" and \"dst\"", *argv);
if (id->spi && id->proto) { if (id->spi && id->proto) {
if (xfrm_xfrmproto_is_ro(id->proto)) { if (xfrm_xfrmproto_is_ro(id->proto)) {
...@@ -1108,7 +1108,7 @@ int xfrm_mode_parse(__u8 *mode, int *argcp, char ***argvp) ...@@ -1108,7 +1108,7 @@ int xfrm_mode_parse(__u8 *mode, int *argcp, char ***argvp)
else if (matches(*argv, "beet") == 0) else if (matches(*argv, "beet") == 0)
*mode = XFRM_MODE_BEET; *mode = XFRM_MODE_BEET;
else else
invarg("\"MODE\" is invalid", *argv); invarg("MODE value is invalid", *argv);
*argcp = argc; *argcp = argc;
*argvp = argv; *argvp = argv;
...@@ -1126,7 +1126,7 @@ int xfrm_encap_type_parse(__u16 *type, int *argcp, char ***argvp) ...@@ -1126,7 +1126,7 @@ int xfrm_encap_type_parse(__u16 *type, int *argcp, char ***argvp)
else if (strcmp(*argv, "espinudp") == 0) else if (strcmp(*argv, "espinudp") == 0)
*type = 2; *type = 2;
else else
invarg("\"ENCAP-TYPE\" is invalid", *argv); invarg("ENCAP-TYPE value is invalid", *argv);
*argcp = argc; *argcp = argc;
*argvp = argv; *argvp = argv;
...@@ -1141,7 +1141,7 @@ int xfrm_reqid_parse(__u32 *reqid, int *argcp, char ***argvp) ...@@ -1141,7 +1141,7 @@ int xfrm_reqid_parse(__u32 *reqid, int *argcp, char ***argvp)
char **argv = *argvp; char **argv = *argvp;
if (get_u32(reqid, *argv, 0)) if (get_u32(reqid, *argv, 0))
invarg("\"REQID\" is invalid", *argv); invarg("REQID value is invalid", *argv);
*argcp = argc; *argcp = argc;
*argvp = argv; *argvp = argv;
...@@ -1175,7 +1175,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel, ...@@ -1175,7 +1175,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel,
upspec = pp->p_proto; upspec = pp->p_proto;
else { else {
if (get_u8(&upspec, *argv, 0)) if (get_u8(&upspec, *argv, 0))
invarg("\"PROTO\" is invalid", *argv); invarg("PROTO value is invalid", *argv);
} }
} }
sel->proto = upspec; sel->proto = upspec;
...@@ -1188,7 +1188,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel, ...@@ -1188,7 +1188,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel,
NEXT_ARG(); NEXT_ARG();
if (get_u16(&sel->sport, *argv, 0)) if (get_u16(&sel->sport, *argv, 0))
invarg("\"PORT\" is invalid", *argv); invarg("value after \"sport\" is invalid", *argv);
sel->sport = htons(sel->sport); sel->sport = htons(sel->sport);
if (sel->sport) if (sel->sport)
sel->sport_mask = ~((__u16)0); sel->sport_mask = ~((__u16)0);
...@@ -1201,7 +1201,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel, ...@@ -1201,7 +1201,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel,
NEXT_ARG(); NEXT_ARG();
if (get_u16(&sel->dport, *argv, 0)) if (get_u16(&sel->dport, *argv, 0))
invarg("\"PORT\" is invalid", *argv); invarg("value after \"dport\" is invalid", *argv);
sel->dport = htons(sel->dport); sel->dport = htons(sel->dport);
if (sel->dport) if (sel->dport)
sel->dport_mask = ~((__u16)0); sel->dport_mask = ~((__u16)0);
...@@ -1215,7 +1215,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel, ...@@ -1215,7 +1215,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel,
if (get_u16(&sel->sport, *argv, 0) || if (get_u16(&sel->sport, *argv, 0) ||
(sel->sport & ~((__u16)0xff))) (sel->sport & ~((__u16)0xff)))
invarg("\"type\" value is invalid", *argv); invarg("value after \"type\" is invalid", *argv);
sel->sport = htons(sel->sport); sel->sport = htons(sel->sport);
sel->sport_mask = ~((__u16)0); sel->sport_mask = ~((__u16)0);
...@@ -1229,7 +1229,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel, ...@@ -1229,7 +1229,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel,
if (get_u16(&sel->dport, *argv, 0) || if (get_u16(&sel->dport, *argv, 0) ||
(sel->dport & ~((__u16)0xff))) (sel->dport & ~((__u16)0xff)))
invarg("\"code\" value is invalid", *argv); invarg("value after \"code\" is invalid", *argv);
sel->dport = htons(sel->dport); sel->dport = htons(sel->dport);
sel->dport_mask = ~((__u16)0); sel->dport_mask = ~((__u16)0);
...@@ -1246,7 +1246,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel, ...@@ -1246,7 +1246,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel,
uval = htonl(get_addr32(*argv)); uval = htonl(get_addr32(*argv));
else { else {
if (get_unsigned(&uval, *argv, 0)<0) { if (get_unsigned(&uval, *argv, 0)<0) {
fprintf(stderr, "invalid value for \"key\"; it should be an unsigned integer\n"); fprintf(stderr, "value after \"key\" is invalid\n");
exit(-1); exit(-1);
} }
} }
...@@ -1277,7 +1277,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel, ...@@ -1277,7 +1277,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel,
case IPPROTO_DCCP: case IPPROTO_DCCP:
break; break;
default: default:
fprintf(stderr, "\"sport\" and \"dport\" are invalid with proto=%s\n", strxf_proto(sel->proto)); fprintf(stderr, "\"sport\" and \"dport\" are invalid with PROTO value \"%s\"\n", strxf_proto(sel->proto));
exit(1); exit(1);
} }
} }
...@@ -1288,7 +1288,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel, ...@@ -1288,7 +1288,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel,
case IPPROTO_MH: case IPPROTO_MH:
break; break;
default: default:
fprintf(stderr, "\"type\" and \"code\" are invalid with proto=%s\n", strxf_proto(sel->proto)); fprintf(stderr, "\"type\" and \"code\" are invalid with PROTO value \"%s\"\n", strxf_proto(sel->proto));
exit(1); exit(1);
} }
} }
...@@ -1297,7 +1297,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel, ...@@ -1297,7 +1297,7 @@ static int xfrm_selector_upspec_parse(struct xfrm_selector *sel,
case IPPROTO_GRE: case IPPROTO_GRE:
break; break;
default: default:
fprintf(stderr, "\"key\" is invalid with proto=%s\n", strxf_proto(sel->proto)); fprintf(stderr, "\"key\" is invalid with PROTO value \"%s\"\n", strxf_proto(sel->proto));
exit(1); exit(1);
} }
} }
...@@ -1325,7 +1325,7 @@ int xfrm_selector_parse(struct xfrm_selector *sel, int *argcp, char ***argvp) ...@@ -1325,7 +1325,7 @@ int xfrm_selector_parse(struct xfrm_selector *sel, int *argcp, char ***argvp)
get_prefix(&src, *argv, preferred_family); get_prefix(&src, *argv, preferred_family);
if (src.family == AF_UNSPEC) if (src.family == AF_UNSPEC)
invarg("\"src\" address family is AF_UNSPEC", *argv); invarg("value after \"src\" has an unrecognized address family", *argv);
sel->family = src.family; sel->family = src.family;
memcpy(&sel->saddr, &src.data, sizeof(sel->saddr)); memcpy(&sel->saddr, &src.data, sizeof(sel->saddr));
...@@ -1338,7 +1338,7 @@ int xfrm_selector_parse(struct xfrm_selector *sel, int *argcp, char ***argvp) ...@@ -1338,7 +1338,7 @@ int xfrm_selector_parse(struct xfrm_selector *sel, int *argcp, char ***argvp)
get_prefix(&dst, *argv, preferred_family); get_prefix(&dst, *argv, preferred_family);
if (dst.family == AF_UNSPEC) if (dst.family == AF_UNSPEC)
invarg("\"dst\" address family is AF_UNSPEC", *argv); invarg("value after \"dst\" has an unrecognized address family", *argv);
sel->family = dst.family; sel->family = dst.family;
memcpy(&sel->daddr, &dst.data, sizeof(sel->daddr)); memcpy(&sel->daddr, &dst.data, sizeof(sel->daddr));
...@@ -1356,7 +1356,7 @@ int xfrm_selector_parse(struct xfrm_selector *sel, int *argcp, char ***argvp) ...@@ -1356,7 +1356,7 @@ int xfrm_selector_parse(struct xfrm_selector *sel, int *argcp, char ***argvp)
else { else {
ifindex = ll_name_to_index(*argv); ifindex = ll_name_to_index(*argv);
if (ifindex <= 0) if (ifindex <= 0)
invarg("\"DEV\" is invalid", *argv); invarg("DEV value is invalid", *argv);
} }
sel->ifindex = ifindex; sel->ifindex = ifindex;
...@@ -1379,7 +1379,7 @@ int xfrm_selector_parse(struct xfrm_selector *sel, int *argcp, char ***argvp) ...@@ -1379,7 +1379,7 @@ int xfrm_selector_parse(struct xfrm_selector *sel, int *argcp, char ***argvp)
} }
if (src.family && dst.family && (src.family != dst.family)) if (src.family && dst.family && (src.family != dst.family))
invarg("the same address family is required between \"src\" and \"dst\"", *argv); invarg("the same address family is required between values after \"src\" and \"dst\"", *argv);
if (argc == *argcp) if (argc == *argcp)
missarg("SELECTOR"); missarg("SELECTOR");
...@@ -1401,44 +1401,44 @@ int xfrm_lifetime_cfg_parse(struct xfrm_lifetime_cfg *lft, ...@@ -1401,44 +1401,44 @@ int xfrm_lifetime_cfg_parse(struct xfrm_lifetime_cfg *lft,
NEXT_ARG(); NEXT_ARG();
ret = get_u64(&lft->soft_add_expires_seconds, *argv, 0); ret = get_u64(&lft->soft_add_expires_seconds, *argv, 0);
if (ret) if (ret)
invarg("\"time-soft\" value is invalid", *argv); invarg("value after \"time-soft\" is invalid", *argv);
} else if (strcmp(*argv, "time-hard") == 0) { } else if (strcmp(*argv, "time-hard") == 0) {
NEXT_ARG(); NEXT_ARG();
ret = get_u64(&lft->hard_add_expires_seconds, *argv, 0); ret = get_u64(&lft->hard_add_expires_seconds, *argv, 0);
if (ret) if (ret)
invarg("\"time-hard\" value is invalid", *argv); invarg("value after \"time-hard\" is invalid", *argv);
} else if (strcmp(*argv, "time-use-soft") == 0) { } else if (strcmp(*argv, "time-use-soft") == 0) {
NEXT_ARG(); NEXT_ARG();
ret = get_u64(&lft->soft_use_expires_seconds, *argv, 0); ret = get_u64(&lft->soft_use_expires_seconds, *argv, 0);
if (ret) if (ret)
invarg("\"time-use-soft\" value is invalid", *argv); invarg("value after \"time-use-soft\" is invalid", *argv);
} else if (strcmp(*argv, "time-use-hard") == 0) { } else if (strcmp(*argv, "time-use-hard") == 0) {
NEXT_ARG(); NEXT_ARG();
ret = get_u64(&lft->hard_use_expires_seconds, *argv, 0); ret = get_u64(&lft->hard_use_expires_seconds, *argv, 0);
if (ret) if (ret)
invarg("\"time-use-hard\" value is invalid", *argv); invarg("value after \"time-use-hard\" is invalid", *argv);
} else if (strcmp(*argv, "byte-soft") == 0) { } else if (strcmp(*argv, "byte-soft") == 0) {
NEXT_ARG(); NEXT_ARG();
ret = get_u64(&lft->soft_byte_limit, *argv, 0); ret = get_u64(&lft->soft_byte_limit, *argv, 0);
if (ret) if (ret)
invarg("\"byte-soft\" value is invalid", *argv); invarg("value after \"byte-soft\" is invalid", *argv);
} else if (strcmp(*argv, "byte-hard") == 0) { } else if (strcmp(*argv, "byte-hard") == 0) {
NEXT_ARG(); NEXT_ARG();
ret = get_u64(&lft->hard_byte_limit, *argv, 0); ret = get_u64(&lft->hard_byte_limit, *argv, 0);
if (ret) if (ret)
invarg("\"byte-hard\" value is invalid", *argv); invarg("value after \"byte-hard\" is invalid", *argv);
} else if (strcmp(*argv, "packet-soft") == 0) { } else if (strcmp(*argv, "packet-soft") == 0) {
NEXT_ARG(); NEXT_ARG();
ret = get_u64(&lft->soft_packet_limit, *argv, 0); ret = get_u64(&lft->soft_packet_limit, *argv, 0);
if (ret) if (ret)
invarg("\"packet-soft\" value is invalid", *argv); invarg("value after \"packet-soft\" is invalid", *argv);
} else if (strcmp(*argv, "packet-hard") == 0) { } else if (strcmp(*argv, "packet-hard") == 0) {
NEXT_ARG(); NEXT_ARG();
ret = get_u64(&lft->hard_packet_limit, *argv, 0); ret = get_u64(&lft->hard_packet_limit, *argv, 0);
if (ret) if (ret)
invarg("\"packet-hard\" value is invalid", *argv); invarg("value after \"packet-hard\" is invalid", *argv);
} else } else
invarg("\"LIMIT\" is invalid", *argv); invarg("LIMIT value is invalid", *argv);
*argcp = argc; *argcp = argc;
*argvp = argv; *argvp = argv;
......
...@@ -96,7 +96,7 @@ static void usage(void) ...@@ -96,7 +96,7 @@ static void usage(void)
fprintf(stderr, "%s | ", strxf_xfrmproto(IPPROTO_COMP)); fprintf(stderr, "%s | ", strxf_xfrmproto(IPPROTO_COMP));
fprintf(stderr, "%s | ", strxf_xfrmproto(IPPROTO_ROUTING)); fprintf(stderr, "%s | ", strxf_xfrmproto(IPPROTO_ROUTING));
fprintf(stderr, "%s\n", strxf_xfrmproto(IPPROTO_DSTOPTS)); fprintf(stderr, "%s\n", strxf_xfrmproto(IPPROTO_DSTOPTS));
fprintf(stderr, "MODE := transport | tunnel | beet | ro | in_trigger\n"); fprintf(stderr, "MODE := transport | tunnel | beet | ro | in_trigger\n");
fprintf(stderr, "LEVEL := required | use\n"); fprintf(stderr, "LEVEL := required | use\n");
exit(-1); exit(-1);
...@@ -114,7 +114,7 @@ static int xfrm_policy_dir_parse(__u8 *dir, int *argcp, char ***argvp) ...@@ -114,7 +114,7 @@ static int xfrm_policy_dir_parse(__u8 *dir, int *argcp, char ***argvp)
else if (strcmp(*argv, "fwd") == 0) else if (strcmp(*argv, "fwd") == 0)
*dir = XFRM_POLICY_FWD; *dir = XFRM_POLICY_FWD;
else else
invarg("\"DIR\" is invalid", *argv); invarg("DIR value is invalid", *argv);
*argcp = argc; *argcp = argc;
*argvp = argv; *argvp = argv;
...@@ -132,7 +132,7 @@ static int xfrm_policy_ptype_parse(__u8 *ptype, int *argcp, char ***argvp) ...@@ -132,7 +132,7 @@ static int xfrm_policy_ptype_parse(__u8 *ptype, int *argcp, char ***argvp)
else if (strcmp(*argv, "sub") == 0) else if (strcmp(*argv, "sub") == 0)
*ptype = XFRM_POLICY_TYPE_SUB; *ptype = XFRM_POLICY_TYPE_SUB;
else else
invarg("\"PTYPE\" is invalid", *argv); invarg("PTYPE value is invalid", *argv);
*argcp = argc; *argcp = argc;
*argvp = argv; *argvp = argv;
...@@ -150,7 +150,7 @@ static int xfrm_policy_flag_parse(__u8 *flags, int *argcp, char ***argvp) ...@@ -150,7 +150,7 @@ static int xfrm_policy_flag_parse(__u8 *flags, int *argcp, char ***argvp)
__u8 val = 0; __u8 val = 0;
if (get_u8(&val, *argv, 16)) if (get_u8(&val, *argv, 16))
invarg("\"FLAG\" is invalid", *argv); invarg("FLAG value is invalid", *argv);
*flags = val; *flags = val;
} else { } else {
while (1) { while (1) {
...@@ -197,7 +197,7 @@ static int xfrm_tmpl_parse(struct xfrm_user_tmpl *tmpl, ...@@ -197,7 +197,7 @@ static int xfrm_tmpl_parse(struct xfrm_user_tmpl *tmpl,
else if (strcmp(*argv, "use") == 0) else if (strcmp(*argv, "use") == 0)
tmpl->optional = 1; tmpl->optional = 1;
else else
invarg("\"LEVEL\" is invalid\n", *argv); invarg("LEVEL value is invalid\n", *argv);
} else { } else {
if (idp) { if (idp) {
...@@ -300,7 +300,7 @@ static int xfrm_policy_modify(int cmd, unsigned flags, int argc, char **argv) ...@@ -300,7 +300,7 @@ static int xfrm_policy_modify(int cmd, unsigned flags, int argc, char **argv)
} else if (strcmp(*argv, "index") == 0) { } else if (strcmp(*argv, "index") == 0) {
NEXT_ARG(); NEXT_ARG();
if (get_u32(&req.xpinfo.index, *argv, 0)) if (get_u32(&req.xpinfo.index, *argv, 0))
invarg("\"INDEX\" is invalid", *argv); invarg("INDEX value is invalid", *argv);
} else if (strcmp(*argv, "ptype") == 0) { } else if (strcmp(*argv, "ptype") == 0) {
if (ptypep) if (ptypep)
duparg("ptype", *argv); duparg("ptype", *argv);
...@@ -315,11 +315,11 @@ static int xfrm_policy_modify(int cmd, unsigned flags, int argc, char **argv) ...@@ -315,11 +315,11 @@ static int xfrm_policy_modify(int cmd, unsigned flags, int argc, char **argv)
else if (strcmp(*argv, "block") == 0) else if (strcmp(*argv, "block") == 0)
req.xpinfo.action = XFRM_POLICY_BLOCK; req.xpinfo.action = XFRM_POLICY_BLOCK;
else else
invarg("\"action\" value is invalid\n", *argv); invarg("ACTION value is invalid\n", *argv);
} else if (strcmp(*argv, "priority") == 0) { } else if (strcmp(*argv, "priority") == 0) {
NEXT_ARG(); NEXT_ARG();
if (get_u32(&req.xpinfo.priority, *argv, 0)) if (get_u32(&req.xpinfo.priority, *argv, 0))
invarg("\"PRIORITY\" is invalid", *argv); invarg("PRIORITY value is invalid", *argv);
} else if (strcmp(*argv, "flag") == 0) { } else if (strcmp(*argv, "flag") == 0) {
NEXT_ARG(); NEXT_ARG();
xfrm_policy_flag_parse(&req.xpinfo.flags, &argc, xfrm_policy_flag_parse(&req.xpinfo.flags, &argc,
...@@ -359,7 +359,7 @@ static int xfrm_policy_modify(int cmd, unsigned flags, int argc, char **argv) ...@@ -359,7 +359,7 @@ static int xfrm_policy_modify(int cmd, unsigned flags, int argc, char **argv)
} }
if (!dirp) { if (!dirp) {
fprintf(stderr, "Not enough information: \"DIR\" is required.\n"); fprintf(stderr, "Not enough information: DIR is required.\n");
exit(1); exit(1);
} }
...@@ -611,7 +611,7 @@ static int xfrm_policy_get_or_delete(int argc, char **argv, int delete, ...@@ -611,7 +611,7 @@ static int xfrm_policy_get_or_delete(int argc, char **argv, int delete,
NEXT_ARG(); NEXT_ARG();
if (get_u32(&req.xpid.index, *argv, 0)) if (get_u32(&req.xpid.index, *argv, 0))
invarg("\"INDEX\" is invalid", *argv); invarg("INDEX value is invalid", *argv);
} else if (strcmp(*argv, "ptype") == 0) { } else if (strcmp(*argv, "ptype") == 0) {
if (ptypep) if (ptypep)
...@@ -636,7 +636,7 @@ static int xfrm_policy_get_or_delete(int argc, char **argv, int delete, ...@@ -636,7 +636,7 @@ static int xfrm_policy_get_or_delete(int argc, char **argv, int delete,
} }
if (!dirp) { if (!dirp) {
fprintf(stderr, "Not enough information: \"DIR\" is required.\n"); fprintf(stderr, "Not enough information: DIR is required.\n");
exit(1); exit(1);
} }
if (ptypep) { if (ptypep) {
...@@ -644,7 +644,7 @@ static int xfrm_policy_get_or_delete(int argc, char **argv, int delete, ...@@ -644,7 +644,7 @@ static int xfrm_policy_get_or_delete(int argc, char **argv, int delete,
(void *)&upt, sizeof(upt)); (void *)&upt, sizeof(upt));
} }
if (!selp && !indexp) { if (!selp && !indexp) {
fprintf(stderr, "Not enough information: either \"SELECTOR\" or \"INDEX\" is required.\n"); fprintf(stderr, "Not enough information: either SELECTOR or INDEX is required.\n");
exit(1); exit(1);
} }
if (selp && indexp) if (selp && indexp)
...@@ -786,7 +786,7 @@ static int xfrm_policy_list_or_deleteall(int argc, char **argv, int deleteall) ...@@ -786,7 +786,7 @@ static int xfrm_policy_list_or_deleteall(int argc, char **argv, int deleteall)
} else if (strcmp(*argv, "index") == 0) { } else if (strcmp(*argv, "index") == 0) {
NEXT_ARG(); NEXT_ARG();
if (get_u32(&filter.xpinfo.index, *argv, 0)) if (get_u32(&filter.xpinfo.index, *argv, 0))
invarg("\"INDEX\" is invalid", *argv); invarg("INDEX value is invalid", *argv);
filter.index_mask = XFRM_FILTER_MASK_FULL; filter.index_mask = XFRM_FILTER_MASK_FULL;
...@@ -803,14 +803,14 @@ static int xfrm_policy_list_or_deleteall(int argc, char **argv, int deleteall) ...@@ -803,14 +803,14 @@ static int xfrm_policy_list_or_deleteall(int argc, char **argv, int deleteall)
else if (strcmp(*argv, "block") == 0) else if (strcmp(*argv, "block") == 0)
filter.xpinfo.action = XFRM_POLICY_BLOCK; filter.xpinfo.action = XFRM_POLICY_BLOCK;
else else
invarg("\"ACTION\" is invalid\n", *argv); invarg("ACTION value is invalid\n", *argv);
filter.action_mask = XFRM_FILTER_MASK_FULL; filter.action_mask = XFRM_FILTER_MASK_FULL;
} else if (strcmp(*argv, "priority") == 0) { } else if (strcmp(*argv, "priority") == 0) {
NEXT_ARG(); NEXT_ARG();
if (get_u32(&filter.xpinfo.priority, *argv, 0)) if (get_u32(&filter.xpinfo.priority, *argv, 0))
invarg("\"PRIORITY\" is invalid", *argv); invarg("PRIORITY value is invalid", *argv);
filter.priority_mask = XFRM_FILTER_MASK_FULL; filter.priority_mask = XFRM_FILTER_MASK_FULL;
......
...@@ -86,7 +86,7 @@ static void usage(void) ...@@ -86,7 +86,7 @@ static void usage(void)
fprintf(stderr, " ALGO-NAME ALGO-KEYMAT ALGO-ICV-LEN |\n"); fprintf(stderr, " ALGO-NAME ALGO-KEYMAT ALGO-ICV-LEN |\n");
fprintf(stderr, " %s", strxf_algotype(XFRMA_ALG_COMP)); fprintf(stderr, " %s", strxf_algotype(XFRMA_ALG_COMP));
fprintf(stderr, " ALGO-NAME\n"); fprintf(stderr, " ALGO-NAME\n");
fprintf(stderr, "MODE := transport | tunnel | beet | ro | in_trigger\n"); fprintf(stderr, "MODE := transport | tunnel | beet | ro | in_trigger\n");
fprintf(stderr, "FLAG-LIST := [ FLAG-LIST ] FLAG\n"); fprintf(stderr, "FLAG-LIST := [ FLAG-LIST ] FLAG\n");
fprintf(stderr, "FLAG := noecn | decap-dscp | nopmtudisc | wildrecv | icmp | af-unspec | align4\n"); fprintf(stderr, "FLAG := noecn | decap-dscp | nopmtudisc | wildrecv | icmp | af-unspec | align4\n");
fprintf(stderr, "SELECTOR := [ src ADDR[/PLEN] ] [ dst ADDR[/PLEN] ] [ dev DEV ] [ UPSPEC ]\n"); fprintf(stderr, "SELECTOR := [ src ADDR[/PLEN] ] [ dst ADDR[/PLEN] ] [ dev DEV ] [ UPSPEC ]\n");
...@@ -175,7 +175,7 @@ static int xfrm_seq_parse(__u32 *seq, int *argcp, char ***argvp) ...@@ -175,7 +175,7 @@ static int xfrm_seq_parse(__u32 *seq, int *argcp, char ***argvp)
char **argv = *argvp; char **argv = *argvp;
if (get_u32(seq, *argv, 0)) if (get_u32(seq, *argv, 0))
invarg("\"SEQ\" is invalid", *argv); invarg("SEQ value is invalid", *argv);
*seq = htonl(*seq); *seq = htonl(*seq);
...@@ -195,7 +195,7 @@ static int xfrm_state_flag_parse(__u8 *flags, int *argcp, char ***argvp) ...@@ -195,7 +195,7 @@ static int xfrm_state_flag_parse(__u8 *flags, int *argcp, char ***argvp)
__u8 val = 0; __u8 val = 0;
if (get_u8(&val, *argv, 16)) if (get_u8(&val, *argv, 16))
invarg("\"FLAG\" is invalid", *argv); invarg("FLAG value is invalid", *argv);
*flags = val; *flags = val;
} else { } else {
while (1) { while (1) {
...@@ -281,15 +281,15 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv) ...@@ -281,15 +281,15 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv)
} else if (strcmp(*argv, "replay-window") == 0) { } else if (strcmp(*argv, "replay-window") == 0) {
NEXT_ARG(); NEXT_ARG();
if (get_u8(&req.xsinfo.replay_window, *argv, 0)) if (get_u8(&req.xsinfo.replay_window, *argv, 0))
invarg("\"replay-window\" value is invalid", *argv); invarg("value after \"replay-window\" is invalid", *argv);
} else if (strcmp(*argv, "replay-seq") == 0) { } else if (strcmp(*argv, "replay-seq") == 0) {
NEXT_ARG(); NEXT_ARG();
if (get_u32(&replay.seq, *argv, 0)) if (get_u32(&replay.seq, *argv, 0))
invarg("\"replay-seq\" value is invalid", *argv); invarg("value after \"replay-seq\" is invalid", *argv);
} else if (strcmp(*argv, "replay-oseq") == 0) { } else if (strcmp(*argv, "replay-oseq") == 0) {
NEXT_ARG(); NEXT_ARG();
if (get_u32(&replay.oseq, *argv, 0)) if (get_u32(&replay.oseq, *argv, 0))
invarg("\"replay-oseq\" value is invalid", *argv); invarg("value after \"replay-oseq\" is invalid", *argv);
} else if (strcmp(*argv, "flag") == 0) { } else if (strcmp(*argv, "flag") == 0) {
NEXT_ARG(); NEXT_ARG();
xfrm_state_flag_parse(&req.xsinfo.flags, &argc, &argv); xfrm_state_flag_parse(&req.xsinfo.flags, &argc, &argv);
...@@ -308,11 +308,11 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv) ...@@ -308,11 +308,11 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv)
xfrm_encap_type_parse(&encap.encap_type, &argc, &argv); xfrm_encap_type_parse(&encap.encap_type, &argc, &argv);
NEXT_ARG(); NEXT_ARG();
if (get_u16(&encap.encap_sport, *argv, 0)) if (get_u16(&encap.encap_sport, *argv, 0))
invarg("\"encap\" sport value is invalid", *argv); invarg("SPORT value after \"encap\" is invalid", *argv);
encap.encap_sport = htons(encap.encap_sport); encap.encap_sport = htons(encap.encap_sport);
NEXT_ARG(); NEXT_ARG();
if (get_u16(&encap.encap_dport, *argv, 0)) if (get_u16(&encap.encap_dport, *argv, 0))
invarg("\"encap\" dport value is invalid", *argv); invarg("DPORT value after \"encap\" is invalid", *argv);
encap.encap_dport = htons(encap.encap_dport); encap.encap_dport = htons(encap.encap_dport);
NEXT_ARG(); NEXT_ARG();
get_addr(&oa, *argv, AF_UNSPEC); get_addr(&oa, *argv, AF_UNSPEC);
...@@ -331,9 +331,9 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv) ...@@ -331,9 +331,9 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv)
get_prefix(&coa, *argv, preferred_family); get_prefix(&coa, *argv, preferred_family);
if (coa.family == AF_UNSPEC) if (coa.family == AF_UNSPEC)
invarg("\"coa\" address family is AF_UNSPEC", *argv); invarg("value after \"coa\" has an unrecognized address family", *argv);
if (coa.bytelen > sizeof(xcoa)) if (coa.bytelen > sizeof(xcoa))
invarg("\"coa\" address length is too large", *argv); invarg("value after \"coa\" is too large", *argv);
memset(&xcoa, 0, sizeof(xcoa)); memset(&xcoa, 0, sizeof(xcoa));
memcpy(&xcoa, &coa.data, coa.bytelen); memcpy(&xcoa, &coa.data, coa.bytelen);
...@@ -402,7 +402,7 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv) ...@@ -402,7 +402,7 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv)
break; break;
default: default:
/* not reached */ /* not reached */
invarg("\"ALGO-TYPE\" is invalid\n", *argv); invarg("ALGO-TYPE value is invalid\n", *argv);
} }
if (!NEXT_ARG_OK()) if (!NEXT_ARG_OK())
...@@ -431,7 +431,7 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv) ...@@ -431,7 +431,7 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv)
missarg("ALGO-ICV-LEN"); missarg("ALGO-ICV-LEN");
NEXT_ARG(); NEXT_ARG();
if (get_u32(&icvlen, *argv, 0)) if (get_u32(&icvlen, *argv, 0))
invarg("\"aead\" ICV length is invalid", invarg("ALGO-ICV-LEN value is invalid",
*argv); *argv);
alg.u.aead.alg_icv_len = icvlen; alg.u.aead.alg_icv_len = icvlen;
...@@ -443,7 +443,7 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv) ...@@ -443,7 +443,7 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv)
missarg("ALGO-TRUNC-LEN"); missarg("ALGO-TRUNC-LEN");
NEXT_ARG(); NEXT_ARG();
if (get_u32(&trunclen, *argv, 0)) if (get_u32(&trunclen, *argv, 0))
invarg("\"auth\" trunc length is invalid", invarg("ALGO-TRUNC-LEN value is invalid",
*argv); *argv);
alg.u.auth.alg_trunc_len = trunclen; alg.u.auth.alg_trunc_len = trunclen;
...@@ -481,7 +481,7 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv) ...@@ -481,7 +481,7 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv)
(void *)&replay, sizeof(replay)); (void *)&replay, sizeof(replay));
if (!idp) { if (!idp) {
fprintf(stderr, "Not enough information: \"ID\" is required\n"); fprintf(stderr, "Not enough information: ID is required\n");
exit(1); exit(1);
} }
...@@ -660,7 +660,7 @@ static int xfrm_state_allocspi(int argc, char **argv) ...@@ -660,7 +660,7 @@ static int xfrm_state_allocspi(int argc, char **argv)
NEXT_ARG(); NEXT_ARG();
if (get_u32(&req.xspi.min, *argv, 0)) if (get_u32(&req.xspi.min, *argv, 0))
invarg("\"min\" value is invalid", *argv); invarg("value after \"min\" is invalid", *argv);
} else if (strcmp(*argv, "max") == 0) { } else if (strcmp(*argv, "max") == 0) {
if (maxp) if (maxp)
duparg("max", *argv); duparg("max", *argv);
...@@ -669,7 +669,7 @@ static int xfrm_state_allocspi(int argc, char **argv) ...@@ -669,7 +669,7 @@ static int xfrm_state_allocspi(int argc, char **argv)
NEXT_ARG(); NEXT_ARG();
if (get_u32(&req.xspi.max, *argv, 0)) if (get_u32(&req.xspi.max, *argv, 0))
invarg("\"max\" value is invalid", *argv); invarg("value after \"max\" is invalid", *argv);
} else { } else {
/* try to assume ID */ /* try to assume ID */
if (idp) if (idp)
...@@ -680,7 +680,7 @@ static int xfrm_state_allocspi(int argc, char **argv) ...@@ -680,7 +680,7 @@ static int xfrm_state_allocspi(int argc, char **argv)
xfrm_id_parse(&req.xspi.info.saddr, &req.xspi.info.id, xfrm_id_parse(&req.xspi.info.saddr, &req.xspi.info.id,
&req.xspi.info.family, 0, &argc, &argv); &req.xspi.info.family, 0, &argc, &argv);
if (req.xspi.info.id.spi) { if (req.xspi.info.id.spi) {
fprintf(stderr, "\"SPI\" must be zero\n"); fprintf(stderr, "\"spi\" is invalid\n");
exit(1); exit(1);
} }
if (preferred_family == AF_UNSPEC) if (preferred_family == AF_UNSPEC)
...@@ -690,7 +690,7 @@ static int xfrm_state_allocspi(int argc, char **argv) ...@@ -690,7 +690,7 @@ static int xfrm_state_allocspi(int argc, char **argv)
} }
if (!idp) { if (!idp) {
fprintf(stderr, "Not enough information: \"ID\" is required\n"); fprintf(stderr, "Not enough information: ID is required\n");
exit(1); exit(1);
} }
...@@ -700,7 +700,7 @@ static int xfrm_state_allocspi(int argc, char **argv) ...@@ -700,7 +700,7 @@ static int xfrm_state_allocspi(int argc, char **argv)
exit(1); exit(1);
} }
if (req.xspi.min > req.xspi.max) { if (req.xspi.min > req.xspi.max) {
fprintf(stderr, "\"min\" value is larger than \"max\" value\n"); fprintf(stderr, "value after \"min\" is larger than value after \"max\"\n");
exit(1); exit(1);
} }
} else { } else {
...@@ -1215,7 +1215,7 @@ static int xfrm_state_flush(int argc, char **argv) ...@@ -1215,7 +1215,7 @@ static int xfrm_state_flush(int argc, char **argv)
ret = xfrm_xfrmproto_getbyname(*argv); ret = xfrm_xfrmproto_getbyname(*argv);
if (ret < 0) if (ret < 0)
invarg("\"XFRM-PROTO\" is invalid", *argv); invarg("XFRM-PROTO value is invalid", *argv);
req.xsf.proto = (__u8)ret; req.xsf.proto = (__u8)ret;
} else } else
...@@ -1228,7 +1228,7 @@ static int xfrm_state_flush(int argc, char **argv) ...@@ -1228,7 +1228,7 @@ static int xfrm_state_flush(int argc, char **argv)
exit(1); exit(1);
if (show_stats > 1) if (show_stats > 1)
fprintf(stderr, "Flush state proto=%s\n", fprintf(stderr, "Flush state with XFRM-PROTO value \"%s\"\n",
strxf_xfrmproto(req.xsf.proto)); strxf_xfrmproto(req.xsf.proto));
if (rtnl_talk(&rth, &req.n, 0, 0, NULL) < 0) if (rtnl_talk(&rth, &req.n, 0, 0, NULL) < 0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment