diff options
author | Ingela Anderton Andin <[email protected]> | 2012-12-14 09:44:10 +0100 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2012-12-14 09:44:10 +0100 |
commit | 70892a1e03e441b24f879a9bb5f124defbab2e16 (patch) | |
tree | deb09395eec02ee31efda4415070113a29d89128 /lib/ssh/src/ssh_subsystem.erl | |
parent | 33124ad120c10e5057f25753a9d4b56f265b53dd (diff) | |
parent | 671cf55d2388ef3c30f8e0e6b3e5ec824b02da09 (diff) | |
download | otp-70892a1e03e441b24f879a9bb5f124defbab2e16.tar.gz otp-70892a1e03e441b24f879a9bb5f124defbab2e16.tar.bz2 otp-70892a1e03e441b24f879a9bb5f124defbab2e16.zip |
Merge branch 'ia/ssh/add_users_guide/OTP-7786'
* ia/ssh/add_users_guide/OTP-7786:
ssh: Document and clean up SSH behaviours
ssh: Add Users Guide and enhance man pages
ssh: Added User's Guide framework and minor enhancements
Diffstat (limited to 'lib/ssh/src/ssh_subsystem.erl')
-rw-r--r-- | lib/ssh/src/ssh_subsystem.erl | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/ssh/src/ssh_subsystem.erl b/lib/ssh/src/ssh_subsystem.erl new file mode 100644 index 0000000000..5a9fa32668 --- /dev/null +++ b/lib/ssh/src/ssh_subsystem.erl @@ -0,0 +1,47 @@ +-module(ssh_subsystem). + +%% API to special server side channel that can be pluged into the erlang ssh daemeon +-callback init(Args :: term()) -> + {ok, State :: term()} | {ok, State :: term(), timeout() | hibernate} | + {stop, Reason :: term()} | ignore. + +-callback terminate(Reason :: (normal | shutdown | {shutdown, term()} | + term()), + State :: term()) -> + term(). + +-callback handle_msg(Msg ::term(), State :: term()) -> + {noreply, NewState :: term()} | + {noreply, NewState :: term(), timeout() | hibernate} | + {stop, Reason :: term(), NewState :: term()}. + +-callback handle_ssh_msg({ssh_cm, ConnectionRef::term(), SshMsg::term()}, + State::term()) -> {ok, State::term()} | + {stop, ChannelId::integer(), + State::term()}. + +%%% API +-export([start/4, start/5, start_link/4, start_link/5, enter_loop/1]). + +%% gen_server callbacks +-export([init/1, terminate/2]). + +start(ConnectionManager, ChannelId, CallBack, CbInitArgs) -> + ssh_channel:start(ConnectionManager, ChannelId, CallBack, CbInitArgs, undefined). + +start(ConnectionManager, ChannelId, CallBack, CbInitArgs, Exec) -> + ssh_channel:start(ConnectionManager, ChannelId, CallBack, CbInitArgs, Exec). + +start_link(ConnectionManager, ChannelId, CallBack, CbInitArgs) -> + ssh_channel:start_link(ConnectionManager, ChannelId, CallBack, CbInitArgs, undefined). + +start_link(ConnectionManager, ChannelId, CallBack, CbInitArgs, Exec) -> + ssh_channel:start_link(ConnectionManager, ChannelId, CallBack, CbInitArgs, Exec). + +enter_loop(State) -> + ssh_channel:enter_loop(State). + +init(Args) -> + ssh_channel:init(Args). +terminate(Reason, State) -> + ssh_channel:terminate(Reason, State). |