1 #ifndef FILEZILLA_ENGINE_ENGINE_OPTIONS_HEADER
2 #define FILEZILLA_ENGINE_ENGINE_OPTIONS_HEADER
3 
4 #include "optionsbase.h"
5 
6 // The engine of FileZilla 3 can be configured using a few settings.
7 
8 enum engineOptions : unsigned int
9 {
10 	OPTION_USEPASV,			// Use passive mode unless overridden by
11 	                                // server settings
12 	OPTION_LIMITPORTS,
13 	OPTION_LIMITPORTS_LOW,
14 	OPTION_LIMITPORTS_HIGH,
15 	OPTION_LIMITPORTS_OFFSET,
16 	OPTION_EXTERNALIPMODE,		/* External IP Address mode for use in active mode
17 	                                   Values: 0: ask operating system
18 	                                           1: use provided IP
19 	                                           2: use provided resolver
20 	                                 */
21 	OPTION_EXTERNALIP,
22 	OPTION_EXTERNALIPRESOLVER,
23 	OPTION_LASTRESOLVEDIP,
24 	OPTION_NOEXTERNALONLOCAL,	// Don't use external IP address if connection is
25 	                                // coming from a local unroutable address
26 	OPTION_PASVREPLYFALLBACKMODE,
27 	OPTION_TIMEOUT,
28 	OPTION_LOGGING_DEBUGLEVEL,
29 	OPTION_LOGGING_RAWLISTING,
30 
31 	OPTION_FZSFTP_EXECUTABLE,	// full path to fzsftp executable
32 	OPTION_FZSTORJ_EXECUTABLE,
33 
34 	OPTION_ALLOW_TRANSFERMODEFALLBACK, // If PORT fails, allow PASV and vice versa
35 
36 	OPTION_RECONNECTCOUNT,
37 	OPTION_RECONNECTDELAY,
38 
39 	OPTION_SPEEDLIMIT_ENABLE,
40 	OPTION_SPEEDLIMIT_INBOUND,
41 	OPTION_SPEEDLIMIT_OUTBOUND,
42 	OPTION_SPEEDLIMIT_BURSTTOLERANCE,
43 
44 	OPTION_PREALLOCATE_SPACE,
45 
46 	OPTION_VIEW_HIDDEN_FILES,
47 
48 	OPTION_PRESERVE_TIMESTAMPS,
49 
50 	OPTION_SOCKET_BUFFERSIZE_RECV,
51 	OPTION_SOCKET_BUFFERSIZE_SEND,
52 
53 	OPTION_FTP_SENDKEEPALIVE,
54 
55 	OPTION_FTP_PROXY_TYPE,
56 	OPTION_FTP_PROXY_HOST,
57 	OPTION_FTP_PROXY_USER,
58 	OPTION_FTP_PROXY_PASS,
59 	OPTION_FTP_PROXY_CUSTOMLOGINSEQUENCE,
60 
61 	OPTION_SFTP_KEYFILES,
62 	OPTION_SFTP_COMPRESSION,
63 
64 	OPTION_PROXY_TYPE,
65 	OPTION_PROXY_HOST,
66 	OPTION_PROXY_PORT,
67 	OPTION_PROXY_USER,
68 	OPTION_PROXY_PASS,
69 
70 	OPTION_LOGGING_FILE,
71 	OPTION_LOGGING_FILE_SIZELIMIT,
72 	OPTION_LOGGING_SHOW_DETAILED_LOGS,
73 
74 	OPTION_SIZE_FORMAT,
75 	OPTION_SIZE_USETHOUSANDSEP,
76 	OPTION_SIZE_DECIMALPLACES,
77 
78 	OPTION_TCP_KEEPALIVE_INTERVAL,
79 
80 	OPTION_CACHE_TTL,
81 
82 	OPTIONS_ENGINE_NUM
83 };
84 
85 unsigned int FZC_PUBLIC_SYMBOL register_engine_options();
86 
mapOption(engineOptions opt)87 inline optionsIndex mapOption(engineOptions opt)
88 {
89 	static unsigned int const offset = register_engine_options();
90 
91 	auto ret = optionsIndex::invalid;
92 	if (opt < OPTIONS_ENGINE_NUM) {
93 		return static_cast<optionsIndex>(opt + offset);
94 	}
95 	return ret;
96 }
97 
98 #endif
99