aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssh/src/ssh_connection.erl
diff options
context:
space:
mode:
authorHans Nilsson <[email protected]>2014-01-17 15:57:21 +0100
committerHans Nilsson <[email protected]>2014-01-21 16:36:38 +0100
commitf4c9b4a4dddcf1f577df3f4bf58f2f7184cae6b0 (patch)
treed69a0f448f831ac73ba08d09dbfdaacbb4d99a0c /lib/ssh/src/ssh_connection.erl
parentf836096cb383c6a3c5c91956ded5bd4e2772bcd2 (diff)
downloadotp-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.erl28
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,