/************************************************/ /* */ /* Copyright: */ /* Jean-Marc Pigeon <jmp@safe.ca> */ /* Distributed under the Gnu Public */ /* License, see the License file in this */ /* package. */ /* */ /* GESQUE */ /* Define management level for E-mail queue*/ /* handling. */ /* */ /************************************************/ #ifndef GESQUE #define GESQUE /*local user password file. */ #define PASSNAME ".passwd" #define ALIASNAME ".aliases" /*application user or domain management action */ #define ADDUSR "ADDUSR" #define REMUSR "REMUSR" #define DELDOM "DELDOM" /*application quarantine list filename */ #define LISQ ".lisq" typedef enum { m_add, /*adding a domain & user*/ m_rem, /*removing an E-mail */ m_del, /*removing the whole dom*/ m_unk /*unknown directive */ }MNGTYP; typedef struct { /*E-mail queue reference*/ int relayed; /*email is relayed */ char *from; /*Email originator */ char **rcpts; /*emails recipents */ }MLTYP; typedef struct { char *name; /*E-mail address */ char **list; /*E-mail aliases list */ }ALITYP; typedef struct { char *domain; /*user domain */ char *userid; /*User id */ char *username; /*user name */ char *passwd; /*password (clear/crypt)*/ }PASTYP; extern PASTYP *que_getusrinfo(char *buffer); extern PASTYP *que_freeusrinfo(PASTYP *passinfo); extern char *que_getpasswd(char *email); extern int que_storeemails(char **rcpt,char *emailpath,char *emailname); extern char *que_cleanstring(char *string); extern char *que_standardize(char *string); extern MLTYP *que_getemails(char *queudir,char *emailid); extern MLTYP *que_dropemails(MLTYP *ml); extern int que_chkemails(char *email); extern int que_chkdomain(char *domain); extern int que_mngemails(MNGTYP action,PASTYP *pi); extern int que_mngaliases(MNGTYP action,char *domain,char *name,char *aliases); extern ALITYP **que_getaliases(char *domain); extern ALITYP **que_freealiases(ALITYP **lists); extern char **que_getonealiases(char *email); extern int que_deldom(char *domain); extern int que_mngquarantine(char *email,char *emid,int efface); #endif