Loading net/netfilter/nf_queue.c +9 −19 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ * for queueing and must reinject all packets it receives, no matter what. */ static struct nf_queue_handler *queue_handler[NPROTO]; static struct nf_queue_rerouter *queue_rerouter; static struct nf_queue_rerouter *queue_rerouter[NPROTO]; static DEFINE_RWLOCK(queue_handler_lock); Loading Loading @@ -64,7 +64,7 @@ int nf_register_queue_rerouter(int pf, struct nf_queue_rerouter *rer) return -EINVAL; write_lock_bh(&queue_handler_lock); memcpy(&queue_rerouter[pf], rer, sizeof(queue_rerouter[pf])); queue_rerouter[pf] = rer; write_unlock_bh(&queue_handler_lock); return 0; Loading @@ -77,7 +77,7 @@ int nf_unregister_queue_rerouter(int pf) return -EINVAL; write_lock_bh(&queue_handler_lock); memset(&queue_rerouter[pf], 0, sizeof(queue_rerouter[pf])); queue_rerouter[pf] = NULL; write_unlock_bh(&queue_handler_lock); return 0; } Loading Loading @@ -123,7 +123,7 @@ int nf_queue(struct sk_buff **skb, return 1; } info = kmalloc(sizeof(*info)+queue_rerouter[pf].rer_size, GFP_ATOMIC); info = kmalloc(sizeof(*info)+queue_rerouter[pf]->rer_size, GFP_ATOMIC); if (!info) { if (net_ratelimit()) printk(KERN_ERR "OOM queueing packet %p\n", Loading Loading @@ -155,14 +155,14 @@ int nf_queue(struct sk_buff **skb, if (physoutdev) dev_hold(physoutdev); } #endif if (queue_rerouter[pf].save) queue_rerouter[pf].save(*skb, info); if (queue_rerouter[pf]->save) queue_rerouter[pf]->save(*skb, info); status = queue_handler[pf]->outfn(*skb, info, queuenum, queue_handler[pf]->data); if (status >= 0 && queue_rerouter[pf].reroute) status = queue_rerouter[pf].reroute(skb, info); if (status >= 0 && queue_rerouter[pf]->reroute) status = queue_rerouter[pf]->reroute(skb, info); read_unlock(&queue_handler_lock); Loading Loading @@ -322,22 +322,12 @@ int __init netfilter_queue_init(void) { #ifdef CONFIG_PROC_FS struct proc_dir_entry *pde; #endif queue_rerouter = kmalloc(NPROTO * sizeof(struct nf_queue_rerouter), GFP_KERNEL); if (!queue_rerouter) return -ENOMEM; #ifdef CONFIG_PROC_FS pde = create_proc_entry("nf_queue", S_IRUGO, proc_net_netfilter); if (!pde) { kfree(queue_rerouter); if (!pde) return -1; } pde->proc_fops = &nfqueue_file_ops; #endif memset(queue_rerouter, 0, NPROTO * sizeof(struct nf_queue_rerouter)); return 0; } Loading
net/netfilter/nf_queue.c +9 −19 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ * for queueing and must reinject all packets it receives, no matter what. */ static struct nf_queue_handler *queue_handler[NPROTO]; static struct nf_queue_rerouter *queue_rerouter; static struct nf_queue_rerouter *queue_rerouter[NPROTO]; static DEFINE_RWLOCK(queue_handler_lock); Loading Loading @@ -64,7 +64,7 @@ int nf_register_queue_rerouter(int pf, struct nf_queue_rerouter *rer) return -EINVAL; write_lock_bh(&queue_handler_lock); memcpy(&queue_rerouter[pf], rer, sizeof(queue_rerouter[pf])); queue_rerouter[pf] = rer; write_unlock_bh(&queue_handler_lock); return 0; Loading @@ -77,7 +77,7 @@ int nf_unregister_queue_rerouter(int pf) return -EINVAL; write_lock_bh(&queue_handler_lock); memset(&queue_rerouter[pf], 0, sizeof(queue_rerouter[pf])); queue_rerouter[pf] = NULL; write_unlock_bh(&queue_handler_lock); return 0; } Loading Loading @@ -123,7 +123,7 @@ int nf_queue(struct sk_buff **skb, return 1; } info = kmalloc(sizeof(*info)+queue_rerouter[pf].rer_size, GFP_ATOMIC); info = kmalloc(sizeof(*info)+queue_rerouter[pf]->rer_size, GFP_ATOMIC); if (!info) { if (net_ratelimit()) printk(KERN_ERR "OOM queueing packet %p\n", Loading Loading @@ -155,14 +155,14 @@ int nf_queue(struct sk_buff **skb, if (physoutdev) dev_hold(physoutdev); } #endif if (queue_rerouter[pf].save) queue_rerouter[pf].save(*skb, info); if (queue_rerouter[pf]->save) queue_rerouter[pf]->save(*skb, info); status = queue_handler[pf]->outfn(*skb, info, queuenum, queue_handler[pf]->data); if (status >= 0 && queue_rerouter[pf].reroute) status = queue_rerouter[pf].reroute(skb, info); if (status >= 0 && queue_rerouter[pf]->reroute) status = queue_rerouter[pf]->reroute(skb, info); read_unlock(&queue_handler_lock); Loading Loading @@ -322,22 +322,12 @@ int __init netfilter_queue_init(void) { #ifdef CONFIG_PROC_FS struct proc_dir_entry *pde; #endif queue_rerouter = kmalloc(NPROTO * sizeof(struct nf_queue_rerouter), GFP_KERNEL); if (!queue_rerouter) return -ENOMEM; #ifdef CONFIG_PROC_FS pde = create_proc_entry("nf_queue", S_IRUGO, proc_net_netfilter); if (!pde) { kfree(queue_rerouter); if (!pde) return -1; } pde->proc_fops = &nfqueue_file_ops; #endif memset(queue_rerouter, 0, NPROTO * sizeof(struct nf_queue_rerouter)); return 0; }