summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2018-10-19 13:06:53 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2018-10-20 11:14:15 +0200
commitabae556c886d94751128c0deb0feee9589fda4c3 (patch)
treef7fbcd9dcfa24ef80734d593ee80b847684e07b2
parentc2d9ed99316f26de2d57d9798eee50034114540b (diff)
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 <fw@strlen.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Acked-by: Phil Sutter <phil@nwl.cc>
-rw-r--r--extensions/libebt_arp.c4
-rw-r--r--extensions/libebt_vlan.c1
-rw-r--r--include/ebtables/ethernetdb.h45
-rw-r--r--include/xtables.h12
-rw-r--r--iptables/nft-bridge.c1
-rw-r--r--iptables/xtables-eb-translate.c3
-rw-r--r--iptables/xtables-eb.c3
-rw-r--r--libxtables/getethertype.c7
8 files changed, 19 insertions, 57 deletions
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 <xtables.h>
#include <netinet/ether.h>
-#include <ebtables/ethernetdb.h>
+#include <xtables.h>
#include <net/if_arp.h>
#include <linux/netfilter_bridge/ebt_arp.h>
#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 <getopt.h>
#include <ctype.h>
#include <xtables.h>
-#include <ebtables/ethernetdb.h>
#include <linux/netfilter_bridge/ebt_vlan.h>
#include <linux/if_ether.h>
#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 <features.h>
-#include <netinet/in.h>
-#include <stdint.h>
-
-/* 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 <xtables.h>
#include <libiptc/libxtc.h>
#include <linux/netfilter/nf_tables.h>
-#include <ebtables/ethernetdb.h>
#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 <linux/netfilter_bridge.h>
#include <linux/netfilter/nf_tables.h>
-#include <ebtables/ethernetdb.h>
#include <libiptc/libxtc.h>
#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 <linux/netfilter_bridge.h>
#include <linux/netfilter/nf_tables.h>
-#include <ebtables/ethernetdb.h>
#include <libiptc/libxtc.h>
#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 <string.h>
#include <netinet/ether.h>
#include <net/ethernet.h>
-
-#include <ebtables/ethernetdb.h>
+#include <xtables.h>
#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);
}