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