/************************************************/ /* */ /* Copyright: */ /* Jean-Marc Pigeon <jmp@safe.ca> */ /* Distributed under the Gnu Public */ /* License, see the License file in this */ /* package. */ /* */ /* Define low level routine to access */ /* DNS record. */ /* */ /************************************************/ #ifndef UNIDNS #define UNIDNS /*SAFE Inc. own domain definition */ #define SAFEDOM "safe.ca" typedef struct { int preference; /*MX preference */ char *mxname; /*MX hostname */ }MXTYP; typedef enum { spf_pass, /*OK if condition apply */ spf_fail, /*NOK if condition apply*/ spf_softfail, /*Msg origin is dubious */ spf_neutral, /*same status as no SPF */ spf_relax, /*access MUST be relaxed*/ spf_unknown /*Unknown SPF directive */ }SPFENUM; extern char **dns_gettxt(char *domain); extern MXTYP **dns_getmx(char *domain); extern MXTYP **dns_cleanmx(MXTYP **mxlist); extern char **dns_getptr(u_int32_t norig); extern u_int32_t **dns_getaddr(char *domain); extern u_int32_t **dns_cleanaddr(u_int32_t **adrlist); extern int dns_matchmx(char *domain,u_int32_t norig,int mask); extern u_int32_t dns_convip(char *ipnum); extern int dns_isgoodmx(char *domain,char *listenip); extern int dns_chkversion(char *domain,char *version,int taille); extern int dns_chksafeversion(char *version,int taille); #endif