forked from jengelh/iptables
Jan Engelhardt
4fccb45841
OBS-URL: https://build.opensuse.org/package/show/security:netfilter/iptables?expand=0&rev=72
89 lines
2.9 KiB
Diff
89 lines
2.9 KiB
Diff
From cccfff9309743f173c504dd265fae173caa5b47f Mon Sep 17 00:00:00 2001
|
|
From: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Date: Sat, 16 Mar 2013 12:11:07 +0100
|
|
Subject: [PATCH] libip6t_NETMAP: Use xtables_ip6mask_to_cidr and get rid of
|
|
libip6tc dependency
|
|
|
|
This patch changes the NETMAP target extension (IPv6 side) to use
|
|
the xtables_ip6mask_to_cidr available in libxtables.
|
|
|
|
As a side effect, we get rid of the libip6tc dependency.
|
|
|
|
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
---
|
|
extensions/GNUmakefile.in | 1 -
|
|
extensions/libip6t_NETMAP.c | 2 +-
|
|
include/libiptc/libip6tc.h | 3 ---
|
|
iptables/ip6tables.c | 2 +-
|
|
libiptc/libip6tc.c | 2 +-
|
|
5 files changed, 3 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/extensions/GNUmakefile.in b/extensions/GNUmakefile.in
|
|
index adad4d6..3db6985 100644
|
|
--- a/extensions/GNUmakefile.in
|
|
+++ b/extensions/GNUmakefile.in
|
|
@@ -105,7 +105,6 @@ libxt_state.so: libxt_conntrack.so
|
|
${AM_VERBOSE_GEN} ln -fs $< $@
|
|
|
|
# Need the LIBADDs in iptables/Makefile.am too for libxtables_la_LIBADD
|
|
-ip6t_NETMAP_LIBADD = ../libiptc/libip6tc.la
|
|
xt_RATEEST_LIBADD = -lm
|
|
xt_statistic_LIBADD = -lm
|
|
|
|
diff --git a/extensions/libip6t_NETMAP.c b/extensions/libip6t_NETMAP.c
|
|
index d14dece..a4df70e 100644
|
|
--- a/extensions/libip6t_NETMAP.c
|
|
+++ b/extensions/libip6t_NETMAP.c
|
|
@@ -61,7 +61,7 @@ static void NETMAP_print(const void *ip, const struct xt_entry_target *target,
|
|
printf("%s", xtables_ip6addr_to_numeric(&a));
|
|
for (i = 0; i < 4; i++)
|
|
a.s6_addr32[i] = ~(r->min_addr.ip6[i] ^ r->max_addr.ip6[i]);
|
|
- bits = ipv6_prefix_length(&a);
|
|
+ bits = xtables_ip6mask_to_cidr(&a);
|
|
if (bits < 0)
|
|
printf("/%s", xtables_ip6addr_to_numeric(&a));
|
|
else
|
|
diff --git a/include/libiptc/libip6tc.h b/include/libiptc/libip6tc.h
|
|
index c656bc4..9aed80a 100644
|
|
--- a/include/libiptc/libip6tc.h
|
|
+++ b/include/libiptc/libip6tc.h
|
|
@@ -154,9 +154,6 @@ int ip6tc_get_raw_socket(void);
|
|
/* Translates errno numbers into more human-readable form than strerror. */
|
|
const char *ip6tc_strerror(int err);
|
|
|
|
-/* Return prefix length, or -1 if not contiguous */
|
|
-int ipv6_prefix_length(const struct in6_addr *a);
|
|
-
|
|
extern void dump_entries6(struct xtc_handle *const);
|
|
|
|
extern const struct xtc_ops ip6tc_ops;
|
|
diff --git a/iptables/ip6tables.c b/iptables/ip6tables.c
|
|
index 4cfbea3..7d02cc1 100644
|
|
--- a/iptables/ip6tables.c
|
|
+++ b/iptables/ip6tables.c
|
|
@@ -1022,7 +1022,7 @@ static void print_ip(const char *prefix, const struct in6_addr *ip,
|
|
const struct in6_addr *mask, int invert)
|
|
{
|
|
char buf[51];
|
|
- int l = ipv6_prefix_length(mask);
|
|
+ int l = xtables_ip6mask_to_cidr(mask);
|
|
|
|
if (l == 0 && !invert)
|
|
return;
|
|
diff --git a/libiptc/libip6tc.c b/libiptc/libip6tc.c
|
|
index 7128e1c..ca01bcb 100644
|
|
--- a/libiptc/libip6tc.c
|
|
+++ b/libiptc/libip6tc.c
|
|
@@ -113,7 +113,7 @@ typedef unsigned int socklen_t;
|
|
#define BIT6(a, l) \
|
|
((ntohl(a->s6_addr32[(l) / 32]) >> (31 - ((l) & 31))) & 1)
|
|
|
|
-int
|
|
+static int
|
|
ipv6_prefix_length(const struct in6_addr *a)
|
|
{
|
|
int l, i;
|
|
--
|
|
1.8.2
|
|
|