- remove matches() from networking/. Untested.
text data bss dec hex filename 1705 0 0 1705 6a9 networking/libiproute/utils.o.orig 1676 0 0 1676 68c networking/libiproute/utils.o 766 0 0 766 2fe networking/libiproute/rtm_map.o.orig 670 0 0 670 29e networking/libiproute/rtm_map.o 4942 0 0 4942 134e networking/libiproute/iptunnel.o.orig 4687 0 0 4687 124f networking/libiproute/iptunnel.o
This commit is contained in:
@@ -51,31 +51,40 @@ const char *rtnl_rtntype_n2a(int id, char *buf, int len)
|
||||
|
||||
int rtnl_rtntype_a2n(int *id, char *arg)
|
||||
{
|
||||
static const char * const keywords[] = {
|
||||
"local", "nat", "broadcast", "brd", "anycast",
|
||||
"multicast", "prohibit", "unreachable", "blackhole",
|
||||
"xresolve", "unicast", "throw", NULL
|
||||
};
|
||||
enum { ARG_local = 1, ARG_nat, ARG_broadcast, ARG_brd, ARG_anycast,
|
||||
ARG_multicast, ARG_prohibit, ARG_unreachable, ARG_blackhole,
|
||||
ARG_xresolve, ARG_unicast, ARG_throw
|
||||
};
|
||||
const smalluint key = index_in_substr_array(keywords, arg) + 1;
|
||||
char *end;
|
||||
unsigned long res;
|
||||
|
||||
if (strcmp(arg, "local") == 0)
|
||||
if (key == ARG_local)
|
||||
res = RTN_LOCAL;
|
||||
else if (strcmp(arg, "nat") == 0)
|
||||
else if (key == ARG_nat)
|
||||
res = RTN_NAT;
|
||||
else if (matches(arg, "broadcast") == 0 ||
|
||||
strcmp(arg, "brd") == 0)
|
||||
else if (key == ARG_broadcast || key == ARG_brd)
|
||||
res = RTN_BROADCAST;
|
||||
else if (matches(arg, "anycast") == 0)
|
||||
else if (key == ARG_anycast)
|
||||
res = RTN_ANYCAST;
|
||||
else if (matches(arg, "multicast") == 0)
|
||||
else if (key == ARG_multicast)
|
||||
res = RTN_MULTICAST;
|
||||
else if (matches(arg, "prohibit") == 0)
|
||||
else if (key == ARG_prohibit)
|
||||
res = RTN_PROHIBIT;
|
||||
else if (matches(arg, "unreachable") == 0)
|
||||
else if (key == ARG_unreachable)
|
||||
res = RTN_UNREACHABLE;
|
||||
else if (matches(arg, "blackhole") == 0)
|
||||
else if (key == ARG_blackhole)
|
||||
res = RTN_BLACKHOLE;
|
||||
else if (matches(arg, "xresolve") == 0)
|
||||
else if (key == ARG_xresolve)
|
||||
res = RTN_XRESOLVE;
|
||||
else if (matches(arg, "unicast") == 0)
|
||||
else if (key == ARG_unicast)
|
||||
res = RTN_UNICAST;
|
||||
else if (strcmp(arg, "throw") == 0)
|
||||
else if (key == ARG_throw)
|
||||
res = RTN_THROW;
|
||||
else {
|
||||
res = strtoul(arg, &end, 0);
|
||||
|
Reference in New Issue
Block a user