aboutsummaryrefslogtreecommitdiff
path: root/src/channels1.c
diff options
context:
space:
mode:
authorDmitriy Kuznetsov <dk@yandex.ru>2012-09-07 12:23:55 +0200
committerAndreas Schneider <asn@cryptomilk.org>2012-09-07 12:23:55 +0200
commita18106d3afc92f0ec3d71218fc907d921100ac3b (patch)
tree673cd4a78fe4516455bef65089ad571ed865b361 /src/channels1.c
parent3739bd99c556f6fc7fba4a2917566c350ac61605 (diff)
downloadlibssh-a18106d3afc92f0ec3d71218fc907d921100ac3b.tar.gz
libssh-a18106d3afc92f0ec3d71218fc907d921100ac3b.tar.xz
libssh-a18106d3afc92f0ec3d71218fc907d921100ac3b.zip
channels: Fix channel_request_pty_size1 always returning an error.
Fixes bug #88.
Diffstat (limited to 'src/channels1.c')
-rw-r--r--src/channels1.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/channels1.c b/src/channels1.c
index 24546a43..9ba5866e 100644
--- a/src/channels1.c
+++ b/src/channels1.c
@@ -112,10 +112,15 @@ int channel_request_pty_size1(ssh_channel channel, const char *terminal, int col
}
ssh_log(session, SSH_LOG_FUNCTIONS, "Opening a ssh1 pty");
-
+ channel->request_state = SSH_CHANNEL_REQ_STATE_PENDING;
if (packet_send(session) == SSH_ERROR) {
return -1;
}
+
+ while (channel->request_state == SSH_CHANNEL_REQ_STATE_PENDING) {
+ ssh_handle_packets(session, SSH_TIMEOUT_INFINITE);
+ }
+
switch(channel->request_state){
case SSH_CHANNEL_REQ_STATE_ERROR:
case SSH_CHANNEL_REQ_STATE_PENDING: