blob: 81453ea7e4c2c063e351ce6ff6f63fa01e601a2d [file] [log] [blame]
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -08001#ifndef _NF_CONNTRACK_FTP_H
2#define _NF_CONNTRACK_FTP_H
3/* FTP tracking. */
4
5/* This enum is exposed to userspace */
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -08006enum nf_ct_ftp_type
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -08007{
8 /* PORT command from client */
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -08009 NF_CT_FTP_PORT,
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080010 /* PASV response from server */
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -080011 NF_CT_FTP_PASV,
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080012 /* EPRT command from client */
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -080013 NF_CT_FTP_EPRT,
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080014 /* EPSV response from server */
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -080015 NF_CT_FTP_EPSV,
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080016};
17
18#ifdef __KERNEL__
19
20#define FTP_PORT 21
21
22#define NUM_SEQ_TO_REMEMBER 2
23/* This structure exists only once per master */
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -080024struct nf_ct_ftp_master {
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080025 /* Valid seq positions for cmd matching after newline */
26 u_int32_t seq_aft_nl[IP_CT_DIR_MAX][NUM_SEQ_TO_REMEMBER];
27 /* 0 means seq_match_aft_nl not set */
28 int seq_aft_nl_num[IP_CT_DIR_MAX];
29};
30
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -080031struct nf_conntrack_expect;
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080032
33/* For NAT to hook in when we find a packet which describes what other
34 * connection we should expect. */
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -080035extern unsigned int (*nf_nat_ftp_hook)(struct sk_buff **pskb,
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080036 enum ip_conntrack_info ctinfo,
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -080037 enum nf_ct_ftp_type type,
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080038 unsigned int matchoff,
39 unsigned int matchlen,
Jozsef Kadlecsik55a73322006-12-02 22:07:44 -080040 struct nf_conntrack_expect *exp,
Yasuyuki Kozakai9fb9cbb2005-11-09 16:38:16 -080041 u32 *seq);
42#endif /* __KERNEL__ */
43
44#endif /* _NF_CONNTRACK_FTP_H */