X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/adns/blobdiff_plain/ba2dbede61abc2835a52ce16b653b5b8f26703d3..7d0aaee4dc7c78c81b609d678c63e194a3cbcbc7:/src/adns.h diff --git a/src/adns.h b/src/adns.h index 0494124..bc7bf24 100644 --- a/src/adns.h +++ b/src/adns.h @@ -51,7 +51,7 @@ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * - * $Id: adns.h,v 1.93 2006/04/06 18:59:53 ian Exp $ + * $Id: adns.h,v 1.94 2006/04/07 00:25:14 ian Exp $ */ #ifndef ADNS_H_INCLUDED @@ -104,25 +104,28 @@ typedef enum { /* In general, or together the desired flags: */ } adns_queryflags; typedef enum { - adns__rrt_typemask=0x0ffff, + adns_rrt_typemask= 0x0ffff, adns__qtf_deref= 0x10000,/* dereference domains; perhaps get extra data */ adns__qtf_mail822= 0x20000,/* return mailboxes in RFC822 rcpt field fmt */ adns_r_unknown= 0x40000, /* To use this, ask for records of type |adns_r_unknown. - * adns will not process the RDATA at all - you'll get intstr's, where - * the int is the length and the char* points to the data. String - * representation of the RR data is as in RFC3597. adns_rr_info - * will not return the type name in *rrtname_r (due to memory management - * problems); *fmtname_r will be set to "unknown". + * adns will not process the RDATA - you'll get adns_rr_byteblocks, + * where the int is the length and the unsigned char* points to the + * data. String representation of the RR data (by adns_rrinfo) is as in + * RFC3597. adns_rr_info will not return the type name in *rrtname_r + * (due to memory management problems); *fmtname_r will be set to + * "unknown". * * Do not specify adns_r_unknown along with a known RR type which - * requires domain name uncompression. Domain names will not be - * uncompressed and the resulting data will be useless. Asking for - * meta-RR types via adns_r_unknown will not work properly either - * and may make adns complain about server misbehaviour. - */ - + * requires domain name uncompression (see RFC3597 s4); domain names + * will not be uncompressed and the resulting data would be useless. + * Asking for meta-RR types via adns_r_unknown will not work properly + * either and may make adns complain about server misbehaviour, so don't + * do that. + * + * Don't forget adns_qf_quoteok if that's what you want. */ + adns_r_none= 0, adns_r_a= 1, @@ -332,6 +335,11 @@ typedef struct { adns_rr_hostaddr ha; } adns_rr_srvha; +typedef struct { + int len; + unsigned char *data; +} adns_rr_byteblock; + typedef struct { adns_status status; char *cname; /* always NULL if query was for CNAME records */ @@ -350,10 +358,11 @@ typedef struct { adns_rr_intstrpair *intstrpair; /* hinfo */ adns_rr_strpair *strpair; /* rp, rp_raw */ adns_rr_inthostaddr *inthostaddr;/* mx */ - adns_rr_intstr *intstr; /* mx_raw, ...|unknown */ + adns_rr_intstr *intstr; /* mx_raw */ adns_rr_soa *soa; /* soa, soa_raw */ adns_rr_srvraw *srvraw; /* srv_raw */ adns_rr_srvha *srvha;/* srv */ + adns_rr_byteblock *byteblock; /* ...|unknown */ } rrs; } adns_answer;