chiark / gitweb /
Makes up queries.
[adns.git] / src / adns.h
index 69425aef7074d099e02b10aaf36255ea62a316cb..70e743ba9a9649b6aa3017d72623aee479e1ba2e 100644 (file)
@@ -23,25 +23,25 @@ typedef enum {
 } adns_queryflags;
 
 typedef enum {
-  adns__rrttype_mask=  0x0fff,
-  adns__qtf_deref=     0x1000, /* dereference domains and produce extra data */
-  adns__qtf_mailconv=  0x2000, /* put @ between first and second labels */
-  adns_r_none=              0,
-  adns_r_a=                 1,
-  adns_r_ns_raw=            2,
-  adns_r_ns=                   adns_r_ns_raw|adns__qtf_deref,
-  adns_r_cname=             5,
-  adns_r_soa_raw=           6,
-  adns_r_soa=                  adns_r_soa_raw|adns__qtf_mailconv,
-  adns_r_null=             10,
-  adns_r_ptr_raw=          12,
-  adns_r_ptr=                  adns_r_ptr_raw|adns__qtf_deref,
-  adns_r_hinfo=            13,  
-  adns_r_mx_raw=           15,
-  adns_r_mx=                   adns_r_mx_raw|adns__qtf_deref,
-  adns_r_txt=              16,
-  adns_r_rp_raw=           17,
-  adns_r_rp=                   adns_r_rp_raw|adns__qtf_mailconv
+  adns__rrt_typemask=  0x0ffff,
+  adns__qtf_deref=     0x10000, /* dereference domains and produce extra data */
+  adns__qtf_mailconv=  0x20000, /* put @ between first and second labels */
+  adns_r_none=               0,
+  adns_r_a=                  1,
+  adns_r_ns_raw=             2,
+  adns_r_ns=                    adns_r_ns_raw|adns__qtf_deref,
+  adns_r_cname=              5,
+  adns_r_soa_raw=            6,
+  adns_r_soa=                   adns_r_soa_raw|adns__qtf_mailconv,
+  adns_r_null=              10,
+  adns_r_ptr_raw=           12,
+  adns_r_ptr=                   adns_r_ptr_raw|adns__qtf_deref,
+  adns_r_hinfo=             13,  
+  adns_r_mx_raw=            15,
+  adns_r_mx=                    adns_r_mx_raw|adns__qtf_deref,
+  adns_r_txt=               16,
+  adns_r_rp_raw=            17,
+  adns_r_rp=                    adns_r_rp_raw|adns__qtf_mailconv
 } adns_rrtype;
 
 /* In queries without qtf_anyquote, all domains must have standard
@@ -64,6 +64,7 @@ typedef enum {
   adns_s_serverfailure,
   adns_s_unknownqtype,
   adns_s_remoteerror,
+  adns_s_nolocalmem,
   adns_s_max_tempfail= 99,
   adns_s_nxdomain,
   adns_s_norecord,
@@ -123,8 +124,9 @@ int adns_init(adns_state *newstate_r, adns_initflags flags);
 int adns_synchronous(adns_state ads,
                     const char *owner,
                     adns_rrtype type,
-                    int flags,
+                    adns_queryflags flags,
                     adns_answer *answer);
+/* Will not return EINTR. */
 
 /* NB: if you set adns_if_noautosys then _submit and _check do not
  * make any system calls; you must use adns_callback (possibly after
@@ -134,7 +136,7 @@ int adns_synchronous(adns_state ads,
 int adns_submit(adns_state ads,
                const char *owner,
                adns_rrtype type,
-               int flags,
+               adns_queryflags flags,
                void *context,
                adns_query *query_r);
 
@@ -147,6 +149,7 @@ int adns_wait(adns_state ads,
              adns_query *query_io,
              adns_answer *answer,
              void *context_r);
+/* Might return EINTR - if so, try again */
 
 void adns_cancel(adns_state ads, adns_query query);