summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/modules/sasl.h9
-rw-r--r--modules/m_sasl.cpp2
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;