From: Volker Lendecke Date: Thu, 23 Apr 2026 09:13:17 +0000 (+0200) Subject: libcli/dns: Add dns_cli_request() sync wrapper X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=562a203fba5de9b3d0fb45b9450fa1bc5d546597;p=thirdparty%2Fsamba.git libcli/dns: Add dns_cli_request() sync wrapper Signed-off-by: Volker Lendecke Reviewed-by: Stefan Metzmacher --- diff --git a/libcli/dns/dns.c b/libcli/dns/dns.c index 2795ad24ca2..717def985bc 100644 --- a/libcli/dns/dns.c +++ b/libcli/dns/dns.c @@ -653,6 +653,33 @@ done: return ret; } +int dns_cli_request(TALLOC_CTX *mem_ctx, + const char *nameserver, + const struct dns_name_packet *q, + struct dns_name_packet **reply) +{ + TALLOC_CTX *frame = talloc_stackframe(); + struct tevent_context *ev = NULL; + struct tevent_req *req = NULL; + int ret = ENOMEM; + + ev = samba_tevent_context_init(frame); + if (ev == NULL) { + goto fail; + } + req = dns_cli_request_send(frame, ev, nameserver, q); + if (req == NULL) { + goto fail; + } + if (!tevent_req_poll_unix(req, ev, &ret)) { + goto fail; + } + ret = dns_cli_request_recv(req, mem_ctx, reply); +fail: + TALLOC_FREE(frame); + return ret; +} + struct dns_name_packet *dns_cli_create_query(TALLOC_CTX *mem_ctx, const char *name, enum dns_qclass qclass, diff --git a/libcli/dns/libdns.h b/libcli/dns/libdns.h index 8d00feb3138..af5ddd7b519 100644 --- a/libcli/dns/libdns.h +++ b/libcli/dns/libdns.h @@ -36,6 +36,10 @@ struct tevent_req *dns_cli_request_send(TALLOC_CTX *mem_ctx, const struct dns_name_packet *q); int dns_cli_request_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, struct dns_name_packet **reply); +int dns_cli_request(TALLOC_CTX *mem_ctx, + const char *nameserver, + const struct dns_name_packet *q, + struct dns_name_packet **reply); struct dns_name_packet *dns_cli_create_query(TALLOC_CTX *mem_ctx, const char *name, enum dns_qclass qclass,