summaryrefslogtreecommitdiffstats
path: root/src/channels.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/channels.c')
-rw-r--r--src/channels.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/channels.c b/src/channels.c
index fb57be0..6a616ad 100644
--- a/src/channels.c
+++ b/src/channels.c
@@ -296,11 +296,14 @@ static int channel_open(ssh_channel channel, const char *type_c, int window,
/* Todo: fix this into a correct loop */
/* wait until channel is opened by server */
while(channel->state == SSH_CHANNEL_STATE_NOT_OPEN){
- ssh_handle_packets(session, -2);
- if (session->session_state == SSH_SESSION_STATE_ERROR) {
- err = SSH_ERROR;
- break;
- }
+ err = ssh_handle_packets(session, -2);
+ if (err != SSH_OK) {
+ break;
+ }
+ if (session->session_state == SSH_SESSION_STATE_ERROR) {
+ err = SSH_ERROR;
+ break;
+ }
}
if(channel->state == SSH_CHANNEL_STATE_OPEN)
err=SSH_OK;