Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > by-pkgid > c67614878826b4852b4141337f025dd6 > files > 15

clement-debug-2.1-0.133.4mdv2009.0.i586.rpm

/************************************************/
/*						*/
/*      Copyright:				*/
/*		 Jean-Marc Pigeon <jmp@safe.ca>	*/
/*	Distributed under the Gnu Public	*/
/*	License, see the License file in this	*/
/*	package.				*/
/*						*/
/*	Define module level routines to handle	*/
/*	clement configuration definition.	*/
/*						*/
/************************************************/
#ifndef GESCNF
#define GESCNF
#include	"uninet.h"

typedef enum	{	/*checker level		*/
	p_checker,	/*primary checker	*/
	p_sender,	/*sender, secondary chkr*/
	p_all		/*all status		*/
	}CKPREF;

typedef enum	{	/*chker connection state*/
	s_new,		/*checker to connect	*/
	s_old,		/*obsolete checker ref	*/
	s_active,	/*checker connected	*/
	s_down,		/*checker not connected	*/
	s_todrop,	/*checker to disconnect	*/
	s_nostat	/*checker unknown stat	*/
	}CKSTAT;

typedef	struct	{
	char **bindlst;	/*binding ip number	*/
	char *chkcode;	/*checker access chkcode*/
	char **domains;	/*list of domain related*/
	char *checker;	/*checker server ref	*/
	char *sender;	/*sender local ref	*/
	int relay;	/*sender is a relay	*/
	}AUXTYP;

typedef	struct	{	/*config definition	*/
	char *spmdsrv;	/*SPAM detector daemon	*/
	char *smtpsrv;	/*default local sender	*/
	char *bindlst;	/*Total binding list	*/
	char **frelais;	/*relay liste filename	*/
	char *chkidsrv;	/*user check-id server	*/
	char *chkidmod;	/*check-id check mode	*/
	char *dfltcode;	/*dflt access code	*/
	char *rmponder;	/*Mentor loc transponder*/
	char **adm;	/*administrator list	*/
	time_t lastload;/*last config load	*/
	IPTYP **relais;	/*relay list		*/
	AUXTYP **auxs;	/*auxiliary list	*/
	}CNFTYP;

typedef	struct	{
	pid_t skrpid;	/*remote process PID	*/
	time_t lastact;	/*last action time	*/
	time_t lasttry;	/*last connection try	*/
	CKPREF pref;	/*is remote sndr/chkr	*/
	CKSTAT stat;	/*remote state		*/
	int relay;	/*this sender is a relay*/
	char *hostname;	/*remote hostname	*/
	char *chkcode;	/*remote CHECKER CODE	*/
	char **bindlst; /*checker bind ip list	*/
	char **doms;	/*list of domain related*/
	}SKRTYP;

extern int cnf_isiniplst(IPTYP **iplst,char *iporgn);
extern IPTYP **cnf_mkiplst(char *filename,IPTYP **iplst);
extern IPTYP **cnf_freeiplst(IPTYP **iplst);
extern AUXTYP **cnf_freeauxs(AUXTYP **auxs);
extern CNFTYP *cnf_readconfig();
extern CNFTYP *cnf_getconfig();
extern CNFTYP *cnf_freeconfig(CNFTYP *config);
extern AUXTYP *cnf_getaux(AUXTYP **auxs,char *domain,int sndr);
extern SKRTYP **cnf_getskrlst(AUXTYP **auxs);
extern SKRTYP **cnf_freeskrlst(SKRTYP **skrlst);
extern SKRTYP *cnf_getskr(SKRTYP **skrlst,char *hostname);
#endif