1181834Sroberto/*
2181834Sroberto * Copyright (c) 2006 Proofpoint, Inc. and its suppliers.
3181834Sroberto *	All rights reserved.
4181834Sroberto *
5181834Sroberto * By using this file, you agree to the terms and conditions set
6181834Sroberto * forth in the LICENSE file which can be found at the top level of
7181834Sroberto * the sendmail distribution.
8181834Sroberto *
9181834Sroberto *	$Id: daemon.h,v 8.4 2013-11-22 20:51:55 ca Exp $
10181834Sroberto */
11181834Sroberto
12181834Sroberto#ifndef DAEMON_H
13181834Sroberto#define DAEMON_H 1
14181834Sroberto
15181834Sroberto#if DAEMON_C
16181834Sroberto# define EXTERN
17181834Sroberto#else
18181834Sroberto# define EXTERN extern
19181834Sroberto#endif
20181834Sroberto
21181834Sroberto/* structure to describe a daemon or a client */
22181834Srobertostruct daemon
23181834Sroberto{
24181834Sroberto	int		d_socket;	/* fd for socket */
25181834Sroberto	SOCKADDR	d_addr;		/* socket for incoming */
26181834Sroberto	unsigned short	d_port;		/* port number */
27181834Sroberto	int		d_listenqueue;	/* size of listen queue */
28181834Sroberto	int		d_tcprcvbufsize;	/* size of TCP receive buffer */
29181834Sroberto	int		d_tcpsndbufsize;	/* size of TCP send buffer */
30181834Sroberto	time_t		d_refuse_connections_until;
31181834Sroberto	bool		d_firsttime;
32181834Sroberto	int		d_socksize;
33181834Sroberto	BITMAP256	d_flags;	/* flags; see sendmail.h */
34181834Sroberto	char		*d_mflags;	/* flags for use in macro */
35181834Sroberto	char		*d_name;	/* user-supplied name */
36181834Sroberto
37181834Sroberto	int		d_dm;		/* DeliveryMode */
38181834Sroberto	int		d_refuseLA;
39181834Sroberto	int		d_queueLA;
40181834Sroberto	int		d_delayLA;
41181834Sroberto	int		d_maxchildren;
42181834Sroberto
43181834Sroberto#if MILTER
44181834Sroberto	char		*d_inputfilterlist;
45181834Sroberto	struct milter	*d_inputfilters[MAXFILTERS];
46181834Sroberto#endif /* MILTER */
47181834Sroberto#if _FFR_SS_PER_DAEMON
48181834Sroberto	int		d_supersafe;
49181834Sroberto#endif /* _FFR_SS_PER_DAEMON */
50181834Sroberto};
51181834Sroberto
52181834Srobertotypedef struct daemon DAEMON_T;
53181834Sroberto
54181834SrobertoEXTERN DAEMON_T	Daemons[MAXDAEMONS];
55181834Sroberto
56181834Sroberto#define DPO_NOTSET	(-1)	/* daemon option (int) not set */
57181834Sroberto/* see also sendmail.h: SuperSafe values */
58181834Sroberto
59181834Srobertoextern bool refuseconnections __P((ENVELOPE *, int, bool));
60181834Sroberto
61181834Sroberto#undef EXTERN
62181834Sroberto#endif /* ! DAEMON_H */
63181834Sroberto