All of lore.kernel.org
 help / color / mirror / Atom feed
* Invalid arguments when using '-j TEE'
@ 2012-01-11 18:20 Ye Liu
  2012-01-11 18:25 ` Jan Engelhardt
  0 siblings, 1 reply; 7+ messages in thread
From: Ye Liu @ 2012-01-11 18:20 UTC (permalink / raw)
  To: netfilter; +Cc: Dov Berliner

Hi there,

I need to setup iptables rules to tee the traffic, so I've tried to
add the following rule:

$> iptables -t mangle -A PREROUTING -j TEE --gateway xxx.xxx.xxx.xxx

But the command gives an error, says

$> iptables: Invalid argument. Run `dmesg' for more information.

I've checked output of dmesg, there is no messages related to iptables.

Please help...

Some more information:

kernel: 2.6.19.2
iptables: v1.4.11.1
xtables-addons: 1.41

$> lsmod

ipt_TOS 1664 0 - Live 0xbf063000
iptable_mangle 2048 0 - Live 0xbf061000
xt_TEE 2740 0 - Live 0xbf05f000
compat_xtables 7584 1 xt_TEE, Live 0xbf05c000
xt_tcpudp 2656 7 - Live 0xbf022000
xt_state 1696 1 - Live 0xbf020000
ipt_REJECT 3328 2 - Live 0xbf01e000
xt_multiport 2880 1 - Live 0xbf01c000
xt_conntrack 2144 1 - Live 0xbf01a000
ip_conntrack 47188 2 xt_state,xt_conntrack, Live 0xbf00d000
nfnetlink 5336 1 ip_conntrack, Live 0xbf00a000
iptable_filter 2176 1 - Live 0xbf008000
ip_tables 12104 2 iptable_mangle,iptable_filter, Live 0xbf004000
x_tables 12068 8
ipt_TOS,compat_xtables,xt_tcpudp,xt_state,ipt_REJECT,xt_multiport,xt_conntrack,ip_tables,
Live 0xbf000000

And I've tried other rules, such as

$> iptables -t mangle -A PREROUTING -p tcp --dport 25 -j TOS --set-tos 0x04

that is working fine.

--
Ye

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Invalid arguments when using '-j TEE'
  2012-01-11 18:20 Invalid arguments when using '-j TEE' Ye Liu
@ 2012-01-11 18:25 ` Jan Engelhardt
  2012-01-11 18:30   ` Ye Liu
  0 siblings, 1 reply; 7+ messages in thread
From: Jan Engelhardt @ 2012-01-11 18:25 UTC (permalink / raw)
  To: Ye Liu; +Cc: netfilter, Dov Berliner

On Wednesday 2012-01-11 19:20, Ye Liu wrote:

>Hi there,
>
>I need to setup iptables rules to tee the traffic, so I've tried to
>add the following rule:
>$> iptables -t mangle -A PREROUTING -j TEE --gateway xxx.xxx.xxx.xxx
>But the command gives an error, says
>$> iptables: Invalid argument. Run `dmesg' for more information.

xxx.xxx.xxx.xxx is of course not a valid IP address.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Invalid arguments when using '-j TEE'
  2012-01-11 18:25 ` Jan Engelhardt
@ 2012-01-11 18:30   ` Ye Liu
  2012-01-11 20:18     ` Mart Frauenlob
  0 siblings, 1 reply; 7+ messages in thread
From: Ye Liu @ 2012-01-11 18:30 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: netfilter, Dov Berliner

Jan, I replaced the real ip with X's, sorry for the confusion.

On Wed, Jan 11, 2012 at 1:25 PM, Jan Engelhardt <jengelh@medozas.de> wrote:
> On Wednesday 2012-01-11 19:20, Ye Liu wrote:
>
>>Hi there,
>>
>>I need to setup iptables rules to tee the traffic, so I've tried to
>>add the following rule:
>>$> iptables -t mangle -A PREROUTING -j TEE --gateway xxx.xxx.xxx.xxx
>>But the command gives an error, says
>>$> iptables: Invalid argument. Run `dmesg' for more information.
>
> xxx.xxx.xxx.xxx is of course not a valid IP address.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Invalid arguments when using '-j TEE'
  2012-01-11 18:30   ` Ye Liu
@ 2012-01-11 20:18     ` Mart Frauenlob
  2012-01-11 22:03       ` Ye Liu
  0 siblings, 1 reply; 7+ messages in thread
From: Mart Frauenlob @ 2012-01-11 20:18 UTC (permalink / raw)
  To: Ye Liu; +Cc: netfilter, Dov Berliner

On 11.01.2012 19:30, Ye Liu wrote:
> Jan, I replaced the real ip with X's, sorry for the confusion.
>
> On Wed, Jan 11, 2012 at 1:25 PM, Jan Engelhardt<jengelh@medozas.de>  wrote:
>> On Wednesday 2012-01-11 19:20, Ye Liu wrote:
>>
>>> Hi there,
>>>
>>> I need to setup iptables rules to tee the traffic, so I've tried to
>>> add the following rule:
>>> $>  iptables -t mangle -A PREROUTING -j TEE --gateway xxx.xxx.xxx.xxx
>>> But the command gives an error, says
>>> $>  iptables: Invalid argument. Run `dmesg' for more information.
>>
>> xxx.xxx.xxx.xxx is of course not a valid IP address.
> --
> To unsubscribe from this list: send the line "unsubscribe netfilter" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

Forget Jan, he once again proved he's the biggest asshole on the list.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Invalid arguments when using '-j TEE'
  2012-01-11 20:18     ` Mart Frauenlob
@ 2012-01-11 22:03       ` Ye Liu
  2012-01-12  8:30         ` Jan Engelhardt
  0 siblings, 1 reply; 7+ messages in thread
From: Ye Liu @ 2012-01-11 22:03 UTC (permalink / raw)
  To: mart.frauenlob, Jan Engelhardt; +Cc: netfilter, Dov Berliner

On Wed, Jan 11, 2012 at 3:18 PM, Mart Frauenlob
<mart.frauenlob@chello.at> wrote:
> On 11.01.2012 19:30, Ye Liu wrote:
>> Jan, I replaced the real ip with X's, sorry for the confusion.
>>
>> On Wed, Jan 11, 2012 at 1:25 PM, Jan Engelhardt<jengelh@medozas.de>  wrote:
>>> On Wednesday 2012-01-11 19:20, Ye Liu wrote:
>>>
>>>> Hi there,
>>>>
>>>> I need to setup iptables rules to tee the traffic, so I've tried to
>>>> add the following rule:
>>>> $>  iptables -t mangle -A PREROUTING -j TEE --gateway xxx.xxx.xxx.xxx
>>>> But the command gives an error, says
>>>> $>  iptables: Invalid argument. Run `dmesg' for more information.
>>>
>>> xxx.xxx.xxx.xxx is of course not a valid IP address.
>> --
>> To unsubscribe from this list: send the line "unsubscribe netfilter" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>
> Forget Jan, he once again proved he's the biggest asshole on the list.

LOL

I did more researches, and one thread in this list suggested I should
use iptables < 1.4.8 for kernel < 2.6.35, so I tried iptables 1.4.7,
but got the same result. Here is command-line output:

$ uname -a
Linux NanoPBX 2.6.19.2 #85 PREEMPT Wed Nov 16 12:20:42 EST 2011 armv6l GNU/Linux

$ iptables -V
iptables v1.4.7

$ iptables -t mangle -A PREROUTING -j TEE --gateway 192.9.200.29 -v
TEE  all opt -- in * out *  0.0.0.0/0  -> 0.0.0.0/0   TEE gw:192.9.200.29
iptables: Invalid argument. Run `dmesg' for more information.

$ iptables -t mangle -A PREROUTING -j TEE --gateway 192.9.200.29 -vv
TEE  all opt -- in * out *  0.0.0.0/0  -> 0.0.0.0/0   TEE gw:192.9.200.29
libiptc vlibxtables.so.4. 936 bytes.
Table `mangle'
Hooks: pre/in/fwd/out/post = 0/98/130/1c8/260
Underflows: pre/in/fwd/out/post = 0/98/130/1c8/260
Entry 0 (0):
SRC IP: 0.0.0.0/0.0.0.0
DST IP: 0.0.0.0/0.0.0.0
Interface: `'/................to `'/................
Protocol: 0
Flags: 00
Invflags: 00
Counters: 3712 packets, 917058 bytes
Cache: 00000000
Target name: `' [40]
verdict=NF_ACCEPT

Entry 1 (152):
SRC IP: 0.0.0.0/0.0.0.0
DST IP: 0.0.0.0/0.0.0.0
Interface: `'/................to `'/................
Protocol: 0
Flags: 00
Invflags: 00
Counters: 3712 packets, 917058 bytes
Cache: 00000000
Target name: `' [40]
verdict=NF_ACCEPT

Entry 2 (304):
SRC IP: 0.0.0.0/0.0.0.0
DST IP: 0.0.0.0/0.0.0.0
Interface: `'/................to `'/................
Protocol: 0
Flags: 00
Invflags: 00
Counters: 0 packets, 0 bytes
Cache: 00000000
Target name: `' [40]
verdict=NF_ACCEPT

Entry 3 (456):
SRC IP: 0.0.0.0/0.0.0.0
DST IP: 0.0.0.0/0.0.0.0
Interface: `'/................to `'/................
Protocol: 0
Flags: 00
Invflags: 00
Counters: 649 packets, 72228 bytes
Cache: 00000000
Target name: `' [40]
verdict=NF_ACCEPT

Entry 4 (608):
SRC IP: 0.0.0.0/0.0.0.0
DST IP: 0.0.0.0/0.0.0.0
Interface: `'/................to `'/................
Protocol: 0
Flags: 00
Invflags: 00
Counters: 649 packets, 72228 bytes
Cache: 00000000
Target name: `' [40]
verdict=NF_ACCEPT

Entry 5 (760):
SRC IP: 0.0.0.0/0.0.0.0
DST IP: 0.0.0.0/0.0.0.0
Interface: `'/................to `'/................
Protocol: 0
Flags: 00
Invflags: 00
Counters: 0 packets, 0 bytes
Cache: 00000000
Target name: `ERROR' [64]
error=`ERROR'

iptables: Invalid argument. Run `dmesg' for more information.


$ lsmod
iptable_mangle 2048 0 - Live 0xbf064000
xt_TEE 2740 0 - Live 0xbf062000
compat_xtables 7584 1 xt_TEE, Live 0xbf05f000
dahdi_echocan_mg2 5288 2 - Live 0xbf05c000
spifxo 18076 2 - Live 0xbf056000
dahdi 197380 8 dahdi_echocan_mg2,spifxo, Live 0xbf024000
xt_tcpudp 2656 7 - Live 0xbf022000
xt_state 1696 1 - Live 0xbf020000
ipt_REJECT 3328 2 - Live 0xbf01e000
xt_multiport 2880 1 - Live 0xbf01c000
xt_conntrack 2144 1 - Live 0xbf01a000
ip_conntrack 47188 2 xt_state,xt_conntrack, Live 0xbf00d000
nfnetlink 5336 1 ip_conntrack, Live 0xbf00a000
iptable_filter 2176 1 - Live 0xbf008000
ip_tables 12104 2 iptable_mangle,iptable_filter, Live 0xbf004000
x_tables 12068 7
compat_xtables,xt_tcpudp,xt_state,ipt_REJECT,xt_multiport,xt_conntrack,ip_tables,
Live 0xbf000000

Again, dmesg has nothing about iptables :(

$ dmesg
[   53.960000] Linux version 2.6.19.2 (ye@Oceanic815) (gcc version
4.1.2) #85 PREEMPT Wed Nov 16 12:20:42 EST 2011
[   52.960000] CPU: Some Random V6 Processor [4107b364] revision 4
(ARMv6TEJ), cr=00c5387f
[   52.960000] Machine: Freescale i.MX31 litekit
[   52.960000] Memory policy: ECC disabled, Data cache writeback
[   55.960000] On node 0 totalpages: 32768
[   55.960000]   DMA zone: 256 pages used for memmap
[   55.960000]   DMA zone: 0 pages reserved
[   55.960000]   DMA zone: 32512 pages, LIFO batch:7
[   55.960000]   Normal zone: 0 pages used for memmap
[   52.960000] CPU0: D VIPT write-back cache
[   52.960000] CPU0: I cache: 16384 bytes, associativity 4, 32 byte
lines, 128 sets
[   52.960000] CPU0: D cache: 16384 bytes, associativity 4, 32 byte
lines, 128 sets
[   52.960000] Built 1 zonelists.  Total pages: 32512
[   53.960000] Kernel command line: console=ttymxc0,115200
root=/dev/mtdblock4 rootfstype=jffs2
[   52.960000] PID hash table entries: 512 (order: 9, 2048 bytes)
[   54.960000]
[   52.960000] WARNING: Can't generate CLOCK_TICK_RATE at 16625000 Hz
[   54.960000] Actual CLOCK_TICK_RATE is 16656250 Hz
[   52.960000] Console: colour dummy device 80x30
[   52.960000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[   52.960000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[   54.970000] Memory: 128MB = 128MB total
[   53.970000] Memory: 126848KB available (2388K code, 497K data, 100K init)
[   55.970000] Calibrating delay loop... 530.84 BogoMIPS (lpj=2654208)
[   52.220000] Mount-cache hash table entries: 512
[   54.220000] CPU: Testing write buffer coherency: ok
[   54.220000] NET: Registered protocol family 16
[   54.220000] MXC GPIO hardware
[   54.220000] system_rev is: 0x20
[   52.220000] Irq init for eth0
[   52.220000] GPIO3 [dir=0x7000FFF0 val=0x8FFF007C]
[   52.230000] L2 cache: WB
[   54.230000] Using SDMA I.API
[   54.230000] MXC DMA API initialized
[   53.230000] SCSI subsystem initialized
[   52.230000]
[   52.230000]
[   52.230000] spi_active 0
[   54.230000] CSPI: mxc_spi-1 probed
[   54.240000] NET: Registered protocol family 2
[   52.330000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[   52.330000] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[   52.330000] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[   54.330000] TCP: Hash tables configured (established 4096 bind 2048)
[   54.330000] TCP reno registered
[   54.330000] Low-Level PM Driver module loaded
[   54.330000] NTFS driver 2.1.27 [Flags: R/W].
[   54.330000] JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
[   54.330000] io scheduler noop registered
[   54.330000] io scheduler anticipatory registered
[   54.330000] io scheduler deadline registered
[   54.330000] io scheduler cfq registered (default)
[   52.530000] Real TIme clock Driver v1.0
[   51.530000] MXC WatchDog Driver 2.0
[   51.530000] MXC Watchdog # 0 Timer: initial timeout 120 sec
[   51.530000] 1.set watch dog time out to 120.
[   54.530000] Serial: MXC Internal UART driver
[   54.530000] mxcintuart.0: ttymxc0 at MMIO 0x43f90000 (irq = 45) is
a Freescale MXC
[   54.780000] mxcintuart.1: ttymxc1 at MMIO 0x43f94000 (irq = 32) is
a Freescale MXC
[   54.790000] mxcintuart.2: ttymxc2 at MMIO 0x5000c000 (irq = 18) is
a Freescale MXC
[   54.800000] mxcintuart.4: ttymxc4 at MMIO 0x43fb4000 (irq = 47) is
a Freescale MXC
[   52.810000] RAMDISK driver initialized: 2 RAM disks of 32768K size
1024 blocksize
[   54.820000] loop: loaded (max 8 devices)
[   54.820000] MXC MTD nor Driver 2.0
[   55.830000] CFI: Found no mxc_nor_flash.0 device at location zero
[   52.830000] mxc_nor_flash: probe of mxc_nor_flash.0 failed with error -5
[   54.830000] MXC MTD nand Driver 2.0
[   51.840000] PDR0=0xff871f58.
<3>ESDCFG0=0x79d72f.
<3>ESDCFG1=0x7ac727.
<6>NAND device: Manufacturer ID: 0x2c, Chip ID: 0xdc (Unknown NAND
512MiB 3,3V 8-bit)
[   54.860000] Scanning device for bad blocks
[   53.530000] Searching for RedBoot partition table in NAND 512MiB
3,3V 8-bit at offset 0x80000
[   53.560000] 6 RedBoot partitions found on MTD device NAND 512MiB 3,3V 8-bit
[   53.570000] Creating 6 MTD partitions on "NAND 512MiB 3,3V 8-bit":
[   53.580000] 0x00000000-0x00040000 : "RedBoot"
[   53.580000] 0x00080000-0x0009f000 : "FIS directory"
[   52.590000] mtd: partition "FIS directory" doesn't end on an erase
block -- force read-only
[   53.600000] 0x0009f000-0x000a0000 : "RedBoot config"
[   52.600000] mtd: partition "RedBoot config" doesn't start on an
erase block boundary -- force read-only
[   53.610000] 0x000a0000-0x004a0000 : "kernel"
[   53.620000] 0x004a0000-0x104a0000 : "rootfs"
[   53.620000] 0x104a0000-0x1fb00000 : "workspace"
[   54.630000] SSI module loaded successfully
[   54.630000] TCP cubic registered
[   54.640000] NET: Registered protocol family 1
[   54.640000] NET: Registered protocol family 17
[   54.640000] VFP support v0.3: implementor 41 architecture 1 part 20
variant b rev 2
[   52.130000] Empty flash at 0x0a0555e8 ends at 0x0a055800
[   52.140000] Empty flash at 0x0a059cfc ends at 0x0a05a000
[   52.510000] VFS: Mounted root (jffs2 filesystem).
[   54.520000] Freeing init memory: 100K
[   52.570000] Empty flash at 0x0a7e286c ends at 0x0a7e3000
[   51.420000] 1.set watch dog time out to 10.
[   51.430000] 2.set watch dog time out to 10.
[   54.720000] eth0: SMSC911x/921x identified at 0xc8a00000, IRQ: 116
[   54.720000] eth0: SMSC911x MAC Address: 12:34:ff:e7:80:fe
[   54.750000] eth0: link down
[   54.220000] eth0: link up, 100Mbps, full-duplex, lpa 0xC5E1
[   54.210000] eth1: SMSC911x/921x identified at 0xc8c00000, IRQ: 117
[   54.210000] eth1: SMSC911x MAC Address: 82:dc:a8:6c:3a:d7
[   54.240000] eth1: link down
[   52.460000] ip_tables: (C) 2000-2006 Netfilter Core Team
[   52.710000] Netfilter messages via NETLINK v0.30.
[   52.750000] ip_conntrack version 2.4 (1024 buckets, 8192 max) - 228
bytes per conntrack
[   54.990000] dahdi: Telephony Interface Registered on major 196
[   54.990000] dahdi: Version: 2.4.1.2
[   52.020000] FXO mode set to [0] [FCC]
[   52.630000] Found card: SPI FXO with 2 channel(s) available
[   53.650000] dahdi_echocan_mg2: Registered echo canceler 'MG2'
[   54.760000] dahdi: Registered tone zone 0 (United States / North America)
[   53.830000] JFFS2 notice: (698) check_node_data: wrong data CRC in
data node at 0x0e7e3000: read 0xb509b86d, calculated 0x8d351ed0.
[   53.460000] JFFS2 notice: (712) check_node_data: wrong data CRC in
data node at 0x0a7e2800: read 0xc8ea41f6, calculated 0xec7ee507.

--
Ye

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Invalid arguments when using '-j TEE'
  2012-01-11 22:03       ` Ye Liu
@ 2012-01-12  8:30         ` Jan Engelhardt
  2012-01-12 15:50           ` Ye Liu
  0 siblings, 1 reply; 7+ messages in thread
From: Jan Engelhardt @ 2012-01-12  8:30 UTC (permalink / raw)
  To: Ye Liu; +Cc: mart.frauenlob, netfilter, Dov Berliner


On Wednesday 2012-01-11 23:03, Ye Liu wrote:
>>>>> I need to setup iptables rules to tee the traffic, so I've tried to
>>>>> add the following rule:
>>>>> $>  iptables -t mangle -A PREROUTING -j TEE --gateway xxx.xxx.xxx.xxx
>>>>> But the command gives an error, says
>>>>> $>  iptables: Invalid argument. Run `dmesg' for more information.
>>>>
>>>> xxx.xxx.xxx.xxx is of course not a valid IP address.
>>
>> Forget Jan, he once again proved he's the biggest asshole on the list.
>
>LOL

It's a form of Godwin's law (and some people - like Mart - just have to openly
state they have nothing better to do).


>I did more researches, and one thread in this list suggested I should
>use iptables < 1.4.8 for kernel < 2.6.35, so I tried iptables 1.4.7,
>but got the same result. Here is command-line output:
>
>$ iptables -t mangle -A PREROUTING -j TEE --gateway 192.9.200.29 -v
>TEE  all opt -- in * out *  0.0.0.0/0  -> 0.0.0.0/0   TEE gw:192.9.200.29
>iptables: Invalid argument. Run `dmesg' for more information.

Here is the fix I have come up with. Upload to SF is currently
out of order, so it is not yet in the git repository.

parent aee5aedc63d0bc2d9a826c5e936b83295de20aa9 (v1.41)
commit a6b06502cace4f921a6b4f56cce81f09446cc34b
Author: Jan Engelhardt <jengelh@medozas.de>
Date:   Thu Jan 12 09:21:39 2012 +0100

compat_xtables: fixed mistranslation of checkentry return values
---
 doc/api/2.6.17.c            |    4 ++--
 doc/api/2.6.19.c            |    4 ++--
 doc/changelog.txt           |    3 +++
 extensions/compat_xtables.c |    8 --------
 4 files changed, 7 insertions(+), 12 deletions(-)

diff --git a/doc/api/2.6.17.c b/doc/api/2.6.17.c
index 3b56e47..08a431d 100644
--- a/doc/api/2.6.17.c
+++ b/doc/api/2.6.17.c
@@ -13,7 +13,7 @@ match:
 		int *hotdrop,
 	);
 
-	/* error code */
+	/* true/false */
 	int
 	(*checkentry)(
 		const char *tablename,
@@ -45,7 +45,7 @@ target:
 		void *userdata,
 	);
 
-	/* error code */
+	/* true/false */
 	int
 	(*checkentry)(
 		const char *tablename,
diff --git a/doc/api/2.6.19.c b/doc/api/2.6.19.c
index 9bc658f..5fd48da 100644
--- a/doc/api/2.6.19.c
+++ b/doc/api/2.6.19.c
@@ -13,7 +13,7 @@ match:
 		int *hotdrop,
 	);
 
-	/* error code */
+	/* true/false */
 	int
 	(*checkentry)(
 		const char *tablename,
@@ -42,7 +42,7 @@ target:
 		const void *targinfo,
 	);
 
-	/* error code */
+	/* true/false */
 	int
 	(*checkentry)(
 		const char *tablename,
diff --git a/doc/changelog.txt b/doc/changelog.txt
index 2ece6be..48d5436 100644
--- a/doc/changelog.txt
+++ b/doc/changelog.txt
@@ -1,6 +1,9 @@
 
 HEAD
 ====
+Fixes:
+- compat_xtables: fixed mistranslation of checkentry return values
+  (affected kernels < 2.6.23)
 
 
 v1.41 (2012-01-04)
diff --git a/extensions/compat_xtables.c b/extensions/compat_xtables.c
index c5b67a4..26f6a00 100644
--- a/extensions/compat_xtables.c
+++ b/extensions/compat_xtables.c
@@ -110,11 +110,7 @@ static bool xtnu_match_check(const char *table, const void *entry,
 		return false;
 	if (nm->checkentry == NULL)
 		return true;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
-	return nm->checkentry(&local_par);
-#else
 	return nm->checkentry(&local_par) == 0;
-#endif
 }
 #endif
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) && \
@@ -322,11 +318,7 @@ static bool xtnu_target_check(const char *table, const void *entry,
 	if (nt->checkentry == NULL)
 		/* this is valid, just like if there was no function */
 		return true;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
-	return nt->checkentry(&local_par);
-#else
 	return nt->checkentry(&local_par) == 0;
-#endif
 }
 #endif
 
-- 
# Created with git-export-patch

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: Invalid arguments when using '-j TEE'
  2012-01-12  8:30         ` Jan Engelhardt
@ 2012-01-12 15:50           ` Ye Liu
  0 siblings, 0 replies; 7+ messages in thread
From: Ye Liu @ 2012-01-12 15:50 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: mart.frauenlob, netfilter, Dov Berliner

On Thu, Jan 12, 2012 at 3:30 AM, Jan Engelhardt <jengelh@medozas.de> wrote:
>
>>I did more researches, and one thread in this list suggested I should
>>use iptables < 1.4.8 for kernel < 2.6.35, so I tried iptables 1.4.7,
>>but got the same result. Here is command-line output:
>>
>>$ iptables -t mangle -A PREROUTING -j TEE --gateway 192.9.200.29 -v
>>TEE  all opt -- in * out *  0.0.0.0/0  -> 0.0.0.0/0   TEE gw:192.9.200.29
>>iptables: Invalid argument. Run `dmesg' for more information.
>
> Here is the fix I have come up with. Upload to SF is currently
> out of order, so it is not yet in the git repository.
>
> parent aee5aedc63d0bc2d9a826c5e936b83295de20aa9 (v1.41)
> commit a6b06502cace4f921a6b4f56cce81f09446cc34b
> Author: Jan Engelhardt <jengelh@medozas.de>
> Date:   Thu Jan 12 09:21:39 2012 +0100
>
> compat_xtables: fixed mistranslation of checkentry return values
> ---
>  doc/api/2.6.17.c            |    4 ++--
>  doc/api/2.6.19.c            |    4 ++--
>  doc/changelog.txt           |    3 +++
>  extensions/compat_xtables.c |    8 --------
>  4 files changed, 7 insertions(+), 12 deletions(-)
>
> diff --git a/doc/api/2.6.17.c b/doc/api/2.6.17.c
> index 3b56e47..08a431d 100644
> --- a/doc/api/2.6.17.c
> +++ b/doc/api/2.6.17.c
> @@ -13,7 +13,7 @@ match:
>                int *hotdrop,
>        );
>
> -       /* error code */
> +       /* true/false */
>        int
>        (*checkentry)(
>                const char *tablename,
> @@ -45,7 +45,7 @@ target:
>                void *userdata,
>        );
>
> -       /* error code */
> +       /* true/false */
>        int
>        (*checkentry)(
>                const char *tablename,
> diff --git a/doc/api/2.6.19.c b/doc/api/2.6.19.c
> index 9bc658f..5fd48da 100644
> --- a/doc/api/2.6.19.c
> +++ b/doc/api/2.6.19.c
> @@ -13,7 +13,7 @@ match:
>                int *hotdrop,
>        );
>
> -       /* error code */
> +       /* true/false */
>        int
>        (*checkentry)(
>                const char *tablename,
> @@ -42,7 +42,7 @@ target:
>                const void *targinfo,
>        );
>
> -       /* error code */
> +       /* true/false */
>        int
>        (*checkentry)(
>                const char *tablename,
> diff --git a/doc/changelog.txt b/doc/changelog.txt
> index 2ece6be..48d5436 100644
> --- a/doc/changelog.txt
> +++ b/doc/changelog.txt
> @@ -1,6 +1,9 @@
>
>  HEAD
>  ====
> +Fixes:
> +- compat_xtables: fixed mistranslation of checkentry return values
> +  (affected kernels < 2.6.23)
>
>
>  v1.41 (2012-01-04)
> diff --git a/extensions/compat_xtables.c b/extensions/compat_xtables.c
> index c5b67a4..26f6a00 100644
> --- a/extensions/compat_xtables.c
> +++ b/extensions/compat_xtables.c
> @@ -110,11 +110,7 @@ static bool xtnu_match_check(const char *table, const void *entry,
>                return false;
>        if (nm->checkentry == NULL)
>                return true;
> -#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
> -       return nm->checkentry(&local_par);
> -#else
>        return nm->checkentry(&local_par) == 0;
> -#endif
>  }
>  #endif
>  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) && \
> @@ -322,11 +318,7 @@ static bool xtnu_target_check(const char *table, const void *entry,
>        if (nt->checkentry == NULL)
>                /* this is valid, just like if there was no function */
>                return true;
> -#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
> -       return nt->checkentry(&local_par);
> -#else
>        return nt->checkentry(&local_par) == 0;
> -#endif
>  }
>  #endif
>
> --
> # Created with git-export-patch

The fix is working! Thank you, Jan!

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-01-12 15:50 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-01-11 18:20 Invalid arguments when using '-j TEE' Ye Liu
2012-01-11 18:25 ` Jan Engelhardt
2012-01-11 18:30   ` Ye Liu
2012-01-11 20:18     ` Mart Frauenlob
2012-01-11 22:03       ` Ye Liu
2012-01-12  8:30         ` Jan Engelhardt
2012-01-12 15:50           ` Ye Liu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.