1#ifndef VSF_TUNABLES_H
2#define VSF_TUNABLES_H
3
4/* Configurable preferences */
5/* Booleans */
6extern int tunable_anonymous_enable;          /* Allow anon logins */
7extern int tunable_local_enable;              /* Allow local logins */
8extern int tunable_pasv_enable;               /* Allow PASV */
9extern int tunable_port_enable;               /* Allow PORT */
10extern int tunable_chroot_local_user;         /* Restrict local to home dir */
11extern int tunable_write_enable;              /* Global enable writes */
12extern int tunable_anon_upload_enable;        /* Enable STOR for anon users */
13extern int tunable_anon_mkdir_write_enable;   /* MKD for anon */
14extern int tunable_anon_other_write_enable;   /* APPE DELE RMD RNFR for anon */
15extern int tunable_chown_uploads;             /* chown() anon uploaded files */
16extern int tunable_connect_from_port_20;      /* PORT connects from port 20 */
17extern int tunable_xferlog_enable;            /* Log transfers to a file */
18extern int tunable_dirmessage_enable;         /* Look for + output .message */
19extern int tunable_anon_world_readable_only;  /* Only serve world readable */
20extern int tunable_async_abor_enable;         /* Enable async ABOR requests */
21extern int tunable_ascii_upload_enable;       /* Permit ASCII upload */
22extern int tunable_ascii_download_enable;     /* Permit ASCII download */
23extern int tunable_one_process_model;         /* Go faster stripes ;-) */
24extern int tunable_xferlog_std_format;        /* Log details like wu-ftpd */
25extern int tunable_pasv_promiscuous;          /* Allow any PASV connect IP */
26extern int tunable_deny_email_enable;         /* Ban a list of anon e-mails */
27extern int tunable_chroot_list_enable;        /* chroot() based on list file */
28extern int tunable_setproctitle_enable;       /* Try to use setproctitle() */
29extern int tunable_text_userdb_names;         /* For "ls", lookup text names */
30extern int tunable_ls_recurse_enable;         /* Allow ls -R */
31extern int tunable_log_ftp_protocol;          /* Log FTP requests/responses */
32extern int tunable_guest_enable;              /* Remap guest users */
33extern int tunable_userlist_enable;           /* Explicit user allow or deny */
34extern int tunable_userlist_deny;             /* Is user list allow or deny? */
35extern int tunable_use_localtime;             /* Use local time or GMT? */
36extern int tunable_check_shell;               /* Use /etc/shells for non-PAM */
37extern int tunable_hide_ids;                  /* Show "ftp" in ls listings */
38extern int tunable_listen;                    /* Standalone (no inetd) mode? */
39extern int tunable_port_promiscuous;          /* Any any PORT connect IP */
40extern int tunable_passwd_chroot_enable;      /* chroot() based on passwd */
41extern int tunable_no_anon_password;          /* Do not ask for anon pword */
42extern int tunable_tcp_wrappers;              /* Standalone: do tcp wrappers */
43extern int tunable_use_sendfile;              /* Use sendfile() if we can */
44extern int tunable_force_dot_files;           /* Show dotfiles without -a */
45extern int tunable_listen_ipv6;               /* Standalone with IPv6 listen */
46extern int tunable_dual_log_enable;           /* Log vsftpd.log AND xferlog */
47extern int tunable_syslog_enable;             /* Use syslog not vsftpd.log */
48extern int tunable_background;                /* Background listener process */
49extern int tunable_virtual_use_local_privs;   /* Virtual user => local privs */
50extern int tunable_session_support;           /* utmp, wtmp, pam_session */
51extern int tunable_download_enable;           /* Can download anything? */
52extern int tunable_dirlist_enable;            /* Can see any dirs? */
53extern int tunable_chmod_enable;              /* Is CHMOD allowed? (local) */
54extern int tunable_secure_email_list_enable;  /* Require specific anon email */
55extern int tunable_run_as_launching_user;     /* Runs as launching user */
56extern int tunable_no_log_lock;               /* Don't lock log files */
57extern int tunable_ssl_enable;                /* Allow SSL/TLS AUTH */
58extern int tunable_allow_anon_ssl;            /* Allow anonymous use of SSL */
59extern int tunable_force_local_logins_ssl;    /* Require local logins use SSL */
60extern int tunable_force_local_data_ssl;      /* Require local data uses SSL */
61extern int tunable_sslv2;                     /* Allow SSLv2 */
62extern int tunable_sslv3;                     /* Allow SSLv3 */
63extern int tunable_tlsv1;                     /* Allow TLSv1 */
64extern int tunable_tilde_user_enable;         /* Support e.g. ~chris */
65extern int tunable_enable_iconv;              /* Convert filename use iconv */	// Jiahao
66extern int tunable_force_anon_logins_ssl;     /* Require anon logins use SSL */
67extern int tunable_force_anon_data_ssl;       /* Require anon data uses SSL */
68extern int tunable_mdtm_write;                /* Allow MDTM to set timestamps */
69extern int tunable_lock_upload_files;         /* Lock uploading files */
70extern int tunable_pasv_addr_resolve;         /* DNS resolve pasv_addr */
71
72/* Integer/numeric defines */
73extern unsigned int tunable_accept_timeout;
74extern unsigned int tunable_connect_timeout;
75extern unsigned int tunable_local_umask;
76extern unsigned int tunable_anon_umask;
77extern unsigned int tunable_ftp_data_port;
78extern unsigned int tunable_idle_session_timeout;
79extern unsigned int tunable_data_connection_timeout;
80extern unsigned int tunable_pasv_min_port;
81extern unsigned int tunable_pasv_max_port;
82extern unsigned int tunable_anon_max_rate;
83extern unsigned int tunable_local_max_rate;
84extern unsigned int tunable_listen_port;
85extern unsigned int tunable_max_clients;
86extern unsigned int tunable_file_open_mode;
87extern unsigned int tunable_max_per_ip;
88extern unsigned int tunable_trans_chunk_size;
89
90/* String defines */
91extern const char* tunable_secure_chroot_dir;
92extern const char* tunable_ftp_username;
93extern const char* tunable_chown_username;
94extern const char* tunable_xferlog_file;
95extern const char* tunable_vsftpd_log_file;
96extern const char* tunable_message_file;
97extern const char* tunable_nopriv_user;
98extern const char* tunable_ftpd_banner;
99extern const char* tunable_banned_email_file;
100extern const char* tunable_chroot_list_file;
101extern const char* tunable_pam_service_name;
102extern const char* tunable_guest_username;
103extern const char* tunable_userlist_file;
104extern const char* tunable_anon_root;
105extern const char* tunable_local_root;
106extern const char* tunable_banner_file;
107extern const char* tunable_pasv_address;
108extern const char* tunable_listen_address;
109extern const char* tunable_user_config_dir;
110extern const char* tunable_listen_address6;
111extern const char* tunable_cmds_allowed;
112extern const char* tunable_hide_file;
113extern const char* tunable_deny_file;
114extern const char* tunable_user_sub_token;
115extern const char* tunable_email_password_file;
116extern const char* tunable_rsa_cert_file;
117extern const char* tunable_dsa_cert_file;
118extern const char* tunable_ssl_ciphers;
119extern const char* tunable_rsa_private_key_file;
120extern const char* tunable_dsa_private_key_file;
121extern const char* tunable_local_charset;	// Jiahao
122extern const char* tunable_remote_charset;
123
124#endif /* VSF_TUNABLES_H */
125
126