058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck/*
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck * Copyright (c) 2006 Sendmail, Inc. and its suppliers.
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck * All rights reserved.
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck *
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck * By using this file, you agree to the terms and conditions set
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck * forth in the LICENSE file which can be found at the top level of
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck * the sendmail distribution.
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck *
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck * $Id: daemon.h,v 8.3 2006/07/13 22:57:03 ca Exp $
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck#pragma ident "%Z%%M% %I% %E% SMI"
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck#ifndef DAEMON_H
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck#define DAEMON_H 1
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck#if DAEMON_C
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck# define EXTERN
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck#else
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck# define EXTERN extern
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck#endif
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck/* structure to describe a daemon or a client */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeckstruct daemon
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck{
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck int d_socket; /* fd for socket */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck SOCKADDR d_addr; /* socket for incoming */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck unsigned short d_port; /* port number */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck int d_listenqueue; /* size of listen queue */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck int d_tcprcvbufsize; /* size of TCP receive buffer */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck int d_tcpsndbufsize; /* size of TCP send buffer */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck time_t d_refuse_connections_until;
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck bool d_firsttime;
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck int d_socksize;
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck BITMAP256 d_flags; /* flags; see sendmail.h */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck char *d_mflags; /* flags for use in macro */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck char *d_name; /* user-supplied name */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck int d_dm; /* DeliveryMode */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck int d_refuseLA;
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck int d_queueLA;
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck int d_delayLA;
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck int d_maxchildren;
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck#if MILTER
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck char *d_inputfilterlist;
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck struct milter *d_inputfilters[MAXFILTERS];
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck#endif /* MILTER */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck#if _FFR_SS_PER_DAEMON
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck int d_supersafe;
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck#endif /* _FFR_SS_PER_DAEMON */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck};
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck
058561cbaa119a6f2659bc27ef343e1b47266bb2jbecktypedef struct daemon DAEMON_T;
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeckEXTERN DAEMON_T Daemons[MAXDAEMONS];
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck#define DPO_NOTSET (-1) /* daemon option (int) not set */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck/* see also sendmail.h: SuperSafe values */
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeckextern bool refuseconnections __P((ENVELOPE *, int, bool));
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck#undef EXTERN
058561cbaa119a6f2659bc27ef343e1b47266bb2jbeck#endif /* ! DAEMON_H */