diff --git a/include/users.h b/include/users.h index 7fd096c8c..2a5823cc5 100644 --- a/include/users.h +++ b/include/users.h @@ -50,7 +50,7 @@ protected: Serialize::Reference nc; /* # of invalid password attempts */ - unsigned short invalid_pw_count; + unsigned invalid_pw_count; /* Time of last invalid password */ time_t invalid_pw_time; diff --git a/src/users.cpp b/src/users.cpp index 0abe0b66e..3d6034691 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -833,14 +833,17 @@ Anope::string User::Mask() const bool User::BadPassword() { - if (!Config->GetBlock("options").Get("badpasslimit")) + const auto badpasslimit = Config->GetBlock("options").Get("badpasslimit"); + if (!badpasslimit) return false; - if (Config->GetBlock("options").Get("badpasstimeout") > 0 && this->invalid_pw_time > 0 && this->invalid_pw_time < Anope::CurTime - Config->GetBlock("options").Get("badpasstimeout")) + const auto badpasstimeout = Config->GetBlock("options").Get("badpasstimeout"); + if (badpasstimeout > 0 && this->invalid_pw_time > 0 && this->invalid_pw_time < Anope::CurTime - badpasstimeout) this->invalid_pw_count = 0; + ++this->invalid_pw_count; this->invalid_pw_time = Anope::CurTime; - if (this->invalid_pw_count >= Config->GetBlock("options").Get("badpasslimit")) + if (this->invalid_pw_count >= badpasslimit) { this->Kill(Me, "Too many invalid passwords"); return true;