< Previous by Date | Date Index | Next by Date > |
< Previous in Thread | Thread Index | Next in Thread > |
Updated ares_process.c to set UDP sockets non-blocking for build configurations where they were previously blocking:
· Windows where USE_IPV6 was not defined
· All non-windows builds
-justin
From: slgodin@xxxxxxxxx [mailto:slgodin@xxxxxxxxx] On Behalf Of Scott Godin
Sent: Friday, October 29, 2010 8:05 PM
To: Justin Matthews
Cc: resiprocate-devel
Subject: Re: [reSIProcate] unresponsive DNS query blocks stack thread if USE_IPV6 is not defined (windows)
After a quick look, seems odd to me as well. Also if non-windows we never set the UDP socket to non-blocking. What I don't get is why people on linux have not noticed a blocking problem yet. TCP DNS sockets seem to be set as non-blocking properly for linux and windows both with and without the USE_IPV6 directive.
Scott
On Fri, Oct 29, 2010 at 10:52 AM, Justin Matthews <jmatthewsr@xxxxxxxxx> wrote:
Hi,
Does anyone know if it's intended behavior for the ares UDP socket to block
if USE_IPV6 is not defined (Windows OS)? In ares_process.c ,
open_udp_socket() will set the socket non-blocking only if USE_IPV6 is
defined. If DNS is misconfigured or there is no response for a DNS record
lookup, the resip stack thread will block indefinitely in the recv() call in
read_udp_packets().
Thanks,
-justin
_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxx
https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxx
https://list.resiprocate.org/mailman/listinfo/resiprocate-devel