/************************************************/ /* */ /* 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