summaryrefslogtreecommitdiff
path: root/src/xmpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/xmpp')
-rw-r--r--src/xmpp/xmpp_component.cpp5
-rw-r--r--src/xmpp/xmpp_component.hpp9
2 files changed, 14 insertions, 0 deletions
diff --git a/src/xmpp/xmpp_component.cpp b/src/xmpp/xmpp_component.cpp
index 5400535..d083190 100644
--- a/src/xmpp/xmpp_component.cpp
+++ b/src/xmpp/xmpp_component.cpp
@@ -24,6 +24,8 @@
#define STREAMS_NS "urn:ietf:params:xml:ns:xmpp-streams"
XmppComponent::XmppComponent(const std::string& hostname, const std::string& secret):
+ ever_auth(false),
+ last_auth(false),
served_hostname(hostname),
secret(secret),
authenticated(false),
@@ -144,6 +146,7 @@ void XmppComponent::on_remote_stream_open(const XmlNode& node)
return ;
}
+ this->last_auth = false;
// Try to authenticate
char digest[HASH_LENGTH * 2 + 1];
sha1nfo sha1;
@@ -212,6 +215,8 @@ void XmppComponent::handle_handshake(const Stanza& stanza)
{
(void)stanza;
this->authenticated = true;
+ this->ever_auth = true;
+ this->last_auth = true;
log_info("Authenticated with the XMPP server");
}
diff --git a/src/xmpp/xmpp_component.hpp b/src/xmpp/xmpp_component.hpp
index 3e401e5..373104c 100644
--- a/src/xmpp/xmpp_component.hpp
+++ b/src/xmpp/xmpp_component.hpp
@@ -140,6 +140,15 @@ public:
void handle_iq(const Stanza& stanza);
void handle_error(const Stanza& stanza);
+ /**
+ * Whether or not we ever succeeded our authentication to the XMPP server
+ */
+ bool ever_auth;
+ /**
+ * Whether or not the last connection+auth attempt was successful
+ */
+ bool last_auth;
+
private:
/**
* Return the bridge associated with the given full JID. Create a new one