diff options
author | Hans Nilsson <[email protected]> | 2014-01-17 15:57:21 +0100 |
---|---|---|
committer | Hans Nilsson <[email protected]> | 2014-01-21 16:36:38 +0100 |
commit | f4c9b4a4dddcf1f577df3f4bf58f2f7184cae6b0 (patch) | |
tree | d69a0f448f831ac73ba08d09dbfdaacbb4d99a0c /lib/ssh/src/ssh_connection.erl | |
parent | f836096cb383c6a3c5c91956ded5bd4e2772bcd2 (diff) | |
download | otp-f4c9b4a4dddcf1f577df3f4bf58f2f7184cae6b0.tar.gz otp-f4c9b4a4dddcf1f577df3f4bf58f2f7184cae6b0.tar.bz2 otp-f4c9b4a4dddcf1f577df3f4bf58f2f7184cae6b0.zip |
ssh: Adds unicode
Diffstat (limited to 'lib/ssh/src/ssh_connection.erl')
-rw-r--r-- | lib/ssh/src/ssh_connection.erl | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/lib/ssh/src/ssh_connection.erl b/lib/ssh/src/ssh_connection.erl index 03dddae3c8..b377614949 100644 --- a/lib/ssh/src/ssh_connection.erl +++ b/lib/ssh/src/ssh_connection.erl @@ -271,10 +271,36 @@ cancel_tcpip_forward(ConnectionHandler, BindIP, Port) -> %%-------------------------------------------------------------------- %%% 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, - list_to_binary(Data), Connection, From); +%% list_to_binary(Data), Connection, From); + l2b(Data), Connection, From); + %% try list_to_binary(Data) + %% of + %% B -> B + %% catch + %% _:_ -> io:format('BAD BINARY: ~p~n',[Data]), + %% unicode:characters_to_binary(Data) + %% end, + %% Connection, From); channel_data(ChannelId, DataType, Data, #connection{channel_cache = Cache} = Connection, |