/*
* Copyright (c) 2004-2006 Sendmail, Inc. and its suppliers.
* All rights reserved.
*
* By using this file, you agree to the terms and conditions set
* forth in the LICENSE file which can be found at the top level of
* the sendmail distribution.
*
* $Id: sccnfdef.h,v 1.43 2007/05/27 15:12:53 ca Exp $
*/
#ifndef SM_SCCNFDEF_H
#define SM_SCCNFDEF_H 1
#include "sm/generic.h"
#include "sm/types.h"
#include "sm/time.h"
#include "sm/qmgrcnf.h"
#include "sm/mcpcnfs.h"
#include "sm/tlscnfs.h"
#include "sm/mta.h"
#include "sm/smtpdef.h"
#include "sm/scdef.h"
#include "sm/sm-conf-time.h"
#define LMTPSOCK "lmtpsock"
#if SM_SCCNFDEF
#define SM_TLSREQCNFDEF 1
#endif
#include "sm/tlsreqcnf.h"
#include "sm/tlsreqcnfs.h"
#if SM_SCCNFDEF
#define EXTERN
#else
#define EXTERN extern
#endif
#if MTA_USE_TLS
EXTERN
sm_conf_definition_T
sc_tls_defs[]
#if SM_SCCNFDEF
=
{
TLS_DEFS(sc_cnf_T, sc),
{ SM_CONF_DEF_MAGIC, "options", sm_conf_type_u32,
offsetof(sc_cnf_T, sc_cnf_tls.tlscnf_options), sizeof(long),
SM_XSTR(SSL_OP_ALL), 0, NULL, NULL, NULL,
"options for SSL_CTX_set_options [expert only]"
SM_LC_ISSET(offsetof(sc_cnf_T, sc_cnf_tls.tlscnf_options_isset))
SM_LC_SET_MAGIC(0) },
/* Sentinel */
{ SM_CONF_DEF_MAGIC, NULL, 0, 0, 0, NULL, 0, NULL, NULL, NULL, NULL SM_LC_NO_ISSET SM_LC_SET_MAGIC(0)}
}
#endif /* SM_SCCNFDEF */
;
#endif /* MTA_USE_TLS */
EXTERN
sm_conf_definition_T const
sc_flag_names[]
#if SM_SCCNFDEF
=
{
{ SM_CONF_DEF_MAGIC,
"read_QUIT_reply", sm_conf_type_choice_value,
SCC_CFL_READ_QUIT,
0, NULL, 0, NULL, NULL, NULL,
"read reply to QUIT command"
SM_LC_NO_ISSET SM_LC_SET_MAGIC(0) },
{ SM_CONF_DEF_MAGIC,
"separate_final_dot_and_QUIT", sm_conf_type_choice_value,
SCC_CFL_SEP_DOT_QUIT,
0, NULL, 0, NULL, NULL, NULL,
"separate final dot and QUIT"
SM_LC_NO_ISSET SM_LC_SET_MAGIC(0) },
{ SM_CONF_DEF_MAGIC,
"talk_to_myself", sm_conf_type_choice_value,
SCC_CFL_NOTTM,
0, NULL, 0, NULL, NULL, NULL,
"do not check whether server greets with our own hostname"
SM_LC_NO_ISSET SM_LC_SET_MAGIC(0) },
/* Sentinel */
{ SM_CONF_DEF_MAGIC, NULL, 0, 0, 0, NULL, 0, NULL, NULL, NULL, NULL SM_LC_NO_ISSET SM_LC_SET_MAGIC(0)}
}
#endif /* SM_SCCNFDEF */
;
EXTERN
sm_conf_definition_T
sc_defs[]
#if SM_SCCNFDEF
=
{
{ SM_CONF_DEF_MAGIC, "remote_port", sm_conf_type_u32,
offsetof(sc_cnf_T, sc_cnf_port), sizeof(int),
SM_XSTR(SMTPC_PORT), 0, NULL, NULL, NULL,
"port to connect to on server"
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "LMTP_socket", sm_conf_type_string,
offsetof(sc_cnf_T, sc_cnf_lmtpsock ), 0,
LMTPSOCK, 0, NULL, NULL, NULL,
""
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "max_threads", sm_conf_type_u32,
offsetof(sc_cnf_T, sc_cnf_max_threads), sizeof(uint),
SM_XSTR(MAX_THREADS_DEFAULT), 0, NULL, NULL, NULL,
"maximum number of threads"
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "max_wait_threads", sm_conf_type_u32,
offsetof(sc_cnf_T, sc_cnf_max_wait_threads), sizeof(uint),
SM_XSTR(MAX_WAIT_THREADS_DEFAULT), 0, NULL, NULL, NULL,
"maximum number of waiting threads"
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "min_wait_threads", sm_conf_type_u32,
offsetof(sc_cnf_T, sc_cnf_min_wait_threads), sizeof(uint),
SM_XSTR(MIN_WAIT_THREADS_DEFAULT), 0, NULL, NULL, NULL,
"minimum number of waiting threads"
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "flags", sm_conf_type_choice,
offsetof(sc_cnf_T, sc_cnf_confflags), sizeof(uint32_t),
NULL, SM_CONF_FLAG_MULTIPLE|SM_CONF_FLAG_OR|SM_CONF_FLAG_PLURAL,
sc_flag_names,
NULL, NULL,
"flags to influence behavior [see documentation]"
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "log_level", sm_conf_type_u32,
offsetof(sc_cnf_T, sc_cnf_loglevel), sizeof(uint),
SM_XSTR(SM_LOG_LEVEL), 0, NULL, NULL, NULL,
""
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "log", sm_conf_type_section,
offsetof(sc_cnf_T, sc_cnf_log), 0,
NULL, SM_CONF_FLAG_KEEP_DEFAULT, sm_log_spec_defs,
NULL, NULL, NULL
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "debug_level", sm_conf_type_u32,
offsetof(sc_cnf_T, sc_cnf_debug), sizeof(int),
"0", 0, NULL, NULL, NULL,
NULL
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "io_timeout", sm_conf_type_u32,
offsetof(sc_cnf_T, sc_cnf_timeout), sizeof(sm_intvl_T),
SM_XSTR(SC_IO_TIMEOUT), 0, sm_conf_time_suffixes,
NULL, NULL,
"timeout for SMTP I/O operations"
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "module_timeout", sm_conf_type_u32,
offsetof(sc_cnf_T, sc_cnf_qmgr_tmo), sizeof(sm_intvl_T),
SM_XSTR(SC_RCB_SND_TMO), 0, sm_conf_time_suffixes,
NULL, NULL,
"timeout for communication with other modules (QMGR)"
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "wait_for_server", sm_conf_type_u32,
offsetof(sc_cnf_T, sc_cnf_wait4srv), sizeof(uint),
"1", 0, sm_conf_time_suffixes,
NULL, NULL,
"maximum amount of time to wait for a server to become available"
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "id", sm_conf_type_u32,
offsetof(sc_cnf_T, sc_cnf_id), sizeof(uint),
SM_XSTR(SMTPC_ID), SM_CONF_FLAG_KEEP_DEFAULT,
NULL, NULL, NULL,
"unique id"
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "connect_only_to", sm_conf_type_ipv4,
offsetof(sc_cnf_T, sc_cnf_sink), sizeof(ipv4_T),
"0", 0, 0,
NULL, NULL,
"connect only to this IPv4 address [testing]"
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
#if MTA_USE_TLS
{ SM_CONF_DEF_MAGIC, "tls", sm_conf_type_section,
0, sizeof(sc_cnf_T), NULL,
SM_CONF_FLAG_KEEP_DEFAULT|SM_CONF_FLAG_MULTIPLE,
sc_tls_defs,
NULL, NULL, NULL
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
#endif /* MTA_USE_TLS */
#if SC_TEST
{ SM_CONF_DEF_MAGIC, "tests", sm_conf_type_u32,
offsetof(sc_cnf_T, sc_cnf_tests), sizeof(uint),
"0", 0, NULL, NULL, NULL,
"test options"
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
#endif
MCP_DEFS(sc_cnf_T, sc_cnf)
/* Sentinel */
{ SM_CONF_DEF_MAGIC, NULL, 0, 0, 0, NULL, 0, NULL, NULL, NULL, NULL SM_LC_NO_ISSET SM_LC_SET_MAGIC(0)}
}
#endif /* SM_SCCNFDEF */
;
EXTERN
sm_conf_definition_T
sc_global_defs[]
#if SM_SCCNFDEF
=
{
{ SM_CONF_DEF_MAGIC, "SMTPC_socket", sm_conf_type_string,
offsetof(sc_cnf_T, sc_cnf_smtpcsock), 0, smsmtpcsock,
0, NULL, NULL, NULL, NULL
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "CDB_base_directory", sm_conf_type_string,
offsetof(sc_cnf_T, sc_cnf_cdb_base), 0, "",
0, NULL, NULL, NULL, NULL
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "hostname", sm_conf_type_string,
offsetof(sc_cnf_T, sc_cnf_hostname), 0, NULL,
0, NULL, NULL, NULL, NULL
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
{ SM_CONF_DEF_MAGIC, "smtpc", sm_conf_type_section,
0, sizeof(sc_cnf_T), NULL,
SM_CONF_FLAG_KEEP_DEFAULT|SM_CONF_FLAG_MULTIPLE|SM_CONF_FLAG_PARSE_ONLY,
sc_defs,
NULL, NULL, NULL
SM_LC_NO_ISSET
SM_LC_SET_MAGIC(SM_SC_CNF_MAGIC)
},
/* Sentinel */
{ SM_CONF_DEF_MAGIC, NULL, 0, 0, 0, NULL, 0, NULL, NULL, NULL, NULL SM_LC_NO_ISSET SM_LC_SET_MAGIC(0)}
}
#endif /* SM_SCCNFDEF */
;
#undef EXTERN
#endif /* SM_SCCNFDEF_H */
syntax highlighted by Code2HTML, v. 0.9.1