X-Git-Url: https://git.distorted.org.uk/~mdw/adns/blobdiff_plain/ba2dbede61abc2835a52ce16b653b5b8f26703d3..3b375d76e45c11a4c7cbcb9fcc3ca76d7e2148a6:/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, @@ -333,6 +336,11 @@ typedef struct { } 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 */ char *owner; /* only set if req'd in query flags; maybe 0 on error anyway */ @@ -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;