1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-12-02 01:17:52 +03:00

channels: Handle SSH_AGAIN in channel_open().

This commit is contained in:
Andreas Schneider
2011-08-09 22:59:17 +02:00
parent 6c45d6dc01
commit 2f87873642
2 changed files with 9 additions and 12 deletions

View File

@@ -296,7 +296,10 @@ 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);
err = ssh_handle_packets(session, -2);
if (err != SSH_OK) {
break;
}
if (session->session_state == SSH_SESSION_STATE_ERROR) {
err = SSH_ERROR;
break;

View File

@@ -464,18 +464,12 @@ int ssh_handle_packets(ssh_session session, int timeout) {
tm = ssh_make_milliseconds(session->timeout, session->timeout_usec);
}
rc = ssh_poll_ctx_dopoll(ctx, tm);
if (rc == SSH_ERROR) {
session->session_state = SSH_SESSION_STATE_ERROR;
}
leave_function();
if (session->session_state == SSH_SESSION_STATE_ERROR) {
return SSH_ERROR;
}
return SSH_OK;
return rc;
}
/**