Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
net
netfilter
nf_nat_tftp.c
Go to the documentation of this file.
1
/* (C) 2001-2002 Magnus Boden <
[email protected]
>
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/udp.h>
10
11
#include <
net/netfilter/nf_conntrack_helper.h
>
12
#include <
net/netfilter/nf_conntrack_expect.h
>
13
#include <
net/netfilter/nf_nat_helper.h
>
14
#include <
linux/netfilter/nf_conntrack_tftp.h
>
15
16
MODULE_AUTHOR
(
"Magnus Boden <
[email protected]
>"
);
17
MODULE_DESCRIPTION
(
"TFTP NAT helper"
);
18
MODULE_LICENSE
(
"GPL"
);
19
MODULE_ALIAS
(
"ip_nat_tftp"
);
20
21
static
unsigned
int
help(
struct
sk_buff
*
skb
,
22
enum
ip_conntrack_info
ctinfo,
23
struct
nf_conntrack_expect
*
exp
)
24
{
25
const
struct
nf_conn
*
ct
= exp->
master
;
26
27
exp->saved_proto.udp.port
28
= ct->
tuplehash
[
IP_CT_DIR_ORIGINAL
].tuple.src.u.udp.port;
29
exp->dir =
IP_CT_DIR_REPLY
;
30
exp->
expectfn
=
nf_nat_follow_master
;
31
if
(nf_ct_expect_related(exp) != 0)
32
return
NF_DROP
;
33
return
NF_ACCEPT
;
34
}
35
36
static
void
__exit
nf_nat_tftp_fini(
void
)
37
{
38
RCU_INIT_POINTER
(
nf_nat_tftp_hook
,
NULL
);
39
synchronize_rcu();
40
}
41
42
static
int
__init
nf_nat_tftp_init(
void
)
43
{
44
BUG_ON
(
nf_nat_tftp_hook
!=
NULL
);
45
RCU_INIT_POINTER
(
nf_nat_tftp_hook
, help);
46
return
0;
47
}
48
49
module_init
(nf_nat_tftp_init);
50
module_exit
(nf_nat_tftp_fini);
Generated on Thu Jan 10 2013 15:00:40 for Linux Kernel by
1.8.2