From abae556c886d94751128c0deb0feee9589fda4c3 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Fri, 19 Oct 2018 13:06:53 +0200 Subject: libxtables: expose new etherdb lookup function through libxtables API This is used from extensions and included in libxtables, so we have to make them public. Fixes: 31f1434dfe37 ("libxtables: Integrate getethertype.c from xtables core") Reported-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso Acked-by: Phil Sutter --- extensions/libebt_arp.c | 4 ++-- extensions/libebt_vlan.c | 1 - include/ebtables/ethernetdb.h | 45 ----------------------------------------- include/xtables.h | 12 +++++++++++ iptables/nft-bridge.c | 1 - iptables/xtables-eb-translate.c | 3 +-- iptables/xtables-eb.c | 3 +-- libxtables/getethertype.c | 7 +++---- 8 files changed, 19 insertions(+), 57 deletions(-) delete mode 100644 include/ebtables/ethernetdb.h diff --git a/extensions/libebt_arp.c b/extensions/libebt_arp.c index 3a4c29b5..522c57c0 100644 --- a/extensions/libebt_arp.c +++ b/extensions/libebt_arp.c @@ -14,7 +14,7 @@ #include #include -#include +#include #include #include #include "iptables/nft.h" @@ -75,7 +75,7 @@ static void brarp_print_help(void) printf(" %d = %s\n", i + 1, opcodes[i]); printf( " hardware type string: 1 = Ethernet\n" -" protocol type string: see "_XT_PATH_ETHERTYPES"\n"); +" protocol type string: see "XT_PATH_ETHERTYPES"\n"); } #define OPT_OPCODE 0x01 diff --git a/extensions/libebt_vlan.c b/extensions/libebt_vlan.c index 57c4dd5b..a2a9dcce 100644 --- a/extensions/libebt_vlan.c +++ b/extensions/libebt_vlan.c @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include "iptables/nft.h" diff --git a/include/ebtables/ethernetdb.h b/include/ebtables/ethernetdb.h deleted file mode 100644 index 08b43354..00000000 --- a/include/ebtables/ethernetdb.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* All data returned by the network data base library are supplied in - host order and returned in network order (suitable for use in - system calls). */ - -#ifndef _ETHERNETDB_H -#define _ETHERNETDB_H 1 - -#include -#include -#include - -/* Absolute file name for network data base files. */ -#ifndef _XT_PATH_ETHERTYPES -#define _XT_PATH_ETHERTYPES "/etc/ethertypes" -#endif /* _PATH_ETHERTYPES */ - -struct xt_ethertypeent { - char *e_name; /* Official ethernet type name. */ - char **e_aliases; /* Alias list. */ - int e_ethertype; /* Ethernet type number. */ -}; - -/* Return entry from ethertype data base for network with NAME. */ -extern struct xt_ethertypeent *xtables_getethertypebyname(__const char *__name); - -/* Return entry from ethertype data base which number is PROTO. */ -extern struct xt_ethertypeent *xtables_getethertypebynumber(int __ethertype); - -#endif /* ethernetdb.h */ diff --git a/include/xtables.h b/include/xtables.h index bf169b08..8fb8843a 100644 --- a/include/xtables.h +++ b/include/xtables.h @@ -521,6 +521,18 @@ extern void xtables_ip6parse_any(const char *, struct in6_addr **, extern void xtables_ip6parse_multiple(const char *, struct in6_addr **, struct in6_addr **, unsigned int *); +/* Absolute file name for network data base files. */ +#define XT_PATH_ETHERTYPES "/etc/ethertypes" + +struct xt_ethertypeent { + char *e_name; /* Official ethernet type name. */ + char **e_aliases; /* Alias list. */ + int e_ethertype; /* Ethernet type number. */ +}; + +extern struct xt_ethertypeent *xtables_getethertypebyname(const char *name); +extern struct xt_ethertypeent *xtables_getethertypebynumber(int ethertype); + /** * Print the specified value to standard output, quoting dangerous * characters if required. diff --git a/iptables/nft-bridge.c b/iptables/nft-bridge.c index 876981ac..35c862cf 100644 --- a/iptables/nft-bridge.c +++ b/iptables/nft-bridge.c @@ -16,7 +16,6 @@ #include #include #include -#include #include "nft-shared.h" #include "nft-bridge.h" diff --git a/iptables/xtables-eb-translate.c b/iptables/xtables-eb-translate.c index 44419751..f98c3855 100644 --- a/iptables/xtables-eb-translate.c +++ b/iptables/xtables-eb-translate.c @@ -14,7 +14,6 @@ #include #include -#include #include #include "xshared.h" @@ -474,7 +473,7 @@ print_zero: ent = xtables_getethertypebyname(optarg); if (!ent) xtables_error(PARAMETER_PROBLEM, - "Problem with the specified Ethernet protocol '%s', perhaps "_XT_PATH_ETHERTYPES " is missing", optarg); + "Problem with the specified Ethernet protocol '%s', perhaps "XT_PATH_ETHERTYPES " is missing", optarg); cs.eb.ethproto = ent->e_ethertype; } else cs.eb.ethproto = i; diff --git a/iptables/xtables-eb.c b/iptables/xtables-eb.c index ecb758c6..64f332c1 100644 --- a/iptables/xtables-eb.c +++ b/iptables/xtables-eb.c @@ -37,7 +37,6 @@ #include #include -#include #include #include "xshared.h" #include "nft.h" @@ -1129,7 +1128,7 @@ print_zero: ent = xtables_getethertypebyname(optarg); if (!ent) xtables_error(PARAMETER_PROBLEM, - "Problem with the specified Ethernet protocol '%s', perhaps "_XT_PATH_ETHERTYPES " is missing", optarg); + "Problem with the specified Ethernet protocol '%s', perhaps "XT_PATH_ETHERTYPES " is missing", optarg); cs.eb.ethproto = ent->e_ethertype; } else cs.eb.ethproto = i; diff --git a/libxtables/getethertype.c b/libxtables/getethertype.c index a4c1407c..59949b79 100644 --- a/libxtables/getethertype.c +++ b/libxtables/getethertype.c @@ -42,8 +42,7 @@ #include #include #include - -#include +#include #define MAXALIASES 35 @@ -56,7 +55,7 @@ static int ethertype_stayopen; static void setethertypeent(int f) { if (etherf == NULL) - etherf = fopen(_XT_PATH_ETHERTYPES, "r"); + etherf = fopen(XT_PATH_ETHERTYPES, "r"); else rewind(etherf); ethertype_stayopen |= f; @@ -79,7 +78,7 @@ static struct xt_ethertypeent *getethertypeent(void) register char *cp, **q; if (etherf == NULL - && (etherf = fopen(_XT_PATH_ETHERTYPES, "r")) == NULL) { + && (etherf = fopen(XT_PATH_ETHERTYPES, "r")) == NULL) { return (NULL); } -- cgit v1.2.3