<div dir="ltr">
        
        
        


<p lang="en" style="margin-bottom:0in">Hello, friends.</p>
<p lang="en" style="margin-bottom:0in">I have a trouble with using
shell in the ssh-daemon, when I call the function io:getopts()
and io:setopts([{echo, false}, {encoding, latin1}]).</p><p lang="en" style="margin-bottom:0in">Tested by Erlang 16B02, ssh 2.1.8 and R15B02, ssh 2.1.1<br></p><div><br></div><div>How can i see, in the ssh_cli.erl module, handle_msg metod no function for processing param ({Group, set_unicode_state, Arg}, State) and ({Group, get_unicode_state}, State).<br>
</div><div><br></div><div>My patch for fixing:</div><div><br></div><div><div>--- ssh-2.1.1/src/ssh_cli.erl<span class="" style="white-space:pre">   </span>2013-10-26 14:25:26.000000000 <br></div><div>+++ ssh-2.1.2/src/ssh_cli.erl<span class="" style="white-space:pre">     </span>2013-10-26 14:18:18.000000000 </div>
<div>@@ -159,12 +159,20 @@</div><div> %%--------------------------------------------------------------------</div><div> handle_msg({ssh_channel_up, ChannelId, ConnectionManager},</div><div> <span class="" style="white-space:pre">    </span>   #state{channel = ChannelId,</div>
<div> <span class="" style="white-space:pre">          </span>  cm = ConnectionManager} = State) -></div><div>     {ok,  State};</div><div> </div><div>+handle_msg({Group, set_unicode_state, _Arg}, State) -></div><div>+  Group ! {self(), set_unicode_state, false},</div>
<div>+    {ok, State};</div><div>+</div><div>+handle_msg({Group, get_unicode_state}, State) -></div><div>+    Group ! {self(), get_unicode_state, false},</div><div>+    {ok, State};</div><div>+</div><div> handle_msg({Group, Req}, #state{group = Group, buf = Buf, pty = Pty,</div>
<div> <span class="" style="white-space:pre">                          </span> cm = ConnectionManager,</div><div> <span class="" style="white-space:pre">                         </span> channel = ChannelId} = State) -></div><div>     {Chars, NewBuf} = io_request(Req, Buf, Pty),</div>
<div>     write_chars(ConnectionManager, ChannelId, Chars),</div><div>     {ok, State#state{buf = NewBuf}};</div><div><br></div></div><p lang="en" style="margin-bottom:0in">Also I attached
simple sample, where you can see this problem. To run it, compile
ssh_shell.erl and ssh_manager.erl and invoke "ssh_manager:start_link()" method to run ssh-daemon. (you need generate personal keys for used it) Then run ssh-client on terminal to localhost on port 7777, after entering the
password “test”, enter the command "echo_on" or
"echo_off".</p><p lang="en" style="margin-bottom:0in">You can see that there is a delay when calling
functions io:getopts() and io:setopts([{echo, false}, {encoding,
latin1}]).<br></p><p lang="en" style="margin-bottom:0in"><br></p>-- <br>---------------------------------------------<br>With best regards,<br>Alexander.
</div>