diff options
| author | Hans Nilsson <[email protected]> | 2017-02-23 15:57:12 +0100 | 
|---|---|---|
| committer | Hans Nilsson <[email protected]> | 2017-03-02 12:03:52 +0100 | 
| commit | 7e2ceb5d44dc5004ea4d8271ee1e961bfa4987fd (patch) | |
| tree | e0aee95ae75d838194353624308e77b007208392 /lib/ssh/src | |
| parent | 89a829f32d855610b0bc0c3ea53e7c05454b7a24 (diff) | |
| download | otp-7e2ceb5d44dc5004ea4d8271ee1e961bfa4987fd.tar.gz otp-7e2ceb5d44dc5004ea4d8271ee1e961bfa4987fd.tar.bz2 otp-7e2ceb5d44dc5004ea4d8271ee1e961bfa4987fd.zip | |
ssh: Types and spec fixes to conform to the ref manual
Diffstat (limited to 'lib/ssh/src')
| -rw-r--r-- | lib/ssh/src/ssh.erl | 34 | ||||
| -rw-r--r-- | lib/ssh/src/ssh.hrl | 18 | ||||
| -rw-r--r-- | lib/ssh/src/ssh_connect.hrl | 4 | ||||
| -rw-r--r-- | lib/ssh/src/ssh_connection.erl | 30 | ||||
| -rw-r--r-- | lib/ssh/src/ssh_options.erl | 2 | 
5 files changed, 59 insertions, 29 deletions
| diff --git a/lib/ssh/src/ssh.erl b/lib/ssh/src/ssh.erl index 0186ac7922..53aba14458 100644 --- a/lib/ssh/src/ssh.erl +++ b/lib/ssh/src/ssh.erl @@ -40,11 +40,24 @@  	]).  %%% Type exports --export_type([connection_ref/0, -	      channel_id/0, -              role/0 +-export_type([ssh_daemon_ref/0, +              ssh_connection_ref/0, +	      ssh_channel_id/0, +              role/0, +              subsystem_spec/0, +              subsystem_name/0, +              channel_callback/0, +              channel_init_args/0, +              algs_list/0, +              alg_entry/0, +              simple_algs/0, +              double_algs/0  	     ]). +-opaque ssh_daemon_ref()     :: daemon_ref() . +-opaque ssh_connection_ref() :: connection_ref() . +-opaque ssh_channel_id()     :: channel_id(). +  %%--------------------------------------------------------------------  -spec start() -> ok | {error, term()}.  -spec start(permanent | transient | temporary) -> ok | {error, term()}. @@ -157,10 +170,10 @@ channel_info(ConnectionRef, ChannelId, Options) ->      ssh_connection_handler:channel_info(ConnectionRef, ChannelId, Options).  %%-------------------------------------------------------------------- --spec daemon(inet:port_number()) ->  ok_error(pid()). --spec daemon(inet:port_number()|inet:socket(), proplists:proplist()) -> ok_error(pid()). --spec daemon(any | inet:ip_address(), inet:port_number(), proplists:proplist()) -> ok_error(pid()) -           ;(socket, inet:socket(), proplists:proplist()) -> ok_error(pid()) +-spec daemon(inet:port_number()) ->  ok_error(daemon_ref()). +-spec daemon(inet:port_number()|inet:socket(), proplists:proplist()) -> ok_error(daemon_ref()). +-spec daemon(any | inet:ip_address(), inet:port_number(), proplists:proplist()) -> ok_error(daemon_ref()) +           ;(socket, inet:socket(), proplists:proplist()) -> ok_error(daemon_ref())              .  %% Description: Starts a server listening for SSH connections @@ -182,7 +195,7 @@ daemon(Host0, Port, UserOptions0) ->      start_daemon(Host, Port, ssh_options:handle_options(server, UserOptions)).  %%-------------------------------------------------------------------- --spec daemon_info(pid()) -> ok_error( [{atom(), term()}] ). +-spec daemon_info(daemon_ref()) -> ok_error( [{atom(), term()}] ).  daemon_info(Pid) ->      case catch ssh_system_sup:acceptor_supervisor(Pid) of @@ -197,7 +210,7 @@ daemon_info(Pid) ->      end.  %%-------------------------------------------------------------------- --spec stop_listener(pid()) -> ok. +-spec stop_listener(daemon_ref()) -> ok.  -spec stop_listener(inet:ip_address(), inet:port_number()) -> ok.  %%  %% Description: Stops the listener, but leaves @@ -211,7 +224,7 @@ stop_listener(Address, Port, Profile) ->      ssh_system_sup:stop_listener(Address, Port, Profile).  %%-------------------------------------------------------------------- --spec stop_daemon(pid()) -> ok. +-spec stop_daemon(daemon_ref()) -> ok.  -spec stop_daemon(inet:ip_address(), inet:port_number()) -> ok.  -spec stop_daemon(inet:ip_address(), inet:port_number(), atom()) -> ok.  %% @@ -269,6 +282,7 @@ start_shell(Error) ->      Error.  %%-------------------------------------------------------------------- +-spec default_algorithms() -> algs_list() .  %%--------------------------------------------------------------------  default_algorithms() ->      ssh_transport:default_algorithms(). diff --git a/lib/ssh/src/ssh.hrl b/lib/ssh/src/ssh.hrl index 475534f572..c1ba58ed40 100644 --- a/lib/ssh/src/ssh.hrl +++ b/lib/ssh/src/ssh.hrl @@ -90,7 +90,25 @@  -define(PUT_SOCKET_OPT(KeyVal,Opts),    ?do_put_opt(socket_options,  KeyVal,Opts) ).  %% Types +-type role()                :: client | server .  -type ok_error(SuccessType) :: {ok, SuccessType} | {error, any()} . +-type daemon_ref()          :: pid() . + +-type subsystem_spec()      :: {subsystem_name(), {channel_callback(), channel_init_args()}} . +-type subsystem_name()      :: string() . +-type channel_callback()    :: atom() . +-type channel_init_args()   :: list() . + +-type algs_list()           :: list( alg_entry() ). +-type alg_entry()           :: {kex, simple_algs()}  +                             | {public_key, simple_algs()} +                             | {cipher, double_algs()} +                             | {mac, double_algs()} +                             | {compression, double_algs()} . +-type simple_algs()         :: list( atom() ) . +-type double_algs()         :: list( {client2serverlist,simple_algs()} | {server2client,simple_algs()} ) +                             | simple_algs() . +  %% Records  -record(ssh, diff --git a/lib/ssh/src/ssh_connect.hrl b/lib/ssh/src/ssh_connect.hrl index 4fb6bc39f3..c91c56435e 100644 --- a/lib/ssh/src/ssh_connect.hrl +++ b/lib/ssh/src/ssh_connect.hrl @@ -22,9 +22,9 @@  %%% Description : SSH connection protocol  --type role()               :: client | server . --type connection_ref()     :: pid().  -type channel_id()         :: pos_integer(). +-type connection_ref()     :: pid(). +  -define(DEFAULT_PACKET_SIZE, 65536).  -define(DEFAULT_WINDOW_SIZE, 10*?DEFAULT_PACKET_SIZE). diff --git a/lib/ssh/src/ssh_connection.erl b/lib/ssh/src/ssh_connection.erl index 6a48ed581c..930ccecb4c 100644 --- a/lib/ssh/src/ssh_connection.erl +++ b/lib/ssh/src/ssh_connection.erl @@ -56,8 +56,8 @@  %%--------------------------------------------------------------------  %%-------------------------------------------------------------------- --spec session_channel(pid(), timeout()) -> {ok, channel_id()} | {error, timeout | closed}. --spec session_channel(pid(), integer(), integer(), timeout()) -> {ok, channel_id()} | {error, timeout | closed}. +-spec session_channel(connection_ref(), timeout()) -> {ok, channel_id()} | {error, timeout | closed}. +-spec session_channel(connection_ref(), integer(), integer(), timeout()) -> {ok, channel_id()} | {error, timeout | closed}.  %% Description: Opens a channel for a ssh session. A session is a  %% remote execution of a program. The program may be a shell, an @@ -81,7 +81,7 @@ session_channel(ConnectionHandler, InitialWindowSize,      end.  %%-------------------------------------------------------------------- --spec exec(pid(), channel_id(), string(), timeout()) ->  +-spec exec(connection_ref(), channel_id(), string(), timeout()) ->   		  success | failure | {error, timeout | closed}.  %% Description: Will request that the server start the @@ -92,7 +92,7 @@ exec(ConnectionHandler, ChannelId, Command, TimeOut) ->  				   true, [?string(Command)], TimeOut).  %%-------------------------------------------------------------------- --spec shell(pid(), channel_id()) -> _. +-spec shell(connection_ref(), channel_id()) -> _.  %% Description: Will request that the user's default shell (typically  %% defined in /etc/passwd in UNIX systems) be started at the other @@ -102,7 +102,7 @@ shell(ConnectionHandler, ChannelId) ->      ssh_connection_handler:request(ConnectionHandler, self(), ChannelId,   				   "shell", false, <<>>, 0).  %%-------------------------------------------------------------------- --spec subsystem(pid(), channel_id(), string(), timeout()) ->  +-spec subsystem(connection_ref(), channel_id(), string(), timeout()) ->   		       success | failure | {error, timeout | closed}.  %%  %% Description: Executes a predefined subsystem. @@ -112,11 +112,11 @@ subsystem(ConnectionHandler, ChannelId, SubSystem, TimeOut) ->  				    ChannelId, "subsystem",   				    true, [?string(SubSystem)], TimeOut).  %%-------------------------------------------------------------------- --spec send(pid(), channel_id(), iodata()) -> +-spec send(connection_ref(), channel_id(), iodata()) ->  		  ok | {error, closed}. --spec send(pid(), channel_id(), integer()| iodata(), timeout() | iodata()) -> +-spec send(connection_ref(), channel_id(), integer()| iodata(), timeout() | iodata()) ->  		  ok | {error, timeout} | {error, closed}. --spec send(pid(), channel_id(), integer(), iodata(), timeout()) -> +-spec send(connection_ref(), channel_id(), integer(), iodata(), timeout()) ->  		  ok | {error, timeout} | {error, closed}.  %%  %% @@ -134,7 +134,7 @@ send(ConnectionHandler, ChannelId, Type, Data, TimeOut) ->      ssh_connection_handler:send(ConnectionHandler, ChannelId,  				Type, Data, TimeOut).  %%-------------------------------------------------------------------- --spec send_eof(pid(), channel_id()) -> ok | {error, closed}. +-spec send_eof(connection_ref(), channel_id()) -> ok | {error, closed}.  %%  %%  %% Description: Sends eof on the channel <ChannelId>. @@ -143,7 +143,7 @@ send_eof(ConnectionHandler, Channel) ->      ssh_connection_handler:send_eof(ConnectionHandler, Channel).  %%-------------------------------------------------------------------- --spec adjust_window(pid(), channel_id(), integer()) -> ok |  {error, closed}. +-spec adjust_window(connection_ref(), channel_id(), integer()) -> ok |  {error, closed}.  %%  %%  %% Description: Adjusts the ssh flowcontrol window. @@ -152,7 +152,7 @@ adjust_window(ConnectionHandler, Channel, Bytes) ->      ssh_connection_handler:adjust_window(ConnectionHandler, Channel, Bytes).  %%-------------------------------------------------------------------- --spec setenv(pid(), channel_id(), string(), string(), timeout()) ->   +-spec setenv(connection_ref(), channel_id(), string(), string(), timeout()) ->    		    success | failure | {error, timeout | closed}.  %%  %% @@ -165,7 +165,7 @@ setenv(ConnectionHandler, ChannelId, Var, Value, TimeOut) ->  %%-------------------------------------------------------------------- --spec close(pid(), channel_id()) -> ok. +-spec close(connection_ref(), channel_id()) -> ok.  %%  %%  %% Description: Sends a close message on the channel <ChannelId>. @@ -174,7 +174,7 @@ close(ConnectionHandler, ChannelId) ->      ssh_connection_handler:close(ConnectionHandler, ChannelId).  %%-------------------------------------------------------------------- --spec reply_request(pid(), boolean(), success | failure, channel_id()) -> ok. +-spec reply_request(connection_ref(), boolean(), success | failure, channel_id()) -> ok.  %%  %%  %% Description: Send status replies to requests that want such replies. @@ -185,9 +185,9 @@ reply_request(_,false, _, _) ->      ok.  %%-------------------------------------------------------------------- --spec ptty_alloc(pid(), channel_id(), proplists:proplist()) ->  +-spec ptty_alloc(connection_ref(), channel_id(), proplists:proplist()) ->   			success | failiure | {error, closed}. --spec ptty_alloc(pid(), channel_id(), proplists:proplist(), timeout()) ->  +-spec ptty_alloc(connection_ref(), channel_id(), proplists:proplist(), timeout()) ->   			success | failiure | {error, timeout} | {error, closed}.  %% diff --git a/lib/ssh/src/ssh_options.erl b/lib/ssh/src/ssh_options.erl index 52dea5d183..395be6b220 100644 --- a/lib/ssh/src/ssh_options.erl +++ b/lib/ssh/src/ssh_options.erl @@ -58,8 +58,6 @@  -type option_declarations() :: #{ {option_key(),def} := option_declaration() }. --type role() :: client | server . -  -type error() :: {error,{eoptions,any()}} .  %%%================================================================ | 
