]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/coremods/core_oper/cmd_oper.cpp
Clean up the logic for parsing oper mode privileges.
[user/henk/code/inspircd.git] / src / coremods / core_oper / cmd_oper.cpp
index e65ed9752429536c26ef51f02b00823aa2d7c35a..391c7f41f24d21fb4e70937f0e793a12245c1465 100644 (file)
@@ -1,9 +1,14 @@
 /*
  * InspIRCd -- Internet Relay Chat Daemon
  *
+ *   Copyright (C) 2013-2014, 2017-2018 Sadie Powell <sadie@witchery.services>
+ *   Copyright (C) 2012, 2014, 2016 Attila Molnar <attilamolnar@hush.com>
+ *   Copyright (C) 2012 Robby <robby@chatbelgie.be>
+ *   Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org>
  *   Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org>
- *   Copyright (C) 2008 Thomas Stagner <aquanight@inspircd.org>
  *   Copyright (C) 2007 Robin Burchell <robin+git@viroteck.net>
+ *   Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
+ *   Copyright (C) 2006, 2008, 2010 Craig Edwards <brain@inspircd.org>
  *
  * This file is part of InspIRCd.  InspIRCd is free software: you can
  * redistribute it and/or modify it under the terms of the GNU General Public
@@ -28,7 +33,7 @@ CommandOper::CommandOper(Module* parent)
        syntax = "<username> <password>";
 }
 
-CmdResult CommandOper::HandleLocal(const std::vector<std::string>& parameters, LocalUser *user)
+CmdResult CommandOper::HandleLocal(LocalUser* user, const Params& parameters)
 {
        bool match_login = false;
        bool match_pass = false;
@@ -60,7 +65,8 @@ CmdResult CommandOper::HandleLocal(const std::vector<std::string>& parameters, L
        if (!match_pass)
                fields.append("password ");
        if (!match_hosts)
-               fields.append("hosts");
+               fields.append("hosts ");
+       fields.erase(fields.length() - 1, 1);
 
        // tell them they suck, and lag them up to help prevent brute-force attacks
        user->WriteNumeric(ERR_NOOPERHOST, "Invalid oper credentials");