[packages/iptables] remove TPROXY-IPv6 patch dropped from spec in 9b1e8e3

atler atler at pld-linux.org
Thu Nov 19 13:48:57 CET 2020


commit 29b337f296b3174e2b553a1fd0d2d1fd72226be4
Author: Jan Palus <atler at pld-linux.org>
Date:   Thu Nov 19 13:43:53 2020 +0100

    remove TPROXY-IPv6 patch dropped from spec in 9b1e8e3

 iptables-TPROXY-IPv6.patch | 505 ---------------------------------------------
 1 file changed, 505 deletions(-)
---
diff --git a/iptables-TPROXY-IPv6.patch b/iptables-TPROXY-IPv6.patch
deleted file mode 100644
index 1f382e7..0000000
--- a/iptables-TPROXY-IPv6.patch
+++ /dev/null
@@ -1,505 +0,0 @@
-Date:	Thu, 21 Oct 2010 17:19:22 +0200
-From:	KOVACS Krisztian <hidden at balabit.hu>
-Subject: [PATCH 1/2] tproxy: add IPv6 support for socket match
-
-This patch also adds userspace support for the --transparent mode
-of matching, which the kernel already supports, but the iptables userspace
-doesn't.
-
-Signed-off-by: Balazs Scheidler <bazsi at balabit.hu>
-Signed-off-by: KOVACS Krisztian <hidden at balabit.hu>
----
- extensions/libxt_socket.c           |  103 ++++++++++++++++++++++++++++++++---
- extensions/libxt_socket.man         |    6 ++
- include/linux/netfilter/xt_socket.h |   12 ++++
- 3 files changed, 112 insertions(+), 9 deletions(-)
- create mode 100644 include/linux/netfilter/xt_socket.h
-
-diff --git a/extensions/libxt_socket.c b/extensions/libxt_socket.c
-index 1490473..5705466 100644
---- a/extensions/libxt_socket.c
-+++ b/extensions/libxt_socket.c
-@@ -1,19 +1,106 @@
- /*
-  * Shared library add-on to iptables to add early socket matching support.
-  *
-- * Copyright (C) 2007 BalaBit IT Ltd.
-+ * Copyright (C) 2007, 2009 BalaBit IT Ltd.
-  */
-+#include <stdio.h>
-+#include <getopt.h>
- #include <xtables.h>
-+#include <linux/netfilter/xt_socket.h>
- 
--static struct xtables_match socket_mt_reg = {
--	.name	       = "socket",
--	.version       = XTABLES_VERSION,
--	.family	       = NFPROTO_IPV4,
--	.size	       = XT_ALIGN(0),
--	.userspacesize = XT_ALIGN(0),
-+static void socket_mt_help_v0(void)
-+{
-+	printf("socket match has no options.\n\n");
-+}
-+
-+static void socket_mt_help_v1(void)
-+{
-+	printf("socket match options:\n"
-+"--transparent	    Matches only if the socket's transparent option is set\n");
-+}
-+
-+static const struct option socket_opts_v1[] = {
-+	{ "transparent", 0, NULL, '1' },
-+	{ }
-+};
-+
-+static int socket_mt_parse_v0(int c, char **argv, int invert,
-+			      unsigned int *flags, const void *entry,
-+			      struct xt_entry_match **match)
-+{
-+	return 0;
-+}
-+
-+static int socket_mt_parse_v1(int c, char **argv, int invert,
-+			      unsigned int *flags, const void *entry,
-+			      struct xt_entry_match **match)
-+{
-+	struct xt_socket_mtinfo1 *info = (void *) (*match)->data;
-+
-+	switch (c) {
-+	case '1':
-+		if (*flags)
-+			xtables_error(PARAMETER_PROBLEM,
-+				      "Can't specify multiple --transparent");
-+		info->flags |= XT_SOCKET_TRANSPARENT;
-+		*flags = 1;
-+		break;
-+	default:
-+		return 0;
-+	}
-+	return 1;
-+}
-+
-+static void socket_mt_check(unsigned int flags)
-+{
-+}
-+
-+static void socket_mt_print_v1(const void *ip,
-+			       const struct xt_entry_match *match,
-+			       int numeric)
-+{
-+	const struct xt_socket_mtinfo1 *info = (const void *)match->data;
-+	printf("socket ");
-+	if (info->flags & XT_SOCKET_TRANSPARENT)
-+		printf("transparent ");
-+}
-+
-+static void socket_mt_save_v1(const void *ip,
-+			      const struct xt_entry_match *match)
-+{
-+	const struct xt_socket_mtinfo1 *info = (const void *)match->data;
-+
-+	if (info->flags & XT_SOCKET_TRANSPARENT)
-+		printf("--transparent ");
-+}
-+
-+static struct xtables_match socket_matches[] = {
-+	{
-+		.name		= "socket",
-+		.revision	= 0,
-+		.version	= XTABLES_VERSION,
-+		.family		= NFPROTO_IPV4,
-+		.parse		= socket_mt_parse_v0,
-+		.final_check	= socket_mt_check,
-+		.help		= socket_mt_help_v0,
-+	},
-+	{
-+		.name		= "socket",
-+		.version	= XTABLES_VERSION,
-+		.revision	= 1,
-+		.family		= NFPROTO_UNSPEC,
-+		.size		= XT_ALIGN(sizeof(struct xt_socket_mtinfo1)),
-+		.userspacesize	= XT_ALIGN(sizeof(struct xt_socket_mtinfo1)),
-+		.parse		= socket_mt_parse_v1,
-+		.print		= socket_mt_print_v1,
-+		.save		= socket_mt_save_v1,
-+		.final_check	= socket_mt_check,
-+		.help		= socket_mt_help_v1,
-+		.extra_opts	= socket_opts_v1,
-+	}
- };
- 
- void _init(void)
- {
--	xtables_register_match(&socket_mt_reg);
-+	xtables_register_matches(socket_matches, ARRAY_SIZE(socket_matches));
- }
-diff --git a/extensions/libxt_socket.man b/extensions/libxt_socket.man
-index 50c8854..edc9d75 100644
---- a/extensions/libxt_socket.man
-+++ b/extensions/libxt_socket.man
-@@ -1,2 +1,6 @@
- This matches if an open socket can be found by doing a socket lookup on the
--packet.
-+packet which doesn\'t listen on the \'any\' IP address (0.0.0.0).
-+.TP
-+.BI "\-\-transparent"
-+Enables additional check, that the actual socket's transparent socket option
-+has to be set.
-diff --git a/include/linux/netfilter/xt_socket.h b/include/linux/netfilter/xt_socket.h
-new file mode 100644
-index 0000000..6f475b8
---- /dev/null
-+++ b/include/linux/netfilter/xt_socket.h
-@@ -0,0 +1,12 @@
-+#ifndef _XT_SOCKET_H
-+#define _XT_SOCKET_H
-+
-+enum {
-+	XT_SOCKET_TRANSPARENT = 1 << 0,
-+};
-+
-+struct xt_socket_mtinfo1 {
-+	__u8 flags;
-+};
-+
-+#endif /* _XT_SOCKET_H */
-
-
-Date:	Thu, 21 Oct 2010 17:19:22 +0200
-From:	KOVACS Krisztian <hidden at balabit.hu>
-Subject: [PATCH 2/2] tproxy: add IPv6 support to the TPROXY target
-
-Signed-off-by: Balazs Scheidler <bazsi at balabit.hu>
-Signed-off-by: KOVACS Krisztian <hidden at balabit.hu>
----
- extensions/libxt_TPROXY.c           |  213 +++++++++++++++++++++++++++++------
- include/linux/netfilter/xt_TPROXY.h |    7 +
- 2 files changed, 183 insertions(+), 37 deletions(-)
-
-diff --git a/extensions/libxt_TPROXY.c b/extensions/libxt_TPROXY.c
-index cd0b50a..74d122c 100644
---- a/extensions/libxt_TPROXY.c
-+++ b/extensions/libxt_TPROXY.c
-@@ -1,7 +1,7 @@
- /*
-  * Shared library add-on to iptables to add TPROXY target support.
-  *
-- * Copyright (C) 2002-2008 BalaBit IT Ltd.
-+ * Copyright (C) 2002-2009 BalaBit IT Ltd.
-  */
- #include <getopt.h>
- #include <stdbool.h>
-@@ -15,8 +15,8 @@
- #include <linux/netfilter/xt_TPROXY.h>
- 
- static const struct option tproxy_tg_opts[] = {
--	{.name = "on-port",     .has_arg = true, .val = '1'},
--	{.name = "on-ip",       .has_arg = true, .val = '2'},
-+	{.name = "on-port",	.has_arg = true, .val = '1'},
-+	{.name = "on-ip",	.has_arg = true, .val = '2'},
- 	{.name = "tproxy-mark", .has_arg = true, .val = '3'},
- 	XT_GETOPT_TABLEEND,
- };
-@@ -36,44 +36,64 @@ static void tproxy_tg_help(void)
- "  --tproxy-mark value[/mask]	    Mark packets with the given value/mask\n\n");
- }
- 
--static void parse_tproxy_lport(const char *s, struct xt_tproxy_target_info *info)
-+static void parse_tproxy_lport(const char *s, unsigned short *lport)
- {
--	unsigned int lport;
-+	unsigned int value;
- 
--	if (xtables_strtoui(s, NULL, &lport, 0, UINT16_MAX))
--		info->lport = htons(lport);
-+	if (xtables_strtoui(s, NULL, &value, 0, UINT16_MAX))
-+		*lport = htons(value);
- 	else
- 		xtables_param_act(XTF_BAD_VALUE, "TPROXY", "--on-port", s);
- }
- 
--static void parse_tproxy_laddr(const char *s, struct xt_tproxy_target_info *info)
-+static void parse_tproxy_laddr_v0(const char *s, __be32 *laddr)
- {
--	struct in_addr *laddr;
-+	struct in_addr *ina;
- 
--	if ((laddr = xtables_numeric_to_ipaddr(s)) == NULL)
-+	if ((ina = xtables_numeric_to_ipaddr(s)) == NULL)
- 		xtables_param_act(XTF_BAD_VALUE, "TPROXY", "--on-ip", s);
- 
--	info->laddr = laddr->s_addr;
-+	*laddr = ina->s_addr;
- }
- 
--static void parse_tproxy_mark(char *s, struct xt_tproxy_target_info *info)
-+static void parse_tproxy_laddr(const char *s, int family, union nf_inet_addr *laddr)
-+{
-+
-+	if (family == NFPROTO_IPV6) {
-+		struct in6_addr *addr6;
-+
-+		if ((addr6 = xtables_numeric_to_ip6addr(s))) {
-+			laddr->in6 = *addr6;
-+		} else {
-+			xtables_param_act(XTF_BAD_VALUE, "TPROXY", "--on-ip", s);
-+		}
-+	} else {
-+		struct in_addr *addr;
-+
-+		if ((addr = xtables_numeric_to_ipaddr(s))) {
-+			laddr->in = *addr;
-+		} else {
-+			xtables_param_act(XTF_BAD_VALUE, "TPROXY", "--on-ip", s);
-+		}
-+
-+	}
-+}
-+
-+static void parse_tproxy_mark(char *s, unsigned int *value, unsigned int *mask)
- {
--	unsigned int value, mask = UINT32_MAX;
- 	char *end;
- 
--	if (!xtables_strtoui(s, &end, &value, 0, UINT32_MAX))
-+	*mask = UINT32_MAX;
-+	if (!xtables_strtoui(s, &end, value, 0, UINT32_MAX))
- 		xtables_param_act(XTF_BAD_VALUE, "TPROXY", "--tproxy-mark", s);
- 	if (*end == '/')
--		if (!xtables_strtoui(end + 1, &end, &mask, 0, UINT32_MAX))
-+		if (!xtables_strtoui(end + 1, &end, mask, 0, UINT32_MAX))
- 			xtables_param_act(XTF_BAD_VALUE, "TPROXY", "--tproxy-mark", s);
- 	if (*end != '\0')
- 		xtables_param_act(XTF_BAD_VALUE, "TPROXY", "--tproxy-mark", s);
--
--	info->mark_mask = mask;
--	info->mark_value = value;
- }
- 
--static int tproxy_tg_parse(int c, char **argv, int invert, unsigned int *flags,
-+static int tproxy_tg_parse_v0(int c, char **argv, int invert, unsigned int *flags,
- 			const void *entry, struct xt_entry_target **target)
- {
- 	struct xt_tproxy_target_info *tproxyinfo = (void *)(*target)->data;
-@@ -82,19 +102,19 @@ static int tproxy_tg_parse(int c, char **argv, int invert, unsigned int *flags,
- 	case '1':
- 		xtables_param_act(XTF_ONLY_ONCE, "TPROXY", "--on-port", *flags & PARAM_ONPORT);
- 		xtables_param_act(XTF_NO_INVERT, "TPROXY", "--on-port", invert);
--		parse_tproxy_lport(optarg, tproxyinfo);
-+		parse_tproxy_lport(optarg, &tproxyinfo->lport);
- 		*flags |= PARAM_ONPORT;
- 		return 1;
- 	case '2':
- 		xtables_param_act(XTF_ONLY_ONCE, "TPROXY", "--on-ip", *flags & PARAM_ONIP);
- 		xtables_param_act(XTF_NO_INVERT, "TPROXY", "--on-ip", invert);
--		parse_tproxy_laddr(optarg, tproxyinfo);
-+		parse_tproxy_laddr_v0(optarg, &tproxyinfo->laddr);
- 		*flags |= PARAM_ONIP;
- 		return 1;
- 	case '3':
- 		xtables_param_act(XTF_ONLY_ONCE, "TPROXY", "--tproxy-mark", *flags & PARAM_MARK);
- 		xtables_param_act(XTF_NO_INVERT, "TPROXY", "--tproxy-mark", invert);
--		parse_tproxy_mark(optarg, tproxyinfo);
-+		parse_tproxy_mark(optarg, &tproxyinfo->mark_value, &tproxyinfo->mark_mask);
- 		*flags |= PARAM_MARK;
- 		return 1;
- 	}
-@@ -102,6 +122,47 @@ static int tproxy_tg_parse(int c, char **argv, int invert, unsigned int *flags,
- 	return 0;
- }
- 
-+static int tproxy_tg_parse_v1(int family, int c, char **argv, int invert, unsigned int *flags,
-+			const void *entry, struct xt_entry_target **target)
-+{
-+	struct xt_tproxy_target_info_v1 *tproxyinfo = (void *)(*target)->data;
-+
-+	switch (c) {
-+	case '1':
-+		xtables_param_act(XTF_ONLY_ONCE, "TPROXY", "--on-port", *flags & PARAM_ONPORT);
-+		xtables_param_act(XTF_NO_INVERT, "TPROXY", "--on-port", invert);
-+		parse_tproxy_lport(optarg, &tproxyinfo->lport);
-+		*flags |= PARAM_ONPORT;
-+		return 1;
-+	case '2':
-+		xtables_param_act(XTF_ONLY_ONCE, "TPROXY", "--on-ip", *flags & PARAM_ONIP);
-+		xtables_param_act(XTF_NO_INVERT, "TPROXY", "--on-ip", invert);
-+		parse_tproxy_laddr(optarg, family, &tproxyinfo->laddr);
-+		*flags |= PARAM_ONIP;
-+		return 1;
-+	case '3':
-+		xtables_param_act(XTF_ONLY_ONCE, "TPROXY", "--tproxy-mark", *flags & PARAM_MARK);
-+		xtables_param_act(XTF_NO_INVERT, "TPROXY", "--tproxy-mark", invert);
-+		parse_tproxy_mark(optarg, &tproxyinfo->mark_value, &tproxyinfo->mark_mask);
-+		*flags |= PARAM_MARK;
-+		return 1;
-+	}
-+
-+	return 0;
-+}
-+
-+static int tproxy_tg_parse4_v1(int c, char **argv, int invert, unsigned int *flags,
-+			const void *entry, struct xt_entry_target **target)
-+{
-+	return tproxy_tg_parse_v1(NFPROTO_IPV4, c, argv, invert, flags, entry, target);
-+}
-+
-+static int tproxy_tg_parse6_v1(int c, char **argv, int invert, unsigned int *flags,
-+			const void *entry, struct xt_entry_target **target)
-+{
-+	return tproxy_tg_parse_v1(NFPROTO_IPV6, c, argv, invert, flags, entry, target);
-+}
-+
- static void tproxy_tg_check(unsigned int flags)
- {
- 	if (!(flags & PARAM_ONPORT))
-@@ -109,7 +170,7 @@ static void tproxy_tg_check(unsigned int flags)
- 			   "TPROXY target: Parameter --on-port is required");
- }
- 
--static void tproxy_tg_print(const void *ip, const struct xt_entry_target *target,
-+static void tproxy_tg_print_v0(const void *ip, const struct xt_entry_target *target,
- 			 int numeric)
- {
- 	const struct xt_tproxy_target_info *info = (const void *)target->data;
-@@ -119,7 +180,31 @@ static void tproxy_tg_print(const void *ip, const struct xt_entry_target *target
- 	       (unsigned int)info->mark_mask);
- }
- 
--static void tproxy_tg_save(const void *ip, const struct xt_entry_target *target)
-+static void tproxy_tg_print_v1(int family, const void *ip, const struct xt_entry_target *target,
-+			 int numeric)
-+{
-+	const struct xt_tproxy_target_info_v1 *info = (const void *)target->data;
-+	printf("TPROXY redirect %s:%u mark 0x%x/0x%x",
-+	       family == AF_INET
-+	       ? xtables_ipaddr_to_numeric(&info->laddr.in)
-+	       : xtables_ip6addr_to_numeric(&info->laddr.in6),
-+	       ntohs(info->lport), (unsigned int)info->mark_value,
-+	       (unsigned int)info->mark_mask);
-+}
-+
-+static void tproxy_tg_print4_v1(const void *ip, const struct xt_entry_target *target,
-+			       int numeric)
-+{
-+	return tproxy_tg_print_v1(NFPROTO_IPV4, ip, target, numeric);
-+}
-+
-+static void tproxy_tg_print6_v1(const void *ip, const struct xt_entry_target *target,
-+			       int numeric)
-+{
-+	return tproxy_tg_print_v1(NFPROTO_IPV6, ip, target, numeric);
-+}
-+
-+static void tproxy_tg_save_v0(const void *ip, const struct xt_entry_target *target)
- {
- 	const struct xt_tproxy_target_info *info = (const void *)target->data;
- 
-@@ -130,21 +215,75 @@ static void tproxy_tg_save(const void *ip, const struct xt_entry_target *target)
- 	       (unsigned int)info->mark_value, (unsigned int)info->mark_mask);
- }
- 
--static struct xtables_target tproxy_tg_reg = {
--	.name	       = "TPROXY",
--	.family	       = NFPROTO_IPV4,
--	.version       = XTABLES_VERSION,
--	.size	       = XT_ALIGN(sizeof(struct xt_tproxy_target_info)),
--	.userspacesize = XT_ALIGN(sizeof(struct xt_tproxy_target_info)),
--	.help	       = tproxy_tg_help,
--	.parse	       = tproxy_tg_parse,
--	.final_check   = tproxy_tg_check,
--	.print	       = tproxy_tg_print,
--	.save	       = tproxy_tg_save,
--	.extra_opts    = tproxy_tg_opts,
-+static void tproxy_tg_save_v1(int family, const void *ip, const struct xt_entry_target *target)
-+{
-+	const struct xt_tproxy_target_info_v1 *info = (const void *)target->data;
-+
-+	printf("--on-port %u ", ntohs(info->lport));
-+	printf("--on-ip %s ",
-+	       family == AF_INET
-+	       ? xtables_ipaddr_to_numeric(&info->laddr.in)
-+	       : xtables_ip6addr_to_numeric(&info->laddr.in6));
-+	printf("--tproxy-mark 0x%x/0x%x ",
-+	       (unsigned int)info->mark_value, (unsigned int)info->mark_mask);
-+}
-+
-+static void tproxy_tg_save4_v1(const void *ip, const struct xt_entry_target *target)
-+{
-+	return tproxy_tg_save_v1(NFPROTO_IPV4, ip, target);
-+}
-+
-+static void tproxy_tg_save6_v1(const void *ip, const struct xt_entry_target *target)
-+{
-+	return tproxy_tg_save_v1(NFPROTO_IPV6, ip, target);
-+}
-+
-+
-+static struct xtables_target tproxy_tg_reg[] = {
-+	{
-+		.name	       = "TPROXY",
-+		.family	       = NFPROTO_IPV4,
-+		.version       = XTABLES_VERSION,
-+		.size	       = XT_ALIGN(sizeof(struct xt_tproxy_target_info)),
-+		.userspacesize = XT_ALIGN(sizeof(struct xt_tproxy_target_info)),
-+		.help	       = tproxy_tg_help,
-+		.parse	       = tproxy_tg_parse_v0,
-+		.final_check   = tproxy_tg_check,
-+		.print	       = tproxy_tg_print_v0,
-+		.save	       = tproxy_tg_save_v0,
-+		.extra_opts    = tproxy_tg_opts,
-+	},
-+	{
-+		.name	       = "TPROXY",
-+		.family	       = NFPROTO_IPV4,
-+		.version       = XTABLES_VERSION,
-+		.revision      = 1,
-+		.size	       = XT_ALIGN(sizeof(struct xt_tproxy_target_info_v1)),
-+		.userspacesize = XT_ALIGN(sizeof(struct xt_tproxy_target_info_v1)),
-+		.help	       = tproxy_tg_help,
-+		.parse	       = tproxy_tg_parse4_v1,
-+		.final_check   = tproxy_tg_check,
-+		.print	       = tproxy_tg_print4_v1,
-+		.save	       = tproxy_tg_save4_v1,
-+		.extra_opts    = tproxy_tg_opts,
-+	},
-+	{
-+		.name	       = "TPROXY",
-+		.family	       = NFPROTO_IPV6,
-+		.version       = XTABLES_VERSION,
-+		.revision      = 1,
-+		.size	       = XT_ALIGN(sizeof(struct xt_tproxy_target_info_v1)),
-+		.userspacesize = XT_ALIGN(sizeof(struct xt_tproxy_target_info_v1)),
-+		.help	       = tproxy_tg_help,
-+		.parse	       = tproxy_tg_parse6_v1,
-+		.final_check   = tproxy_tg_check,
-+		.print	       = tproxy_tg_print6_v1,
-+		.save	       = tproxy_tg_save6_v1,
-+		.extra_opts    = tproxy_tg_opts,
-+	},
- };
- 
- void _init(void)
- {
--	xtables_register_target(&tproxy_tg_reg);
-+	xtables_register_targets(tproxy_tg_reg, ARRAY_SIZE(tproxy_tg_reg));
- }
-diff --git a/include/linux/netfilter/xt_TPROXY.h b/include/linux/netfilter/xt_TPROXY.h
-index 152e8f9..28ff0e8 100644
---- a/include/linux/netfilter/xt_TPROXY.h
-+++ b/include/linux/netfilter/xt_TPROXY.h
-@@ -11,4 +11,11 @@ struct xt_tproxy_target_info {
- 	__be16 lport;
- };
- 
-+struct xt_tproxy_target_info_v1 {
-+	u_int32_t mark_mask;
-+	u_int32_t mark_value;
-+	union nf_inet_addr laddr;
-+	__be16 lport;
-+};
-+
- #endif /* _XT_TPROXY_H_target */
-
-
-
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/iptables.git/commitdiff/29b337f296b3174e2b553a1fd0d2d1fd72226be4



More information about the pld-cvs-commit mailing list