vserver 1.9.3
[linux-2.6.git] / include / linux / netfilter_ipv4 / ip_conntrack_ftp.h
1 #ifndef _IP_CONNTRACK_FTP_H
2 #define _IP_CONNTRACK_FTP_H
3 /* FTP tracking. */
4
5 #ifdef __KERNEL__
6
7 #define FTP_PORT        21
8
9 #endif /* __KERNEL__ */
10
11 enum ip_ct_ftp_type
12 {
13         /* PORT command from client */
14         IP_CT_FTP_PORT,
15         /* PASV response from server */
16         IP_CT_FTP_PASV,
17         /* EPRT command from client */
18         IP_CT_FTP_EPRT,
19         /* EPSV response from server */
20         IP_CT_FTP_EPSV,
21 };
22
23 /* This structure is per expected connection */
24 struct ip_ct_ftp_expect
25 {
26         /* We record seq number and length of ftp ip/port text here: all in
27          * host order. */
28
29         /* sequence number of IP address in packet is in ip_conntrack_expect */
30         u_int32_t len;                  /* length of IP address */
31         enum ip_ct_ftp_type ftptype;    /* PORT or PASV ? */
32         u_int16_t port;                 /* TCP port that was to be used */
33 };
34
35 /* This structure exists only once per master */
36 struct ip_ct_ftp_master {
37         /* Next valid seq position for cmd matching after newline */
38         u_int32_t seq_aft_nl[IP_CT_DIR_MAX];
39         /* 0 means seq_match_aft_nl not set */
40         int seq_aft_nl_set[IP_CT_DIR_MAX];
41 };
42
43 #endif /* _IP_CONNTRACK_FTP_H */