X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/adns/blobdiff_plain/898afc783a7bd5947405b4fd828a34dfbd9b99a8..f6fe6b8d26ef7cb9fcca0d9b245ce11414b416fd:/src/query.c diff --git a/src/query.c b/src/query.c index a3ce68d..dd2a47a 100644 --- a/src/query.c +++ b/src/query.c @@ -294,7 +294,17 @@ int adns_submit(adns_state ads, 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; } @@ -306,12 +316,15 @@ int adns_submit(adns_state ads, 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);