Commit message (Collapse)AuthorAgeFilesLines
* Use C99 initializersHarald Welte2005-02-011-11/+11
* - Sets the 'iptc_fn' global variable to the pointer to the current functions ↵Derrik Pates2005-02-011-13/+36
| | | | | | | | in all major TC_* functions. This is necessary because in certain cases, an error return from a function that doesn't set 'iptc_fn' will conflict with a function-specific error return from one that does, causing TC_STRERROR() to return the wrong error string. This ensures that the right one will be returned. - Implements a simple reference counter for the netlink socket global variable 'sockfd'; this is necessary for IPTables::IPv4, where multiple tables (filter, nat, mangle, untracked) may be opened at one time. The way libiptc does it in the official version causes previously-opened tables to break such that attempts to commit changes will fail. - Adds a couple of memset() invocations in TC_COMMIT, based on past analysis with valgrind. It claimed that allocated structure were not being fully initialized, and adding the memset()s corrected this warning. (Derrik Pates <>)
* John McCann points out via bugzilla that iptables happily accepts thisPhil Oester2005-02-011-1/+6
| | | | | | | | | | | | | syntax on DNAT/SNAT: --to x.x.x.x:y:z but doesn't actually make use of the second port. Clear up the confusion by only accepting a dash between the ports. This closes bugzilla #265. Signed-off-by: Phil Oester <>
* fix name of 'extra_opts' structure member (Nikolai Malykh)Nikolai Malykh2005-01-221-1/+1
* Make it compile on current kernels, the future isn't here yet.Martin Josefsson2005-01-051-0/+6
* Testsuite found an issue: multiport accepts -p ! tcp.Rusty Russell2005-01-031-0/+4
* Pablo Neira:Pablo Neira2005-01-032-1/+227
| | | | Multiport revision 1 userspace support.
* Remove leftover debug printfMartin Josefsson2005-01-031-3/+0
* Replace memchr with strlen and fix up one of the statements.Martin Josefsson2005-01-031-4/+4
* Extension revision number support (if kernel supports the getsockopts).Rusty Russell2005-01-035-21/+281
| | | | | Enhance MARK match with second revision. Committed in anticipation of the kernel patch being applied.
* Prevent user from using --helper multiple times (Nicolas Bouliane ↵Nicolas Bouliane2005-01-021-0/+3
| | | | <>)
* Add --log-uid option (John Lange <>)John Lange2005-01-022-1/+20
* Stupid typo that meant we didn't compare target data when doing ↵Rusty Russell2004-12-291-1/+1
| | | | delete-by-matching-rule (found by nfsim test).
* Fix compile error introduced by C99 conversion.Rusty Russell2004-12-291-1/+0
* Pablo Neira: extensions conversion to C99 structure initializationPablo Neira2004-12-2869-939/+893
| | | | (I removed the revision stuff for the moment, but this needs to go in before the code moves too much --RR)
* Fix setting lib_dir in ip*tables-{save,restore}Martin Josefsson2004-12-2711-22/+37
* Use string_to_number. Don't check for no optarg: we set has_arg to 1 in ↵Rusty Russell2004-12-221-5/+5
| | | | option array, so getopt does that for us.
* Don't need ipt_entry_target()/ip6t_entry_target() now kernel uses static ↵Rusty Russell2004-12-222-30/+16
| | | | | | inline instead of extern inline (otherwise it doesn't compile without -O). Don't re-initialize libiptc/libip6t unless modprobe attempt actually succeeds. This makes nfsim run about 20 times faster, as it doesn't have to explore failures in the first iptc_init().
* Implement IPTABLES_LIB_DIR and IP6TABLES_LIB_DIR environment variables, and ↵Rusty Russell2004-12-202-9/+21
| | | | set them in testsuite if we're running iptables within tree.
* Nicolas Bouliane: I was writing an nfsim .sim for the match tos, when I ↵Nicolas Bouliane2004-12-201-0/+5
| | | | realized that when we enter --tos twice the second overwrite the first.
* Implement some optimization for finding rules to replace in TC_REPLACE_ENTRY.Martin Josefsson2004-12-181-2/+9
| | | | Stolen from TC_DELETE_NUM_ENTRY.
* Make "is_same" test basics and entries only: targets are generic.Rusty Russell2004-12-163-70/+72
| | | | | | | Make target testing aware of different kinds of rules. Change reverse logic: target_different now target_same. Set type to MODULE in iptcc_map_target. Add testcase for this.
* Remove GET_TARGET() define: this was for compiling iptables for debugging ↵Rusty Russell2004-12-161-37/+25
| | | | | | | (ie. without -O) on old kernels where ipt_get_target() was defined "extern inline". These days it's "static inline", and only developers build without -O anyway. Fix up DUMP_ENTRIES a little, but remove calls: it only dumps the table as loaded, not the changed (cached) table, which is misleading. Fix TC_DELETE_ENTRY: we need to use iptcc_map_target() before comparing, otherwise "-j DROP" (as an example) doesn't work.
* ROUTE --tee target extension (Patrick Schaaf)Patrick Schaaf2004-12-144-13/+84
* ipset 2 related updates (JK)Joszef Kadlecsik2004-12-015-83/+243
* fix some compiler warnings and errorsHarald Welte2004-11-181-17/+24
* sync with latest patch-o-matic-ng update (support direction and mode parameters)Harald Welte2004-11-181-11/+84
* Search backwards when inserting/deleting in/from the top half of the rules ↵Martin Josefsson2004-10-241-12/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in a chain. before: insert 50k rules without any previous rules real 0m1.314s user 0m1.184s sys 0m0.123s insert 50k with one already existing rule real 2m38.052s user 2m37.296s sys 0m0.353s insert 50k rules in the middle of 20k already existing rules real 2m43.831s user 2m43.005s sys 0m0.414s delete rule #70000 10k times with 100k rules real 1m37.990s user 1m37.247s sys 0m0.500s after: insert 50k without any previous rules real 0m1.315s user 0m1.184s sys 0m0.125s insert 50k with one already existing rule real 0m1.313s user 0m1.189s sys 0m0.119s insert 50k rules in the middle of 20k already existing rules real 0m8.550s user 0m8.327s sys 0m0.197s delete rule #70000 10k times with 100k rules real 0m35.566s user 0m35.062s sys 0m0.416s
* Fix module-autoloading in certain cases (Fixse Debian Bug 219686)Harald Welte2004-10-222-6/+10
* minor syntax fixesHarald Welte2004-10-201-13/+18
* - add hashlimit to makefileHarald Welte2004-10-202-2/+2
| | | | - fix typo in libipt_hashlimit
* move ipt_hashlimit to it's correct locationHarald Welte2004-10-201-0/+0
* add hashlimit kernel header fileHarald Welte2004-10-201-0/+40
* hashlimit port of userspace pluginHarald Welte2004-10-201-0/+365
* add paragraph about raw tableHarald Welte2004-10-061-0/+10
* Mention owner brokenness in manpagePatrick McHardy2004-10-032-0/+4
* note owner match brokenness in helptext, closes bugzilla #244 (Phil Oester)Phil Oester2004-10-011-0/+2
* Add comment about time not adhering DST (Phil Oester) (Closes: #75)Phil Oester2004-09-261-0/+1
* Replace O(n) with O(1) when TC_INSERT_ENTRY() inserts an entry at the end.Martin Josefsson2004-09-231-8/+23
| | | | | | | | | | | | | | Do the same with TC_DELETE_NUM_ENTRY() when deleting the last rule. My rule management script does both of these things in certain situations. Created a file with 50.000 rules which my script converted into iptables-restore format but inserting each rule with an index instead of appending like the iptables-save output does. That took a while without this optimization. Same thing when deleting the 45.000 last rules in that chain, the script outputs deletes by number starting from the bottom. Inserting or deleting (by number) in the middle of the chain is still O(n) where n is the rulenumber where the insert/delete is taking place.
* Spelling error.Martin Josefsson2004-09-231-2/+2
* Fix returnvalue of TC_BUILTIN()Martin Josefsson2004-09-231-2/+2
| | | | | All jumps to nonexisting chains were believed to be jumps to builtin chains, that's bad as it made it impossible to add rules with external targets.
* Make sure to zero all the memory we allocate for the new table.Martin Josefsson2004-09-221-2/+2
| | | | | Makes flushing of chains containing more than a few entries work without potentially oopsing the kernel.
* Make TC_DELETE_ENTRY() and TC_DELETE_NUM_ENTRY() actually do something practicalMartin Josefsson2004-09-221-1/+5
* Fix two more rulenumber off by 1 errorsMartin Josefsson2004-09-221-3/+3
* Insertion of rules with -I was broken.Martin Josefsson2004-09-221-5/+15
| | | | | | | It checked if a rule existed on the position we were inserting to. Thus inserting into an empty chain didn't work. And it didn't care about the fact that the first rule in the chain has index 1 the rulenumer we get starts at 0...
* Fix rule countingMartin Josefsson2004-09-221-1/+3
* Fix listing of module targets.Martin Josefsson2004-09-221-1/+4
| | | | | | Type was only set for standard targets. Harald: please review.
* realm: fix inversion (Simon Lodal)Simon Lodal2004-09-221-2/+3
* Fix half-working ipv6 limit invert check (Phil Oester)Phil Oester2004-09-211-7/+6
* Fix half-working dstlimit invert check (Phil Oester)Phil Oester2004-09-211-26/+12