bridge: link: Port over to parse_on_off()
Convert bridge/link.c from a custom on_off parser to the new global one. Signed-off-by: Petr Machata <me@pmachata.org> Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
parent
e1ae6efbb8
commit
9262ccc3ed
|
|
@ -275,22 +275,6 @@ static void usage(void)
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool on_off(char *arg, __s8 *attr, char *val)
|
|
||||||
{
|
|
||||||
if (strcmp(val, "on") == 0)
|
|
||||||
*attr = 1;
|
|
||||||
else if (strcmp(val, "off") == 0)
|
|
||||||
*attr = 0;
|
|
||||||
else {
|
|
||||||
fprintf(stderr,
|
|
||||||
"Error: argument of \"%s\" must be \"on\" or \"off\"\n",
|
|
||||||
arg);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int brlink_modify(int argc, char **argv)
|
static int brlink_modify(int argc, char **argv)
|
||||||
{
|
{
|
||||||
struct {
|
struct {
|
||||||
|
|
@ -323,6 +307,7 @@ static int brlink_modify(int argc, char **argv)
|
||||||
__s16 mode = -1;
|
__s16 mode = -1;
|
||||||
__u16 flags = 0;
|
__u16 flags = 0;
|
||||||
struct rtattr *nest;
|
struct rtattr *nest;
|
||||||
|
int ret;
|
||||||
|
|
||||||
while (argc > 0) {
|
while (argc > 0) {
|
||||||
if (strcmp(*argv, "dev") == 0) {
|
if (strcmp(*argv, "dev") == 0) {
|
||||||
|
|
@ -330,40 +315,49 @@ static int brlink_modify(int argc, char **argv)
|
||||||
d = *argv;
|
d = *argv;
|
||||||
} else if (strcmp(*argv, "guard") == 0) {
|
} else if (strcmp(*argv, "guard") == 0) {
|
||||||
NEXT_ARG();
|
NEXT_ARG();
|
||||||
if (!on_off("guard", &bpdu_guard, *argv))
|
bpdu_guard = parse_on_off("guard", *argv, &ret);
|
||||||
return -1;
|
if (ret)
|
||||||
|
return ret;
|
||||||
} else if (strcmp(*argv, "hairpin") == 0) {
|
} else if (strcmp(*argv, "hairpin") == 0) {
|
||||||
NEXT_ARG();
|
NEXT_ARG();
|
||||||
if (!on_off("hairpin", &hairpin, *argv))
|
hairpin = parse_on_off("hairpin", *argv, &ret);
|
||||||
return -1;
|
if (ret)
|
||||||
|
return ret;
|
||||||
} else if (strcmp(*argv, "fastleave") == 0) {
|
} else if (strcmp(*argv, "fastleave") == 0) {
|
||||||
NEXT_ARG();
|
NEXT_ARG();
|
||||||
if (!on_off("fastleave", &fast_leave, *argv))
|
fast_leave = parse_on_off("fastleave", *argv, &ret);
|
||||||
return -1;
|
if (ret)
|
||||||
|
return ret;
|
||||||
} else if (strcmp(*argv, "root_block") == 0) {
|
} else if (strcmp(*argv, "root_block") == 0) {
|
||||||
NEXT_ARG();
|
NEXT_ARG();
|
||||||
if (!on_off("root_block", &root_block, *argv))
|
root_block = parse_on_off("root_block", *argv, &ret);
|
||||||
return -1;
|
if (ret)
|
||||||
|
return ret;
|
||||||
} else if (strcmp(*argv, "learning") == 0) {
|
} else if (strcmp(*argv, "learning") == 0) {
|
||||||
NEXT_ARG();
|
NEXT_ARG();
|
||||||
if (!on_off("learning", &learning, *argv))
|
learning = parse_on_off("learning", *argv, &ret);
|
||||||
return -1;
|
if (ret)
|
||||||
|
return ret;
|
||||||
} else if (strcmp(*argv, "learning_sync") == 0) {
|
} else if (strcmp(*argv, "learning_sync") == 0) {
|
||||||
NEXT_ARG();
|
NEXT_ARG();
|
||||||
if (!on_off("learning_sync", &learning_sync, *argv))
|
learning_sync = parse_on_off("learning_sync", *argv, &ret);
|
||||||
return -1;
|
if (ret)
|
||||||
|
return ret;
|
||||||
} else if (strcmp(*argv, "flood") == 0) {
|
} else if (strcmp(*argv, "flood") == 0) {
|
||||||
NEXT_ARG();
|
NEXT_ARG();
|
||||||
if (!on_off("flood", &flood, *argv))
|
flood = parse_on_off("flood", *argv, &ret);
|
||||||
return -1;
|
if (ret)
|
||||||
|
return ret;
|
||||||
} else if (strcmp(*argv, "mcast_flood") == 0) {
|
} else if (strcmp(*argv, "mcast_flood") == 0) {
|
||||||
NEXT_ARG();
|
NEXT_ARG();
|
||||||
if (!on_off("mcast_flood", &mcast_flood, *argv))
|
mcast_flood = parse_on_off("mcast_flood", *argv, &ret);
|
||||||
return -1;
|
if (ret)
|
||||||
|
return ret;
|
||||||
} else if (strcmp(*argv, "mcast_to_unicast") == 0) {
|
} else if (strcmp(*argv, "mcast_to_unicast") == 0) {
|
||||||
NEXT_ARG();
|
NEXT_ARG();
|
||||||
if (!on_off("mcast_to_unicast", &mcast_to_unicast, *argv))
|
mcast_to_unicast = parse_on_off("mcast_to_unicast", *argv, &ret);
|
||||||
return -1;
|
if (ret)
|
||||||
|
return ret;
|
||||||
} else if (strcmp(*argv, "cost") == 0) {
|
} else if (strcmp(*argv, "cost") == 0) {
|
||||||
NEXT_ARG();
|
NEXT_ARG();
|
||||||
cost = atoi(*argv);
|
cost = atoi(*argv);
|
||||||
|
|
@ -404,18 +398,19 @@ static int brlink_modify(int argc, char **argv)
|
||||||
flags |= BRIDGE_FLAGS_MASTER;
|
flags |= BRIDGE_FLAGS_MASTER;
|
||||||
} else if (strcmp(*argv, "neigh_suppress") == 0) {
|
} else if (strcmp(*argv, "neigh_suppress") == 0) {
|
||||||
NEXT_ARG();
|
NEXT_ARG();
|
||||||
if (!on_off("neigh_suppress", &neigh_suppress,
|
neigh_suppress = parse_on_off("neigh_suppress", *argv, &ret);
|
||||||
*argv))
|
if (ret)
|
||||||
return -1;
|
return ret;
|
||||||
} else if (strcmp(*argv, "vlan_tunnel") == 0) {
|
} else if (strcmp(*argv, "vlan_tunnel") == 0) {
|
||||||
NEXT_ARG();
|
NEXT_ARG();
|
||||||
if (!on_off("vlan_tunnel", &vlan_tunnel,
|
vlan_tunnel = parse_on_off("vlan_tunnel", *argv, &ret);
|
||||||
*argv))
|
if (ret)
|
||||||
return -1;
|
return ret;
|
||||||
} else if (strcmp(*argv, "isolated") == 0) {
|
} else if (strcmp(*argv, "isolated") == 0) {
|
||||||
NEXT_ARG();
|
NEXT_ARG();
|
||||||
if (!on_off("isolated", &isolated, *argv))
|
isolated = parse_on_off("isolated", *argv, &ret);
|
||||||
return -1;
|
if (ret)
|
||||||
|
return ret;
|
||||||
} else if (strcmp(*argv, "backup_port") == 0) {
|
} else if (strcmp(*argv, "backup_port") == 0) {
|
||||||
NEXT_ARG();
|
NEXT_ARG();
|
||||||
backup_port_idx = ll_name_to_index(*argv);
|
backup_port_idx = ll_name_to_index(*argv);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue