4
%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
4
%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
6
6
%% The contents of this file are subject to the Erlang Public License,
7
7
%% Version 1.1, (the "License"); you may not use this file except in
8
8
%% compliance with the License. You should have received a copy of the
9
9
%% Erlang Public License along with this software. If not, it can be
10
10
%% retrieved online at http://www.erlang.org/.
12
12
%% Software distributed under the License is distributed on an "AS IS"
13
13
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
14
14
%% the License for the specific language governing rights and limitations
15
15
%% under the License.
123
123
send(ConnectionManager, ChannelId, 0, Data, infinity).
124
124
send(ConnectionManager, ChannelId, Data, TimeOut) when is_integer(TimeOut) ->
125
125
send(ConnectionManager, ChannelId, 0, Data, TimeOut);
126
send(ConnectionManager, ChannelId, Data, infinity) ->
127
send(ConnectionManager, ChannelId, 0, Data, infinity);
126
128
send(ConnectionManager, ChannelId, Type, Data) ->
127
129
send(ConnectionManager, ChannelId, Type, Data, infinity).
128
130
send(ConnectionManager, ChannelId, Type, Data, TimeOut) ->
947
start_channel(Address, Port, Cb, Id, Args) ->
948
start_channel(Address, Port, Cb, Id, Args, undefined).
949
start_channel(Cb, Id, Args, SubSysSup) ->
950
start_channel(Cb, Id, Args, SubSysSup, undefined).
950
start_channel(Address, Port, Cb, Id, Args, Exec) ->
952
start_channel(Cb, Id, Args, SubSysSup, Exec) ->
951
953
ChildSpec = child_spec(Cb, Id, Args, Exec),
952
SystemSup = ssh_system_sup:system_supervisor(Address, Port),
953
ChannelSup = ssh_system_sup:channel_supervisor(SystemSup),
954
ChannelSup =ssh_subsystem_sup:channel_supervisor(SubSysSup),
954
955
ssh_channel_sup:start_child(ChannelSup, ChildSpec).
956
957
%%--------------------------------------------------------------------
1018
start_cli(#connection{address = Address, port = Port,
1019
cli_spec = {CbModule, Args}, exec = Exec}, ChannelId) ->
1020
start_channel(Address, Port, CbModule, ChannelId, Args, Exec).
1019
start_cli(#connection{cli_spec = {CbModule, Args}, exec = Exec,
1020
sub_system_supervisor = SubSysSup}, ChannelId) ->
1021
start_channel(CbModule, ChannelId, Args, SubSysSup, Exec).
1022
1023
start_subsytem(BinName, #connection{address = Address, port = Port,
1025
sub_system_supervisor = SubSysSup},
1024
1026
#channel{local_id = ChannelId, remote_id = RemoteChannelId},
1026
1028
Name = binary_to_list(BinName),
1027
1029
case check_subsystem(Name, Options) of
1028
1030
{Callback, Opts} when is_atom(Callback), Callback =/= none ->
1029
start_channel(Address, Port, Callback, ChannelId, Opts);
1031
start_channel(Callback, ChannelId, Opts, SubSysSup);
1030
1032
{Other, _} when Other =/= none ->
1031
1033
handle_backwards_compatibility(Other, self(),
1032
1034
ChannelId, RemoteChannelId,