diff options
Diffstat (limited to 'iptables')
-rw-r--r-- | iptables/ip6tables.c | 22 | ||||
-rw-r--r-- | iptables/iptables.c | 20 | ||||
-rw-r--r-- | iptables/nft-shared.c | 6 | ||||
-rw-r--r-- | iptables/xshared.c | 2 | ||||
-rw-r--r-- | iptables/xshared.h | 2 |
5 files changed, 15 insertions, 37 deletions
diff --git a/iptables/ip6tables.c b/iptables/ip6tables.c index 044d9a33..e967c040 100644 --- a/iptables/ip6tables.c +++ b/iptables/ip6tables.c @@ -759,28 +759,16 @@ print_iface(char letter, const char *iface, const unsigned char *mask, } } -/* The ip6tables looks up the /etc/protocols. */ static void print_proto(uint16_t proto, int invert) { if (proto) { - unsigned int i; + const char *pname = proto_to_name(proto, 0); const char *invertstr = invert ? " !" : ""; - const struct protoent *pent = getprotobynumber(proto); - if (pent) { - printf("%s -p %s", - invertstr, pent->p_name); - return; - } - - for (i = 0; xtables_chain_protos[i].name != NULL; ++i) - if (xtables_chain_protos[i].num == proto) { - printf("%s -p %s", - invertstr, xtables_chain_protos[i].name); - return; - } - - printf("%s -p %u", invertstr, proto); + if (pname) + printf("%s -p %s", invertstr, pname); + else + printf("%s -p %u", invertstr, proto); } } diff --git a/iptables/iptables.c b/iptables/iptables.c index da67dd2e..b925f089 100644 --- a/iptables/iptables.c +++ b/iptables/iptables.c @@ -727,23 +727,13 @@ list_entries(const xt_chainlabel chain, int rulenum, int verbose, int numeric, static void print_proto(uint16_t proto, int invert) { if (proto) { - unsigned int i; + const char *pname = proto_to_name(proto, 0); const char *invertstr = invert ? " !" : ""; - const struct protoent *pent = getprotobynumber(proto); - if (pent) { - printf("%s -p %s", invertstr, pent->p_name); - return; - } - - for (i = 0; xtables_chain_protos[i].name != NULL; ++i) - if (xtables_chain_protos[i].num == proto) { - printf("%s -p %s", - invertstr, xtables_chain_protos[i].name); - return; - } - - printf("%s -p %u", invertstr, proto); + if (pname) + printf("%s -p %s", invertstr, pname); + else + printf("%s -p %u", invertstr, proto); } } diff --git a/iptables/nft-shared.c b/iptables/nft-shared.c index c1664b50..4253b081 100644 --- a/iptables/nft-shared.c +++ b/iptables/nft-shared.c @@ -826,13 +826,13 @@ void save_rule_details(const struct iptables_command_state *cs, } if (proto > 0) { - const struct protoent *pent = getprotobynumber(proto); + const char *pname = proto_to_name(proto, 0); if (invflags & XT_INV_PROTO) printf("! "); - if (pent) - printf("-p %s ", pent->p_name); + if (pname) + printf("-p %s ", pname); else printf("-p %u ", proto); } diff --git a/iptables/xshared.c b/iptables/xshared.c index a3f473ea..49a88de5 100644 --- a/iptables/xshared.c +++ b/iptables/xshared.c @@ -48,7 +48,7 @@ void print_extension_helps(const struct xtables_target *t, } const char * -proto_to_name(uint8_t proto, int nolookup) +proto_to_name(uint16_t proto, int nolookup) { unsigned int i; diff --git a/iptables/xshared.h b/iptables/xshared.h index dace221b..823894f9 100644 --- a/iptables/xshared.h +++ b/iptables/xshared.h @@ -162,7 +162,7 @@ enum { extern void print_extension_helps(const struct xtables_target *, const struct xtables_rule_match *); -extern const char *proto_to_name(uint8_t, int); +extern const char *proto_to_name(uint16_t, int); extern int command_default(struct iptables_command_state *, struct xtables_globals *, bool invert); extern struct xtables_match *load_proto(struct iptables_command_state *); |