[arch-commits] Commit in iptables/trunk (2 files)
Allan McRae
allan at archlinux.org
Fri Sep 21 02:32:06 UTC 2012
Date: Thursday, September 20, 2012 @ 22:32:05
Author: allan
Revision: 166897
fix build with linux-3.5
Added:
iptables/trunk/iptables-1.4.15-linux-3.5-compatibility.patch
Modified:
iptables/trunk/PKGBUILD
-----------------------------------------------+
PKGBUILD | 3
iptables-1.4.15-linux-3.5-compatibility.patch | 106 ++++++++++++++++++++++++
2 files changed, 109 insertions(+)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2012-09-21 02:03:06 UTC (rev 166896)
+++ PKGBUILD 2012-09-21 02:32:05 UTC (rev 166897)
@@ -13,6 +13,7 @@
makedepends=('linux-api-headers')
options=('!libtool')
source=("http://www.iptables.org/projects/iptables/files/${pkgname}-${pkgver}.tar.bz2"
+ iptables-1.4.15-linux-3.5-compatibility.patch
iptables
ip6tables
empty.rules
@@ -29,6 +30,7 @@
iptables-flush)
backup=(etc/conf.d/iptables)
sha1sums=('56ab3b143af2ad443c9652db3a38ef8869cd2207'
+ '9b7885ee6d6d32f6600515c01e462b737e89ba9e'
'5bb6fa526665cdd728c26f0f282f5a51f220cf88'
'2db68906b603e5268736f48c8e251f3a49da1d75'
'83b3363878e3660ce23b2ad325b53cbd6c796ecf'
@@ -51,6 +53,7 @@
rm include/linux/types.h
patch -Np1 -i ${srcdir}/0503-extension_cppflags.patch
+ patch -Np1 -i ${srcdir}/iptables-1.4.15-linux-3.5-compatibility.patch
./configure --prefix=/usr \
--libexecdir=/usr/lib/iptables --sysconfdir=/etc \
Added: iptables-1.4.15-linux-3.5-compatibility.patch
===================================================================
--- iptables-1.4.15-linux-3.5-compatibility.patch (rev 0)
+++ iptables-1.4.15-linux-3.5-compatibility.patch 2012-09-21 02:32:05 UTC (rev 166897)
@@ -0,0 +1,106 @@
+From a624e0a1b2d075253b599ababd4ea1351ef42b2a Mon Sep 17 00:00:00 2001
+From: Pablo Neira Ayuso <pablo at netfilter.org>
+Date: Fri, 3 Aug 2012 10:41:40 +0200
+Subject: [PATCH] include: add missing linux/netfilter_ipv4/ip_queue.h
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf8
+Content-Transfer-Encoding: 8bit
+
+This patch fixes compilation of libipq with headers from Linux
+kernel 3.5:
+
+ In file included from libipq.c:34:0:
+ ../include/libipq/libipq.h:33:43: fatal error: linux/netfilter_ipv4/ip_queue.h: No such file or directory
+
+ip_queue is gone since Linux kernel 3.5. However, you can still use
+new iptables versions with old Linux kernels. We have to keep libipq
+in this tree for a while (1.5-2 years should be OK).
+
+Reported-by: Arkadiusz Miśkiewicz <arekm at maven.pl>
+Signed-off-by: Pablo Neira Ayuso <pablo at netfilter.org>
+---
+ include/linux/netfilter_ipv4/ip_queue.h | 72 +++++++++++++++++++++++++++++++
+ 1 files changed, 72 insertions(+), 0 deletions(-)
+ create mode 100644 include/linux/netfilter_ipv4/ip_queue.h
+
+diff --git a/include/linux/netfilter_ipv4/ip_queue.h b/include/linux/netfilter_ipv4/ip_queue.h
+new file mode 100644
+index 0000000..a03507f
+--- /dev/null
++++ b/include/linux/netfilter_ipv4/ip_queue.h
+@@ -0,0 +1,72 @@
++/*
++ * This is a module which is used for queueing IPv4 packets and
++ * communicating with userspace via netlink.
++ *
++ * (C) 2000 James Morris, this code is GPL.
++ */
++#ifndef _IP_QUEUE_H
++#define _IP_QUEUE_H
++
++#ifdef __KERNEL__
++#ifdef DEBUG_IPQ
++#define QDEBUG(x...) printk(KERN_DEBUG ## x)
++#else
++#define QDEBUG(x...)
++#endif /* DEBUG_IPQ */
++#else
++#include <net/if.h>
++#endif /* ! __KERNEL__ */
++
++/* Messages sent from kernel */
++typedef struct ipq_packet_msg {
++ unsigned long packet_id; /* ID of queued packet */
++ unsigned long mark; /* Netfilter mark value */
++ long timestamp_sec; /* Packet arrival time (seconds) */
++ long timestamp_usec; /* Packet arrvial time (+useconds) */
++ unsigned int hook; /* Netfilter hook we rode in on */
++ char indev_name[IFNAMSIZ]; /* Name of incoming interface */
++ char outdev_name[IFNAMSIZ]; /* Name of outgoing interface */
++ __be16 hw_protocol; /* Hardware protocol (network order) */
++ unsigned short hw_type; /* Hardware type */
++ unsigned char hw_addrlen; /* Hardware address length */
++ unsigned char hw_addr[8]; /* Hardware address */
++ size_t data_len; /* Length of packet data */
++ unsigned char payload[0]; /* Optional packet data */
++} ipq_packet_msg_t;
++
++/* Messages sent from userspace */
++typedef struct ipq_mode_msg {
++ unsigned char value; /* Requested mode */
++ size_t range; /* Optional range of packet requested */
++} ipq_mode_msg_t;
++
++typedef struct ipq_verdict_msg {
++ unsigned int value; /* Verdict to hand to netfilter */
++ unsigned long id; /* Packet ID for this verdict */
++ size_t data_len; /* Length of replacement data */
++ unsigned char payload[0]; /* Optional replacement packet */
++} ipq_verdict_msg_t;
++
++typedef struct ipq_peer_msg {
++ union {
++ ipq_verdict_msg_t verdict;
++ ipq_mode_msg_t mode;
++ } msg;
++} ipq_peer_msg_t;
++
++/* Packet delivery modes */
++enum {
++ IPQ_COPY_NONE, /* Initial mode, packets are dropped */
++ IPQ_COPY_META, /* Copy metadata */
++ IPQ_COPY_PACKET /* Copy metadata + packet (range) */
++};
++#define IPQ_COPY_MAX IPQ_COPY_PACKET
++
++/* Types of messages */
++#define IPQM_BASE 0x10 /* standard netlink messages below this */
++#define IPQM_MODE (IPQM_BASE + 1) /* Mode request from peer */
++#define IPQM_VERDICT (IPQM_BASE + 2) /* Verdict from peer */
++#define IPQM_PACKET (IPQM_BASE + 3) /* Packet from kernel */
++#define IPQM_MAX (IPQM_BASE + 4)
++
++#endif /*_IP_QUEUE_H*/
+--
+1.7.2.5
+
More information about the arch-commits
mailing list