diff options
Diffstat (limited to 'erts/preloaded/src/socket.erl')
-rw-r--r-- | erts/preloaded/src/socket.erl | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/erts/preloaded/src/socket.erl b/erts/preloaded/src/socket.erl index ae1ffdb4ac..3a43504f8f 100644 --- a/erts/preloaded/src/socket.erl +++ b/erts/preloaded/src/socket.erl @@ -26,9 +26,12 @@ %% Administrative and "global" utility functions -export([ on_load/0, on_load/1, + + ensure_sockaddr/1, + + command/1, info/0, - supports/0, supports/1, supports/2, supports/3, - ensure_sockaddr/1 + supports/0, supports/1, supports/2, supports/3 ]). -export([ @@ -63,6 +66,8 @@ select_ref/0, select_info/0, + command/0, + domain/0, type/0, protocol/0, @@ -135,6 +140,18 @@ ]). +%% The command type has the general form: +%% #{ +%% command := atom(), +%% data := term() +%% } +%% But only certain values are actually valid, so the type gets the form: +-type debug_command() :: #{ + command := debug, + data := boolean() + }. +-type command() :: debug_command(). + -type uint8() :: 0..16#FF. -type uint16() :: 0..16#FFFF. -type uint20() :: 0..16#FFFFF. @@ -867,6 +884,14 @@ info() -> nif_info(). +-spec command(Command) -> term() when + Command :: command(). + +command(#{command := debug, + data := Dbg} = Command) when is_boolean(Dbg) -> + nif_command(Command). + + %% =========================================================================== %% @@ -3845,6 +3870,9 @@ error(Reason) -> nif_info() -> erlang:nif_error(undef). +nif_command(_Command) -> + erlang:nif_error(undef). + nif_supports(_Key) -> erlang:nif_error(undef). |