/*
* Copyright (c) 2004, 2005 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: sockcnfdef.h,v 1.10 2007/05/01 04:18:32 ca Exp $
*/
#ifndef SM_SOCKCNFDEF_H
#define SM_SOCKCNFDEF_H 1
#include "sm/generic.h"
#include "sm/net.h"
#include "sm/sm-conf.h"
#if SM_SOCKCNFDEF
#define EXTERN
#else
#define EXTERN extern
#endif
EXTERN
sm_conf_definition_T
const sock_types[]
#if SM_SOCKCNFDEF
=
{
{ SM_CONF_DEF_MAGIC,
"unix", sm_conf_type_choice_value, SOCK_TYPE_UNIX
, 0, NULL, 0, NULL, NULL, NULL, NULL
SM_LC_NO_ISSET SM_LC_SET_MAGIC(0) },
{ SM_CONF_DEF_MAGIC,
"local", sm_conf_type_choice_value, SOCK_TYPE_UNIX
, 0, NULL, 0, NULL, NULL, NULL, NULL
SM_LC_NO_ISSET SM_LC_SET_MAGIC(0) },
{ SM_CONF_DEF_MAGIC,
"inet", sm_conf_type_choice_value, SOCK_TYPE_INET
, 0, NULL, 0, NULL, NULL, NULL, NULL
SM_LC_NO_ISSET SM_LC_SET_MAGIC(0) },
{ SM_CONF_DEF_MAGIC,
"inet6", sm_conf_type_choice_value, SOCK_TYPE_INET6
, 0, NULL, 0, NULL, NULL, NULL, NULL
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_SOCKCNFDEF */
;
EXTERN
sm_conf_definition_T
unix_sock_spec_defs[]
#if SM_SOCKCNFDEF
=
{
{ SM_CONF_DEF_MAGIC,
"type", sm_conf_type_choice,
offsetof(sockspec_T, sckspc_type), sizeof(sock_type_T),
NULL, SM_CONF_FLAG_STRICTLY_REQUIRED, sock_types,
NULL, NULL, "socket type"
SM_LC_NO_ISSET SM_LC_SET_MAGIC(0) },
{ SM_CONF_DEF_MAGIC,
"path", sm_conf_type_string,
offsetof(sockspec_T, sock_unix.unixsckspc_path), 0,
NULL, SM_CONF_FLAG_KEEP_DEFAULT, NULL, NULL, NULL,
"pathname of Unix domain socket"
SM_LC_NO_ISSET SM_LC_SET_MAGIC(0) },
{ SM_CONF_DEF_MAGIC,
"umask", sm_conf_type_u32,
offsetof(sockspec_T, sock_unix.unixsckspc_umask),
sizeof(mode_t), "007", 0, NULL, NULL, NULL,
"umask to set before bind(2) and to set socket permissions"
SM_LC_NO_ISSET SM_LC_SET_MAGIC(0) },
{ SM_CONF_DEF_MAGIC,
"user", sm_conf_type_string,
offsetof(sockspec_T, sock_unix.unixsckspc_user),
0, "", 0, NULL, NULL, NULL,
"owner of socket"
SM_LC_NO_ISSET SM_LC_SET_MAGIC(0) },
{ SM_CONF_DEF_MAGIC,
"group", sm_conf_type_string,
offsetof(sockspec_T, sock_unix.unixsckspc_group),
0, "", 0, NULL, NULL, NULL,
"group of socket"
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_SOCKCNFDEF */
;
EXTERN
sm_conf_definition_T
inet_sock_spec_defs[]
#if SM_SOCKCNFDEF
=
{
{ SM_CONF_DEF_MAGIC,
"type", sm_conf_type_choice,
offsetof(sockspec_T, sckspc_type), sizeof(sock_type_T),
NULL, SM_CONF_FLAG_STRICTLY_REQUIRED, sock_types, NULL, NULL,
"socket type"
SM_LC_NO_ISSET SM_LC_SET_MAGIC(0) },
{ SM_CONF_DEF_MAGIC,
"port", sm_conf_type_u32,
offsetof(sockspec_T, sock_inet.inetsckspc_port), sizeof(int),
NULL, SM_CONF_FLAG_KEEP_DEFAULT|SM_CONF_FLAG_STRICTLY_REQUIRED,
NULL, NULL, NULL,
"port to listen on"
SM_LC_NO_ISSET SM_LC_SET_MAGIC(0) },
{ SM_CONF_DEF_MAGIC,
"address", sm_conf_type_ipv4,
offsetof(sockspec_T, sock_inet.inetsckspc_addr),
sizeof(ipv4_T),
"0.0.0.0", SM_CONF_FLAG_KEEP_DEFAULT, NULL, NULL, NULL,
"bind to this IPv4 address"
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_SOCKCNFDEF */
;
EXTERN
sm_conf_definition_T
sock_spec_definitions[]
#if SM_SOCKCNFDEF
=
{
{ SM_CONF_DEF_MAGIC,
"", sm_conf_type_union_type,
offsetof(sockspec_T, sckspc_type), sizeof(sock_type_T),
NULL, SM_CONF_FLAG_KEEP_DEFAULT, NULL, NULL, NULL, NULL
SM_LC_NO_ISSET SM_LC_SET_MAGIC(0) },
{ SM_CONF_DEF_MAGIC,
"type", sm_conf_type_union_choice,
SOCK_TYPE_UNIX, sizeof(sockspec_T),
"unix", SM_CONF_FLAG_KEEP_DEFAULT, unix_sock_spec_defs,
NULL, NULL, NULL
SM_LC_NO_ISSET SM_LC_SET_MAGIC(0) },
{ SM_CONF_DEF_MAGIC,
"type", sm_conf_type_union_choice,
SOCK_TYPE_INET, sizeof(sockspec_T),
"inet", SM_CONF_FLAG_KEEP_DEFAULT, inet_sock_spec_defs,
NULL, NULL, NULL
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_SOCKCNFDEF */
;
#undef EXTERN
#endif /* SM_SOCKCNFDEF_H */
syntax highlighted by Code2HTML, v. 0.9.1