summaryrefslogtreecommitdiff
path: root/lib/inets/src/http_lib/http_transport.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/inets/src/http_lib/http_transport.erl')
-rw-r--r--lib/inets/src/http_lib/http_transport.erl63
1 files changed, 43 insertions, 20 deletions
diff --git a/lib/inets/src/http_lib/http_transport.erl b/lib/inets/src/http_lib/http_transport.erl
index c18c08c77c..0eb0cc2684 100644
--- a/lib/inets/src/http_lib/http_transport.erl
+++ b/lib/inets/src/http_lib/http_transport.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 2004-2021. All Rights Reserved.
+%% Copyright Ericsson AB 2004-2023. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
@@ -199,9 +199,22 @@ get_socket_info(Addr, Port, Fd, BaseOpts) ->
%% Description: Accepts an incoming connection request on a listen socket,
%% using either gen_tcp or ssl.
%%-------------------------------------------------------------------------
+-spec accept(SocketType, ListenSocket) -> {ok, Socket} | {error, Reason} when
+ SocketType :: ip_comm | {ssl, SSLConfig},
+ SSLConfig :: term(),
+ ListenSocket :: gen_tcp:socket(),
+ Socket :: gen_tcp:socket(),
+ Reason :: term().
accept(SocketType, ListenSocket) ->
accept(SocketType, ListenSocket, infinity).
+-spec accept(SocketType, ListenSocket, Timeout) -> {ok, Socket} | {error, Reason} when
+ SocketType :: ip_comm | {ssl | essl, SSLConfig},
+ SSLConfig :: term(),
+ Timeout :: timeout(),
+ ListenSocket :: gen_tcp:socket(),
+ Socket :: gen_tcp:socket(),
+ Reason :: term().
accept(ip_comm, ListenSocket, Timeout) ->
gen_tcp:accept(ListenSocket, Timeout);
accept({ip_comm, _}, ListenSocket, Timeout) ->
@@ -216,13 +229,14 @@ accept({essl, _SSLConfig}, ListenSocket, Timeout) ->
%%-------------------------------------------------------------------------
-%% controlling_process(SocketType, Socket, NewOwner) -> ok | {error, Reason}
-%% SocketType = ip_comm | {ssl, _}
-%% Socket = socket()
-%% NewOwner = pid()
-%%
-%% Description: Assigns a new controlling process to Socket.
+%% Description: Assigns a new controlling process to Socket.
%%-------------------------------------------------------------------------
+-spec controlling_process(SocketType, Socket, NewOwner) -> Object when
+ SocketType :: ip_comm | {ip_comm | ssl | essl, _SSLConfig},
+ Socket :: gen_tcp:socket(),
+ NewOwner :: pid(),
+ Object :: ok | {error, Reason},
+ Reason :: closed | not_owner | badarg | inet:posix().
controlling_process(ip_comm, Socket, NewOwner) ->
gen_tcp:controlling_process(Socket, NewOwner);
controlling_process({ip_comm, _}, Socket, NewOwner) ->
@@ -237,13 +251,13 @@ controlling_process({essl, _}, Socket, NewOwner) ->
%%-------------------------------------------------------------------------
-%% setopts(SocketType, Socket, Options) -> ok | {error, Reason}
-%% SocketType = ip_comm | {ssl, _}
-%% Socket = socket()
-%% Options = list()
%% Description: Sets one or more options for a socket, using either
%% gen_tcp or ssl.
%%-------------------------------------------------------------------------
+-spec setopts(SocketType, Socket, Options) -> ok | {error, inet:posix()} when
+ SocketType :: ip_comm | {ip_comm | ssl | essl, _SSLConfig},
+ Socket :: inet:socket() | ssl:sslsocket(),
+ Options :: [inet:socket_setopt()] | [gen_tcp:option()].
setopts(ip_comm, Socket, Options) ->
inet:setopts(Socket, Options);
setopts({ip_comm, _}, Socket, Options) ->
@@ -258,16 +272,21 @@ setopts({essl, _}, Socket, Options) ->
%%-------------------------------------------------------------------------
-%% getopts(SocketType, Socket [, Opts]) -> ok | {error, Reason}
-%% SocketType = ip_comm | {ssl, _}
-%% Socket = socket()
-%% Opts = socket_options()
-%% Description: Gets the values for some options.
+%% Description: Gets the values for some options.
%%-------------------------------------------------------------------------
+-spec getopts(SocketType, Socket) -> Object when
+ SocketType :: ip_comm | {ip_comm | ssl | essl, _SSLConfig},
+ Socket :: ssl:sslsocket() | inet:socket(),
+ Object :: [gen_tcp:option()] | [inet:socket_setopt() | gen_tcp:pktoptions_value()] | [].
getopts(SocketType, Socket) ->
Opts = [packet, packet_size, recbuf, sndbuf, priority, tos, send_timeout],
getopts(SocketType, Socket, Opts).
+-spec getopts(SocketType, Socket, Options) -> Object when
+ SocketType :: ip_comm | {ip_comm | ssl | essl, _SSLConfig},
+ Socket :: ssl:sslsocket() | inet:socket(),
+ Options :: [gen_tcp:option_name()],
+ Object :: [gen_tcp:option()] | [inet:socket_setopt() | gen_tcp:pktoptions_value()] | [].
getopts({ip_comm, _}, Socket, Options) ->
getopts(ip_comm, Socket, Options);
@@ -286,6 +305,10 @@ getopts({ssl, SSLConfig}, Socket, Options) ->
getopts({essl, _}, Socket, Options) ->
getopts_ssl(Socket, Options).
+-spec getopts_ssl(SslSocket, Options) ->
+ [gen_tcp:option()] | [] when
+ SslSocket :: ssl:sslsocket(),
+ Options :: [gen_tcp:option_name()].
getopts_ssl(Socket, Options) ->
case ssl:getopts(Socket, Options) of
{ok, SocketOpts} ->
@@ -380,11 +403,11 @@ peername({essl, _}, Socket) ->
do_peername(ssl:peername(Socket)).
do_peername({ok, {Addr, Port}})
- when is_tuple(Addr) andalso (size(Addr) =:= 4) ->
+ when tuple_size(Addr) =:= 4 ->
PeerName = ipv4_name(Addr),
{Port, PeerName};
do_peername({ok, {Addr, Port}})
- when is_tuple(Addr) andalso (size(Addr) =:= 8) ->
+ when tuple_size(Addr) =:= 8 ->
PeerName = ipv6_name(Addr),
{Port, PeerName};
do_peername({error, _}) ->
@@ -413,11 +436,11 @@ sockname({essl, _}, Socket) ->
do_sockname(ssl:sockname(Socket)).
do_sockname({ok, {Addr, Port}})
- when is_tuple(Addr) andalso (size(Addr) =:= 4) ->
+ when tuple_size(Addr) =:= 4 ->
SockName = ipv4_name(Addr),
{Port, SockName};
do_sockname({ok, {Addr, Port}})
- when is_tuple(Addr) andalso (size(Addr) =:= 8) ->
+ when tuple_size(Addr) =:= 8 ->
SockName = ipv6_name(Addr),
{Port, SockName};
do_sockname({error, _}) ->