diff options
author | Robby- <robby@chat.be> | 2014-03-22 21:14:02 +0100 |
---|---|---|
committer | Robby- <robby@chat.be> | 2014-03-22 21:14:02 +0100 |
commit | 45878bf182f814af07f75f36cf083848e12196e6 (patch) | |
tree | 4cfcd8cf3cb0209a4e1e21ce27b909ca2c9716d0 | |
parent | f1bec3999d34bcac01bbc4a6920882b0b8345dc0 (diff) |
SASL: Also disallow suspended nicks to login using EXTERNAL mechanism. Improve the log message for failed logins.
-rw-r--r-- | include/modules/sasl.h | 9 | ||||
-rw-r--r-- | modules/m_sasl.cpp | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/include/modules/sasl.h b/include/modules/sasl.h index 23337ebe8..ec6d741ca 100644 --- a/include/modules/sasl.h +++ b/include/modules/sasl.h @@ -110,7 +110,14 @@ namespace SASL delete s; } - Log(Config->GetClient("NickServ")) << "A user failed to identify for account " << this->GetAccount() << " using SASL"; + Anope::string accountstatus; + NickAlias *na = NickAlias::Find(GetAccount()); + if (!na) + accountstatus = "nonexistent "; + else if (na->nc->HasExt("NS_SUSPENDED")) + accountstatus = "suspended "; + + Log(Config->GetClient("NickServ")) << "A user failed to identify for " << accountstatus << "account " << this->GetAccount() << " using SASL"; } }; } diff --git a/modules/m_sasl.cpp b/modules/m_sasl.cpp index c976ef2f8..969e5b985 100644 --- a/modules/m_sasl.cpp +++ b/modules/m_sasl.cpp @@ -93,7 +93,7 @@ class External : public Mechanism } NickCore *nc = certs->FindAccountFromCert(mysess->cert); - if (!nc) + if (!nc || nc->HasExt("NS_SUSPENDED")) { sasl->Fail(sess); delete sess; |