]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
libxtables: expose new etherdb lookup function through libxtables API
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 19 Oct 2018 11:06:53 +0000 (13:06 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Sat, 20 Oct 2018 09:14:15 +0000 (11:14 +0200)
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>
extensions/libebt_arp.c
extensions/libebt_vlan.c
include/ebtables/ethernetdb.h [deleted file]
include/xtables.h
iptables/nft-bridge.c
iptables/xtables-eb-translate.c
iptables/xtables-eb.c
libxtables/getethertype.c

index 3a4c29b5fd3ed2f438f6b29bde04d5b9c86193fa..522c57c0156d998af7b366fbc94af125edf87bdd 100644 (file)
@@ -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
index 57c4dd5bca5de784e5ce603c7cda3a9a71953736..a2a9dcce531ce51a3c6d103fced153ba877b80b5 100644 (file)
@@ -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 (file)
index 08b4335..0000000
+++ /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 */
index bf169b08186f5eaacfc9d71d62315a355a7e95a4..8fb8843ac4f4fc1a74b4c73557a776de3453c678 100644 (file)
@@ -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.
index 876981ac58623860629c751c19c6679b3e08766e..35c862cfda81f66e0e58e749127c25f034f61a04 100644 (file)
@@ -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"
index 44419751fc8571c6bba94269d5cc4021ae406682..f98c385555eb1cef5352408a158df4baa2974df0 100644 (file)
@@ -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;
index ecb758c65c77afe29a96fe98cd2a97ff04fed0fc..64f332c171433bc4bbd0ad9862a8c1be17d3ce90 100644 (file)
@@ -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;
index a4c1407cf87c0deef20464dfa24fc24bf3aeeb37..59949b7903615dee1962bb2e91c7b3c541776df3 100644 (file)
@@ -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);
        }