typedef struct adns__state *adns_state;
typedef struct adns__query *adns_query;
+typedef const struct adns__rrtype *adns_rrtype;
typedef enum {
adns_if_noenv= 0x0001, /* do not look at environment */
adns_qf_nocname= 0x0010, /* don't follow CNAMEs, instead give _s_cname */
} adns_queryflags;
+typedef const struct adns__rrtype adns__rrtype_indicator[1];
+
+extern adns__rrtype_indicator
+ adns_r_none,
+ adns_r_null, adns_r_null_mf,
+ adns_r_a, adns_r_a_mf,
+ adns_r_ns, adns_r_ns_mf, adns_r_ns_raw,
+ adns_r_soa, adns_r_soa_mf, adns_r_soa_raw,
+ adns_r_cname, adns_r_cname_mf,
+ adns_r_ptr, adns_r_ptr_mf, adns_r_ptr_raw,
+ adns_r_hinfo, adns_r_hinfo_mf,
+ adns_r_mx_raw,
+ adns_r_mx,
+ adns_r_txt,
+ adns_r_mx_mf,
+ adns_r_rp_raw,
+ adns_r_txt_mf,
+ adns_r_rp,
+ adns_r_rp_mf;
+
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= 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= 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;
/* In queries without qtf_anyquote, all domains must have standard
void adns__procdgram(adns_state ads, const byte *dgram, int len, int serv) {
/* FIXME do something with incoming datagrams */
adns__diag(ads,serv,"received datagram size %d",len);
+
+
}
+
+struct adns__rrtype adns_r_a [1]= {{ 1, rcf_a }};
+struct adns__rrtype adns_r_ns [1]= {{ 2, rcf_ns }};
+struct adns__rrtype adns_r_ns_raw [1]= {{ 2, rcf_domain }};
+struct adns__rrtype adns_r_ns [1]= {{ 5, rcf_cname }};
+struct adns__rrtype adns_r_soa [1]= {{ 5, rcf_soa }};
+struct adns__rrtype adns_r_soa_raw [1]= {{ 6, rcf_soa_raw }};
+struct adns__rrtype adns_r_null [1]= {{ 10, rcf_null }};
+struct adns__rrtype adns_r_ptr [1]= {{ 12, rcf_ptr }};
+struct adns__rrtype adns_r_ptr_raw [1]= {{ 12, rcf_ptr_raw }};
+struct adns__rrtype adns_r_hinfo [1]= {{ 13, rcf_hinfo }};
+struct adns__rrtype adns_r_mx [1]= {{ 15, rcf_mx }};
+struct adns__rrtype adns_r_mx_raw [1]= {{ 15, rcf_mx_raw }};
+struct adns__rrtype adns_r_txt [1]= {{ 16, rcf_txt }};
+struct adns__rrtype adns_r_rp [1]= {{ 17, rcf_rp_raw }};
+struct adns__rrtype adns_r_rp_raw [1]= {{ 17, rcf_rp_raw }};