diff options
| author | 2021-03-02 05:39:12 +0000 | |
|---|---|---|
| committer | 2021-03-02 05:56:56 +0000 | |
| commit | 4e488cb54d72fb4a1caa580f6756a6f4687beaf6 (patch) | |
| tree | ae74c5dc12685a23ede19a299753aed30c336960 /src | |
| parent | Move aligned_storage to the utility directory and clean up. (diff) | |
Refactor classbase/CullResult into Cullable/Cullable::Result.
Diffstat (limited to 'src')
| -rw-r--r-- | src/base.cpp | 32 | ||||
| -rw-r--r-- | src/channels.cpp | 2 | ||||
| -rw-r--r-- | src/cull.cpp (renamed from src/cull_list.cpp) | 46 | ||||
| -rw-r--r-- | src/inspircd.cpp | 4 | ||||
| -rw-r--r-- | src/inspsocket.cpp | 4 | ||||
| -rw-r--r-- | src/mode.cpp | 4 | ||||
| -rw-r--r-- | src/modules.cpp | 4 | ||||
| -rw-r--r-- | src/modules/extra/m_pgsql.cpp | 8 | ||||
| -rw-r--r-- | src/modules/m_channames.cpp | 4 | ||||
| -rw-r--r-- | src/modules/m_filter.cpp | 6 | ||||
| -rw-r--r-- | src/modules/m_httpd.cpp | 6 | ||||
| -rw-r--r-- | src/modules/m_ident.cpp | 4 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/main.cpp | 6 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/main.h | 2 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/treeserver.cpp | 10 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/treeserver.h | 2 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/treesocket.h | 2 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/treesocket1.cpp | 4 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/utils.cpp | 6 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/utils.h | 5 | ||||
| -rw-r--r-- | src/threadsocket.cpp | 2 | ||||
| -rw-r--r-- | src/users.cpp | 14 |
22 files changed, 91 insertions, 86 deletions
diff --git a/src/base.cpp b/src/base.cpp index 5312e5789..063457b8b 100644 --- a/src/base.cpp +++ b/src/base.cpp @@ -26,34 +26,6 @@ #include "inspircd.h" #include "base.h" #include <time.h> -#ifdef INSPIRCD_ENABLE_RTTI -#include <typeinfo> -#endif - -classbase::classbase() -{ -#ifdef INSPIRCD_ENABLE_RTTI - if (ServerInstance) - ServerInstance->Logs.Log("CULLLIST", LOG_DEBUG, "classbase::+%s @%p", typeid(*this).name(), (void*)this); -#endif -} - -CullResult classbase::cull() -{ -#ifdef INSPIRCD_ENABLE_RTTI - if (ServerInstance) - ServerInstance->Logs.Log("CULLLIST", LOG_DEBUG, "classbase::-%s @%p", typeid(*this).name(), (void*)this); -#endif - return CullResult(); -} - -classbase::~classbase() -{ -#ifdef INSPIRCD_ENABLE_RTTI - if (ServerInstance) - ServerInstance->Logs.Log("CULLLIST", LOG_DEBUG, "classbase::~%s @%p", typeid(*this).name(), (void*)this); -#endif -} // This trick detects heap allocations of refcountbase objects static void* last_heap = NULL; @@ -189,11 +161,11 @@ Extensible::Extensible() { } -CullResult Extensible::cull() +Cullable::Result Extensible::Cull() { FreeAllExtItems(); culled = true; - return classbase::cull(); + return Cullable::Cull(); } void Extensible::FreeAllExtItems() diff --git a/src/channels.cpp b/src/channels.cpp index 4fe1d1e56..50efeda40 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -106,7 +106,7 @@ void Channel::CheckDestroy() void Channel::DelUser(const MemberMap::iterator& membiter) { Membership* memb = membiter->second; - memb->cull(); + memb->Cull(); memb->~Membership(); userlist.erase(membiter); diff --git a/src/cull_list.cpp b/src/cull.cpp index 0f9c24f15..ed4b06c09 100644 --- a/src/cull_list.cpp +++ b/src/cull.cpp @@ -26,9 +26,43 @@ #include "inspircd.h" #ifdef INSPIRCD_ENABLE_RTTI -#include <typeinfo> +# include <typeinfo> #endif +Cullable::Cullable() +{ +#ifdef INSPIRCD_ENABLE_RTTI + if (ServerInstance) + { + ServerInstance->Logs.Log("CULLLIST", LOG_DEBUG, "Cullable::+%s @%p", + typeid(*this).name(), (void*)this); + } +#endif +} + +Cullable::~Cullable() +{ +#ifdef INSPIRCD_ENABLE_RTTI + if (ServerInstance) + { + ServerInstance->Logs.Log("CULLLIST", LOG_DEBUG, "Cullable::~%s @%p", + typeid(*this).name(), (void*)this); + } +#endif +} + +Cullable::Result Cullable::Cull() +{ +#ifdef INSPIRCD_ENABLE_RTTI + if (ServerInstance) + { + ServerInstance->Logs.Log("CULLLIST", LOG_DEBUG, "Cullable::-%s @%p", + typeid(*this).name(), (void*)this); + } +#endif + return Result(); +} + void CullList::Apply() { std::vector<LocalUser *> working; @@ -44,12 +78,12 @@ void CullList::Apply() } working.clear(); } - std::set<classbase*> gone; - std::vector<classbase*> queue; + std::set<Cullable*> gone; + std::vector<Cullable*> queue; queue.reserve(list.size() + 32); for(unsigned int i=0; i < list.size(); i++) { - classbase* c = list[i]; + Cullable* c = list[i]; if (gone.insert(c).second) { #ifdef INSPIRCD_ENABLE_RTTI @@ -58,7 +92,7 @@ void CullList::Apply() #else ServerInstance->Logs.Log("CULLLIST", LOG_DEBUG, "Deleting @%p", (void*)c); #endif - c->cull(); + c->Cull(); queue.push_back(c); } else @@ -70,7 +104,7 @@ void CullList::Apply() list.clear(); for(unsigned int i=0; i < queue.size(); i++) { - classbase* c = queue[i]; + Cullable* c = queue[i]; delete c; } if (!list.empty()) diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 92d5ba7bf..a92e0bac0 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -405,7 +405,7 @@ void InspIRCd::Cleanup() // Close all listening sockets for (unsigned int i = 0; i < ports.size(); i++) { - ports[i]->cull(); + ports[i]->Cull(); delete ports[i]; } ports.clear(); @@ -427,7 +427,7 @@ void InspIRCd::Cleanup() if (FakeClient) { delete FakeClient->server; - FakeClient->cull(); + FakeClient->Cull(); } stdalgo::delete_zero(this->FakeClient); stdalgo::delete_zero(this->XLines); diff --git a/src/inspsocket.cpp b/src/inspsocket.cpp index 74c4d5283..e9f4b0131 100644 --- a/src/inspsocket.cpp +++ b/src/inspsocket.cpp @@ -132,10 +132,10 @@ void StreamSocket::Close(bool writeblock) Close(); } -CullResult StreamSocket::cull() +Cullable::Result StreamSocket::Cull() { Close(); - return EventHandler::cull(); + return EventHandler::Cull(); } int StreamSocket::HookChainRead(IOHook* hook, std::string& rq) diff --git a/src/mode.cpp b/src/mode.cpp index 59f8dd4e0..69a07c164 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -40,11 +40,11 @@ ModeHandler::ModeHandler(Module* Creator, const std::string& Name, char modelett { } -CullResult ModeHandler::cull() +Cullable::Result ModeHandler::Cull() { if (ServerInstance) ServerInstance->Modes.DelMode(this); - return classbase::cull(); + return Cullable::Cull(); } bool ModeHandler::NeedsParam(bool adding) const diff --git a/src/modules.cpp b/src/modules.cpp index 15d2f92d3..03b5e1a67 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -52,11 +52,11 @@ Module::Module(int mprops, const std::string& mdesc) } // These declarations define the behavours of the base class Module (which does nothing at all) -CullResult Module::cull() +Cullable::Result Module::Cull() { if (ModuleDLLManager) ServerInstance->GlobalCulls.AddItem(ModuleDLLManager); - return classbase::cull(); + return Cullable::Cull(); } std::string Module::GetPropertyString() const diff --git a/src/modules/extra/m_pgsql.cpp b/src/modules/extra/m_pgsql.cpp index d1d8d1403..f4c0fa8d6 100644 --- a/src/modules/extra/m_pgsql.cpp +++ b/src/modules/extra/m_pgsql.cpp @@ -200,11 +200,11 @@ class SQLConn : public SQL::Provider, public EventHandler DelayReconnect(); } - CullResult cull() override + Cullable::Result Cull() override { - this->SQL::Provider::cull(); + this->SQL::Provider::Cull(); ServerInstance->Modules.DelService(*this); - return this->EventHandler::cull(); + return this->EventHandler::Cull(); } ~SQLConn() @@ -579,7 +579,7 @@ class ModulePgSQL : public Module { for(ConnMap::iterator i = connections.begin(); i != connections.end(); i++) { - i->second->cull(); + i->second->Cull(); delete i->second; } connections.clear(); diff --git a/src/modules/m_channames.cpp b/src/modules/m_channames.cpp index 321d1407f..e853ba78b 100644 --- a/src/modules/m_channames.cpp +++ b/src/modules/m_channames.cpp @@ -144,11 +144,11 @@ class ModuleChannelNames : public Module } } - CullResult cull() override + Cullable::Result Cull() override { ServerInstance->IsChannel = rememberer; ValidateChans(); - return Module::cull(); + return Module::Cull(); } }; diff --git a/src/modules/m_filter.cpp b/src/modules/m_filter.cpp index 6fa1f30df..e437f26b8 100644 --- a/src/modules/m_filter.cpp +++ b/src/modules/m_filter.cpp @@ -210,7 +210,7 @@ class ModuleFilter ModuleFilter(); void init() override; - CullResult cull() override; + Cullable::Result Cull() override; ModResult OnUserPreMessage(User* user, const MessageTarget& target, MessageDetails& details) override; FilterResult* FilterMatch(User* user, const std::string &text, int flags); bool DeleteFilter(const std::string& freeform, std::string& reason); @@ -357,10 +357,10 @@ void ModuleFilter::init() ServerInstance->SNO.EnableSnomask('f', "FILTER"); } -CullResult ModuleFilter::cull() +Cullable::Result ModuleFilter::Cull() { FreeFilters(); - return Module::cull(); + return Module::Cull(); } void ModuleFilter::FreeFilters() diff --git a/src/modules/m_httpd.cpp b/src/modules/m_httpd.cpp index bb524a696..9a2006035 100644 --- a/src/modules/m_httpd.cpp +++ b/src/modules/m_httpd.cpp @@ -448,20 +448,20 @@ class ModuleHttpServer : public Module ++i; if (sock->GetModHook(mod)) { - sock->cull(); + sock->Cull(); delete sock; } } } - CullResult cull() override + Cullable::Result Cull() override { for (insp::intrusive_list<HttpServerSocket>::const_iterator i = sockets.begin(); i != sockets.end(); ++i) { HttpServerSocket* sock = *i; sock->Close(); } - return Module::cull(); + return Module::Cull(); } }; diff --git a/src/modules/m_ident.cpp b/src/modules/m_ident.cpp index 4275ac0ca..d50b19318 100644 --- a/src/modules/m_ident.cpp +++ b/src/modules/m_ident.cpp @@ -264,10 +264,10 @@ class IdentRequestSocket : public EventHandler done = true; } - CullResult cull() override + Cullable::Result Cull() override { Close(); - return EventHandler::cull(); + return EventHandler::Cull(); } }; diff --git a/src/modules/m_spanningtree/main.cpp b/src/modules/m_spanningtree/main.cpp index 2a3933a46..19109ea35 100644 --- a/src/modules/m_spanningtree/main.cpp +++ b/src/modules/m_spanningtree/main.cpp @@ -802,11 +802,11 @@ void ModuleSpanningTree::OnShutdown(const std::string& reason) children.front()->SQuit(reason, true); } -CullResult ModuleSpanningTree::cull() +Cullable::Result ModuleSpanningTree::Cull() { if (Utils) - Utils->cull(); - return this->Module::cull(); + Utils->Cull(); + return Module::Cull(); } ModuleSpanningTree::~ModuleSpanningTree() diff --git a/src/modules/m_spanningtree/main.h b/src/modules/m_spanningtree/main.h index 9a582bf49..85361e5a7 100644 --- a/src/modules/m_spanningtree/main.h +++ b/src/modules/m_spanningtree/main.h @@ -216,7 +216,7 @@ class ModuleSpanningTree ModResult OnAcceptConnection(int newsock, ListenSocket* from, irc::sockets::sockaddrs* client, irc::sockets::sockaddrs* server) override; void OnMode(User* source, User* u, Channel* c, const Modes::ChangeList& modes, ModeParser::ModeProcessFlag processflags) override; void OnShutdown(const std::string& reason) override; - CullResult cull() override; + Cullable::Result Cull() override; ~ModuleSpanningTree(); void Prioritize() override; }; diff --git a/src/modules/m_spanningtree/treeserver.cpp b/src/modules/m_spanningtree/treeserver.cpp index ca9773fde..1d64826e6 100644 --- a/src/modules/m_spanningtree/treeserver.cpp +++ b/src/modules/m_spanningtree/treeserver.cpp @@ -197,7 +197,7 @@ void TreeServer::SQuitChild(TreeServer* server, const std::string& reason, bool if (server->IsLocal()) server->GetSocket()->Close(); - // Add the server to the cull list, the servers behind it are handled by cull() and the destructor + // Add the server to the cull list, the servers behind it are handled by Cull() and the destructor ServerInstance->GlobalCulls.AddItem(server); } @@ -270,18 +270,18 @@ void TreeServer::AddHashEntry() Utils->sidlist[GetId()] = this; } -CullResult TreeServer::cull() +Cullable::Result TreeServer::Cull() { // Recursively cull all servers that are under us in the tree for (ChildServers::const_iterator i = Children.begin(); i != Children.end(); ++i) { TreeServer* server = *i; - server->cull(); + server->Cull(); } if (!IsRoot()) - ServerUser->cull(); - return classbase::cull(); + ServerUser->Cull(); + return Cullable::Cull(); } TreeServer::~TreeServer() diff --git a/src/modules/m_spanningtree/treeserver.h b/src/modules/m_spanningtree/treeserver.h index 7a14b2373..028bbf49d 100644 --- a/src/modules/m_spanningtree/treeserver.h +++ b/src/modules/m_spanningtree/treeserver.h @@ -230,7 +230,7 @@ class TreeServer : public Server */ void OnPong() { pingtimer.OnPong(); } - CullResult cull() override; + Cullable::Result Cull() override; /** Destructor, deletes ServerUser unless IsRoot() */ diff --git a/src/modules/m_spanningtree/treesocket.h b/src/modules/m_spanningtree/treesocket.h index 906602d39..f496eb069 100644 --- a/src/modules/m_spanningtree/treesocket.h +++ b/src/modules/m_spanningtree/treesocket.h @@ -220,7 +220,7 @@ class TreeSocket : public BufferedSocket */ void CleanNegotiationInfo(); - CullResult cull() override; + Cullable::Result Cull() override; /** Construct a password, optionally hashed with the other side's * challenge string diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp index 6448f7f8b..bb9ef96b8 100644 --- a/src/modules/m_spanningtree/treesocket1.cpp +++ b/src/modules/m_spanningtree/treesocket1.cpp @@ -110,12 +110,12 @@ void TreeSocket::CleanNegotiationInfo() capab.reset(); } -CullResult TreeSocket::cull() +Cullable::Result TreeSocket::Cull() { Utils->timeoutlist.erase(this); if (capab && capab->ac) Utils->Creator->ConnectServer(capab->ac, false); - return this->BufferedSocket::cull(); + return this->BufferedSocket::Cull(); } /** When an outbound connection finishes connecting, we receive diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp index 41451cc05..3f16bfebe 100644 --- a/src/modules/m_spanningtree/utils.cpp +++ b/src/modules/m_spanningtree/utils.cpp @@ -112,7 +112,7 @@ SpanningTreeUtilities::SpanningTreeUtilities(ModuleSpanningTree* C) ServerInstance->Timers.AddTimer(&RefreshTimer); } -CullResult SpanningTreeUtilities::cull() +Cullable::Result SpanningTreeUtilities::Cull() { const TreeServer::ChildServers& children = TreeRoot->GetChildren(); while (!children.empty()) @@ -126,9 +126,9 @@ CullResult SpanningTreeUtilities::cull() TreeSocket* s = i->first; s->Close(); } - TreeRoot->cull(); + TreeRoot->Cull(); - return classbase::cull(); + return Cullable::Cull(); } SpanningTreeUtilities::~SpanningTreeUtilities() diff --git a/src/modules/m_spanningtree/utils.h b/src/modules/m_spanningtree/utils.h index 7bf9c4be1..2782330d5 100644 --- a/src/modules/m_spanningtree/utils.h +++ b/src/modules/m_spanningtree/utils.h @@ -45,7 +45,7 @@ typedef std::unordered_map<std::string, TreeServer*, irc::insensitive, irc::StrH /** Contains helper functions and variables for this module, * and keeps them out of the global namespace */ -class SpanningTreeUtilities : public classbase +class SpanningTreeUtilities : public Cullable { CacheRefreshTimer RefreshTimer; @@ -112,7 +112,6 @@ class SpanningTreeUtilities : public classbase * valgrind warning in TimerManager on unload */ unsigned int PingFreq = 60; - /** Initialise utility class */ @@ -120,7 +119,7 @@ class SpanningTreeUtilities : public classbase /** Prepare for class destruction */ - CullResult cull() override; + Cullable::Result Cull() override; /** Destroy class and free listeners etc */ diff --git a/src/threadsocket.cpp b/src/threadsocket.cpp index f9291a2d4..a2d0aae82 100644 --- a/src/threadsocket.cpp +++ b/src/threadsocket.cpp @@ -135,7 +135,7 @@ SocketThread::~SocketThread() { if (socket) { - socket->cull(); + socket->Cull(); delete socket; } } diff --git a/src/users.cpp b/src/users.cpp index bd99c234d..3198ab0b0 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -348,7 +348,7 @@ void UserIOHandler::OnError(BufferedSocketError sockerr) ServerInstance->Users.QuitUser(user, GetError()); } -CullResult User::cull() +Cullable::Result User::Cull() { if (!quitting) ServerInstance->Users.QuitUser(this, "Culled without QuitUser"); @@ -359,21 +359,21 @@ CullResult User::cull() if (server->IsService()) stdalgo::erase(ServerInstance->Users.all_services, this); - return Extensible::cull(); + return Extensible::Cull(); } -CullResult LocalUser::cull() +Cullable::Result LocalUser::Cull() { - eh.cull(); - return User::cull(); + eh.Cull(); + return User::Cull(); } -CullResult FakeUser::cull() +Cullable::Result FakeUser::Cull() { // Fake users don't quit, they just get culled. quitting = true; // Fake users are not inserted into UserManager::clientlist or uuidlist, so we don't need to modify those here - return User::cull(); + return User::Cull(); } void User::Oper(std::shared_ptr<OperInfo> info) |
