summaryrefslogtreecommitdiff
path: root/src/agent.rs
diff options
context:
space:
mode:
authorMatteo Bigoi <bigo@crisidev.org>2020-11-22 17:16:40 +0000
committerGitHub <noreply@github.com>2020-11-22 17:16:40 +0000
commitc197df7df4045abdc2d4e8077781249dd83dbdd1 (patch)
treeacac6348029eef9c6fc67adf45cd87755117679a /src/agent.rs
parent1c5bc43ace2c32f37dfc6a308d8b6d687c2dc860 (diff)
downloadssh2-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.rs11
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,