diff options
Diffstat (limited to 'include/u_listmode.h')
-rw-r--r-- | include/u_listmode.h | 123 |
1 files changed, 2 insertions, 121 deletions
diff --git a/include/u_listmode.h b/include/u_listmode.h index 7c34605f4..86749b8ab 100644 --- a/include/u_listmode.h +++ b/include/u_listmode.h @@ -49,59 +49,6 @@ typedef std::list<ListItem> modelist; */ typedef std::list<ListLimit> limitlist; -/** A request used to check if a user is on a channel's list or not - */ -class ListModeRequest : public Request -{ - public: - User* user; - std::string literal; - const char extban; - Channel* chan; - - /** Check if a user is on a channel's list. - * The Event::Send() event returns the ban string if the user is on the channel's list, - * or NULL if the user is not on the list. - * @param sender Sending module - * @param target Target module - * @param u User to check against - * @param c Channel to check against - */ - ListModeRequest(Module* sender, Module* target, User* u, Channel* c) : Request(sender, target, "LM_CHECKLIST"), user(u), literal(""), extban(0), chan(c) - { - } - - /** Check if a literal string is on a channel's list, optionally using an extban char. - * The Event::Send() event returns the ban string if the user is on the channel's list, - * or NULL if the user is not on the list. - * @param sender Sending module - * @param target Target module - * @param literalstr String to check against, e.g. "Bob!Bobbertson@weeblshouse" - * @param extbanchar Extended ban character to use for the match, or a null char if not using extban - */ - ListModeRequest(Module* sender, Module* target, std::string literalstr, char extbanchar, Channel* channel) : Request(sender, target, "LM_CHECKLIST_EX"), user(NULL), literal(literalstr), extban(extbanchar), chan(channel) - { - } - - /** Check if a literal string is on a channel's list, optionally using an extban char. - * The Event::Send() event returns the ban string if the user is on the channel's list, - * or NULL if the user is not on the list. - * @param sender Sending module - * @param target Target module - * @param User to check against, e.g. "Bob!Bobbertson@weeblshouse" - * @param extbanchar Extended ban character to use for the match, or a null char if not using extban - */ - ListModeRequest(Module* sender, Module* target, User* u, char extbanchar, Channel* channel) : Request(sender, target, "LM_CHECKLIST_EX"), user(u), literal(""), extban(extbanchar), chan(channel) - { - } - - /** Destructor - */ - ~ListModeRequest() - { - } -}; - /** The base class for list modes, should be inherited. */ class ListModeBase : public ModeHandler @@ -262,8 +209,8 @@ class ListModeBase : public ModeHandler */ virtual void DoImplements(Module* m) { - Implementation eventlist[] = { I_OnChannelDelete, I_OnSyncChannel, I_OnCleanup, I_OnRehash, I_OnRequest }; - ServerInstance->Modules->Attach(eventlist, m, 5); + Implementation eventlist[] = { I_OnChannelDelete, I_OnSyncChannel, I_OnRehash }; + ServerInstance->Modules->Attach(eventlist, m, 3); } /** Handle the list mode. @@ -462,72 +409,6 @@ class ListModeBase : public ModeHandler virtual void TellNotSet(User*, Channel*, std::string&) { } - - virtual const char* DoOnRequest(Request* request) - { - ListModeRequest* LM = (ListModeRequest*)request; - if (strcmp("LM_CHECKLIST", request->GetId()) == 0) - { - modelist* mlist = extItem.get(LM->chan); - if (mlist) - { - std::string mask = LM->user->nick + "!" + LM->user->ident + "@" + LM->user->GetIPString(); - for (modelist::iterator it = mlist->begin(); it != mlist->end(); ++it) - { - if (InspIRCd::Match(LM->user->GetFullRealHost(), it->mask) || InspIRCd::Match(LM->user->GetFullHost(), it->mask) || (InspIRCd::MatchCIDR(mask, it->mask))) - return it->mask.c_str(); - } - return NULL; - } - } - else if (strcmp("LM_CHECKLIST_EX", request->GetId()) == 0) - { - modelist* mlist = extItem.get(LM->chan); - - if (mlist) - { - if (LM->user) - { - LM->literal = LM->user->nick + "!" + LM->user->ident + "@" + LM->user->GetIPString(); - } - - for (modelist::iterator it = mlist->begin(); it != mlist->end(); it++) - { - if (LM->extban && it->mask.length() > 1 && it->mask[0] == LM->extban && it->mask[1] == ':') - { - std::string ext = it->mask.substr(2); - if (LM->user) - { - if (InspIRCd::Match(LM->user->GetFullRealHost(), ext) || InspIRCd::Match(LM->user->GetFullHost(), ext) || (InspIRCd::MatchCIDR(LM->literal, ext))) - { - return it->mask.c_str(); - } - } - else if (InspIRCd::Match(LM->literal, ext)) - { - return it->mask.c_str(); - } - } - else - { - if (LM->user) - { - if (InspIRCd::Match(LM->user->GetFullRealHost(), it->mask) || InspIRCd::Match(LM->user->GetFullHost(), it->mask) || (InspIRCd::MatchCIDR(LM->literal, it->mask))) - { - return it->mask.c_str(); - } - } - else if (InspIRCd::Match(LM->literal, it->mask)) - { - return it->mask.c_str(); - } - } - } - } - } - return NULL; - } - }; #endif |