[PATCH iptables] libxtables: expose new etherdb lookup function through libxtables API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
---
 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           |  2 +-
 libxtables/getethertype.c       |  7 +++----
 8 files changed, 19 insertions(+), 56 deletions(-)
 delete mode 100644 include/ebtables/ethernetdb.h

diff --git a/extensions/libebt_arp.c b/extensions/libebt_arp.c
index 3a4c29b5fd3e..522c57c0156d 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 57c4dd5bca5d..a2a9dcce531c 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 08b433543c67..000000000000
--- 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 bf169b08186f..8fb8843ac4f4 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 876981ac5862..35c862cfda81 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 44419751fc85..f98c385555eb 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 ecb758c65c77..e3fd82686e68 100644
--- a/iptables/xtables-eb.c
+++ b/iptables/xtables-eb.c
@@ -1129,7 +1129,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 a4c1407cf87c..59949b790361 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);
 	}
 
-- 
2.11.0




[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux