--- base-2.6.17/net/ipv4/netfilter/ipt_recent.c 2006-06-19 18:47:51.000000000 -0500 +++ linux/net/ipv4/netfilter/ipt_recent.c 2006-07-07 19:20:10.000000000 -0500 @@ -28,6 +28,7 @@ static unsigned int ip_pkt_list_tot = 20; static unsigned int ip_list_hash_size = 0; static unsigned int ip_list_perms = 0644; +static unsigned int ip_list_gid = 0; #ifdef DEBUG static int debug = 1; #endif @@ -42,6 +43,7 @@ module_param(ip_pkt_list_tot, uint, 0400); module_param(ip_list_hash_size, uint, 0400); module_param(ip_list_perms, uint, 0400); +module_param(ip_list_gid, uint, 0400); #ifdef DEBUG module_param(debug, bool, 0600); MODULE_PARM_DESC(debug,"enable debugging output"); @@ -50,6 +52,7 @@ MODULE_PARM_DESC(ip_pkt_list_tot,"number of packets per IP to remember"); MODULE_PARM_DESC(ip_list_hash_size,"size of hash table used to look up IPs"); MODULE_PARM_DESC(ip_list_perms,"permissions on /proc/net/ipt_recent/* files"); +MODULE_PARM_DESC(ip_list_gid,"owning group of /proc/net/ipt_recent/* files"); /* Structure of our list of recently seen addresses. */ struct recent_ip_list { @@ -852,6 +855,7 @@ } curr_table->status_proc->owner = THIS_MODULE; + curr_table->status_proc->gid = ip_list_gid; curr_table->status_proc->data = curr_table; wmb(); curr_table->status_proc->read_proc = ip_recent_get_info;