diff --git a/src/client.rs b/src/client.rs index b5f8f4e240b969239601d7bb72995fc51c70c8cc..70bf1767adb424706715b36b93a722368bbe024f 100644 --- a/src/client.rs +++ b/src/client.rs @@ -191,6 +191,11 @@ impl Client { } } } + else if n.is("failure", ns::SASL) { + let msg = n.text(); + let inner = if msg == "" { None } else { Some(msg) }; + return Err(Error::SaslError(inner)); + } else if n.is("iq", ns::CLIENT) && n.has_child("bind", ns::BIND) { return Ok(()); } diff --git a/src/error.rs b/src/error.rs index 1d8e373f901ac2fb6ca7a7eb658ef1b4fd3a20d6..81f41fefec6ee58b34751938b7816cadef587a79 100644 --- a/src/error.rs +++ b/src/error.rs @@ -24,6 +24,7 @@ pub enum Error { OpenSslErrorStack(ErrorStack), MinidomError(MinidomError), Base64Error(Base64Error), + SaslError(Option), StreamError, EndOfDocument, }