1/*
2 * Copyright (c) 2006 Proofpoint, Inc. and its suppliers.
3 *	All rights reserved.
4 *
5 * By using this file, you agree to the terms and conditions set
6 * forth in the LICENSE file which can be found at the top level of
7 * the sendmail distribution.
8 *
9 *	$Id: daemon.h,v 8.4 2013-11-22 20:51:55 ca Exp $
10 */
11
12#ifndef DAEMON_H
13#define DAEMON_H 1
14
15#if DAEMON_C
16# define EXTERN
17#else
18# define EXTERN extern
19#endif
20
21/* structure to describe a daemon or a client */
22struct daemon
23{
24	int		d_socket;	/* fd for socket */
25	SOCKADDR	d_addr;		/* socket for incoming */
26	unsigned short	d_port;		/* port number */
27	int		d_listenqueue;	/* size of listen queue */
28	int		d_tcprcvbufsize;	/* size of TCP receive buffer */
29	int		d_tcpsndbufsize;	/* size of TCP send buffer */
30	time_t		d_refuse_connections_until;
31	bool		d_firsttime;
32	int		d_socksize;
33	BITMAP256	d_flags;	/* flags; see sendmail.h */
34	char		*d_mflags;	/* flags for use in macro */
35	char		*d_name;	/* user-supplied name */
36
37	int		d_dm;		/* DeliveryMode */
38	int		d_refuseLA;
39	int		d_queueLA;
40	int		d_delayLA;
41	int		d_maxchildren;
42
43#if MILTER
44	char		*d_inputfilterlist;
45	struct milter	*d_inputfilters[MAXFILTERS];
46#endif
47#if _FFR_SS_PER_DAEMON
48	int		d_supersafe;
49#endif
50};
51
52typedef struct daemon DAEMON_T;
53
54EXTERN DAEMON_T	Daemons[MAXDAEMONS];
55
56#define DPO_NOTSET	(-1)	/* daemon option (int) not set */
57/* see also sendmail.h: SuperSafe values */
58
59extern bool refuseconnections __P((ENVELOPE *, int, bool));
60
61#undef EXTERN
62#endif /* ! DAEMON_H */
63