aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2011-08-26 23:56:49 +0200
committerAndreas Schneider <asn@cryptomilk.org>2011-08-27 00:00:28 +0200
commitac445a1e189f2bb5730dec6f6b7205a53defd224 (patch)
treeb83e2e658950009ed65a73c44e13e4a1b777aef6
parentb7a3d41baf2b3b7c8340966724f194fa8d0f6222 (diff)
downloadlibssh-ac445a1e189f2bb5730dec6f6b7205a53defd224.tar.gz
libssh-ac445a1e189f2bb5730dec6f6b7205a53defd224.tar.xz
libssh-ac445a1e189f2bb5730dec6f6b7205a53defd224.zip
auth: Handle request service timeout in blocking mode.
(cherry picked from commit e5e673bafe18032df3b6b7634410a6795e809f2a)
-rw-r--r--src/auth.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/auth.c b/src/auth.c
index cf6c13cb..009340f9 100644
--- a/src/auth.c
+++ b/src/auth.c
@@ -68,8 +68,13 @@ static int ask_userauth(ssh_session session) {
do {
rc = ssh_service_request(session,"ssh-userauth");
if (ssh_is_blocking(session)) {
- if(rc == SSH_AGAIN)
- ssh_handle_packets(session, -2);
+ if (rc == SSH_AGAIN) {
+ int err = ssh_handle_packets(session, -2);
+ if (err != SSH_OK) {
+ /* error or timeout */
+ return SSH_ERROR;
+ }
+ }
} else {
/* nonblocking */
ssh_handle_packets(session, 0);