From 6b71f211373e34de9b4cbb76fe89b160d18304aa Mon Sep 17 00:00:00 2001 From: Peter Powell Date: Mon, 1 Apr 2013 08:58:06 +0100 Subject: Remove some dead code: - Conditions in m_httpd_stats which can never be true. - Commented out code in m_sqloper. - Unused macro in inspircd.h. --- src/modules/m_httpd_stats.cpp | 3 +-- src/modules/m_sqloper.cpp | 13 ------------- 2 files changed, 1 insertion(+), 15 deletions(-) (limited to 'src') diff --git a/src/modules/m_httpd_stats.cpp b/src/modules/m_httpd_stats.cpp index 547d6032f..9115fedaf 100644 --- a/src/modules/m_httpd_stats.cpp +++ b/src/modules/m_httpd_stats.cpp @@ -55,8 +55,7 @@ class ModuleHttpStats : public Module ret += it->second; ret += ';'; } - else if (*x == 0x9 || *x == 0xA || *x == 0xD || - (*x >= 0x20 && *x <= 0xD7FF) || (*x >= 0xE000 && *x <= 0x10FFFF)) + else if (*x == 0x9 || *x == 0xA || *x == 0xD || *x >= 0x20) { // The XML specification defines the following characters as valid inside an XML document: // Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] diff --git a/src/modules/m_sqloper.cpp b/src/modules/m_sqloper.cpp index 38bcb744a..7097cd8e2 100644 --- a/src/modules/m_sqloper.cpp +++ b/src/modules/m_sqloper.cpp @@ -57,21 +57,8 @@ class OpMeQuery : public SQLQuery SQLEntries row; while (res.GetRow(row)) { -#if 0 - parameterlist cols; - res.GetCols(cols); - - std::vector* items; - reference tag = ConfigTag::create("oper", "", 0, items); - for(unsigned int i=0; i < cols.size(); i++) - { - if (!row[i].nul) - items->insert(std::make_pair(cols[i], row[i])); - } -#else if (OperUser(user, row[0], row[1])) return; -#endif } ServerInstance->Logs->Log("m_sqloper",DEBUG, "SQLOPER: no matches for %s (checked %d rows)", uid.c_str(), res.Rows()); // nobody succeeded... fall back to OPER -- cgit v1.2.3 From d877be98d1a89a18fb942ae9740e8fe65df359cf Mon Sep 17 00:00:00 2001 From: Peter Powell Date: Mon, 1 Apr 2013 10:11:03 +0100 Subject: Purge the deprecated chanprotect module. --- docs/conf/helpop-full.conf.example | 8 +- docs/conf/helpop.conf.example | 8 +- docs/conf/modules.conf.example | 26 --- docs/conf/modules/unrealircd.conf.example | 9 - include/modules.h | 5 - src/modules/m_chanprotect.cpp | 308 ------------------------------ 6 files changed, 8 insertions(+), 356 deletions(-) delete mode 100644 src/modules/m_chanprotect.cpp (limited to 'src') diff --git a/docs/conf/helpop-full.conf.example b/docs/conf/helpop-full.conf.example index bc9326e62..ffd3761be 100644 --- a/docs/conf/helpop-full.conf.example +++ b/docs/conf/helpop-full.conf.example @@ -804,15 +804,15 @@ Closes all unregistered connections to the local server."> v [nickname] Gives voice to [nickname], allowing them to speak while the channel is +m. - h [nickname] Gives halfop status to [nickname] (this mode can - be disabled). + h [nickname] Gives halfop status to [nickname] (requires + customprefix module). o [nickname] Gives op status to [nickname]. a [nickname] Gives protected status to [nickname], preventing them from them from being kicked (+q only, - requires chanprotect module). + requires customprefix module). q [nickname] Gives owner status to [nickname], preventing them from being kicked (Services or only, requires - chanprotect module). + customprefix module). b [hostmask] Bans [hostmask] from the channel. e [hostmask] Excepts [hostmask] from bans (requires diff --git a/docs/conf/helpop.conf.example b/docs/conf/helpop.conf.example index 02ddff8a2..d54752cfb 100644 --- a/docs/conf/helpop.conf.example +++ b/docs/conf/helpop.conf.example @@ -117,15 +117,15 @@ LOCKSERV UNLOCKSERV JUMPSERVER"> v [nickname] Gives voice to [nickname], allowing them to speak while the channel is +m. - h [nickname] Gives halfop status to [nickname] (this mode can - be disabled). + h [nickname] Gives halfop status to [nickname] (requires + customprefix module). o [nickname] Gives op status to [nickname]. a [nickname] Gives protected status to [nickname], preventing them from them from being kicked (+q only, - requires chanprotect module). + requires customprefix module). q [nickname] Gives owner status to [nickname], preventing them from being kicked (Services or only, requires - chanprotect module). + customprefix module). b [hostmask] Bans [hostmask] from the channel. e [hostmask] Excepts [hostmask] from bans (requires diff --git a/docs/conf/modules.conf.example b/docs/conf/modules.conf.example index a163c1646..bd64f69f5 100644 --- a/docs/conf/modules.conf.example +++ b/docs/conf/modules.conf.example @@ -417,32 +417,6 @@ # in a channel matching a mask like +b j:#channel*mask from joining. # -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Chanprotect module: gives +q and +a channel modes -# - - - - #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # Check module: gives /check # Check is useful for looking up information on channels, diff --git a/docs/conf/modules/unrealircd.conf.example b/docs/conf/modules/unrealircd.conf.example index fa5d652f1..2d27b43a0 100644 --- a/docs/conf/modules/unrealircd.conf.example +++ b/docs/conf/modules/unrealircd.conf.example @@ -93,15 +93,6 @@ - - - - diff --git a/include/modules.h b/include/modules.h index 626f6e9b8..088f76fd1 100644 --- a/include/modules.h +++ b/include/modules.h @@ -736,8 +736,6 @@ class CoreExport Module : public classbase, public usecountbase * (see below). This function will be called for every user visible on your side * of the burst, allowing you to for example set modes, etc. * - * For a good example of how to use this function, please see src/modules/m_chanprotect.cpp - * * @param chan The channel being syncronized * @param proto A pointer to the module handling network protocol * @param opaque An opaque pointer set by the protocol module, should not be modified! @@ -770,9 +768,6 @@ class CoreExport Module : public classbase, public usecountbase * down the network link as a broadcast, without a module calling it having to know the format * of the MODE command before the actual mode string. * - * More documentation to follow soon. Please see src/modules/m_chanprotect.cpp for examples - * of how to use this function. - * * @param opaque An opaque pointer set by the protocol module, should not be modified! * @param target_type The type of item to decode data for, TYPE_USER or TYPE_CHANNEL * @param target The Channel* or User* that modes should be sent for diff --git a/src/modules/m_chanprotect.cpp b/src/modules/m_chanprotect.cpp deleted file mode 100644 index 09364fb32..000000000 --- a/src/modules/m_chanprotect.cpp +++ /dev/null @@ -1,308 +0,0 @@ -/* - * InspIRCd -- Internet Relay Chat Daemon - * - * Copyright (C) 2009 Daniel De Graaf - * Copyright (C) 2006-2009 Robin Burchell - * Copyright (C) 2008 Thomas Stagner - * Copyright (C) 2008 Pippijn van Steenhoven - * Copyright (C) 2004-2008 Craig Edwards - * Copyright (C) 2007 John Brooks - * Copyright (C) 2007 Dennis Friis - * - * This file is part of InspIRCd. InspIRCd is free software: you can - * redistribute it and/or modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#include "inspircd.h" - -/* $ModDesc: Provides channel modes +a and +q */ - -#define PROTECT_VALUE 40000 -#define FOUNDER_VALUE 50000 - -struct ChanProtectSettings -{ - bool DeprivSelf; - bool DeprivOthers; - bool FirstInGetsFounder; - bool booting; - ChanProtectSettings() : booting(true) {} -}; - -static ChanProtectSettings settings; - -/** Handles basic operation of +qa channel modes - */ -class FounderProtectBase -{ - private: - const std::string type; - const char mode; - const int list; - const int end; - public: - FounderProtectBase(char Mode, const std::string &mtype, int l, int e) : - type(mtype), mode(Mode), list(l), end(e) - { - } - - void RemoveMode(Channel* channel, irc::modestacker* stack) - { - const UserMembList* cl = channel->GetUsers(); - std::vector mode_junk; - mode_junk.push_back(channel->name); - irc::modestacker modestack(false); - std::deque stackresult; - - for (UserMembCIter i = cl->begin(); i != cl->end(); i++) - { - if (i->second->hasMode(mode)) - { - if (stack) - stack->Push(mode, i->first->nick); - else - modestack.Push(mode, i->first->nick); - } - } - - if (stack) - return; - - while (modestack.GetStackedLine(stackresult)) - { - mode_junk.insert(mode_junk.end(), stackresult.begin(), stackresult.end()); - ServerInstance->SendMode(mode_junk, ServerInstance->FakeClient); - mode_junk.erase(mode_junk.begin() + 1, mode_junk.end()); - } - } - - void DisplayList(User* user, Channel* channel) - { - const UserMembList* cl = channel->GetUsers(); - for (UserMembCIter i = cl->begin(); i != cl->end(); ++i) - { - if (i->second->hasMode(mode)) - { - user->WriteServ("%d %s %s %s", list, user->nick.c_str(), channel->name.c_str(), i->first->nick.c_str()); - } - } - user->WriteServ("%d %s %s :End of channel %s list", end, user->nick.c_str(), channel->name.c_str(), type.c_str()); - } - - bool CanRemoveOthers(User* u1, Channel* c) - { - Membership* m1 = c->GetUser(u1); - return (settings.DeprivOthers && m1 && m1->hasMode(mode)); - } -}; - -/** Abstraction of FounderProtectBase for channel mode +q - */ -class ChanFounder : public ModeHandler, public FounderProtectBase -{ - public: - ChanFounder(Module* Creator) - : ModeHandler(Creator, "founder", 'q', PARAM_ALWAYS, MODETYPE_CHANNEL), - FounderProtectBase('q', "founder", 386, 387) - { - ModeHandler::list = true; - levelrequired = FOUNDER_VALUE; - m_paramtype = TR_NICK; - } - - void setPrefix(int pfx) - { - prefix = pfx; - } - - unsigned int GetPrefixRank() - { - return FOUNDER_VALUE; - } - - void RemoveMode(Channel* channel, irc::modestacker* stack) - { - FounderProtectBase::RemoveMode(channel, stack); - } - - void RemoveMode(User* user, irc::modestacker* stack) - { - } - - ModResult AccessCheck(User* source, Channel* channel, std::string ¶meter, bool adding) - { - User* theuser = ServerInstance->FindNick(parameter); - // remove own privs? - if (source == theuser && !adding && settings.DeprivSelf) - return MOD_RES_ALLOW; - - if (!adding && FounderProtectBase::CanRemoveOthers(source, channel)) - { - return MOD_RES_PASSTHRU; - } - else - { - source->WriteNumeric(468, "%s %s :Only servers may set channel mode +q", source->nick.c_str(), channel->name.c_str()); - return MOD_RES_DENY; - } - } - - ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding) - { - return MODEACTION_ALLOW; - } - - void DisplayList(User* user, Channel* channel) - { - FounderProtectBase::DisplayList(user,channel); - } -}; - -/** Abstraction of FounderProtectBase for channel mode +a - */ -class ChanProtect : public ModeHandler, public FounderProtectBase -{ - public: - ChanProtect(Module* Creator) - : ModeHandler(Creator, "admin", 'a', PARAM_ALWAYS, MODETYPE_CHANNEL), - FounderProtectBase('a',"protected user", 388, 389) - { - ModeHandler::list = true; - levelrequired = PROTECT_VALUE; - m_paramtype = TR_NICK; - } - - void setPrefix(int pfx) - { - prefix = pfx; - } - - - unsigned int GetPrefixRank() - { - return PROTECT_VALUE; - } - - void RemoveMode(Channel* channel, irc::modestacker* stack) - { - FounderProtectBase::RemoveMode(channel, stack); - } - - void RemoveMode(User* user, irc::modestacker* stack) - { - } - - ModResult AccessCheck(User* source, Channel* channel, std::string ¶meter, bool adding) - { - User* theuser = ServerInstance->FindNick(parameter); - // source has +q - if (channel->GetPrefixValue(source) > PROTECT_VALUE) - return MOD_RES_ALLOW; - - // removing own privs? - if (source == theuser && !adding && settings.DeprivSelf) - return MOD_RES_ALLOW; - - if (!adding && FounderProtectBase::CanRemoveOthers(source, channel)) - { - return MOD_RES_PASSTHRU; - } - else - { - source->WriteNumeric(482, "%s %s :You are not a channel founder", source->nick.c_str(), channel->name.c_str()); - return MOD_RES_DENY; - } - } - - ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding) - { - return MODEACTION_ALLOW; - } - - void DisplayList(User* user, Channel* channel) - { - FounderProtectBase::DisplayList(user, channel); - } - -}; - -class ModuleChanProtect : public Module -{ - ChanProtect cp; - ChanFounder cf; - public: - ModuleChanProtect() : cp(this), cf(this) - { - } - - void init() - { - /* Load config stuff */ - LoadSettings(); - settings.booting = false; - - ServerInstance->Modules->AddService(cf); - ServerInstance->Modules->AddService(cp); - - Implementation eventlist[] = { I_OnUserPreJoin }; - ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation)); - } - - void LoadSettings() - { - ConfigTag* tag = ServerInstance->Config->ConfValue("chanprotect"); - - settings.FirstInGetsFounder = tag->getBool("noservices"); - - std::string qpre = tag->getString("qprefix"); - char QPrefix = qpre.empty() ? 0 : qpre[0]; - - std::string apre = tag->getString("aprefix"); - char APrefix = apre.empty() ? 0 : apre[0]; - - if ((APrefix && QPrefix) && APrefix == QPrefix) - throw ModuleException("What the smeg, why are both your +q and +a prefixes the same character?"); - - if (settings.booting) - { - if (APrefix && ServerInstance->Modes->FindPrefix(APrefix) && ServerInstance->Modes->FindPrefix(APrefix) != &cp) - throw ModuleException("Looks like the +a prefix you picked for m_chanprotect is already in use. Pick another."); - - if (QPrefix && ServerInstance->Modes->FindPrefix(QPrefix) && ServerInstance->Modes->FindPrefix(QPrefix) != &cf) - throw ModuleException("Looks like the +q prefix you picked for m_chanprotect is already in use. Pick another."); - - cp.setPrefix(APrefix); - cf.setPrefix(QPrefix); - } - settings.DeprivSelf = tag->getBool("deprotectself", true); - settings.DeprivOthers = tag->getBool("deprotectothers", true); - } - - ModResult OnUserPreJoin(User* user, Channel* chan, const std::string& cname, std::string& privs, const std::string& keygiven) - { - // if the user is the first user into the channel, mark them as the founder, but only if - // the config option for it is set - - if (settings.FirstInGetsFounder && !chan) - privs += 'q'; - - return MOD_RES_PASSTHRU; - } - - Version GetVersion() - { - return Version("Founder and Protect modes (+qa)", VF_VENDOR); - } -}; - -MODULE_INIT(ModuleChanProtect) -- cgit v1.2.3 From f00ffba521c16d0f5419f60c0b4d362b362b76e6 Mon Sep 17 00:00:00 2001 From: Peter Powell Date: Mon, 1 Apr 2013 10:20:52 +0100 Subject: Purge references to the deprecated GetStackedLine method. --- include/hashcomp.h | 10 +--------- src/modules/m_banredirect.cpp | 3 +-- src/modules/m_customprefix.cpp | 2 +- src/modules/m_ojoin.cpp | 2 +- 4 files changed, 4 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/include/hashcomp.h b/include/hashcomp.h index 78d7ee878..b75214181 100644 --- a/include/hashcomp.h +++ b/include/hashcomp.h @@ -280,15 +280,7 @@ namespace irc * mode changes to be obtained. */ int GetStackedLine(std::vector &result, int max_line_size = 360); - - /** deprecated compatability interface - TODO remove */ - int GetStackedLine(std::deque &result, int max_line_size = 360) { - std::vector r; - int n = GetStackedLine(r, max_line_size); - result.clear(); - result.insert(result.end(), r.begin(), r.end()); - return n; - } + }; /** irc::tokenstream reads a string formatted as per RFC1459 and RFC2812. diff --git a/src/modules/m_banredirect.cpp b/src/modules/m_banredirect.cpp index 1a5126e61..512c9b64e 100644 --- a/src/modules/m_banredirect.cpp +++ b/src/modules/m_banredirect.cpp @@ -43,7 +43,6 @@ class BanRedirectEntry }; typedef std::vector BanRedirectList; -typedef std::deque StringDeque; class BanRedirect : public ModeWatcher { @@ -242,7 +241,7 @@ class ModuleBanRedirect : public Module if(redirects) { irc::modestacker modestack(false); - StringDeque stackresult; + std::vector stackresult; std::vector mode_junk; mode_junk.push_back(chan->name); diff --git a/src/modules/m_customprefix.cpp b/src/modules/m_customprefix.cpp index dfc60e082..9bf65b3e8 100644 --- a/src/modules/m_customprefix.cpp +++ b/src/modules/m_customprefix.cpp @@ -59,7 +59,7 @@ class CustomPrefixMode : public ModeHandler std::vector mode_junk; mode_junk.push_back(channel->name); irc::modestacker modestack(false); - std::deque stackresult; + std::vector stackresult; for (UserMembCIter i = cl->begin(); i != cl->end(); i++) { diff --git a/src/modules/m_ojoin.cpp b/src/modules/m_ojoin.cpp index 207be2bb5..e2019e302 100644 --- a/src/modules/m_ojoin.cpp +++ b/src/modules/m_ojoin.cpp @@ -116,7 +116,7 @@ class NetworkPrefix : public ModeHandler std::vector mode_junk; mode_junk.push_back(channel->name); irc::modestacker modestack(false); - std::deque stackresult; + std::vector stackresult; for (UserMembCIter i = cl->begin(); i != cl->end(); i++) { -- cgit v1.2.3