summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/account.h7
-rw-r--r--src/modules/m_antibear.cpp2
-rw-r--r--src/modules/m_banredirect.cpp2
-rw-r--r--src/modules/m_blockamsg.cpp2
-rw-r--r--src/modules/m_callerid.cpp4
-rw-r--r--src/modules/m_cap.cpp2
-rw-r--r--src/modules/m_cap.h2
-rw-r--r--src/modules/m_cgiirc.cpp8
-rw-r--r--src/modules/m_check.cpp8
-rw-r--r--src/modules/m_cloaking.cpp2
-rw-r--r--src/modules/m_customtitle.cpp2
-rw-r--r--src/modules/m_dccallow.cpp2
-rw-r--r--src/modules/m_delaymsg.cpp2
-rw-r--r--src/modules/m_joinflood.cpp2
-rw-r--r--src/modules/m_kicknorejoin.cpp2
-rw-r--r--src/modules/m_messageflood.cpp2
-rw-r--r--src/modules/m_nickflood.cpp2
-rw-r--r--src/modules/m_nicklock.cpp2
-rw-r--r--src/modules/m_regonlycreate.cpp30
-rw-r--r--src/modules/m_sasl.cpp2
-rw-r--r--src/modules/m_services_account.cpp4
-rw-r--r--src/modules/m_spanningtree/metadata.cpp5
-rw-r--r--src/modules/m_spanningtree/netburst.cpp16
-rw-r--r--src/modules/m_sslinfo.cpp6
-rw-r--r--src/modules/m_swhois.cpp2
-rw-r--r--src/modules/m_watch.cpp2
-rw-r--r--src/modules/u_listmode.h2
27 files changed, 62 insertions, 62 deletions
diff --git a/src/modules/account.h b/src/modules/account.h
index 9182d7ca6..a5cc49591 100644
--- a/src/modules/account.h
+++ b/src/modules/account.h
@@ -28,4 +28,11 @@ class AccountEvent : public Event
}
};
+typedef StringExtItem AccountExtItem;
+
+inline const AccountExtItem* GetAccountExtItem()
+{
+ return static_cast<AccountExtItem*>(ServerInstance->Extensions.GetItem("accountname"));
+}
+
#endif
diff --git a/src/modules/m_antibear.cpp b/src/modules/m_antibear.cpp
index 5f53b5fbb..b7a6f0663 100644
--- a/src/modules/m_antibear.cpp
+++ b/src/modules/m_antibear.cpp
@@ -22,7 +22,7 @@ class ModuleAntiBear : public Module
public:
ModuleAntiBear() : bearExt("antibear_timewait", this)
{
- Extensible::Register(&bearExt);
+ ServerInstance->Extensions.Register(&bearExt);
Implementation eventlist[] = { I_OnUserRegister, I_OnPreCommand };
ServerInstance->Modules->Attach(eventlist, this, 2);
}
diff --git a/src/modules/m_banredirect.cpp b/src/modules/m_banredirect.cpp
index 540155b81..a7b94b23e 100644
--- a/src/modules/m_banredirect.cpp
+++ b/src/modules/m_banredirect.cpp
@@ -212,7 +212,7 @@ class ModuleBanRedirect : public Module
OnRehash(NULL);
- Extensible::Register(&re.extItem);
+ ServerInstance->Extensions.Register(&re.extItem);
Implementation list[] = { I_OnRehash, I_OnUserPreJoin, I_OnChannelDelete };
ServerInstance->Modules->Attach(list, this, 3);
}
diff --git a/src/modules/m_blockamsg.cpp b/src/modules/m_blockamsg.cpp
index 7c4d63419..ffdbb65c0 100644
--- a/src/modules/m_blockamsg.cpp
+++ b/src/modules/m_blockamsg.cpp
@@ -48,7 +48,7 @@ class ModuleBlockAmsg : public Module
ModuleBlockAmsg() : blockamsg("blockamsg", this)
{
this->OnRehash(NULL);
- Extensible::Register(&blockamsg);
+ ServerInstance->Extensions.Register(&blockamsg);
Implementation eventlist[] = { I_OnRehash, I_OnPreCommand };
ServerInstance->Modules->Attach(eventlist, this, 2);
}
diff --git a/src/modules/m_callerid.cpp b/src/modules/m_callerid.cpp
index ae3ec1450..94dd009c3 100644
--- a/src/modules/m_callerid.cpp
+++ b/src/modules/m_callerid.cpp
@@ -78,7 +78,7 @@ struct CallerIDExtInfo : public ExtensionItem
{
}
- std::string serialize(SerializeFormat format, const Extensible* container, void* item)
+ std::string serialize(SerializeFormat format, const Extensible* container, void* item) const
{
callerid_data* dat = static_cast<callerid_data*>(item);
return dat->ToString(format);
@@ -350,7 +350,7 @@ public:
throw ModuleException("Could not add usermode +g");
ServerInstance->AddCommand(&cmd);
- Extensible::Register(&cmd.extInfo);
+ ServerInstance->Extensions.Register(&cmd.extInfo);
Implementation eventlist[] = { I_OnRehash, I_OnUserPreNick, I_OnUserQuit, I_On005Numeric, I_OnUserPreNotice, I_OnUserPreMessage };
ServerInstance->Modules->Attach(eventlist, this, 6);
diff --git a/src/modules/m_cap.cpp b/src/modules/m_cap.cpp
index 3373f7c3f..2c7e58e6a 100644
--- a/src/modules/m_cap.cpp
+++ b/src/modules/m_cap.cpp
@@ -136,7 +136,7 @@ class ModuleCAP : public Module
: cmd(this)
{
ServerInstance->AddCommand(&cmd);
- Extensible::Register(&cmd.reghold);
+ ServerInstance->Extensions.Register(&cmd.reghold);
Implementation eventlist[] = { I_OnCheckReady };
ServerInstance->Modules->Attach(eventlist, this, 1);
diff --git a/src/modules/m_cap.h b/src/modules/m_cap.h
index 809b0f4cf..f880ab924 100644
--- a/src/modules/m_cap.h
+++ b/src/modules/m_cap.h
@@ -35,7 +35,7 @@ class GenericCap
const std::string cap;
GenericCap(Module* parent, const std::string &Cap) : ext("cap_" + Cap, parent), cap(Cap)
{
- Extensible::Register(&ext);
+ ServerInstance->Extensions.Register(&ext);
}
void HandleEvent(Event& ev)
diff --git a/src/modules/m_cgiirc.cpp b/src/modules/m_cgiirc.cpp
index d36a1d92a..a2c8e1c0e 100644
--- a/src/modules/m_cgiirc.cpp
+++ b/src/modules/m_cgiirc.cpp
@@ -150,10 +150,10 @@ public:
{
OnRehash(NULL);
ServerInstance->AddCommand(&cmd);
- Extensible::Register(&cmd.realhost);
- Extensible::Register(&cmd.realip);
- Extensible::Register(&cmd.webirc_hostname);
- Extensible::Register(&cmd.webirc_ip);
+ ServerInstance->Extensions.Register(&cmd.realhost);
+ ServerInstance->Extensions.Register(&cmd.realip);
+ ServerInstance->Extensions.Register(&cmd.webirc_hostname);
+ ServerInstance->Extensions.Register(&cmd.webirc_ip);
Implementation eventlist[] = { I_OnRehash, I_OnUserRegister, I_OnSyncUser, I_OnDecodeMetaData, I_OnUserDisconnect, I_OnUserConnect };
ServerInstance->Modules->Attach(eventlist, this, 6);
diff --git a/src/modules/m_check.cpp b/src/modules/m_check.cpp
index 309499ff5..729667fa8 100644
--- a/src/modules/m_check.cpp
+++ b/src/modules/m_check.cpp
@@ -38,14 +38,12 @@ class CommandCheck : public Command
std::stringstream dumpkeys;
for(ExtensibleStore::const_iterator i = ext->GetExtList().begin(); i != ext->GetExtList().end(); i++)
{
- ExtensionItem* item = Extensible::GetItem(i->first);
- std::string value;
- if (item)
- value = item->serialize(FORMAT_USER, ext, i->second);
+ ExtensionItem* item = i->first;
+ std::string value = item->serialize(FORMAT_USER, ext, i->second);
if (value.empty())
dumpkeys << " " << i->first;
else
- ServerInstance->DumpText(user, checkstr + " meta:" + i->first + " " + value);
+ ServerInstance->DumpText(user, checkstr + " meta:" + item->key + " " + value);
}
if (!dumpkeys.str().empty())
ServerInstance->DumpText(user,checkstr + " metadata", dumpkeys);
diff --git a/src/modules/m_cloaking.cpp b/src/modules/m_cloaking.cpp
index 2dfc449ae..0aee306a3 100644
--- a/src/modules/m_cloaking.cpp
+++ b/src/modules/m_cloaking.cpp
@@ -133,7 +133,7 @@ class ModuleCloaking : public Module
throw ModuleException("Could not add new modes!");
ServerInstance->Modules->UseInterface("HashRequest");
- Extensible::Register(&cu.ext);
+ ServerInstance->Extensions.Register(&cu.ext);
Implementation eventlist[] = { I_OnRehash, I_OnCheckBan, I_OnUserConnect };
ServerInstance->Modules->Attach(eventlist, this, 3);
diff --git a/src/modules/m_customtitle.cpp b/src/modules/m_customtitle.cpp
index 9ff250cd6..c89535a3c 100644
--- a/src/modules/m_customtitle.cpp
+++ b/src/modules/m_customtitle.cpp
@@ -89,7 +89,7 @@ class ModuleCustomTitle : public Module
ModuleCustomTitle() : cmd(this)
{
ServerInstance->AddCommand(&cmd);
- Extensible::Register(&cmd.ctitle);
+ ServerInstance->Extensions.Register(&cmd.ctitle);
ServerInstance->Modules->Attach(I_OnWhoisLine, this);
}
diff --git a/src/modules/m_dccallow.cpp b/src/modules/m_dccallow.cpp
index 10a8d9310..b66fa436e 100644
--- a/src/modules/m_dccallow.cpp
+++ b/src/modules/m_dccallow.cpp
@@ -244,7 +244,7 @@ class ModuleDCCAllow : public Module
{
Conf = new ConfigReader;
ext = new SimpleExtItem<dccallowlist>("dccallow", this);
- Extensible::Register(ext);
+ ServerInstance->Extensions.Register(ext);
ServerInstance->AddCommand(&cmd);
ReadFileConf();
Implementation eventlist[] = { I_OnUserPreMessage, I_OnUserPreNotice, I_OnUserQuit, I_OnUserPreNick, I_OnRehash };
diff --git a/src/modules/m_delaymsg.cpp b/src/modules/m_delaymsg.cpp
index 75a1df19a..7489f6dfa 100644
--- a/src/modules/m_delaymsg.cpp
+++ b/src/modules/m_delaymsg.cpp
@@ -58,7 +58,7 @@ class ModuleDelayMsg : public Module
{
if (!ServerInstance->Modes->AddMode(&djm))
throw ModuleException("Could not add new modes!");
- Extensible::Register(&djm.jointime);
+ ServerInstance->Extensions.Register(&djm.jointime);
Implementation eventlist[] = { I_OnUserJoin, I_OnUserPreMessage};
ServerInstance->Modules->Attach(eventlist, this, 2);
}
diff --git a/src/modules/m_joinflood.cpp b/src/modules/m_joinflood.cpp
index 2d15fee68..8dcd99405 100644
--- a/src/modules/m_joinflood.cpp
+++ b/src/modules/m_joinflood.cpp
@@ -200,7 +200,7 @@ class ModuleJoinFlood : public Module
if (!ServerInstance->Modes->AddMode(&jf))
throw ModuleException("Could not add new modes!");
- Extensible::Register(&jf.ext);
+ ServerInstance->Extensions.Register(&jf.ext);
Implementation eventlist[] = { I_OnChannelDelete, I_OnUserPreJoin, I_OnUserJoin };
ServerInstance->Modules->Attach(eventlist, this, 3);
}
diff --git a/src/modules/m_kicknorejoin.cpp b/src/modules/m_kicknorejoin.cpp
index 5a8233a8f..9d5fe3b62 100644
--- a/src/modules/m_kicknorejoin.cpp
+++ b/src/modules/m_kicknorejoin.cpp
@@ -109,7 +109,7 @@ public:
{
if (!ServerInstance->Modes->AddMode(&kr))
throw ModuleException("Could not add new modes!");
- Extensible::Register(&kr.ext);
+ ServerInstance->Extensions.Register(&kr.ext);
Implementation eventlist[] = { I_OnUserPreJoin, I_OnUserKick };
ServerInstance->Modules->Attach(eventlist, this, 2);
}
diff --git a/src/modules/m_messageflood.cpp b/src/modules/m_messageflood.cpp
index bf79babb2..96f504492 100644
--- a/src/modules/m_messageflood.cpp
+++ b/src/modules/m_messageflood.cpp
@@ -200,7 +200,7 @@ class ModuleMsgFlood : public Module
{
if (!ServerInstance->Modes->AddMode(&mf))
throw ModuleException("Could not add new modes!");
- Extensible::Register(&mf.ext);
+ ServerInstance->Extensions.Register(&mf.ext);
Implementation eventlist[] = { I_OnUserPreNotice, I_OnUserPreMessage };
ServerInstance->Modules->Attach(eventlist, this, 2);
}
diff --git a/src/modules/m_nickflood.cpp b/src/modules/m_nickflood.cpp
index f6a808ffd..7f67b8d08 100644
--- a/src/modules/m_nickflood.cpp
+++ b/src/modules/m_nickflood.cpp
@@ -200,7 +200,7 @@ class ModuleNickFlood : public Module
{
if (!ServerInstance->Modes->AddMode(&nf))
throw ModuleException("Could not add new modes!");
- Extensible::Register(&nf.ext);
+ ServerInstance->Extensions.Register(&nf.ext);
Implementation eventlist[] = { I_OnUserPreNick, I_OnUserPostNick };
ServerInstance->Modules->Attach(eventlist, this, 2);
}
diff --git a/src/modules/m_nicklock.cpp b/src/modules/m_nicklock.cpp
index 0ca0a9bac..bfbda003f 100644
--- a/src/modules/m_nicklock.cpp
+++ b/src/modules/m_nicklock.cpp
@@ -156,7 +156,7 @@ class ModuleNickLock : public Module
{
ServerInstance->AddCommand(&cmd1);
ServerInstance->AddCommand(&cmd2);
- Extensible::Register(&locked);
+ ServerInstance->Extensions.Register(&locked);
ServerInstance->Modules->Attach(I_OnUserPreNick, this);
}
diff --git a/src/modules/m_regonlycreate.cpp b/src/modules/m_regonlycreate.cpp
index 3354c1132..a25ba8edc 100644
--- a/src/modules/m_regonlycreate.cpp
+++ b/src/modules/m_regonlycreate.cpp
@@ -12,20 +12,20 @@
*/
#include "inspircd.h"
+#include "account.h"
-/* $ModDesc: Prevents users who's nicks are not registered from creating new channels */
+/* $ModDesc: Prevents users whose nicks are not registered from creating new channels */
class ModuleRegOnlyCreate : public Module
{
public:
ModuleRegOnlyCreate()
- {
+ {
Implementation eventlist[] = { I_OnUserPreJoin };
ServerInstance->Modules->Attach(eventlist, this, 1);
}
-
- virtual ModResult OnUserPreJoin(User* user, Channel* chan, const char* cname, std::string &privs, const std::string &keygiven)
+ ModResult OnUserPreJoin(User* user, Channel* chan, const char* cname, std::string &privs, const std::string &keygiven)
{
if (chan)
return MOD_RES_PASSTHRU;
@@ -33,23 +33,25 @@ class ModuleRegOnlyCreate : public Module
if (IS_OPER(user))
return MOD_RES_PASSTHRU;
- if (user->GetExtList().find("accountname") == user->GetExtList().end() && !user->IsModeSet('r'))
- {
- // XXX. there may be a better numeric for this..
- user->WriteNumeric(ERR_CHANOPRIVSNEEDED, "%s %s :You must have a registered nickname to create a new channel", user->nick.c_str(), cname);
- return MOD_RES_DENY;
- }
+ if (user->IsModeSet('r'))
+ return MOD_RES_PASSTHRU;
+
+ const AccountExtItem* ext = GetAccountExtItem();
+ if (ext && ext->get(user))
+ return MOD_RES_PASSTHRU;
- return MOD_RES_PASSTHRU;
+ // XXX. there may be a better numeric for this..
+ user->WriteNumeric(ERR_CHANOPRIVSNEEDED, "%s %s :You must have a registered nickname to create a new channel", user->nick.c_str(), cname);
+ return MOD_RES_DENY;
}
- virtual ~ModuleRegOnlyCreate()
+ ~ModuleRegOnlyCreate()
{
}
- virtual Version GetVersion()
+ Version GetVersion()
{
- return Version("Prevents users who's nicks are not registered from creating new channels", VF_VENDOR, API_VERSION);
+ return Version("Prevents users whose nicks are not registered from creating new channels", VF_VENDOR);
}
};
diff --git a/src/modules/m_sasl.cpp b/src/modules/m_sasl.cpp
index 938449bbb..42d908467 100644
--- a/src/modules/m_sasl.cpp
+++ b/src/modules/m_sasl.cpp
@@ -232,7 +232,7 @@ class ModuleSASL : public Module
ServerInstance->AddCommand(&auth);
ServerInstance->AddCommand(&sasl);
- Extensible::Register(&authExt);
+ ServerInstance->Extensions.Register(&authExt);
if (!ServerInstance->Modules->Find("m_services_account.so") || !ServerInstance->Modules->Find("m_cap.so"))
ServerInstance->Logs->Log("m_sasl", DEFAULT, "WARNING: m_services_account.so and m_cap.so are not loaded! m_sasl.so will NOT function correctly until these two modules are loaded!");
}
diff --git a/src/modules/m_services_account.cpp b/src/modules/m_services_account.cpp
index 5987b70c9..a040e77e5 100644
--- a/src/modules/m_services_account.cpp
+++ b/src/modules/m_services_account.cpp
@@ -104,7 +104,7 @@ class ModuleServicesAccount : public Module
AUser_R m3;
Channel_r m4;
User_r m5;
- StringExtItem accountname;
+ AccountExtItem accountname;
public:
ModuleServicesAccount() : m1(this), m2(this), m3(this), m4(this), m5(this),
accountname("accountname", this)
@@ -115,7 +115,7 @@ class ModuleServicesAccount : public Module
!ServerInstance->Modes->AddMode(&m5))
throw ModuleException("Some other module has claimed our modes!");
- Extensible::Register(&accountname);
+ ServerInstance->Extensions.Register(&accountname);
Implementation eventlist[] = { I_OnWhois, I_OnUserPreMessage, I_OnUserPreNotice, I_OnUserPreJoin, I_OnCheckBan,
I_OnSyncUser, I_OnUserQuit, I_OnDecodeMetaData, I_On005Numeric, I_OnUserPostNick };
diff --git a/src/modules/m_spanningtree/metadata.cpp b/src/modules/m_spanningtree/metadata.cpp
index ee26f0c73..4e87dae00 100644
--- a/src/modules/m_spanningtree/metadata.cpp
+++ b/src/modules/m_spanningtree/metadata.cpp
@@ -18,9 +18,6 @@
#include "treeserver.h"
#include "utils.h"
-/* $ModDep: m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/treesocket.h */
-
-
bool TreeSocket::MetaData(const std::string &prefix, parameterlist &params)
{
if (params.size() < 2)
@@ -28,7 +25,7 @@ bool TreeSocket::MetaData(const std::string &prefix, parameterlist &params)
else if (params.size() < 3)
params.push_back("");
TreeServer* ServerSource = Utils->FindServer(prefix);
- ExtensionItem* item = Extensible::GetItem(params[1]);
+ ExtensionItem* item = ServerInstance->Extensions.GetItem(params[1]);
if (ServerSource)
{
if (params[0] == "*")
diff --git a/src/modules/m_spanningtree/netburst.cpp b/src/modules/m_spanningtree/netburst.cpp
index b8d8c93ee..5f47c690b 100644
--- a/src/modules/m_spanningtree/netburst.cpp
+++ b/src/modules/m_spanningtree/netburst.cpp
@@ -222,12 +222,10 @@ void TreeSocket::SendChannelModes(TreeServer* Current)
for(ExtensibleStore::const_iterator i = c->second->GetExtList().begin(); i != c->second->GetExtList().end(); i++)
{
- ExtensionItem* item = Extensible::GetItem(i->first);
- std::string value;
- if (item)
- value = item->serialize(FORMAT_NETWORK, c->second, i->second);
+ ExtensionItem* item = i->first;
+ std::string value = item->serialize(FORMAT_NETWORK, c->second, i->second);
if (!value.empty())
- Utils->Creator->ProtoSendMetaData(this, c->second, i->first, value);
+ Utils->Creator->ProtoSendMetaData(this, c->second, item->key, value);
}
FOREACH_MOD(I_OnSyncChannel,OnSyncChannel(c->second,Utils->Creator,this));
@@ -273,12 +271,10 @@ void TreeSocket::SendUsers(TreeServer* Current)
for(ExtensibleStore::const_iterator i = u->second->GetExtList().begin(); i != u->second->GetExtList().end(); i++)
{
- ExtensionItem* item = Extensible::GetItem(i->first);
- std::string value;
- if (item)
- value = item->serialize(FORMAT_NETWORK, u->second, i->second);
+ ExtensionItem* item = i->first;
+ std::string value = item->serialize(FORMAT_NETWORK, u->second, i->second);
if (!value.empty())
- Utils->Creator->ProtoSendMetaData(this, u->second, i->first, value);
+ Utils->Creator->ProtoSendMetaData(this, u->second, item->key, value);
}
FOREACH_MOD(I_OnSyncUser,OnSyncUser(u->second,Utils->Creator,this));
diff --git a/src/modules/m_sslinfo.cpp b/src/modules/m_sslinfo.cpp
index a1178f917..31a209d4e 100644
--- a/src/modules/m_sslinfo.cpp
+++ b/src/modules/m_sslinfo.cpp
@@ -19,7 +19,7 @@
class SSLCertExt : public ExtensionItem {
public:
SSLCertExt(Module* parent) : ExtensionItem("ssl_cert", parent) {}
- ssl_cert* get(const Extensible* item)
+ ssl_cert* get(const Extensible* item) const
{
return static_cast<ssl_cert*>(get_raw(item));
}
@@ -29,7 +29,7 @@ class SSLCertExt : public ExtensionItem {
delete old;
}
- std::string serialize(SerializeFormat format, const Extensible* container, void* item)
+ std::string serialize(SerializeFormat format, const Extensible* container, void* item) const
{
return static_cast<ssl_cert*>(item)->GetMetaLine();
}
@@ -121,7 +121,7 @@ class ModuleSSLInfo : public Module
{
ServerInstance->AddCommand(&cmd);
- Extensible::Register(&cmd.CertExt);
+ ServerInstance->Extensions.Register(&cmd.CertExt);
Implementation eventlist[] = { I_OnWhois, I_OnPreCommand };
ServerInstance->Modules->Attach(eventlist, this, 2);
diff --git a/src/modules/m_swhois.cpp b/src/modules/m_swhois.cpp
index 6d74e9d39..a15d81aec 100644
--- a/src/modules/m_swhois.cpp
+++ b/src/modules/m_swhois.cpp
@@ -24,7 +24,7 @@ class CommandSwhois : public Command
CommandSwhois(Module* Creator) : Command(Creator,"SWHOIS", 2,2), swhois("swhois", Creator)
{
flags_needed = 'o'; syntax = "<nick> :<swhois>";
- Extensible::Register(&swhois);
+ ServerInstance->Extensions.Register(&swhois);
TRANSLATE3(TR_NICK, TR_TEXT, TR_END);
}
diff --git a/src/modules/m_watch.cpp b/src/modules/m_watch.cpp
index 9030c1788..1d2073972 100644
--- a/src/modules/m_watch.cpp
+++ b/src/modules/m_watch.cpp
@@ -374,7 +374,7 @@ class Modulewatch : public Module
whos_watching_me = new watchentries();
ServerInstance->AddCommand(&cmdw);
ServerInstance->AddCommand(&sw);
- Extensible::Register(&cmdw.ext);
+ ServerInstance->Extensions.Register(&cmdw.ext);
Implementation eventlist[] = { I_OnRehash, I_OnGarbageCollect, I_OnUserQuit, I_OnPostConnect, I_OnUserPostNick, I_On005Numeric, I_OnSetAway };
ServerInstance->Modules->Attach(eventlist, this, 7);
}
diff --git a/src/modules/u_listmode.h b/src/modules/u_listmode.h
index 981e2a369..1516b724c 100644
--- a/src/modules/u_listmode.h
+++ b/src/modules/u_listmode.h
@@ -95,7 +95,7 @@ class ListModeBase : public ModeHandler
{
list = true;
this->DoRehash();
- Extensible::Register(&extItem);
+ ServerInstance->Extensions.Register(&extItem);
}
/** See mode.h