diff options
author | Micael Karlberg <bmk@erlang.org> | 2020-07-15 13:56:41 +0200 |
---|---|---|
committer | Micael Karlberg <bmk@erlang.org> | 2020-07-15 13:56:41 +0200 |
commit | 4c51f0c22217adcdfbbcb0c8e7e32633fd1b9661 (patch) | |
tree | f069ff060d2a2fa6fc51077d3e1e2c33853e6e2c | |
parent | 796d83d47d417907796322882e5b89aadc56b904 (diff) | |
download | erlang-4c51f0c22217adcdfbbcb0c8e7e32633fd1b9661.tar.gz |
[kernel|esock] Add env variable ESOCK_USE_SOCKET_REGISTRY
Make it possible to set global default value using environment
variable (ESOCK_USE_SOCKET_REGISTRY).
OTP-16763
-rw-r--r-- | erts/emulator/nifs/common/prim_socket_nif.c | 2 | ||||
-rw-r--r-- | erts/preloaded/ebin/prim_socket.beam | bin | 30712 -> 31272 bytes | |||
-rw-r--r-- | erts/preloaded/src/prim_socket.erl | 41 |
3 files changed, 35 insertions, 8 deletions
diff --git a/erts/emulator/nifs/common/prim_socket_nif.c b/erts/emulator/nifs/common/prim_socket_nif.c index 6393967ea7..663ae81a7c 100644 --- a/erts/emulator/nifs/common/prim_socket_nif.c +++ b/erts/emulator/nifs/common/prim_socket_nif.c @@ -19911,7 +19911,7 @@ ESockDescriptor* alloc_descriptor(SOCKET sock, HANDLE event) descP->rCtrlSz = ESOCK_RECV_CTRL_BUFFER_SIZE_DEFAULT; descP->wCtrlSz = ESOCK_SEND_CTRL_BUFFER_SIZE_DEFAULT; descP->iow = FALSE; - descP->dbg = ESOCK_DEBUG_DEFAULT; // Overwritten by caller + descP->dbg = ESOCK_DEBUG_DEFAULT; // Overwritten by caller descP->useReg = ESOCK_USE_SOCKET_REGISTRY; // Overwritten by caller descP->meta.env = esock_alloc_env("alloc_descriptor - " "meta-env"); diff --git a/erts/preloaded/ebin/prim_socket.beam b/erts/preloaded/ebin/prim_socket.beam Binary files differindex 1e6c034e67..c42f68512a 100644 --- a/erts/preloaded/ebin/prim_socket.beam +++ b/erts/preloaded/ebin/prim_socket.beam diff --git a/erts/preloaded/src/prim_socket.erl b/erts/preloaded/src/prim_socket.erl index fbb7e2f3c3..efa99cc989 100644 --- a/erts/preloaded/src/prim_socket.erl +++ b/erts/preloaded/src/prim_socket.erl @@ -67,6 +67,7 @@ (#{port => 0, addr => any, flowinfo => 0, scope_id => 0})). + %% =========================================================================== %% %% Constants common to prim_socket_nif.c - has to be "identical" @@ -347,6 +348,7 @@ ) band (bnot 16#FFFF) ) =:= 0)). + %% =========================================================================== %% API for 'erl_init' %% @@ -370,16 +372,39 @@ on_load(Extra) when is_map(Extra) -> atom_to_list(?MODULE), case DebugFilename of false -> - Extra#{registry => Pid}; + case os:get_env_var("ESOCK_USE_SOCKET_REGISTRY") of + "true" -> + Extra#{registry => Pid, + use_registry => true}; + "false" -> + Extra#{registry => Pid, + use_registry => false}; + _ -> + Extra#{registry => Pid} + end; _ -> - Extra - #{registry => Pid, - debug => true, - socket_debug => true, - debug_filename => - encode_path(DebugFilename)} + case os:get_env_var("ESOCK_USE_SOCKET_REGISTRY") of + "true" -> + Extra#{registry => Pid, + use_registry => true, + debug => true, + socket_debug => true, + debug_filename => encode_path(DebugFilename)}; + "false" -> + Extra#{registry => Pid, + use_registry => false, + debug => true, + socket_debug => true, + debug_filename => encode_path(DebugFilename)}; + _ -> + Extra#{registry => Pid, + debug => true, + socket_debug => true, + debug_filename => encode_path(DebugFilename)} + end end). + %% =========================================================================== %% API for 'socket' %% @@ -394,6 +419,7 @@ encode_path(Path) -> encode_sockaddr(SockAddr) -> enc_sockaddr(SockAddr). + %% ---------------------------------- info() -> @@ -1302,6 +1328,7 @@ invalid(What, Info) -> err(Reason) -> erlang:error(Reason). + %% =========================================================================== %% NIF functions %% |