Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /* (C) 2001-2002 Magnus Boden <mb@ozaba.mine.nu>
  2  *
  3  * This program is free software; you can redistribute it and/or modify
  4  * it under the terms of the GNU General Public License version 2 as
  5  * published by the Free Software Foundation.
  6  */
  7 
  8 #include <linux/module.h>
  9 #include <linux/moduleparam.h>
 10 #include <linux/udp.h>
 11 
 12 #include <net/netfilter/nf_nat_helper.h>
 13 #include <net/netfilter/nf_nat_rule.h>
 14 #include <net/netfilter/nf_conntrack_helper.h>
 15 #include <net/netfilter/nf_conntrack_expect.h>
 16 #include <linux/netfilter/nf_conntrack_tftp.h>
 17 
 18 MODULE_AUTHOR("Magnus Boden <mb@ozaba.mine.nu>");
 19 MODULE_DESCRIPTION("TFTP NAT helper");
 20 MODULE_LICENSE("GPL");
 21 MODULE_ALIAS("ip_nat_tftp");
 22 
 23 static unsigned int help(struct sk_buff *skb,
 24                          enum ip_conntrack_info ctinfo,
 25                          struct nf_conntrack_expect *exp)
 26 {
 27         const struct nf_conn *ct = exp->master;
 28 
 29         exp->saved_proto.udp.port
 30                 = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.u.udp.port;
 31         exp->dir = IP_CT_DIR_REPLY;
 32         exp->expectfn = nf_nat_follow_master;
 33         if (nf_ct_expect_related(exp) != 0)
 34                 return NF_DROP;
 35         return NF_ACCEPT;
 36 }
 37 
 38 static void __exit nf_nat_tftp_fini(void)
 39 {
 40         rcu_assign_pointer(nf_nat_tftp_hook, NULL);
 41         synchronize_rcu();
 42 }
 43 
 44 static int __init nf_nat_tftp_init(void)
 45 {
 46         BUG_ON(nf_nat_tftp_hook != NULL);
 47         rcu_assign_pointer(nf_nat_tftp_hook, help);
 48         return 0;
 49 }
 50 
 51 module_init(nf_nat_tftp_init);
 52 module_exit(nf_nat_tftp_fini);
 53 
  This page was automatically generated by the LXR engine.