summaryrefslogtreecommitdiff
path: root/erts/preloaded/src/prim_socket.erl
diff options
context:
space:
mode:
Diffstat (limited to 'erts/preloaded/src/prim_socket.erl')
-rw-r--r--erts/preloaded/src/prim_socket.erl4
1 files changed, 4 insertions, 0 deletions
diff --git a/erts/preloaded/src/prim_socket.erl b/erts/preloaded/src/prim_socket.erl
index 5b72841a32..5ad8cdffd3 100644
--- a/erts/preloaded/src/prim_socket.erl
+++ b/erts/preloaded/src/prim_socket.erl
@@ -63,6 +63,8 @@
-define(ESOCK_SOCKADDR_IN6_DEFAULTS,
(#{port => 0, addr => any,
flowinfo => 0, scope_id => 0})).
+-define(ESOCK_SOCKADDR_NATIVE_DEFAULTS,
+ (#{addr => <<>>})).
%% ===========================================================================
%%
@@ -835,6 +837,8 @@ enc_sockaddr(#{family := local, path := Path} = SockAddr) ->
enc_sockaddr(#{family := local} = SockAddr) ->
%% Neater than a function clause
erlang:error({invalid, {sockaddr, path, SockAddr}});
+enc_sockaddr(#{family := Native} = SockAddr) when is_integer(Native) ->
+ maps:merge(?ESOCK_SOCKADDR_NATIVE_DEFAULTS, SockAddr);
enc_sockaddr(#{family := _} = SockAddr) ->
SockAddr;
enc_sockaddr(SockAddr) ->