xref: /freebsd/contrib/sendmail/src/daemon.h (revision 5ca8e32633c4ffbbcd6762e5888b6a4ba0708c6c)
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 */
22 struct 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 
52 typedef struct daemon DAEMON_T;
53 
54 EXTERN DAEMON_T	Daemons[MAXDAEMONS];
55 
56 #define DPO_NOTSET	(-1)	/* daemon option (int) not set */
57 /* see also sendmail.h: SuperSafe values */
58 
59 extern bool refuseconnections __P((ENVELOPE *, int, bool));
60 
61 #undef EXTERN
62 #endif /* ! DAEMON_H */
63