X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=adns.git;a=blobdiff_plain;f=src%2Fadns.h;fp=src%2Fadns.h;h=2c03416efdf0ba4f21f93b4478b94d1429de940b;hp=578545c80024f5bb0442227b69481874d95c9fd3;hb=b0a32b1750b230df79eb2d515519197c133d7a16;hpb=f7b93d15be71e4f18ae53763f93553a2e8ac0a45 diff --git a/src/adns.h b/src/adns.h index 578545c..2c03416 100644 --- a/src/adns.h +++ b/src/adns.h @@ -107,9 +107,14 @@ typedef enum { /* In general, or together the desired flags: */ typedef enum { adns_rrt_typemask= 0x0ffff, adns_rrt_reprmask= 0xffffff, - adns__qtf_deref= 0x10000,/* dereference domains; perhaps get extra data */ + adns__qtf_deref_bit=0x10000,/* internal version of ..._deref below */ adns__qtf_mail822= 0x20000,/* return mailboxes in RFC822 rcpt field fmt */ + adns__qtf_bigaddr=0x1000000,/* use the new larger sockaddr union */ + + adns__qtf_deref= adns__qtf_deref_bit|adns__qtf_bigaddr + ,/* dereference domains; perhaps get extra data */ + adns_r_unknown= 0x40000, /* To use this, ask for records of type |adns_r_unknown. * adns will not process the RDATA - you'll get adns_rr_byteblocks, @@ -283,14 +288,29 @@ typedef enum { } adns_status; +typedef union { + struct sockaddr sa; + struct sockaddr_in inet; +} adns_sockaddr_v4only; + +typedef union { + struct sockaddr sa; + struct sockaddr_in inet; + struct sockaddr_in6 inet6; +} adns_sockaddr; + typedef struct { int len; - union { - struct sockaddr sa; - struct sockaddr_in inet; - } addr; + adns_sockaddr addr; } adns_rr_addr; +typedef struct { + /* the old v4-only structure; handy if you have complicated binary + * compatibility problems. */ + int len; + adns_sockaddr_v4only addr; +} adns_rr_addr_v4only; + typedef struct { char *host; adns_status astatus;