1#ifndef _NF_CONNTRACK_FTP_H 2#define _NF_CONNTRACK_FTP_H 3/* FTP tracking. */ 4 5/* This enum is exposed to userspace */ 6enum nf_ct_ftp_type 7{ 8 /* PORT command from client */ 9 NF_CT_FTP_PORT, 10 /* PASV response from server */ 11 NF_CT_FTP_PASV, 12 /* EPRT command from client */ 13 NF_CT_FTP_EPRT, 14 /* EPSV response from server */ 15 NF_CT_FTP_EPSV, 16}; 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 */ 24struct nf_ct_ftp_master { 25 /* 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 31struct nf_conntrack_expect; 32 33/* For NAT to hook in when we find a packet which describes what other 34 * connection we should expect. */ 35extern unsigned int (*nf_nat_ftp_hook)(struct sk_buff **pskb, 36 enum ip_conntrack_info ctinfo, 37 enum nf_ct_ftp_type type, 38 unsigned int matchoff, 39 unsigned int matchlen, 40 struct nf_conntrack_expect *exp); 41#endif /* __KERNEL__ */ 42 43#endif /* _NF_CONNTRACK_FTP_H */ 44