diff options
author | Hans Nilsson <hans@erlang.org> | 2019-12-20 13:21:11 +0100 |
---|---|---|
committer | Hans Nilsson <hans@erlang.org> | 2019-12-20 15:08:25 +0100 |
commit | ca4ce23031b95ec178a1beaabc3a4dc5e738dbbe (patch) | |
tree | 57e9420e5767b54ca8c8888afd08da9dd815ffee | |
parent | 040bdce67f88d833bfb59adae130a4ffb4c180f0 (diff) | |
download | erlang-ca4ce23031b95ec178a1beaabc3a4dc5e738dbbe.tar.gz |
ssh: Change ssh_connection:send to take iodata()
-rw-r--r-- | lib/ssh/doc/src/ssh_connection.xml | 2 | ||||
-rw-r--r-- | lib/ssh/src/ssh_connection.erl | 29 |
2 files changed, 8 insertions, 23 deletions
diff --git a/lib/ssh/doc/src/ssh_connection.xml b/lib/ssh/doc/src/ssh_connection.xml index 150d46a9a2..f9ba5c5af9 100644 --- a/lib/ssh/doc/src/ssh_connection.xml +++ b/lib/ssh/doc/src/ssh_connection.xml @@ -366,7 +366,7 @@ <type> <v>ConnectionRef = ssh_connection_ref()</v> <v>ChannelId = ssh_channel_id()</v> - <v>Data = binary()</v> + <v>Data = iodata()</v> <v>Type = ssh_data_type_code()</v> <v>Timeout = timeout()</v> </type> diff --git a/lib/ssh/src/ssh_connection.erl b/lib/ssh/src/ssh_connection.erl index 7e9ee78fd2..ff4603e477 100644 --- a/lib/ssh/src/ssh_connection.erl +++ b/lib/ssh/src/ssh_connection.erl @@ -234,32 +234,17 @@ exit_status(ConnectionHandler, Channel, Status) -> %%-------------------------------------------------------------------- %%% Internal API %%-------------------------------------------------------------------- -l2b(L) when is_integer(hd(L)) -> - try list_to_binary(L) - of - B -> B - catch - _:_ -> - unicode:characters_to_binary(L) - end; -l2b([H|T]) -> - << (l2b(H))/binary, (l2b(T))/binary >>; -l2b(B) when is_binary(B) -> - B; -l2b([]) -> - <<>>. - - - -channel_data(ChannelId, DataType, Data, Connection, From) - when is_list(Data)-> - channel_data(ChannelId, DataType, l2b(Data), Connection, From); - -channel_data(ChannelId, DataType, Data, +channel_data(ChannelId, DataType, Data0, #connection{channel_cache = Cache} = Connection, From) -> case ssh_channel:cache_lookup(Cache, ChannelId) of #channel{remote_id = Id, sent_close = false} = Channel0 -> + Data = + try iolist_to_binary(Data0) + catch + _:_ -> + unicode:characters_to_binary(Data0) + end, {SendList, Channel} = update_send_window(Channel0#channel{flow_control = From}, DataType, Data, Connection), |