* Harald Welte ([EMAIL PROTECTED]) wrote: > On Tue, Jun 18, 2002 at 12:34:39AM -0400, Stephen Frost wrote: > > Hey all, > > > > Version 0.2.1 of my ipt_recent module has been up and running on my > > thanks. For future reference: please send patches as mime attachment, > uncompressed. this way i can read them in the mailer and don't need to save, > unzip them before.
No problem, just thought it a little large to send uncompressed. Hopefully this one is better; just a minor bugfix. Changelog: - If not SET and not found, return immediately instead of flipping the hash entries first (in the event of a collision).
diff -uNr netfilter-old/userspace/patch-o-matic/extra/recent.patch netfilter/userspace/patch-o-matic/extra/recent.patch --- netfilter-old/userspace/patch-o-matic/extra/recent.patch Fri Jun 21 09:49:01 2002 +++ netfilter/userspace/patch-o-matic/extra/recent.patch Fri Jun 21 10:10:13 +2002 @@ -26,7 +26,7 @@ +#endif /*_IPT_RECENT_H*/ diff -uNr linux-2.4.18-clean/net/ipv4/netfilter/ipt_recent.c linux-2.4.18/net/ipv4/netfilter/ipt_recent.c --- linux-2.4.18-clean/net/ipv4/netfilter/ipt_recent.c Wed Dec 31 19:00:00 1969 -+++ linux-2.4.18/net/ipv4/netfilter/ipt_recent.c Mon Jun 17 20:13:00 2002 ++++ linux-2.4.18/net/ipv4/netfilter/ipt_recent.c Fri Jun 21 10:06:15 2002 @@ -0,0 +1,786 @@ +/* Kernel module to check if the source address has been seen recently. */ +#include <linux/module.h> @@ -51,7 +51,7 @@ +static int debug = 0; + +#define RECENT_NAME "ipt_recent" -+#define RECENT_VER "v0.2.1" ++#define RECENT_VER "v0.2.2" + +static char version[] = +KERN_INFO RECENT_NAME " " RECENT_VER ": Stephen Frost <[EMAIL PROTECTED]>. +http://snowman.net/projects/ipt_recent/\n"; @@ -394,6 +394,13 @@ + hash_result = (hash_result + 1) % ip_list_hash_size; + } + } ++ ++ if(hash_table[hash_result] == -1 && !(info->check_set & IPT_RECENT_SET)) { ++ /* IP not in list and not asked to SET */ ++ spin_unlock_bh(&curr_table->list_lock); ++ return ans; ++ } ++ + /* Check if we need to handle the collision, do not need to on REMOVE */ + if(orig_hash_result != hash_result && !(info->check_set & IPT_RECENT_REMOVE)) { + if(debug) printk(KERN_INFO "ipt_recent: match(): Collision in hash +table. (or: %d,hr: %d,oa: %u,ha: %u)\n", @@ -431,13 +438,6 @@ + if(hash_table[hash_result] == -1) { + if(debug) printk(KERN_INFO "ipt_recent: match(): New table entry. (hr: +%d,ha: %u)\n", + hash_result, addr); -+ -+ /* New item, find place to put it */ -+ if(!(info->check_set & IPT_RECENT_SET)) { -+ /* IP not in list and not asked to SET */ -+ spin_unlock_bh(&curr_table->list_lock); -+ return ans; -+ } + + /* New item found and IPT_RECENT_SET, so we need to add it */ + location = time_info[curr_table->time_pos].position;
msg01354/pgp00000.pgp
Description: PGP signature