[erlang-questions] inet_res:getbyname/2 and udp:connect/3
Wed Jun 16 08:07:03 CEST 2010
Tony Rogvall <> wrote:
>> What version of OTP did you try on? What OS?
>Erlang R13B04 (erts-5.7.5) [source] [smp:2:2] [rq:2] [async-threads:0] =
>Darwin p13 10.3.0 Darwin Kernel Version 10.3.0: Fri Feb 26 11:58:09 PST =
>2010; root:xnu-1504.3.12~1/RELEASE_I386 i386
OK - I get the same behaviour as before with R13B04 on FreeBSD (using
the FreeBSD "port" in both cases) though, so it seems it is a "OS-
specific" problem. But since it works in passive mode and the difference
between active and passive is all in Erlang/inet_drv (right?), I guess
it's a problem with the Erlang/OTP build for FreeBSD rather than with
>Something with the loopback interface ?
Very unlikely given the above.
>Is it possible to trace the loopback interface and see that it generates
Indeed it is:
07:51:01.439571 IP 127.0.0.1.61776 > 127.0.0.1.12345: UDP, length 3
07:51:01.439613 IP 127.0.0.1 > 127.0.0.1: ICMP 127.0.0.1 udp port 12345 unreachable, length 36
Happens in both active and passive mode.
>Try an other interface where there is a host ...
Haven't done that, maybe I will (right now I happen to be on a network
where other hosts don't have the courtesy to send ICMP unreachables:-).
I noticed something else interesting though - in passive mode:
9> gen_udp:send(U, <<1,2,3>>).
10> gen_udp:send(U, <<1,2,3>>).
11> gen_udp:send(U, <<1,2,3>>).
12> gen_udp:send(U, <<1,2,3>>).
13> gen_udp:send(U, <<1,2,3>>).
14> gen_udp:send(U, <<1,2,3>>).
I.e. the error is detected, but only on a subsequent send() (which
doesn't actually send anything).
More information about the erlang-questions