/usr/include/proftpd/options.h is in proftpd-dev 1.3.5~rc3-2.1ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 | /*
* ProFTPD - FTP server daemon
* Copyright (c) 1997, 1998 Public Flood Software
* Copyright (c) 1999, 2000 MacGyver aka Habeeb J. Dihu <macgyver@tos.net>
* Copyright (c) 2001-2013 The ProFTPD Project team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA.
*
* As a special exemption, Public Flood Software/MacGyver aka Habeeb J. Dihu
* and other respective copyright holders give permission to link this program
* with OpenSSL, and distribute the resulting executable, without including
* the source code for OpenSSL in the source distribution.
*/
/* User configurable defaults and tunable parameters.
* $Id: options.h,v 1.34 2013/02/07 06:37:24 castaglia Exp $
*/
#ifndef PR_OPTIONS_H
#define PR_OPTIONS_H
/* Define the next option if your libc needs persistant /etc/passwd
* and /etc/group functions. Some libcs occasionally close these files
* which can not be re-opened after a chroot(). Symptoms of this
* include the inability to see user/group names when doing a 'ls -l' from
* an anon. ftp login (you see only uid/gid numbers).
*/
/* If we have setpassent(), NEED_PERSISTENT_PASSWD is not enabled
* by default. This option controls the DEFAULT value of the
* PersistentPasswd directive. You can always override this in
* the configuration file.
*/
#if ! (defined (HAVE_SETPASSENT) || defined (HAVE__PW_STAYOPEN))
# define NEED_PERSISTENT_PASSWD
#endif
/* Tunable parameters */
/* This defines the timeout for the main select() loop, defines the number
* of seconds to wait for a session request before checking for things such
* as shutdown requests, perform signal dispatching, etc before waitinng
* for requests again.
*/
#define PR_TUNABLE_SELECT_TIMEOUT 30
/* Hash table size is the number of items in the module hash tables.
*/
#define PR_TUNABLE_HASH_TABLE_SIZE 40
/* "Backlog" is the number of connections that can be received at one
* burst before the kernel rejects. This can be configured by the
* "tcpBackLog" configuration directive, this value is just the default.
*/
#define PR_TUNABLE_DEFAULT_BACKLOG 32
/* The default TCP send/receive buffer sizes, should explicit sizes not
* be defined at compile time, or should the runtime determination process
* fail.
*
* Note that these default buffer sizes are only used if the service cannot
* determine the platform's favored network buffer sizes using getsockopt(2).
* If you wish to override the use of getsockopt(2) to determine the network
* buffer sizes to use, you can use the PR_TUNABLE_RCVBUFSZ and
* PR_TUNABLE_SNDBUFSZ macros to define, at compile-time, the network buffer
* sizes to use.
*/
#ifndef PR_TUNABLE_DEFAULT_RCVBUFSZ
# define PR_TUNABLE_DEFAULT_RCVBUFSZ 8192
#endif /* PR_TUNABLE_DEFAULT_RCVBUFSZ */
#ifndef PR_TUNABLE_DEFAULT_SNDBUFSZ
# define PR_TUNABLE_DEFAULT_SNDBUFSZ 8192
#endif /* PR_TUNABLE_DEFAULT_SNDBUFSZ */
/* Default internal buffer size used for data transfers and other
* miscellaneous tasks.
*/
#ifndef PR_TUNABLE_BUFFER_SIZE
# define PR_TUNABLE_BUFFER_SIZE 1024
#endif
/* There is also a definable buffer size used specifically for data
* transfers: PR_TUNABLE_XFER_BUFFER_SIZE. By default, this buffer
* size is automatically determined, at runtime, as the smaller of the
* TCP receive and send buffer sizes.
*
* You should manually set the PR_TUNABLE_XFER_BUFFER_SIZE only in
* special circumstances, when you need to explicitly control that
* buffer size.
*/
#ifndef PR_TUNABLE_XFER_BUFFER_SIZE
# define PR_TUNABLE_XFER_BUFFER_SIZE PR_TUNABLE_BUFFER_SIZE
#endif
/* Maximum path length. GNU HURD (and some others) do not define
* MAXPATHLEN. POSIX' PATH_MAX is mandated to be at least 256
* (according to some), so 1K, in the absense of MAXPATHLEN, should be
* a reasonable default.
*/
#ifndef PR_TUNABLE_PATH_MAX
# ifdef MAXPATHLEN
# define PR_TUNABLE_PATH_MAX MAXPATHLEN
# else
# define PR_TUNABLE_PATH_MAX 1024
# endif
#endif
/* Default timeouts, if not explicitly configured via
* the TimeoutLogin, TimeoutIdle, etc directives.
*/
#ifndef PR_TUNABLE_TIMEOUTIDENT
# define PR_TUNABLE_TIMEOUTIDENT 10
#endif
#ifndef PR_TUNABLE_TIMEOUTIDLE
# define PR_TUNABLE_TIMEOUTIDLE 600
#endif
/* The default command timeout in many command-line FTP clients (e.g.
* lukemftp, used on BSDs and maybe Linux?) is 60 seconds. To avoid having
* those clients close the control connection because proftpd takes too
* long, while performing lingering closes, to send a response, keep the
* default linger timeout under 60 seconds.
*/
#ifndef PR_TUNABLE_TIMEOUTLINGER
# define PR_TUNABLE_TIMEOUTLINGER 30
#endif
#ifndef PR_TUNABLE_TIMEOUTLOGIN
# define PR_TUNABLE_TIMEOUTLOGIN 300
#endif
#ifndef PR_TUNABLE_TIMEOUTNOXFER
# define PR_TUNABLE_TIMEOUTNOXFER 300
#endif
#ifndef PR_TUNABLE_TIMEOUTSTALLED
# define PR_TUNABLE_TIMEOUTSTALLED 3600
#endif
/* Number of bytes in a new memory pool. During file transfers,
* quite a few pools can be created, which eat up a lot of memory.
* Tune this if ProFTPD seems too memory hungry (warning! too low
* can negatively impact performance)
*/
#ifndef PR_TUNABLE_NEW_POOL_SIZE
# define PR_TUNABLE_NEW_POOL_SIZE 512
#endif
/* Number of bytes in certain scoreboard fields, usually for reporting
* the full command received from the connected client, or the current
* working directory for the session.
*/
#ifndef PR_TUNABLE_SCOREBOARD_BUFFER_SIZE
# define PR_TUNABLE_SCOREBOARD_BUFFER_SIZE 80
#endif
/* Number of seconds between scoreboard scrubs, where the scoreboard is
* scanned for slots containing invalid PIDs. Defaults to 30 seconds.
*/
#ifndef PR_TUNABLE_SCOREBOARD_SCRUB_TIMER
# define PR_TUNABLE_SCOREBOARD_SCRUB_TIMER 30
#endif
/* Maximum number of attempted updates to the scoreboard during a
* file transfer before an actual write is done. This is to allow
* an optimization where the scoreboard is not updated on every loop
* through the transfer buffer.
*/
#ifndef PR_TUNABLE_XFER_SCOREBOARD_UPDATES
# define PR_TUNABLE_XFER_SCOREBOARD_UPDATES 10
#endif
#ifndef PR_TUNABLE_CALLER_DEPTH
/* Max depth of call stack if stacktrace support is enabled. */
# define PR_TUNABLE_CALLER_DEPTH 32
#endif
#ifndef PR_TUNABLE_ENV_MAX
/* Max length of environment variable values allowed by proftpd. */
# define PR_TUNABLE_ENV_MAX 2048
#endif
#ifndef PR_TUNABLE_GLOBBING_MAX_RECURSION
/* Max number of recursion/directory levels to support when globbing.
*/
# define PR_TUNABLE_GLOBBING_MAX_RECURSION 8
#endif
#ifndef PR_TUNABLE_GLOBBING_MAX_MATCHES
/* Max number of matches to support when globbing.
*/
# define PR_TUNABLE_GLOBBING_MAX_MATCHES 100000UL
#endif
#ifndef PR_TUNABLE_LOGIN_MAX
/* Maximum length of login name.
*
* Ideally, we'd use _POSIX_LOGIN_NAME_MAX here, if it was defined. However,
* doing so would cause trouble for those sites that use databases for
* storing user information; such sites often use email addresses as
* login names. Given that, let's use 256 as a login name size.
*/
# define PR_TUNABLE_LOGIN_MAX 256
#endif
#ifndef PR_TUNABLE_EINTR_RETRY_INTERVAL
/* Define the time to delay, in seconds, after a system call has been
* interrupted (errno is EINTR) before retrying that call.
*
* The default behavior is delay 0.2 secs between retries.
*/
# define PR_TUNABLE_EINTR_RETRY_INTERVAL 0.2
#endif
#endif /* PR_OPTIONS_H */
|