From b6f5b70ddbd7cb29cc26012e224fbbac67ca0432 Mon Sep 17 00:00:00 2001 From: Jan Uhlig Date: Tue, 7 Nov 2017 14:17:35 +0100 Subject: Added transport functions getopts/2, getstat/1 and getstat/2 --- src/ranch_ssl.erl | 15 +++++++++++++++ src/ranch_tcp.erl | 15 +++++++++++++++ src/ranch_transport.erl | 4 ++++ 3 files changed, 34 insertions(+) (limited to 'src') diff --git a/src/ranch_ssl.erl b/src/ranch_ssl.erl index e91392e..5f6d5c2 100644 --- a/src/ranch_ssl.erl +++ b/src/ranch_ssl.erl @@ -30,6 +30,9 @@ -export([sendfile/4]). -export([sendfile/5]). -export([setopts/2]). +-export([getopts/2]). +-export([getstat/1]). +-export([getstat/2]). -export([controlling_process/2]). -export([peername/1]). -export([sockname/1]). @@ -192,6 +195,18 @@ sendfile(Socket, File, Offset, Bytes, Opts) -> setopts(Socket, Opts) -> ssl:setopts(Socket, Opts). +-spec getopts(ssl:sslsocket(), [atom()]) -> {ok, list()} | {error, atom()}. +getopts(Socket, Opts) -> + ssl:getopts(Socket, Opts). + +-spec getstat(ssl:sslsocket()) -> {ok, list()} | {error, atom()}. +getstat(Socket) -> + ssl:getstat(Socket). + +-spec getstat(ssl:sslsocket(), [atom()]) -> {ok, list()} | {error, atom()}. +getstat(Socket, OptionNames) -> + ssl:getstat(Socket, OptionNames). + -spec controlling_process(ssl:sslsocket(), pid()) -> ok | {error, closed | not_owner | atom()}. controlling_process(Socket, Pid) -> diff --git a/src/ranch_tcp.erl b/src/ranch_tcp.erl index 4cb477a..8cc03a1 100644 --- a/src/ranch_tcp.erl +++ b/src/ranch_tcp.erl @@ -30,6 +30,9 @@ -export([sendfile/4]). -export([sendfile/5]). -export([setopts/2]). +-export([getopts/2]). +-export([getstat/1]). +-export([getstat/2]). -export([controlling_process/2]). -export([peername/1]). -export([sockname/1]). @@ -174,6 +177,18 @@ sendfile(Socket, RawFile, Offset, Bytes, Opts) -> setopts(Socket, Opts) -> inet:setopts(Socket, Opts). +-spec getopts(inet:socket(), [atom()]) -> {ok, list()} | {error, atom()}. +getopts(Socket, Opts) -> + inet:getopts(Socket, Opts). + +-spec getstat(inet:socket()) -> {ok, list()} | {error, atom()}. +getstat(Socket) -> + inet:getstat(Socket). + +-spec getstat(inet:socket(), [atom()]) -> {ok, list()} | {error, atom()}. +getstat(Socket, OptionNames) -> + inet:getstat(Socket, OptionNames). + -spec controlling_process(inet:socket(), pid()) -> ok | {error, closed | not_owner | atom()}. controlling_process(Socket, Pid) -> diff --git a/src/ranch_transport.erl b/src/ranch_transport.erl index fb385f7..89ceb12 100644 --- a/src/ranch_transport.erl +++ b/src/ranch_transport.erl @@ -18,6 +18,7 @@ -type socket() :: any(). -type opts() :: any(). +-type stats() :: any(). -type sendfile_opts() :: [{chunk_size, non_neg_integer()}]. -export_type([sendfile_opts/0]). @@ -43,6 +44,9 @@ non_neg_integer(), sendfile_opts()) -> {ok, non_neg_integer()} | {error, atom()}. -callback setopts(socket(), opts()) -> ok | {error, atom()}. +-callback getopts(socket(), [atom()]) -> {ok, opts()} | {error, atom()}. +-callback getstat(socket()) -> {ok, stats()} | {error, atom()}. +-callback getstat(socket(), [atom()]) -> {ok, stats()} | {error, atom()}. -callback controlling_process(socket(), pid()) -> ok | {error, closed | not_owner | atom()}. -callback peername(socket()) -- cgit v1.2.3