summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2017-04-24 19:00:35 -0400
committerAdam <Adam@anope.org>2017-04-24 19:00:35 -0400
commitaadf64d2c59325d96999cc29df1d12af2e889741 (patch)
tree4b030dc9dbdf285ece54b0cb2d14c3fe103ad6d6 /modules
parent645a9baabba32e50d25851ca1dbb125452c40b3a (diff)
parentbeac29b1d00235065090aa03b177e8671100bbc2 (diff)
Merge commit 'beac29b1d00235065090aa03b177e8671100bbc2'
Diffstat (limited to 'modules')
-rw-r--r--modules/sasl.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/modules/sasl.cpp b/modules/sasl.cpp
index a7e96bc9a..b79c0972d 100644
--- a/modules/sasl.cpp
+++ b/modules/sasl.cpp
@@ -118,7 +118,7 @@ class External : public Mechanism
}
NickServ::Account *nc = certs->FindAccountFromCert(mysess->cert);
- if (!nc || nc->HasFieldS("NS_SUSPENDED"))
+ if (!nc || nc->HasFieldS("NS_SUSPENDED") || nc->IsUnconfirmed())
{
Anope::Logger.Category("sasl").Bot("nickserv").Log(_("A user failed to identify using certificate {0} using SASL EXTERNAL"), mysess->cert);
GetService()->Fail(sess);
@@ -288,7 +288,7 @@ class SASLService : public SASL::Service, public Timer
void IdentifyRequestListener::OnSuccess(NickServ::IdentifyRequest *req)
{
NickServ::Nick *na = NickServ::FindNick(req->GetAccount());
- if (!na || na->GetAccount()->HasFieldS("NS_SUSPENDED"))
+ if (!na || na->GetAccount()->HasFieldS("NS_SUSPENDED") || na->GetAccount()->IsUnconfirmed())
return OnFail(req);
unsigned int maxlogins = Config->GetModule("nickserv/identify")->Get<unsigned int>("maxlogins");
@@ -319,6 +319,8 @@ void IdentifyRequestListener::OnFail(NickServ::IdentifyRequest *req)
accountstatus = "nonexistent ";
else if (na->GetAccount()->HasFieldS("NS_SUSPENDED"))
accountstatus = "suspended ";
+ else if (na->GetAccount()->IsUnconfirmed())
+ accountstatus = "unconfirmed ";
Anope::Logger.Category("sasl").Bot("NickServ").Log(_("A user failed to identify for {0}account {1} using SASL"),
accountstatus, req->GetAccount());