From b6db18bd12cc5654f206dd40e6bf16e80cedb7e6 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Mon, 8 May 2023 12:50:42 +0100 Subject: Move CheckPassword to helperfuncs. --- src/command_parse.cpp | 20 -------------------- src/helperfuncs.cpp | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/command_parse.cpp b/src/command_parse.cpp index a5edf9913..f62400dd5 100644 --- a/src/command_parse.cpp +++ b/src/command_parse.cpp @@ -26,26 +26,6 @@ #include "inspircd.h" -bool InspIRCd::CheckPassword(const std::string& password, const std::string& passwordhash, const std::string& value) -{ - ModResult res; - FIRST_MOD_RESULT(OnCheckPassword, res, (password, passwordhash, value)); - - if (res == MOD_RES_ALLOW) - return true; // Password explicitly valid. - - if (res == MOD_RES_DENY) - return false; // Password explicitly invalid. - - // The hash algorithm wasn't recognised by any modules. If its plain - // text then we can check it internally. - if (passwordhash.empty() || stdalgo::string::equalsci(passwordhash, "plaintext")) - return TimingSafeCompare(password, value); - - // The password was invalid. - return false; -} - bool CommandParser::LoopCall(User* user, Command* handler, const CommandBase::Params& parameters, unsigned int splithere, int extra, bool usemax) { if (splithere >= parameters.size()) diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp index ba61d1b0d..4de955464 100644 --- a/src/helperfuncs.cpp +++ b/src/helperfuncs.cpp @@ -37,6 +37,26 @@ #include "duration.h" #include "xline.h" +bool InspIRCd::CheckPassword(const std::string& password, const std::string& passwordhash, const std::string& value) +{ + ModResult res; + FIRST_MOD_RESULT(OnCheckPassword, res, (password, passwordhash, value)); + + if (res == MOD_RES_ALLOW) + return true; // Password explicitly valid. + + if (res == MOD_RES_DENY) + return false; // Password explicitly invalid. + + // The hash algorithm wasn't recognised by any modules. If its plain + // text then we can check it internally. + if (passwordhash.empty() || stdalgo::string::equalsci(passwordhash, "plaintext")) + return TimingSafeCompare(password, value); + + // The password was invalid. + return false; +} + bool InspIRCd::IsValidMask(const std::string& mask) { const char* dest = mask.c_str(); -- cgit v1.3.1-10-gc9f91