From: Vladimír Čunát Date: Mon, 6 May 2019 13:34:10 +0000 (+0200) Subject: worker_resolve_mk_pkt(): move to better file, document X-Git-Tag: v4.1.0~21^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=23a9634e1b2b0667f71a93530e75c2333d80323f;p=thirdparty%2Fknot-resolver.git worker_resolve_mk_pkt(): move to better file, document --- diff --git a/daemon/bindings/worker.c b/daemon/bindings/worker.c index 8d6072a5d..5d1fd6aac 100644 --- a/daemon/bindings/worker.c +++ b/daemon/bindings/worker.c @@ -18,35 +18,6 @@ #include "daemon/worker.h" -knot_pkt_t * worker_resolve_mk_pkt(const char *qname_str, uint16_t qtype, uint16_t qclass, - const struct kr_qflags *options) -{ - uint8_t qname[KNOT_DNAME_MAXLEN]; - if (!knot_dname_from_str(qname, qname_str, sizeof(qname))) - return NULL; - knot_pkt_t *pkt = knot_pkt_new(NULL, KNOT_EDNS_MAX_UDP_PAYLOAD, NULL); - if (!pkt) - return NULL; - knot_pkt_put_question(pkt, qname, qclass, qtype); - knot_wire_set_rd(pkt->wire); - knot_wire_set_ad(pkt->wire); - - /* Add OPT RR */ - pkt->opt_rr = knot_rrset_copy(the_worker->engine->resolver.opt_rr, NULL); - if (!pkt->opt_rr) { - knot_pkt_free(pkt); - return NULL; - } - if (options->DNSSEC_WANT) { - knot_edns_set_do(pkt->opt_rr); - } - if (options->DNSSEC_CD) { - knot_wire_set_cd(pkt->wire); - } - - return pkt; -} - static inline double getseconds(uv_timeval_t *tv) { return (double)tv->tv_sec + 0.000001*((double)tv->tv_usec); diff --git a/daemon/worker.c b/daemon/worker.c index e337c46f8..358694d9e 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -1794,6 +1794,35 @@ int worker_end_tcp(struct session *session) return kr_ok(); } +knot_pkt_t * worker_resolve_mk_pkt(const char *qname_str, uint16_t qtype, uint16_t qclass, + const struct kr_qflags *options) +{ + uint8_t qname[KNOT_DNAME_MAXLEN]; + if (!knot_dname_from_str(qname, qname_str, sizeof(qname))) + return NULL; + knot_pkt_t *pkt = knot_pkt_new(NULL, KNOT_EDNS_MAX_UDP_PAYLOAD, NULL); + if (!pkt) + return NULL; + knot_pkt_put_question(pkt, qname, qclass, qtype); + knot_wire_set_rd(pkt->wire); + knot_wire_set_ad(pkt->wire); + + /* Add OPT RR */ + pkt->opt_rr = knot_rrset_copy(the_worker->engine->resolver.opt_rr, NULL); + if (!pkt->opt_rr) { + knot_pkt_free(pkt); + return NULL; + } + if (options->DNSSEC_WANT) { + knot_edns_set_do(pkt->opt_rr); + } + if (options->DNSSEC_CD) { + knot_wire_set_cd(pkt->wire); + } + + return pkt; +} + struct qr_task *worker_resolve_start(knot_pkt_t *query, struct kr_qflags options) { struct worker_ctx *worker = the_worker; diff --git a/daemon/worker.h b/daemon/worker.h index 2a741988a..4e823c2c0 100644 --- a/daemon/worker.h +++ b/daemon/worker.h @@ -55,7 +55,9 @@ int worker_submit(struct session *session, knot_pkt_t *query); */ int worker_end_tcp(struct session *session); -/** FIXME docs */ +/** + * Create a packet suitable for worker_resolve_start(). All in malloc() memory. + */ KR_EXPORT knot_pkt_t * worker_resolve_mk_pkt(const char *qname_str, uint16_t qtype, uint16_t qclass, const struct kr_qflags *options);