Current section

Files

Jump to
glisten src glisten@ssl.erl
Raw

src/glisten@ssl.erl

-module(glisten@ssl).
-compile(no_auto_import).
-export([controlling_process/2, accept_timeout/2, accept/1, receive_timeout/3, 'receive'/2, send/2, close/1, do_shutdown/2, shutdown/1, set_opts/2, handshake/1, listen/2]).
-spec controlling_process(glisten@socket:socket(), gleam@erlang@process:pid_()) -> {ok,
nil} |
{error, gleam@erlang@atom:atom_()}.
controlling_process(A, B) ->
ssl_ffi:controlling_process(A, B).
-spec accept_timeout(glisten@socket:listen_socket(), integer()) -> {ok,
glisten@socket:socket()} |
{error, glisten@socket:socket_reason()}.
accept_timeout(A, B) ->
ssl:transport_accept(A, B).
-spec accept(glisten@socket:listen_socket()) -> {ok, glisten@socket:socket()} |
{error, glisten@socket:socket_reason()}.
accept(A) ->
ssl:transport_accept(A).
-spec receive_timeout(glisten@socket:socket(), integer(), integer()) -> {ok,
bitstring()} |
{error, glisten@socket:socket_reason()}.
receive_timeout(A, B, C) ->
ssl:recv(A, B, C).
-spec 'receive'(glisten@socket:socket(), integer()) -> {ok, bitstring()} |
{error, glisten@socket:socket_reason()}.
'receive'(A, B) ->
ssl:recv(A, B).
-spec send(glisten@socket:socket(), gleam@bit_builder:bit_builder()) -> {ok,
nil} |
{error, glisten@socket:socket_reason()}.
send(A, B) ->
ssl_ffi:send(A, B).
-spec close(glisten@socket:socket()) -> gleam@erlang@atom:atom_().
close(A) ->
ssl:close(A).
-spec do_shutdown(glisten@socket:socket(), gleam@erlang@atom:atom_()) -> nil.
do_shutdown(A, B) ->
ssl:shutdown(A, B).
-spec shutdown(glisten@socket:socket()) -> nil.
shutdown(Socket) ->
{ok, Write@1} = case gleam@erlang@atom:from_string(<<"write"/utf8>>) of
{ok, Write} -> {ok, Write};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"glisten/ssl"/utf8>>,
function => <<"shutdown"/utf8>>,
line => 57})
end,
ssl:shutdown(Socket, Write@1).
-spec set_opts(
glisten@socket:socket(),
list(glisten@socket@options:tcp_option())
) -> {ok, nil} | {error, nil}.
set_opts(Socket, Opts) ->
_pipe = Opts,
_pipe@1 = glisten@socket@options:to_map(_pipe),
_pipe@2 = gleam@map:to_list(_pipe@1),
_pipe@3 = gleam@list:map(_pipe@2, fun gleam@dynamic:from/1),
ssl_ffi:set_opts(Socket, _pipe@3).
-spec handshake(glisten@socket:socket()) -> {ok, nil} | {error, nil}.
handshake(A) ->
ssl:handshake(A).
-spec listen(integer(), list(glisten@socket@options:tcp_option())) -> {ok,
glisten@socket:listen_socket()} |
{error, glisten@socket:socket_reason()}.
listen(Port, Options) ->
_pipe = Options,
_pipe@1 = glisten@socket@options:merge_with_defaults(_pipe),
ssl:listen(Port, _pipe@1).