Skip to content

Commit

Permalink
Someone forgot support for CIDR here
Browse files Browse the repository at this point in the history
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5345 e03df62e-2008-0410-955e-edbf42e46eb7
  • Loading branch information
braindigitalis committed Sep 27, 2006
1 parent b401748 commit f5c3ae7
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 8 deletions.
32 changes: 27 additions & 5 deletions src/modules/m_banexception.cpp
@@ -1,13 +1,28 @@
#include <stdio.h>
/* +------------------------------------+
* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
* InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
* E-mail:
* <brain@chatspike.net>
* <Craig@chatspike.net>
*
* Written by Craig Edwards, Craig McLure, and others.
* This program is free but copyrighted software; see
* the file COPYING for details.
*
* ---------------------------------------------------
*/

#include <string>
#include <vector>
#include "users.h"
#include "channels.h"
#include "modules.h"
#include "mode.h"

#include "inspircd.h"
#include "u_listmode.h"
#include "wildcard.h"

/* $ModDesc: Provides support for the +e channel mode */

Expand All @@ -17,6 +32,7 @@

// The +e channel mode takes a nick!ident@host, glob patterns allowed,
// and if a user matches an entry on the +e list then they can join the channel, overriding any (+b) bans set on them
// Now supports CIDR and IP addresses -- Brain


/** Handles +e channel mode
Expand Down Expand Up @@ -54,17 +70,23 @@ class ModuleBanException : public Module

virtual int OnCheckBan(userrec* user, chanrec* chan)
{
if(chan != NULL)
if (chan != NULL)
{
modelist* list;
chan->GetExt(be->GetInfoKey(), list);

if(list)
if (list)
{
char mask[MAXBUF];
snprintf(mask, MAXBUF, "%s!%s@%s", user->nick, user->ident, user->GetIPString());
for (modelist::iterator it = list->begin(); it != list->end(); it++)
if(ServerInstance->MatchText(user->GetFullRealHost(), it->mask) || ServerInstance->MatchText(user->GetFullHost(), it->mask))
{
if (ServerInstance->MatchText(user->GetFullRealHost(), it->mask) || ServerInstance->MatchText(user->GetFullHost(), it->mask) || (match(mask, it->mask.c_str(), true)))
{
// They match an entry on the list, so let them in.
return 1;
}
}
return 0;
}
// or if there wasn't a list, there can't be anyone on it, so we don't need to do anything.
Expand Down
23 changes: 20 additions & 3 deletions src/modules/m_inviteexception.cpp
@@ -1,11 +1,25 @@
#include <stdio.h>
/* +------------------------------------+
* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
* InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
* E-mail:
* <brain@chatspike.net>
* <Craig@chatspike.net>
*
* Written by Craig Edwards, Craig McLure, and others.
* This program is free but copyrighted software; see
* the file COPYING for details.
*
* ---------------------------------------------------
*/

#include <string>
#include <vector>
#include "users.h"
#include "channels.h"
#include "modules.h"
#include "mode.h"

#include "u_listmode.h"

/* $ModDesc: Provides support for the +I channel mode */
Expand All @@ -17,6 +31,7 @@
* The +I channel mode takes a nick!ident@host, glob patterns allowed,
* and if a user matches an entry on the +I list then they can join the channel,
* ignoring if +i is set on the channel
* Now supports CIDR and IP addresses -- Brain
*/

class InspIRCd* ServerInstance;
Expand Down Expand Up @@ -58,9 +73,11 @@ class ModuleInviteException : public Module
chan->GetExt(ie->GetInfoKey(), list);
if (list)
{
char mask[MAXBUF];
snprintf(mask, MAXBUF, "%s!%s@%s", user->nick, user->ident, user->GetIPString());
for (modelist::iterator it = list->begin(); it != list->end(); it++)
{
if(match(user->GetFullRealHost(), it->mask.c_str()) || match(user->GetFullHost(), it->mask.c_str()))
if(match(user->GetFullRealHost(), it->mask.c_str()) || match(user->GetFullHost(), it->mask.c_str()) || (match(mask, it->mask.c_str(), true)))
{
// They match an entry on the list, so let them in.
return 1;
Expand Down

0 comments on commit f5c3ae7

Please sign in to comment.