aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssh/src/ssh_cli.erl
diff options
context:
space:
mode:
authorHans Nilsson <[email protected]>2014-01-28 14:26:21 +0100
committerHans Nilsson <[email protected]>2014-01-28 15:07:26 +0100
commit16aae9d538c8ed3c47a021c7ab10ff9f99231b7e (patch)
tree7e66b325ac2093b661b7c69394cd6ff989d7de77 /lib/ssh/src/ssh_cli.erl
parente0001b1311dc3182793e21f598dabf15053aead7 (diff)
downloadotp-16aae9d538c8ed3c47a021c7ab10ff9f99231b7e.tar.gz
otp-16aae9d538c8ed3c47a021c7ab10ff9f99231b7e.tar.bz2
otp-16aae9d538c8ed3c47a021c7ab10ff9f99231b7e.zip
ssh: The server ssh_cli does not delay tty_geometry requests in case no tty is allocated
Diffstat (limited to 'lib/ssh/src/ssh_cli.erl')
-rw-r--r--lib/ssh/src/ssh_cli.erl15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/ssh/src/ssh_cli.erl b/lib/ssh/src/ssh_cli.erl
index 41febf9707..77453e8fd7 100644
--- a/lib/ssh/src/ssh_cli.erl
+++ b/lib/ssh/src/ssh_cli.erl
@@ -170,10 +170,19 @@ handle_msg({Group, get_unicode_state}, State) ->
{ok, State};
handle_msg({Group, tty_geometry}, #state{group = Group,
- pty = #ssh_pty{width=Width,
- height=Height}
+ pty = Pty
} = State) ->
- Group ! {self(),tty_geometry,{Width,Height}},
+ case Pty of
+ #ssh_pty{width=Width,height=Height} ->
+ Group ! {self(),tty_geometry,{Width,Height}};
+ _ ->
+ %% This is a dirty fix of the problem with the otp ssh:shell
+ %% client. That client will not allocate a tty, but someone
+ %% asks for the tty_geometry just before every erlang prompt.
+ %% If that question is not answered, there is a 2 sec timeout
+ %% Until the prompt is seen by the user at the client side ...
+ Group ! {self(),tty_geometry,{0,0}}
+ end,
{ok,State};
handle_msg({Group, Req}, #state{group = Group, buf = Buf, pty = Pty,