375 lines
8.6 KiB
C
375 lines
8.6 KiB
C
/* $Id$ */
|
|
/*
|
|
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
|
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
|
*
|
|
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
#ifndef __PJLIB_UTIL_CONFIG_H__
|
|
#define __PJLIB_UTIL_CONFIG_H__
|
|
|
|
|
|
/**
|
|
* @file config.h
|
|
* @brief Compile time settings
|
|
*/
|
|
|
|
/**
|
|
* @defgroup PJLIB_UTIL_CONFIG Configuration
|
|
* @ingroup PJLIB_UTIL_BASE
|
|
* @{
|
|
*/
|
|
|
|
|
|
/* **************************************************************************
|
|
* DNS CONFIGURATION
|
|
*/
|
|
|
|
/**
|
|
* Maximum number of IP addresses in DNS A response.
|
|
*/
|
|
#ifndef PJ_DNS_MAX_IP_IN_A_REC
|
|
# define PJ_DNS_MAX_IP_IN_A_REC 8
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Maximum server address entries per one SRV record
|
|
*/
|
|
#ifndef PJ_DNS_SRV_MAX_ADDR
|
|
# define PJ_DNS_SRV_MAX_ADDR 8
|
|
#endif
|
|
|
|
|
|
/**
|
|
* This constant specifies the maximum names to keep in the temporary name
|
|
* table when performing name compression scheme when duplicating DNS packet
|
|
* (the #pj_dns_packet_dup() function).
|
|
*
|
|
* Generally name compression is desired, since it saves some memory (see
|
|
* PJ_DNS_RESOLVER_RES_BUF_SIZE setting). However it comes at the expense of
|
|
* a little processing overhead to perform name scanning and also a little
|
|
* bit more stack usage (8 bytes per entry on 32bit platform).
|
|
*
|
|
* Default: 16
|
|
*/
|
|
#ifndef PJ_DNS_MAX_NAMES_IN_NAMETABLE
|
|
# define PJ_DNS_MAX_NAMES_IN_NAMETABLE 16
|
|
#endif
|
|
|
|
|
|
/* **************************************************************************
|
|
* RESOLVER CONFIGURATION
|
|
*/
|
|
|
|
|
|
/**
|
|
* Maximum numbers of DNS nameservers that can be configured in resolver.
|
|
*/
|
|
#ifndef PJ_DNS_RESOLVER_MAX_NS
|
|
# define PJ_DNS_RESOLVER_MAX_NS 16
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Default retransmission delay, in miliseconds. The combination of
|
|
* retransmission delay and count determines the query timeout.
|
|
*
|
|
* Default: 2000 (2 seconds, according to RFC 1035)
|
|
*/
|
|
#ifndef PJ_DNS_RESOLVER_QUERY_RETRANSMIT_DELAY
|
|
# define PJ_DNS_RESOLVER_QUERY_RETRANSMIT_DELAY 2000
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Maximum number of transmissions before timeout is declared for
|
|
* the query.
|
|
*
|
|
* Default: 5
|
|
*/
|
|
#ifndef PJ_DNS_RESOLVER_QUERY_RETRANSMIT_COUNT
|
|
# define PJ_DNS_RESOLVER_QUERY_RETRANSMIT_COUNT 5
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Maximum life-time of DNS response in the resolver response cache,
|
|
* in seconds. If the value is zero, then DNS response caching will be
|
|
* disabled.
|
|
*
|
|
* Default is 300 seconds (5 minutes).
|
|
*
|
|
* @see PJ_DNS_RESOLVER_INVALID_TTL
|
|
*/
|
|
#ifndef PJ_DNS_RESOLVER_MAX_TTL
|
|
# define PJ_DNS_RESOLVER_MAX_TTL (5*60)
|
|
#endif
|
|
|
|
/**
|
|
* The life-time of invalid DNS response in the resolver response cache.
|
|
* An invalid DNS response is a response which RCODE is non-zero and
|
|
* response without any answer section. These responses can be put in
|
|
* the cache too to minimize message round-trip.
|
|
*
|
|
* Default: 60 (one minute).
|
|
*
|
|
* @see PJ_DNS_RESOLVER_MAX_TTL
|
|
*/
|
|
#ifndef PJ_DNS_RESOLVER_INVALID_TTL
|
|
# define PJ_DNS_RESOLVER_INVALID_TTL 60
|
|
#endif
|
|
|
|
/**
|
|
* The interval on which nameservers which are known to be good to be
|
|
* probed again to determine whether they are still good. Note that
|
|
* this applies to both active nameserver (the one currently being used)
|
|
* and idle nameservers (good nameservers that are not currently selected).
|
|
* The probing to query the "goodness" of nameservers involves sending
|
|
* the same query to multiple servers, so it's probably not a good idea
|
|
* to send this probing too often.
|
|
*
|
|
* Default: 600 (ten minutes)
|
|
*
|
|
* @see PJ_DNS_RESOLVER_BAD_NS_TTL
|
|
*/
|
|
#ifndef PJ_DNS_RESOLVER_GOOD_NS_TTL
|
|
# define PJ_DNS_RESOLVER_GOOD_NS_TTL (10*60)
|
|
#endif
|
|
|
|
/**
|
|
* The interval on which nameservers which known to be bad to be probed
|
|
* again to determine whether it is still bad.
|
|
*
|
|
* Default: 60 (one minute)
|
|
*
|
|
* @see PJ_DNS_RESOLVER_GOOD_NS_TTL
|
|
*/
|
|
#ifndef PJ_DNS_RESOLVER_BAD_NS_TTL
|
|
# define PJ_DNS_RESOLVER_BAD_NS_TTL (1*60)
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Maximum size of UDP packet. RFC 1035 states that maximum size of
|
|
* DNS packet carried over UDP is 512 bytes.
|
|
*
|
|
* Default: 512 byes
|
|
*/
|
|
#ifndef PJ_DNS_RESOLVER_MAX_UDP_SIZE
|
|
# define PJ_DNS_RESOLVER_MAX_UDP_SIZE 512
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Size of memory pool allocated for each individual DNS response cache.
|
|
* This value here should be more or less the same as maximum UDP packet
|
|
* size (PJ_DNS_RESOLVER_MAX_UDP_SIZE), since the DNS replicator function
|
|
* (#pj_dns_packet_dup()) is also capable of performing name compressions.
|
|
*
|
|
* Default: 512
|
|
*/
|
|
#ifndef PJ_DNS_RESOLVER_RES_BUF_SIZE
|
|
# define PJ_DNS_RESOLVER_RES_BUF_SIZE 512
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Size of temporary pool buffer for parsing DNS packets in resolver.
|
|
*
|
|
* default: 4000
|
|
*/
|
|
#ifndef PJ_DNS_RESOLVER_TMP_BUF_SIZE
|
|
# define PJ_DNS_RESOLVER_TMP_BUF_SIZE 4000
|
|
#endif
|
|
|
|
|
|
/* **************************************************************************
|
|
* SCANNER CONFIGURATION
|
|
*/
|
|
|
|
|
|
/**
|
|
* Macro PJ_SCANNER_USE_BITWISE is defined and non-zero (by default yes)
|
|
* will enable the use of bitwise for character input specification (cis).
|
|
* This would save several kilobytes of .bss memory in the SIP parser.
|
|
*/
|
|
#ifndef PJ_SCANNER_USE_BITWISE
|
|
# define PJ_SCANNER_USE_BITWISE 1
|
|
#endif
|
|
|
|
|
|
|
|
/* **************************************************************************
|
|
* STUN CLIENT CONFIGURATION
|
|
*/
|
|
|
|
/**
|
|
* Maximum number of attributes in the STUN packet (for the old STUN
|
|
* library).
|
|
*
|
|
* Default: 16
|
|
*/
|
|
#ifndef PJSTUN_MAX_ATTR
|
|
# define PJSTUN_MAX_ATTR 16
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Maximum number of attributes in the STUN packet (for the new STUN
|
|
* library).
|
|
*
|
|
* Default: 16
|
|
*/
|
|
#ifndef PJ_STUN_MAX_ATTR
|
|
# define PJ_STUN_MAX_ATTR 16
|
|
#endif
|
|
|
|
|
|
/* **************************************************************************
|
|
* ENCRYPTION
|
|
*/
|
|
|
|
/**
|
|
* Specifies whether CRC32 algorithm should use the table based lookup table
|
|
* for faster calculation, at the expense of about 1KB table size on the
|
|
* executable. If zero, the CRC32 will use non-table based which is more than
|
|
* an order of magnitude slower.
|
|
*
|
|
* Default: 1
|
|
*/
|
|
#ifndef PJ_CRC32_HAS_TABLES
|
|
# define PJ_CRC32_HAS_TABLES 1
|
|
#endif
|
|
|
|
|
|
/* **************************************************************************
|
|
* HTTP Client configuration
|
|
*/
|
|
/**
|
|
* Timeout value for HTTP request operation. The value is in ms.
|
|
* Default: 60000ms
|
|
*/
|
|
#ifndef PJ_HTTP_DEFAULT_TIMEOUT
|
|
# define PJ_HTTP_DEFAULT_TIMEOUT (60000)
|
|
#endif
|
|
|
|
/* **************************************************************************
|
|
* CLI configuration
|
|
*/
|
|
|
|
/**
|
|
* Initial pool size for CLI.
|
|
* Default: 1024 bytes
|
|
*/
|
|
#ifndef PJ_CLI_POOL_SIZE
|
|
# define PJ_CLI_POOL_SIZE 1024
|
|
#endif
|
|
|
|
/**
|
|
* Pool increment size for CLI.
|
|
* Default: 512 bytes
|
|
*/
|
|
#ifndef PJ_CLI_POOL_INC
|
|
# define PJ_CLI_POOL_INC 512
|
|
#endif
|
|
|
|
/**
|
|
* Maximum length of command buffer.
|
|
* Default: 120
|
|
*/
|
|
#ifndef PJ_CLI_MAX_CMDBUF
|
|
# define PJ_CLI_MAX_CMDBUF 512
|
|
#endif
|
|
|
|
/**
|
|
* Maximum command arguments.
|
|
* Default: 8
|
|
*/
|
|
#ifndef PJ_CLI_MAX_ARGS
|
|
# define PJ_CLI_MAX_ARGS 8
|
|
#endif
|
|
|
|
/**
|
|
* Maximum number of hints.
|
|
* Default: 32
|
|
*/
|
|
#ifndef PJ_CLI_MAX_HINTS
|
|
# define PJ_CLI_MAX_HINTS 32
|
|
#endif
|
|
|
|
/**
|
|
* Maximum short name version (shortcuts) for a command.
|
|
* Default: 4
|
|
*/
|
|
#ifndef PJ_CLI_MAX_SHORTCUTS
|
|
# define PJ_CLI_MAX_SHORTCUTS 4
|
|
#endif
|
|
|
|
/**
|
|
* Initial pool size for console CLI.
|
|
* Default: 256 bytes
|
|
*/
|
|
#ifndef PJ_CLI_CONSOLE_POOL_SIZE
|
|
# define PJ_CLI_CONSOLE_POOL_SIZE 256
|
|
#endif
|
|
|
|
/**
|
|
* Pool increment size for console CLI.
|
|
* Default: 256 bytes
|
|
*/
|
|
#ifndef PJ_CLI_CONSOLE_POOL_INC
|
|
# define PJ_CLI_CONSOLE_POOL_INC 256
|
|
#endif
|
|
|
|
/**
|
|
* Initial pool size for telnet CLI.
|
|
* Default: 1024 bytes
|
|
*/
|
|
#ifndef PJ_CLI_TELNET_POOL_SIZE
|
|
# define PJ_CLI_TELNET_POOL_SIZE 1024
|
|
#endif
|
|
|
|
/**
|
|
* Pool increment size for telnet CLI.
|
|
* Default: 512 bytes
|
|
*/
|
|
#ifndef PJ_CLI_TELNET_POOL_INC
|
|
# define PJ_CLI_TELNET_POOL_INC 512
|
|
#endif
|
|
|
|
/**
|
|
* Maximum number of argument values of choice type.
|
|
* Default: 16
|
|
*/
|
|
#ifndef PJ_CLI_MAX_CHOICE_VAL
|
|
# define PJ_CLI_MAX_CHOICE_VAL 16
|
|
#endif
|
|
|
|
/**
|
|
* Maximum number of command history.
|
|
* Default: 16
|
|
*/
|
|
#ifndef PJ_CLI_MAX_CMD_HISTORY
|
|
# define PJ_CLI_MAX_CMD_HISTORY 16
|
|
#endif
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
#endif /* __PJLIB_UTIL_CONFIG_H__ */
|
|
|