chiark / gitweb /
Proper spec. of NULL handling.
[adns.git] / src / adns.h
index a80081377d31085d3ce5b64aa7df752c61270394..d265506814de32e444862e611e9fb5070d2e8a9f 100644 (file)
@@ -53,44 +53,31 @@ typedef enum {
   adns__rrt_typemask=  0x0ffff,
   adns__qtf_deref=     0x10000, /* dereference domains and perhaps produce extra data */
   adns__qtf_mail822=   0x20000, /* make mailboxes be in RFC822 rcpt field format */
-  adns__qtf_masterfmt= 0x80000, /* convert RRs to master file format, return as str */
   
   adns_r_none=               0,
   
   adns_r_a=                  1,
-  adns_r_a_mf=                  adns_r_a|adns__qtf_masterfmt,
   
   adns_r_ns_raw=             2,
   adns_r_ns=                    adns_r_ns_raw|adns__qtf_deref,
-  adns_r_ns_mf=                 adns_r_ns_raw|adns__qtf_masterfmt,
   
   adns_r_cname=              5,
-  adns_r_cname_mf=              adns_r_cname|adns__qtf_masterfmt,
   
   adns_r_soa_raw=            6,
   adns_r_soa=                   adns_r_soa_raw|adns__qtf_mail822, 
-  adns_r_soa_mf=                adns_r_soa_raw|adns__qtf_masterfmt,
-  
-  adns_r_null=              10,
-  adns_r_null_mf=               adns_r_null|adns__qtf_masterfmt,
   
   adns_r_ptr_raw=           12,
   adns_r_ptr=                   adns_r_ptr_raw|adns__qtf_deref,
-  adns_r_ptr_mf=                adns_r_ptr_raw|adns__qtf_masterfmt,
   
   adns_r_hinfo=             13,  
-  adns_r_hinfo_mf=              adns_r_hinfo|adns__qtf_masterfmt,
   
   adns_r_mx_raw=            15,
   adns_r_mx=                    adns_r_mx_raw|adns__qtf_deref,
-  adns_r_mx_mf=                 adns_r_mx_raw|adns__qtf_masterfmt,
   
   adns_r_txt=               16,
-  adns_r_txt_mf=                adns_r_txt|adns__qtf_masterfmt,
   
   adns_r_rp_raw=            17,
   adns_r_rp=                    adns_r_rp_raw|adns__qtf_mail822,
-  adns_r_rp_mf=                 adns_r_rp_raw|adns__qtf_masterfmt
   
 } adns_rrtype;
 
@@ -104,8 +91,6 @@ typedef enum {
  * not usually legal in domain names will be quoted as \X
  * (if the character is 33-126 except \ and ") or \DDD.
  *
- * _qtf_anyquote is ignored for _mf queries.
- *
  * Do not ask for _raw records containing mailboxes without
  * specifying _qf_anyquote.
  */
@@ -126,11 +111,12 @@ typedef enum {
   adns_s_max_tempfail= 99,
   adns_s_inconsistent, /* PTR gives domain whose A does not match */
   adns_s_cname, /* CNAME found where data eg A expected (not if _qf_loosecname) */
+  adns_s_invalidanswerdomain,
   /* fixme: implement _s_cname */
   adns_s_max_remotemisconfig= 199,
   adns_s_nxdomain,
   adns_s_nodata,
-  adns_s_invaliddomain,
+  adns_s_invalidquerydomain,
   adns_s_domaintoolong,
 } adns_status;
 
@@ -168,14 +154,14 @@ typedef struct {
   union {
     void *untyped;
     unsigned char *bytes;
-    char *(*str);                  /* ns_raw, cname, ptr, ptr_raw, txt, <any>_mf */
+    char *(*str);                  /* ns_raw, cname, ptr, ptr_raw */
+    char *(**manystr);             /* txt (list is null-terminated) */
     struct in_addr *inaddr;        /* a */
     adns_rr_dmaddr *dmaddr;        /* ns */
     adns_rr_strpair *strpair;      /* hinfo, rp, rp_raw */
     adns_rr_intdmaddr *intdmaddr;  /* mx */
     adns_rr_intstr *intstr;        /* mx_raw */
     adns_rr_soa *soa;              /* soa, soa_raw */
-    /* NULL is empty */
   } rrs;
 } adns_answer;