/*
* Copyright (c) 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: daemon.h,v 8.3 2006/07/13 22:57:03 ca Exp $
*/
#pragma ident "%Z%%M% %I% %E% SMI"
#ifndef DAEMON_H
#define DAEMON_H 1
#if DAEMON_C
# define EXTERN
#else
# define EXTERN extern
#endif
/* structure to describe a daemon or a client */
struct daemon
{
int d_socket; /* fd for socket */
SOCKADDR d_addr; /* socket for incoming */
unsigned short d_port; /* port number */
int d_listenqueue; /* size of listen queue */
int d_tcprcvbufsize; /* size of TCP receive buffer */
int d_tcpsndbufsize; /* size of TCP send buffer */
time_t d_refuse_connections_until;
bool d_firsttime;
int d_socksize;
BITMAP256 d_flags; /* flags; see sendmail.h */
char *d_mflags; /* flags for use in macro */
char *d_name; /* user-supplied name */
int d_dm; /* DeliveryMode */
int d_refuseLA;
int d_queueLA;
int d_delayLA;
int d_maxchildren;
#if MILTER
char *d_inputfilterlist;
struct milter *d_inputfilters[MAXFILTERS];
#endif /* MILTER */
#if _FFR_SS_PER_DAEMON
int d_supersafe;
#endif /* _FFR_SS_PER_DAEMON */
};
typedef struct daemon DAEMON_T;
EXTERN DAEMON_T Daemons[MAXDAEMONS];
#define DPO_NOTSET (-1) /* daemon option (int) not set */
/* see also sendmail.h: SuperSafe values */
extern bool refuseconnections __P((ENVELOPE *, int, bool));
#undef EXTERN
#endif /* ! DAEMON_H */