]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Merge branch 'master+exttype' into master+no-rtti
authorAttila Molnar <attilamolnar@hush.com>
Thu, 22 Jan 2015 11:14:25 +0000 (12:14 +0100)
committerAttila Molnar <attilamolnar@hush.com>
Thu, 22 Jan 2015 11:14:25 +0000 (12:14 +0100)
35 files changed:
include/extensible.h
include/modules/cap.h
include/parammode.h
src/base.cpp
src/coremods/core_hostname_lookup.cpp
src/inspircd.cpp
src/listmode.cpp
src/modules/extra/m_geoip.cpp
src/modules/m_banredirect.cpp
src/modules/m_blockamsg.cpp
src/modules/m_callerid.cpp
src/modules/m_cap.cpp
src/modules/m_cgiirc.cpp
src/modules/m_cloaking.cpp
src/modules/m_conn_join.cpp
src/modules/m_conn_waitpong.cpp
src/modules/m_customtitle.cpp
src/modules/m_dccallow.cpp
src/modules/m_delayjoin.cpp
src/modules/m_delaymsg.cpp
src/modules/m_dnsbl.cpp
src/modules/m_ident.cpp
src/modules/m_ldapauth.cpp
src/modules/m_mlock.cpp
src/modules/m_nicklock.cpp
src/modules/m_repeat.cpp
src/modules/m_sasl.cpp
src/modules/m_services_account.cpp
src/modules/m_silence.cpp
src/modules/m_spanningtree/metadata.cpp
src/modules/m_sqlauth.cpp
src/modules/m_sslinfo.cpp
src/modules/m_swhois.cpp
src/modules/m_topiclock.cpp
src/modules/m_watch.cpp

index 86e0d6b07fe2bbc8af02c65be4080890ca84fa95..a2c1043779f2a388f3990bc4a187843b6389f984 100644 (file)
@@ -38,7 +38,20 @@ enum SerializeFormat
 class CoreExport ExtensionItem : public ServiceProvider, public usecountbase
 {
  public:
-       ExtensionItem(const std::string& key, Module* owner);
+    /** Extensible subclasses
+     */
+       enum ExtensibleType
+       {
+               EXT_USER,
+               EXT_CHANNEL,
+               EXT_MEMBERSHIP
+       };
+
+       /** Type (subclass) of Extensible that this ExtensionItem is valid for
+        */
+       const ExtensibleType type;
+
+       ExtensionItem(const std::string& key, ExtensibleType exttype, Module* owner);
        virtual ~ExtensionItem();
        /** Serialize this item into a string
         *
@@ -119,7 +132,7 @@ class CoreExport ExtensionManager
 class CoreExport LocalExtItem : public ExtensionItem
 {
  public:
-       LocalExtItem(const std::string& key, Module* owner);
+       LocalExtItem(const std::string& key, ExtensibleType exttype, Module* owner);
        virtual ~LocalExtItem();
        virtual std::string serialize(SerializeFormat format, const Extensible* container, void* item) const;
        virtual void unserialize(SerializeFormat format, Extensible* container, const std::string& value);
@@ -130,7 +143,8 @@ template <typename T, typename Del = stdalgo::defaultdeleter<T> >
 class SimpleExtItem : public LocalExtItem
 {
  public:
-       SimpleExtItem(const std::string& Key, Module* parent) : LocalExtItem(Key, parent)
+       SimpleExtItem(const std::string& Key, ExtensibleType exttype, Module* parent)
+               : LocalExtItem(Key, exttype, parent)
        {
        }
 
@@ -175,7 +189,7 @@ class SimpleExtItem : public LocalExtItem
 class CoreExport LocalStringExt : public SimpleExtItem<std::string>
 {
  public:
-       LocalStringExt(const std::string& key, Module* owner);
+       LocalStringExt(const std::string& key, ExtensibleType exttype, Module* owner);
        virtual ~LocalStringExt();
        std::string serialize(SerializeFormat format, const Extensible* container, void* item) const;
 };
@@ -183,7 +197,7 @@ class CoreExport LocalStringExt : public SimpleExtItem<std::string>
 class CoreExport LocalIntExt : public LocalExtItem
 {
  public:
-       LocalIntExt(const std::string& key, Module* owner);
+       LocalIntExt(const std::string& key, ExtensibleType exttype, Module* owner);
        virtual ~LocalIntExt();
        std::string serialize(SerializeFormat format, const Extensible* container, void* item) const;
        intptr_t get(const Extensible* container) const;
@@ -195,7 +209,7 @@ class CoreExport LocalIntExt : public LocalExtItem
 class CoreExport StringExtItem : public ExtensionItem
 {
  public:
-       StringExtItem(const std::string& key, Module* owner);
+       StringExtItem(const std::string& key, ExtensibleType exttype, Module* owner);
        virtual ~StringExtItem();
        std::string* get(const Extensible* container) const;
        std::string serialize(SerializeFormat format, const Extensible* container, void* item) const;
index 1b33e05bbcde649b9ef593861967e851fb6ed60e..cc1cb8d8cc5c3d6c25770363d590c80af3341caa 100644 (file)
@@ -43,7 +43,9 @@ class GenericCap
  public:
        LocalIntExt ext;
        const std::string cap;
-       GenericCap(Module* parent, const std::string &Cap) : ext("cap_" + Cap, parent), cap(Cap)
+       GenericCap(Module* parent, const std::string& Cap)
+               : ext("cap_" + Cap, ExtensionItem::EXT_USER, parent)
+               , cap(Cap)
        {
        }
 
index b0005262e4185abccb6946cf98f29568ff981c82..b00082bd63778eafa93e67e381b324c9c5163492 100644 (file)
@@ -56,7 +56,7 @@ class ParamMode : public ParamModeBase
         */
        ParamMode(Module* Creator, const std::string& Name, char modeletter, ParamSpec ps = PARAM_SETONLY)
                : ParamModeBase(Creator, Name, modeletter, ps)
-               , ext("parammode_" + Name, Creator)
+               , ext("parammode_" + Name, ExtensionItem::EXT_CHANNEL, Creator)
        {
        }
 
index 682899132fb48f786f1b0f02aa5de18e2bfccfc2..67b136ec8c89047ec700cbad341f44fc789aca98 100644 (file)
@@ -95,7 +95,9 @@ ServiceProvider::~ServiceProvider()
 {
 }
 
-ExtensionItem::ExtensionItem(const std::string& Key, Module* mod) : ServiceProvider(mod, Key, SERVICE_METADATA)
+ExtensionItem::ExtensionItem(const std::string& Key, ExtensibleType exttype, Module* mod)
+       : ServiceProvider(mod, Key, SERVICE_METADATA)
+       , type(exttype)
 {
 }
 
@@ -207,7 +209,8 @@ Extensible::~Extensible()
                ServerInstance->Logs->Log("CULLLIST", LOG_DEBUG, "Extensible destructor called without cull @%p", (void*)this);
 }
 
-LocalExtItem::LocalExtItem(const std::string& Key, Module* mod) : ExtensionItem(Key, mod)
+LocalExtItem::LocalExtItem(const std::string& Key, ExtensibleType exttype, Module* mod)
+       : ExtensionItem(Key, exttype, mod)
 {
 }
 
@@ -224,8 +227,10 @@ void LocalExtItem::unserialize(SerializeFormat format, Extensible* container, co
 {
 }
 
-LocalStringExt::LocalStringExt(const std::string& Key, Module* Owner)
-       : SimpleExtItem<std::string>(Key, Owner) { }
+LocalStringExt::LocalStringExt(const std::string& Key, ExtensibleType exttype, Module* Owner)
+       : SimpleExtItem<std::string>(Key, exttype, Owner)
+{
+}
 
 LocalStringExt::~LocalStringExt()
 {
@@ -238,7 +243,8 @@ std::string LocalStringExt::serialize(SerializeFormat format, const Extensible*
        return "";
 }
 
-LocalIntExt::LocalIntExt(const std::string& Key, Module* mod) : LocalExtItem(Key, mod)
+LocalIntExt::LocalIntExt(const std::string& Key, ExtensibleType exttype, Module* mod)
+       : LocalExtItem(Key, exttype, mod)
 {
 }
 
@@ -270,7 +276,8 @@ void LocalIntExt::free(void*)
 {
 }
 
-StringExtItem::StringExtItem(const std::string& Key, Module* mod) : ExtensionItem(Key, mod)
+StringExtItem::StringExtItem(const std::string& Key, ExtensibleType exttype, Module* mod)
+       : ExtensionItem(Key, exttype, mod)
 {
 }
 
index 2c9de3c86db777b48db3178746f07cf6e8034846..11cc5bbba8e0fdfaf8e0be034977af517c08d785 100644 (file)
@@ -183,8 +183,8 @@ class ModuleHostnameLookup : public Module
 
  public:
        ModuleHostnameLookup()
-               : dnsLookup("dnsLookup", this)
-               , ptrHosts("ptrHosts", this)
+               : dnsLookup("dnsLookup", ExtensionItem::EXT_USER, this)
+               , ptrHosts("ptrHosts", ExtensionItem::EXT_USER, this)
                , DNS(this, "DNS")
        {
                dl = &dnsLookup;
index 403ba535502281b6672ec5c21d624a908cf13b36..469539c5b3b525aaab2a8143f1868f293c13b0d7 100644 (file)
@@ -229,7 +229,7 @@ InspIRCd::InspIRCd(int argc, char** argv) :
          * THIS MUST MATCH THE ORDER OF DECLARATION OF THE FUNCTORS, e.g. the methods
          * themselves within the class.
          */
-        OperQuit("operquit", NULL),
+        OperQuit("operquit", ExtensionItem::EXT_USER, NULL),
         GenRandom(&HandleGenRandom),
         IsChannel(&HandleIsChannel),
         IsNick(&HandleIsNick),
index 1147a4ef2a7d6adfdb8de59bd5d7168264d5b90f..35964dfb3396d9f893f78e63aa2d682d0c39e53d 100644 (file)
@@ -22,7 +22,8 @@
 ListModeBase::ListModeBase(Module* Creator, const std::string& Name, char modechar, const std::string &eolstr, unsigned int lnum, unsigned int eolnum, bool autotidy, const std::string &ctag)
        : ModeHandler(Creator, Name, modechar, PARAM_ALWAYS, MODETYPE_CHANNEL, MC_LIST),
        listnumeric(lnum), endoflistnumeric(eolnum), endofliststring(eolstr), tidy(autotidy),
-       configtag(ctag), extItem("listbase_mode_" + name + "_list", Creator)
+       configtag(ctag)
+       , extItem("listbase_mode_" + name + "_list", ExtensionItem::EXT_CHANNEL, Creator)
 {
        list = true;
 }
index 3561d1a5da2f21d18bbb61c4acf072b88f4145dc..d21a82149b423cbbe84fca796fff24f5dbddff5f 100644 (file)
@@ -46,7 +46,9 @@ class ModuleGeoIP : public Module
        }
 
  public:
-       ModuleGeoIP() : ext("geoip_cc", this), gi(NULL)
+       ModuleGeoIP()
+               : ext("geoip_cc", ExtensionItem::EXT_USER, this)
+               , gi(NULL)
        {
        }
 
index 9833c720d13e78b71b45f94790db48f6a5c0eca0..d3490acc062aab9eeb569ff4d4ebf9c4fd791916 100644 (file)
@@ -50,7 +50,7 @@ class BanRedirect : public ModeWatcher
        BanRedirect(Module* parent)
                : ModeWatcher(parent, "ban", MODETYPE_CHANNEL)
                , ban(parent, "ban")
-               , extItem("banredirect", parent)
+               , extItem("banredirect", ExtensionItem::EXT_CHANNEL, parent)
        {
        }
 
index b456606a8ff997103f8ea684169d3473a6e1b06a..9614203c350c04a8f3d9f950c9a8085c4d3bb405 100644 (file)
@@ -53,7 +53,8 @@ class ModuleBlockAmsg : public Module
        SimpleExtItem<BlockedMessage> blockamsg;
 
  public:
-       ModuleBlockAmsg() : blockamsg("blockamsg", this)
+       ModuleBlockAmsg()
+               : blockamsg("blockamsg", ExtensionItem::EXT_USER, this)
        {
        }
 
index efbf1a81b690609b9277030cde7eb242e42c4a89..5c6d14a908555034f6198a4907952cc6137d8101 100644 (file)
@@ -69,7 +69,7 @@ class callerid_data
 struct CallerIDExtInfo : public ExtensionItem
 {
        CallerIDExtInfo(Module* parent)
-               : ExtensionItem("callerid_data", parent)
+               : ExtensionItem("callerid_data", ExtensionItem::EXT_USER, parent)
        {
        }
 
index bc79e59ecae6e832b096013a1e17fac190fd3f5e..db5d85f0f09dc92f001d9cfb962176a6965470a1 100644 (file)
@@ -42,7 +42,7 @@ class CommandCAP : public Command
  public:
        LocalIntExt reghold;
        CommandCAP (Module* mod) : Command(mod, "CAP", 1),
-               reghold("CAP_REGHOLD", mod)
+               reghold("CAP_REGHOLD", ExtensionItem::EXT_USER, mod)
        {
                works_before_reg = true;
        }
index 79104578084d5b13b549e57c6076ac680d352d2d..721d6ba081a693b0237d326b7aab742cd7416e0e 100644 (file)
@@ -74,7 +74,8 @@ class CommandWebirc : public Command
        CGIHostlist Hosts;
        CommandWebirc(Module* Creator)
                : Command(Creator, "WEBIRC", 4),
-                 realhost("cgiirc_realhost", Creator), realip("cgiirc_realip", Creator)
+                 realhost("cgiirc_realhost", ExtensionItem::EXT_USER, Creator)
+                 , realip("cgiirc_realip", ExtensionItem::EXT_USER, Creator)
                {
                        works_before_reg = true;
                        this->syntax = "password client hostname ip";
@@ -225,7 +226,7 @@ class ModuleCgiIRC : public Module
 public:
        ModuleCgiIRC()
                : cmd(this)
-               , waiting("cgiirc-delay", this)
+               , waiting("cgiirc-delay", ExtensionItem::EXT_USER, this)
                , DNS(this, "DNS")
        {
        }
index d0e7313b7c946bfdefbb26dde925e536a20267e2..1534043ce9cff081b20c6047615a49528e0e91ff 100644 (file)
@@ -49,7 +49,7 @@ class CloakUser : public ModeHandler
 
        CloakUser(Module* source)
                : ModeHandler(source, "cloak", 'x', PARAM_NONE, MODETYPE_USER),
-               ext("cloaked_host", source), debounce_ts(0), debounce_count(0)
+               ext("cloaked_host", ExtensionItem::EXT_USER, source), debounce_ts(0), debounce_count(0)
        {
        }
 
index d5a095e7f89721df6e99f5492ebe76d04fe8921d..b22dbdf4dc69bee8b5078b725b8b452f2a0c4592 100644 (file)
@@ -66,7 +66,8 @@ class ModuleConnJoin : public Module
        unsigned int defdelay;
 
  public:
-       ModuleConnJoin() : ext("join_timer", this)
+       ModuleConnJoin()
+               : ext("join_timer", ExtensionItem::EXT_USER, this)
        {
        }
 
index 496b04c2d4cb7d0b403af607e79e2013bd56c750..87b6b51f21e1bf064c5cf11e6959cfbe83b1c603 100644 (file)
@@ -32,7 +32,7 @@ class ModuleWaitPong : public Module
 
  public:
        ModuleWaitPong()
-        : ext("waitpong_pingstr", this)
+               : ext("waitpong_pingstr", ExtensionItem::EXT_USER, this)
        {
        }
 
index 3386e8cd7ca35a38e5c349b2a97ea59c8ae517ab..67eca6dda8d0c596e7886494572b3a473b989dd5 100644 (file)
@@ -28,7 +28,7 @@ class CommandTitle : public Command
  public:
        StringExtItem ctitle;
        CommandTitle(Module* Creator) : Command(Creator,"TITLE", 2),
-               ctitle("ctitle", Creator)
+               ctitle("ctitle", ExtensionItem::EXT_USER, Creator)
        {
                syntax = "<user> <password>";
        }
index 7627ba8c7d66d32c21e619531eea4ce259bb379b..2b8d1306cd5f544265f4106063eb895a03db2742 100644 (file)
@@ -257,7 +257,7 @@ class ModuleDCCAllow : public Module
 
  public:
        ModuleDCCAllow()
-               : ext("dccallow", this)
+               : ext("dccallow", ExtensionItem::EXT_USER, this)
                , cmd(this, ext)
        {
        }
index 7e800572ef0ed4bb59ff4d1901178fe73cc2e51b..e864a8289c75e0f8d6be6b174fc7f33f4c65524c 100644 (file)
@@ -39,7 +39,9 @@ class ModuleDelayJoin : public Module
        DelayJoinMode djm;
  public:
        LocalIntExt unjoined;
-       ModuleDelayJoin() : djm(this), unjoined("delayjoin", this)
+       ModuleDelayJoin()
+               : djm(this)
+               , unjoined("delayjoin", ExtensionItem::EXT_MEMBERSHIP, this)
        {
        }
 
index 32a0ba96ee03d9bdba01e44167fae735482d3fe6..f64297e15b8c678ce29d0969b8583400175e2ebf 100644 (file)
@@ -25,7 +25,7 @@ class DelayMsgMode : public ParamMode<DelayMsgMode, LocalIntExt>
        LocalIntExt jointime;
        DelayMsgMode(Module* Parent)
                : ParamMode<DelayMsgMode, LocalIntExt>(Parent, "delaymsg", 'd')
-               , jointime("delaymsg", Parent)
+               , jointime("delaymsg", ExtensionItem::EXT_MEMBERSHIP, Parent)
        {
                levelrequired = OP_VALUE;
        }
index 63dda547fbadba3447925d09b3f7551f2bb9cdf2..7b38da4bfe56cd7651ad44d2ff02d387b198ebf3 100644 (file)
@@ -236,7 +236,12 @@ class ModuleDNSBL : public Module
                return DNSBLConfEntry::I_UNKNOWN;
        }
  public:
-       ModuleDNSBL() : DNS(this, "DNS"), nameExt("dnsbl_match", this), countExt("dnsbl_pending", this) { }
+       ModuleDNSBL()
+               : DNS(this, "DNS")
+               , nameExt("dnsbl_match", ExtensionItem::EXT_USER, this)
+               , countExt("dnsbl_pending", ExtensionItem::EXT_USER, this)
+       {
+       }
 
        Version GetVersion() CXX11_OVERRIDE
        {
index 3e87b8c5a3f0479d536aa63d529769ce41268427..959e58a479d03c9d02e61c92cc74dec5a8b2075b 100644 (file)
@@ -277,7 +277,8 @@ class ModuleIdent : public Module
        bool NoLookupPrefix;
        SimpleExtItem<IdentRequestSocket, stdalgo::culldeleter> ext;
  public:
-       ModuleIdent() : ext("ident_socket", this)
+       ModuleIdent()
+               : ext("ident_socket", ExtensionItem::EXT_USER, this)
        {
        }
 
index eee357ec0796dc2e7d290b5044e127340831e79d..804f6b82122ed85b7022ce88db180f6e9d7bca71 100644 (file)
@@ -307,8 +307,8 @@ class ModuleLDAPAuth : public Module
 public:
        ModuleLDAPAuth()
                : LDAP(this, "LDAP")
-               , ldapAuthed("ldapauth", this)
-               , ldapVhost("ldapauth_vhost", this)
+               , ldapAuthed("ldapauth", ExtensionItem::EXT_USER, this)
+               , ldapVhost("ldapauth_vhost", ExtensionItem::EXT_USER, this)
        {
                me = this;
                authed = &ldapAuthed;
index d9c43ec1087c6b0026a21c85b4b4d0493754638f..9b0fa8dab0b8438a49fe8e1b83f608bc936ea3ba 100644 (file)
@@ -25,7 +25,7 @@ class ModuleMLock : public Module
 
  public:
        ModuleMLock()
-               : mlock("mlock", this)
+               : mlock("mlock", ExtensionItem::EXT_CHANNEL, this)
        {
        }
 
index 9bf16498ac548b80870d31778f7181ef63201797..8ac2e8b4703baf39dd5300a21fb5c13d94c5d9ac 100644 (file)
@@ -144,7 +144,9 @@ class ModuleNickLock : public Module
        CommandNickunlock cmd2;
  public:
        ModuleNickLock()
-               : locked("nick_locked", this), cmd1(this, locked), cmd2(this, locked)
+               : locked("nick_locked", ExtensionItem::EXT_USER, this)
+               , cmd1(this, locked)
+               , cmd2(this, locked)
        {
        }
 
index ca6955040bb5af0d85fc63efe60a9093463cdc0f..820ef702fd895e1bdd7a742f9e4b934dd94440fa 100644 (file)
@@ -122,7 +122,7 @@ class RepeatMode : public ParamMode<RepeatMode, SimpleExtItem<ChannelSettings> >
 
        RepeatMode(Module* Creator)
                : ParamMode<RepeatMode, SimpleExtItem<ChannelSettings> >(Creator, "repeat", 'E')
-               , MemberInfoExt("repeat_memb", Creator)
+               , MemberInfoExt("repeat_memb", ExtensionItem::EXT_MEMBERSHIP, Creator)
        {
        }
 
index 074362651925cc1b5fb8737ec3086bb68b3196dc..0a2c840bd0205eb0905ff9484ff08c3eb772815a 100644 (file)
@@ -249,7 +249,10 @@ class ModuleSASL : public Module
 
  public:
        ModuleSASL()
-               : authExt("sasl_auth", this), cap(this, "sasl"), auth(this, authExt, cap), sasl(this, authExt)
+               : authExt("sasl_auth", ExtensionItem::EXT_USER, this)
+               , cap(this, "sasl")
+               , auth(this, authExt, cap)
+               , sasl(this, authExt)
        {
        }
 
index 9630128e0b1716865df4ba028d9c263e4d4355d7..aac0b9ce079d7f3fff6264a8d8d57512e16d1780 100644 (file)
@@ -106,15 +106,13 @@ class AccountExtItemImpl : public AccountExtItem
 {
  public:
        AccountExtItemImpl(Module* mod)
-               : AccountExtItem("accountname", mod)
+               : AccountExtItem("accountname", ExtensionItem::EXT_USER, mod)
        {
        }
 
        void unserialize(SerializeFormat format, Extensible* container, const std::string& value)
        {
-               User* user = dynamic_cast<User*>(container);
-               if (!user)
-                       return;
+               User* user = static_cast<User*>(container);
 
                StringExtItem::unserialize(format, container, value);
                if (!value.empty())
index 22de0ac8b6de76cf1ca9e6c4d2eb0626aaea6009..91822b4e4bf054e078075caf834a8a214bc3e176 100644 (file)
@@ -106,7 +106,8 @@ class CommandSilence : public Command
  public:
        SimpleExtItem<silencelist> ext;
        CommandSilence(Module* Creator, unsigned int &max) : Command(Creator, "SILENCE", 0),
-               maxsilence(max), ext("silence_list", Creator)
+               maxsilence(max)
+               , ext("silence_list", ExtensionItem::EXT_USER, Creator)
        {
                allow_empty_last_param = false;
                syntax = "{[+|-]<mask> <p|c|i|n|t|a|x>}";
index 13ccabc353584754e189164f4373fed2b31b8ab3..f758754b475b311e106b317691659b39f08fb6b7 100644 (file)
@@ -49,7 +49,7 @@ CmdResult CommandMetadata::Handle(User* srcuser, std::vector<std::string>& param
                std::string value = params.size() < 4 ? "" : params[3];
 
                ExtensionItem* item = ServerInstance->Extensions.GetItem(params[2]);
-               if (item)
+               if ((item) && (item->type == ExtensionItem::EXT_CHANNEL))
                        item->unserialize(FORMAT_NETWORK, c, value);
                FOREACH_MOD(OnDecodeMetaData, (c,params[2],value));
        }
@@ -61,7 +61,7 @@ CmdResult CommandMetadata::Handle(User* srcuser, std::vector<std::string>& param
                        ExtensionItem* item = ServerInstance->Extensions.GetItem(params[1]);
                        std::string value = params.size() < 3 ? "" : params[2];
 
-                       if (item)
+                       if ((item) && (item->type == ExtensionItem::EXT_USER))
                                item->unserialize(FORMAT_NETWORK, u, value);
                        FOREACH_MOD(OnDecodeMetaData, (u,params[1],value));
                }
index 8a0b80ce1f9e38c4a102492ef1cb244d05237cff..1a5b68dd9206ee0f0d1e6a967bca418d4ecfaa6d 100644 (file)
@@ -78,7 +78,9 @@ class ModuleSQLAuth : public Module
        bool verbose;
 
  public:
-       ModuleSQLAuth() : pendingExt("sqlauth-wait", this), SQL(this, "SQL")
+       ModuleSQLAuth()
+               : pendingExt("sqlauth-wait", ExtensionItem::EXT_USER, this)
+               , SQL(this, "SQL")
        {
        }
 
index c354e4e0ecfcc4794f6b972574cabafc0e615d01..f861f123654d86fb53c9bef7724632002fc8e846 100644 (file)
 
 class SSLCertExt : public ExtensionItem {
  public:
-       SSLCertExt(Module* parent) : ExtensionItem("ssl_cert", parent) {}
+       SSLCertExt(Module* parent)
+               : ExtensionItem("ssl_cert", ExtensionItem::EXT_USER, parent)
+       {
+       }
+
        ssl_cert* get(const Extensible* item) const
        {
                return static_cast<ssl_cert*>(get_raw(item));
index 4eb2a9cdab774a3e9c3071c50c13e056cbeca9f1..81abde6f77c2e82aeb004750fe3fdf91be01e377 100644 (file)
@@ -31,7 +31,9 @@ class CommandSwhois : public Command
 {
  public:
        StringExtItem swhois;
-       CommandSwhois(Module* Creator) : Command(Creator,"SWHOIS", 2,2), swhois("swhois", Creator)
+       CommandSwhois(Module* Creator)
+               : Command(Creator, "SWHOIS", 2, 2)
+               , swhois("swhois", ExtensionItem::EXT_USER, Creator)
        {
                flags_needed = 'o'; syntax = "<nick> :<swhois>";
                TRANSLATE2(TR_NICK, TR_TEXT);
index 42ed6e4c1ced14aa3606be15b009a08e77ee77eb..6053bc849cca9c6ad1c011dca25c9d5801c62653 100644 (file)
@@ -90,7 +90,7 @@ class FlagExtItem : public ExtensionItem
 {
  public:
        FlagExtItem(const std::string& key, Module* owner)
-               : ExtensionItem(key, owner)
+               : ExtensionItem(key, ExtensionItem::EXT_CHANNEL, owner)
        {
        }
 
index 9cb31a6d88e3460bbc7fc042ce851d3bc2fe3cfd..d0e42af6f8cfbb1014fe1e66a8cb736ac227edb7 100644 (file)
@@ -247,7 +247,7 @@ class CommandWatch : public Command
                return CMD_SUCCESS;
        }
 
-       CommandWatch(Module* parent, unsigned int &maxwatch) : Command(parent,"WATCH", 0), MAX_WATCH(maxwatch), ext("watchlist", parent)
+       CommandWatch(Module* parent, unsigned int &maxwatch) : Command(parent,"WATCH", 0), MAX_WATCH(maxwatch), ext("watchlist", ExtensionItem::EXT_USER, parent)
        {
                syntax = "[C|L|S]|[+|-<nick>]";
        }