From f43283920224b3d762ae371d7320024512a8afde Mon Sep 17 00:00:00 2001 From: w00t Date: Sat, 18 Oct 2008 16:52:46 +0000 Subject: Migrate oper commands to an std::set, add a set for privs also. Change the API a bit. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10661 e03df62e-2008-0410-955e-edbf42e46eb7 --- include/inspircd.h | 2 +- include/users.h | 3 ++- src/inspircd.cpp | 2 +- src/users.cpp | 4 ++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/inspircd.h b/include/inspircd.h index 4e37fae8d..3993142c7 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -45,7 +45,7 @@ #include #include #include - +#include /** A list of failed port bindings, used for informational purposes on startup */ typedef std::vector > FailedPortList; diff --git a/include/users.h b/include/users.h index 7492d31e0..2f8730088 100644 --- a/include/users.h +++ b/include/users.h @@ -439,7 +439,8 @@ class CoreExport User : public EventHandler */ void DecrementModes(); - std::map* AllowedOperCommands; + std::set *AllowedOperCommands; + std::set *AllowedPrivs; /** Allowed user modes from oper classes. */ std::bitset<64> AllowedUserModes; diff --git a/src/inspircd.cpp b/src/inspircd.cpp index c1be9812b..3a2392ee6 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -656,7 +656,7 @@ InspIRCd::InspIRCd(int argc, char** argv) /* set up fake client again this time with the correct uid */ this->FakeClient = new User(this, "#INVALID"); this->FakeClient->SetFd(FD_MAGIC_NUMBER); - this->FakeClient->HasPrivPermission("users", "override/topic"); + this->FakeClient->HasPrivPermission("users/override/topic"); exit(0); // Get XLine to do it's thing. diff --git a/src/users.cpp b/src/users.cpp index f5af3a803..3b69c1a25 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -721,7 +721,7 @@ void User::Oper(const std::string &opertype, const std::string &opername) if (AllowedOperCommands) AllowedOperCommands->clear(); else - AllowedOperCommands = new std::map; + AllowedOperCommands = new std::set; AllowedUserModes.reset(); AllowedChanModes.reset(); @@ -737,7 +737,7 @@ void User::Oper(const std::string &opertype, const std::string &opername) irc::spacesepstream CommandList(iter_operclass->second.commandlist); while (CommandList.GetToken(mycmd)) { - this->AllowedOperCommands->insert(std::make_pair(mycmd, true)); + this->AllowedOperCommands->insert(mycmd); } for (unsigned char* c = (unsigned char*)iter_operclass->second.umodelist; *c; ++c) { -- cgit v1.2.3