aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Sadie Powell2021-03-02 05:39:12 +0000
committerGravatar Sadie Powell2021-03-02 05:56:56 +0000
commit4e488cb54d72fb4a1caa580f6756a6f4687beaf6 (patch)
treeae74c5dc12685a23ede19a299753aed30c336960 /src
parentMove 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.cpp32
-rw-r--r--src/channels.cpp2
-rw-r--r--src/cull.cpp (renamed from src/cull_list.cpp)46
-rw-r--r--src/inspircd.cpp4
-rw-r--r--src/inspsocket.cpp4
-rw-r--r--src/mode.cpp4
-rw-r--r--src/modules.cpp4
-rw-r--r--src/modules/extra/m_pgsql.cpp8
-rw-r--r--src/modules/m_channames.cpp4
-rw-r--r--src/modules/m_filter.cpp6
-rw-r--r--src/modules/m_httpd.cpp6
-rw-r--r--src/modules/m_ident.cpp4
-rw-r--r--src/modules/m_spanningtree/main.cpp6
-rw-r--r--src/modules/m_spanningtree/main.h2
-rw-r--r--src/modules/m_spanningtree/treeserver.cpp10
-rw-r--r--src/modules/m_spanningtree/treeserver.h2
-rw-r--r--src/modules/m_spanningtree/treesocket.h2
-rw-r--r--src/modules/m_spanningtree/treesocket1.cpp4
-rw-r--r--src/modules/m_spanningtree/utils.cpp6
-rw-r--r--src/modules/m_spanningtree/utils.h5
-rw-r--r--src/threadsocket.cpp2
-rw-r--r--src/users.cpp14
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)