diff options
author | Matteo Bigoi <bigo@crisidev.org> | 2020-11-22 17:16:40 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-22 17:16:40 +0000 |
commit | c197df7df4045abdc2d4e8077781249dd83dbdd1 (patch) | |
tree | acac6348029eef9c6fc67adf45cd87755117679a /src/agent.rs | |
parent | 1c5bc43ace2c32f37dfc6a308d8b6d687c2dc860 (diff) | |
download | ssh2-rs-c197df7df4045abdc2d4e8077781249dd83dbdd1.zip |
Handle more precise SFTP error codes (#203)
* Handle more precise SFTP error codes
* Allow set-env in macos github action
* Bump to 0.9 since the Error interface has changed, hence this is a breaking change
Diffstat (limited to 'src/agent.rs')
-rw-r--r-- | src/agent.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/agent.rs b/src/agent.rs index 85ba4e6..0434002 100644 --- a/src/agent.rs +++ b/src/agent.rs @@ -4,7 +4,7 @@ use std::slice; use std::str; use std::sync::Arc; -use {raw, Error, SessionInner}; +use {raw, Error, ErrorCode, SessionInner}; /// A structure representing a connection to an SSH agent. /// @@ -110,9 +110,12 @@ impl Agent { pub fn userauth(&self, username: &str, identity: &PublicKey) -> Result<(), Error> { let username = CString::new(username)?; let sess = self.sess.lock(); - let raw_ident = self - .resolve_raw_identity(&sess, identity)? - .ok_or_else(|| Error::new(raw::LIBSSH2_ERROR_BAD_USE, "Identity not found in agent"))?; + let raw_ident = self.resolve_raw_identity(&sess, identity)?.ok_or_else(|| { + Error::new( + ErrorCode::Session(raw::LIBSSH2_ERROR_BAD_USE), + "Identity not found in agent", + ) + })?; unsafe { sess.rc(raw::libssh2_agent_userauth( self.raw, |