X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/adns/blobdiff_plain/9d95094ce421414fade949831eeb9dd3090328a7..84fe28dbf1b4d178b54d84becc0ee91c1b2db5d4:/src/adns.h diff --git a/src/adns.h b/src/adns.h index 87e94e6..d11742f 100644 --- a/src/adns.h +++ b/src/adns.h @@ -78,6 +78,13 @@ typedef enum { * the error. */ +typedef struct { + char *dm; + adns_status astatus; + int naddrs; /* temp fail => -1, perm fail => 0, s_ok => >0 */ + struct in_addr *addrs; +} adns_dmaddr; + typedef struct { adns_status status; char *cname; /* always NULL if query was for CNAME records */ @@ -86,12 +93,9 @@ typedef struct { union { struct in_addr inaddr[1]; /* a */ char (*str)[1]; /* ns_raw, cname, ptr, ptr_raw, txt */ - struct { char *dm; adns_status ref; struct in_addr addr; } dmaddr; /* ns */ + adns_dmaddr dmaddr[1]; /* ns */ struct { char *a, *b; } strpair[1]; /* hinfo, rp, rp_raw */ - struct { - int pref; char *dm; - adns_status ref; struct in_addr addr; - } intdmaddr[1]; /* mx */ + struct { int pref; adns_dmaddrs dmaddr; } intdmaddr[1]; /* mx */ struct { int pref; char *str; } intstr[1]; /* mx_raw */ struct { char *ns0, *rp;