summaryrefslogtreecommitdiff
path: root/src/modules/m_safelist.cpp
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-30 09:03:03 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-30 09:03:03 +0000
commitd54fd9b1e6b31f69332a9241b5f17330c0ad61e0 (patch)
tree4f71ce0d23547f7e634f3e8a45982db201c8f8b1 /src/modules/m_safelist.cpp
parent88315e8f8f0128325e17fce1fa942cc02c6e0e38 (diff)
Wahhhhhhhhhhhh bwahahaha. Mass commit to tidy up tons of messy include lists
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5080 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_safelist.cpp')
-rw-r--r--src/modules/m_safelist.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/modules/m_safelist.cpp b/src/modules/m_safelist.cpp
index 1f7f2742f..831ddcac5 100644
--- a/src/modules/m_safelist.cpp
+++ b/src/modules/m_safelist.cpp
@@ -19,10 +19,9 @@ using namespace std;
#include "users.h"
#include "channels.h"
#include "modules.h"
-
-#include <vector>
#include "configreader.h"
#include "inspircd.h"
+#include "wildcard.h"
class ListData : public classbase
{
@@ -30,9 +29,10 @@ class ListData : public classbase
long list_start;
long list_position;
bool list_ended;
+ const std::string glob;
ListData() : list_start(0), list_position(0), list_ended(false) {};
- ListData(long pos, time_t t) : list_start(t), list_position(pos), list_ended(false) {};
+ ListData(long pos, time_t t, const std::string &pattern) : list_start(t), list_position(pos), list_ended(false), glob(pattern) {};
};
/* $ModDesc: A module overriding /list, and making it safe - stop those sendq problems. */
@@ -52,6 +52,7 @@ class ListTimer : public InspTimer
char buffer[MAXBUF];
chanrec *chan;
InspIRCd* ServerInstance;
+ const std::string glob;
public:
@@ -99,6 +100,8 @@ class ListTimer : public InspTimer
chan = ServerInstance->GetChannelIndex(ld->list_position);
/* spool details */
bool has_user = (chan && chan->HasUser(u));
+ if (!match(chan->name, ld->glob.c_str()))
+ continue;
if ((chan) && (((!(chan->modes[CM_PRIVATE])) && (!(chan->modes[CM_SECRET]))) || (has_user)))
{
long users = chan->GetUserCounter();
@@ -210,7 +213,7 @@ class ModuleSafeList : public Module
/*
* start at channel 0! ;)
*/
- ld = new ListData(0,ServerInstance->Time());
+ ld = new ListData(0,ServerInstance->Time(), pcnt ? parameters[0] : "*");
user->Extend("safelist_cache", ld);
listusers.push_back(user);
@@ -263,11 +266,8 @@ class ModuleSafeList : public Module
}
};
-
-
-
-/******************************************************************************************************/
-
+
+
class ModuleSafeListFactory : public ModuleFactory
{
public: