X-Git-Url: https://git.distorted.org.uk/~mdw/adns/blobdiff_plain/a79ac5bae05711d622671eacfbafd19a5a94ae3c..5e6342f017395ae32f9d0d941e2ca2bef48ff84e:/src/query.c diff --git a/src/query.c b/src/query.c index 53eecd9..8d9994b 100644 --- a/src/query.c +++ b/src/query.c @@ -105,7 +105,6 @@ static void query_submit(adns_state ads, adns_query qu, memcpy(qu->query_dgram,qu->vb.buf,qu->vb.used); adns__query_send(qu,now); - adns__autosys(ads,now); } adns_status adns__internal_submit(adns_state ads, adns_query *query_r, @@ -243,6 +242,7 @@ int adns_submit(adns_state ads, } query_simple(ads,qu, owner,ol, typei,flags, now); } + adns__autosys(ads,now); adns__consistency(ads,qu,cc_entex); return 0; @@ -258,6 +258,27 @@ int adns_submit(adns_state ads, return r; } +int adns_submit_reverse(adns_state ads, + const struct sockaddr *addr, + adns_rrtype type, + adns_queryflags flags, + void *context, + adns_query *query_r) { + const unsigned char *iaddr; + char buf[30]; + + if (type != adns_r_ptr && type != adns_r_ptr_raw) return EINVAL; + flags &= ~adns_qf_search; + + if (addr->sa_family != AF_INET) return ENOSYS; + iaddr= (const unsigned char*) &(((const struct sockaddr_in*)addr) -> sin_addr); + + sprintf(buf, "%d.%d.%d.%d.in-addr.arpa", + iaddr[3], iaddr[2], iaddr[1], iaddr[0]); + + return adns_submit(ads,buf,type,flags,context,query_r); +} + int adns_synchronous(adns_state ads, const char *owner, adns_rrtype type,