From 918d482590808b1bc0c7e95ede7a96f84cab5c23 Mon Sep 17 00:00:00 2001
From: Matt Johnston <matt@ucc.asn.au>
Date: Fri, 7 Apr 2023 17:50:43 +0800
Subject: [PATCH] Make client exit if no auth methods are left

---
 src/cliauth.rs | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/cliauth.rs b/src/cliauth.rs
index aa318c3..9d453a4 100644
--- a/src/cliauth.rs
+++ b/src/cliauth.rs
@@ -285,18 +285,18 @@ impl CliAuth {
             let req = self.make_password_req(b).await?;
             if let Some(req) = req {
                 self.state = AuthState::Request { last_req: req, sig: None };
+            } else {
+                self.try_password = false;
             }
         }
 
-        if !(self.try_pubkey || self.try_password) {
-            return Err(Error::BehaviourError {
-                msg: "No authentication methods left",
-            });
-        }
-
         if let AuthState::Request { last_req, .. } = &self.state {
             let p = last_req.req_packet(&self.username, parse_ctx)?;
             s.send(p)?;
+        } else {
+            return Err(Error::BehaviourError {
+                msg: "No authentication methods left",
+            });
         }
         Ok(())
     }
-- 
GitLab