diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/command_parse.cpp | 4 | ||||
-rw-r--r-- | src/commands/cmd_oper.cpp | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/command_parse.cpp b/src/command_parse.cpp index e98261e58..14828cec7 100644 --- a/src/command_parse.cpp +++ b/src/command_parse.cpp @@ -27,7 +27,7 @@ #include <dlfcn.h> #endif -int InspIRCd::PassCompare(Extensible* ex, const char* data,const char* input, const char* hashtype) +int InspIRCd::PassCompare(Extensible* ex, const std::string &data, const std::string &input, const std::string &hashtype) { int MOD_RESULT = 0; FOREACH_RESULT_I(this,I_OnPassCompare,OnPassCompare(ex, data, input, hashtype)) @@ -35,7 +35,7 @@ int InspIRCd::PassCompare(Extensible* ex, const char* data,const char* input, co return 0; if (MOD_RESULT == -1) return 1; - return strcmp(data,input); + return data != input; // this seems back to front, but returns 0 if they *match*, 1 else } /* LoopCall is used to call a command classes handler repeatedly based on the contents of a comma seperated list. diff --git a/src/commands/cmd_oper.cpp b/src/commands/cmd_oper.cpp index dc06d87ce..1ce7dc49d 100644 --- a/src/commands/cmd_oper.cpp +++ b/src/commands/cmd_oper.cpp @@ -66,7 +66,7 @@ CmdResult CommandOper::Handle (const std::vector<std::string>& parameters, User ServerInstance->Config->ConfValue(ServerInstance->Config->config_data, "oper", "hash", i, HashType, MAXBUF); match_login = (LoginName == parameters[0]); - match_pass = !ServerInstance->PassCompare(user, Password,parameters[1].c_str(), HashType); + match_pass = !ServerInstance->PassCompare(user, Password, parameters[1], HashType); match_hosts = OneOfMatches(TheHost,TheIP,HostName); if (match_login && match_pass && match_hosts) |