diff --git a/tokio-xmpp/Cargo.toml b/tokio-xmpp/Cargo.toml index 6ab11d8d..021070b1 100644 --- a/tokio-xmpp/Cargo.toml +++ b/tokio-xmpp/Cargo.toml @@ -17,7 +17,7 @@ futures = "0.3" idna = "0.2" log = "0.4" native-tls = "0.2" -sasl = "0.4" +sasl = "0.5" tokio = { version = "1", features = ["net", "rt", "rt-multi-thread", "macros"] } tokio-util = { version = "0.6", features = ["codec"] } tokio-stream = { version = "0.1", features = [] } diff --git a/tokio-xmpp/src/client/auth.rs b/tokio-xmpp/src/client/auth.rs index 165f0559..a5560a9c 100644 --- a/tokio-xmpp/src/client/auth.rs +++ b/tokio-xmpp/src/client/auth.rs @@ -29,7 +29,7 @@ pub async fn auth( for local_mech in local_mechs { let mut mechanism = local_mech(); if remote_mechs.contains(mechanism.name()) { - let initial = mechanism.initial().map_err(AuthError::Sasl)?; + let initial = mechanism.initial(); let mechanism_name = XMPPMechanism::from_str(mechanism.name()).map_err(ProtocolError::Parsers)?; diff --git a/tokio-xmpp/src/error.rs b/tokio-xmpp/src/error.rs index efde29ec..7a03037e 100644 --- a/tokio-xmpp/src/error.rs +++ b/tokio-xmpp/src/error.rs @@ -1,4 +1,5 @@ use native_tls::Error as TlsError; +use sasl::client::MechanismError as SaslMechanismError; use std::borrow::Cow; use std::error::Error as StdError; use std::fmt; @@ -199,7 +200,7 @@ pub enum AuthError { /// No matching SASL mechanism available NoMechanism, /// Local SASL implementation error - Sasl(String), + Sasl(SaslMechanismError), /// Failure from server Fail(SaslDefinedCondition), /// Component authentication failure