summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaimo Niskanen <raimo@erlang.org>2021-08-13 16:45:24 +0200
committerRaimo Niskanen <raimo@erlang.org>2021-08-30 14:27:36 +0200
commit241dcfe89f37092dd6a6f48726c390703d00de7b (patch)
tree98e654d087537a3a4bc0a75aaeea2544a5d25f92
parent9b9cd6e6ac8919e90f5a265c6081e7f04223bb7e (diff)
downloaderlang-241dcfe89f37092dd6a6f48726c390703d00de7b.tar.gz
Work around Linux DGRAM reconnect misbehaviour
-rw-r--r--lib/kernel/src/gen_udp_socket.erl7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/kernel/src/gen_udp_socket.erl b/lib/kernel/src/gen_udp_socket.erl
index 43b11b456b..d734e4dd69 100644
--- a/lib/kernel/src/gen_udp_socket.erl
+++ b/lib/kernel/src/gen_udp_socket.erl
@@ -115,6 +115,13 @@ close_server(Server) ->
%% -- connect ----------------------------------------------------------------
connect(?MODULE_socket(_Server, Socket), Address, Port) ->
+ case os:type() of
+ {unix,linux} ->
+ _ = socket:connect(Socket, #{family => 0}),
+ ok;
+ _ ->
+ ok
+ end,
socket:connect(Socket, dest2sockaddr({Address, Port})).