[erlang-questions] inet_res:getbyname/2 and udp:connect/3

Per Hedeland per@REDACTED
Sun Jun 20 22:16:12 CEST 2010


Per Hedeland <per@REDACTED> wrote:
> I.e. it
>seems this is actually a problem with the FreeBSD "port" build of
>Erlang/OTP (I happened to have such a build of R12B-5 around too - same
>problem there).

Actually this wasn't quite correct - it's a problem with the FreeBSD
port build only insofar as it uses --enable-sctp (which my other build
didn't) - thereby exposing a bug in inet_drv. I.e. connected UDP (and
handling of any other errors in UDP recv()) is broken in passive mode
for all SCTP-enabled builds. Patch below against R13B04 - R14A has the
same bug.

--Per

--- otp_src_R13B04/erts/emulator/drivers/common/inet_drv.c.ORIG	2010-02-19 19:03:43.000000000 +0100
+++ otp_src_R13B04/erts/emulator/drivers/common/inet_drv.c	2010-06-20 21:57:12.000000000 +0200
@@ -9382,9 +9382,8 @@
 		    if (short_recv)
 			async_error_am(desc, am_short_recv);
 		    else
-#else
-			async_error(desc, err);
 #endif
+			async_error(desc, err);
 		    driver_cancel_timer(desc->port);
 		    sock_select(desc,FD_READ,0);
 		}


More information about the erlang-patches mailing list