Callers of dns_get_addr_info() depends on receiving an end-of-results callback (where 'info' is NULL) when finished. Do this on failure in cb_recv() instead of pointing to an empty object. This fix will avoid a deadlock situation in getaddrinfo(). A reply code other than "no error" in the DNS response is a typical case when the lookup failed and this occurs. Moved "struct dns_addrinfo info" variable from cb_recv() to dns_read() because it was now unused in cb_recv(). Adding tests for this requires network access and a DNS server, or a mechanism for generating a DNS response with a reply code. Signed-off-by: Stig Bjørlykke <stig.bjorlykke@nordicsemi.no> |
||
|---|---|---|
| .. | ||
| CMakeLists.txt | ||
| dns_pack.c | ||
| dns_pack.h | ||
| Kconfig | ||
| mdns_responder.c | ||
| resolve.c | ||