ol--;
}
-/* temporary hack */
-#define CHECK_PTR do { \
- if (type == adns_r_ptr && (ol < 5 || \
- strncmp(owner + ol - 5, ".arpa", 5))) { \
- ads->nextid++; adns__autosys(ads,now); \
- stat= adns_s_querydomainwrong; goto x_adnsfail; \
- } \
-} while (0)
-
if (flags & adns_qf_search) {
- CHECK_PTR;
r= adns__vbuf_append(&qu->search_vb,owner,ol);
if (!r) { stat= adns_s_nomemory; goto x_adnsfail; }
if (flags & adns_qf_owner) {
if (!save_owner(qu,owner,ol)) { stat= adns_s_nomemory; goto x_adnsfail; }
}
- CHECK_PTR;
query_simple(ads,qu, owner,ol, typei,flags, now);
}
adns__autosys(ads,now);
adns__consistency(ads,qu,cc_entex);
return 0;
-#undef CHECK_PTR
-
x_adnsfail:
adns__query_fail(qu,stat);
adns__consistency(ads,qu,cc_entex);
adns_queryflags flags,
void *context,
adns_query *query_r) {
- if (type != adns_r_ptr && type != adns_r_ptr_raw) return EINVAL;
+ if (((type^adns_r_ptr) & adns_rrt_reprmask) &&
+ ((type^adns_r_ptr_raw) & adns_rrt_reprmask))
+ return EINVAL;
return adns_submit_reverse_any(ads,addr,"in-addr.arpa",
type,flags,context,query_r);
}