diff options
-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; |