
  *   ˆl–Ðz¾”êe¶¥6 ]¸&n *bÑ¿Àƒy¶C_†I|¥�+ÀÃ !S    /*
 * 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-2023 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. */

#ifndef PR_OPTIONS_H
#define PR_OPTIONS_H

/* 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.
 * If a backlog value of -1 is supported, it means "use system/kernel default".
 */
#ifndef PR_TUNABLE_DEFAULT_BACKLOG
# ifdef LISTEN_NEGATIVE_BACKLOG
#   define PR_TUNABLE_DEFAULT_BACKLOG	-1
# else
#   define PR_TUNABLE_DEFAULT_BACKLOG	128
# endif /* LISTEN_NEGATIVE_BACKLOG */
#endif /* PR_TUNABLE_DEFAULT_BACKLOG */

/* 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	65536
#endif /* PR_TUNABLE_DEFAULT_RCVBUFSZ */

#ifndef PR_TUNABLE_DEFAULT_SNDBUFSZ
# define PR_TUNABLE_DEFAULT_SNDBUFSZ	65536
#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 parsing
 * lines of text from the config file: PR_TUNABLE_PARSER_BUFFER_SIZE.
 *
 * You should manually set the PR_TUNABLE_PARSER_BUFFER_SIZE only if you
 * have exceptionally long configuration lines.
 */
#ifndef PR_TUNABLE_PARSER_BUFFER_SIZE
# define PR_TUNABLE_PARSER_BUFFER_SIZE	4096
#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_