If there is a problem communicating with a nameserver the __dns_lookup()
function will not immediately advance to the next nameserver but instead
continue waiting until the timeout expires. This will cause a 30 second
delay even if no nameserver is configured in resolv.conf and no DNS is
running on localhost.
Signed-off-by: Ingo van Lil <inguin@gmx.de>
Acked-by: Roman I Khimov <khimov@altell.ru>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
if (packet_len < HFIXEDSZ) {
/* too short!
+ * If the peer did shutdown then retry later,
+ * try next peer on error.
* it's just a bogus packet from somewhere */
bogus_packet:
- if (reply_timeout)
+ if (packet_len >= 0 && reply_timeout)
goto wait_again;
goto try_next_server;
}