]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Add /stats s
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Fri, 10 Nov 2006 18:58:54 +0000 (18:58 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Fri, 10 Nov 2006 18:58:54 +0000 (18:58 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5674 e03df62e-2008-0410-955e-edbf42e46eb7

src/modules/extra/m_filter_pcre.cpp
src/modules/m_filter.cpp
src/modules/m_filter.h

index a7829871f18569416a587c36cb733dce6de2d1ae..0991c7def9c19bfa7b678a5494a01f47fe58b751 100644 (file)
@@ -149,6 +149,20 @@ class ModuleFilterPCRE : public FilterBase
                        }
                }
        }
+
+       virtual int OnStats(char symbol, userrec* user, string_list &results)
+       {
+               if (symbol == 's')
+               {
+                       std::string sn = ServerInstance->Config->ServerName;
+                       for (std::vector<PCREFilter>::iterator i = filters.begin(); i != filters.end(); i++)
+                       {
+                               results.push_back(sn+" 223 "+user->nick+" :"+i->freeform+" "+i->action+" "+ConvToStr(i->gline_time)+" :"+i->reason);
+                       }
+                       return 1;
+               }
+               return 0;
+       }
 };
        
 
index b0ace124e6f9a0182cbba164f1b4f34313b1aa1f..30e7c2b050bc44ad375d24ce666714248b76f964 100644 (file)
@@ -121,6 +121,20 @@ class ModuleFilter : public FilterBase
                }
                DELETE(MyConf);
        }
+
+       virtual int OnStats(char symbol, userrec* user, string_list &results)
+       {
+               if (symbol == 's')
+               {
+                       std::string sn = ServerInstance->Config->ServerName;
+                       for (filter_t::iterator n = filters.begin(); n != filters.end(); n++)
+                       {
+                               results.push_back(sn+" 223 "+user->nick+" :"+n->second->freeform+" "+n->second->action+" "+ConvToStr(n->second->gline_time)+" :"+n->second->reason);
+                       }
+                       return 1;
+               }
+               return 0;
+       }
 };
 
 // stuff down here is the module-factory stuff. For basic modules you can ignore this.
index 0b32ba00fdf735b262b6c732e6a343d20ff95d28..3bccf2b2b8b3cdf7b2951f195d41421e3733ba3c 100644 (file)
@@ -61,6 +61,8 @@ class FilterBase : public Module
        FilterResult DecodeFilter(const std::string &data);
        virtual void OnSyncOtherMetaData(Module* proto, void* opaque);
        virtual void OnDecodeMetaData(int target_type, void* target, const std::string &extname, const std::string &extdata);
+
+       virtual int OnStats(char symbol, userrec* user, string_list &results);
 };
 
 class cmd_filter : public command_t
@@ -126,7 +128,7 @@ class cmd_filter : public command_t
                                if (result.first)
                                {
                                        user->WriteServ("NOTICE %s :*** Added filter '%s', type '%s%s%s', reason: '%s'", user->nick, freeform.c_str(),
-                                                       type.c_str(), (duration ? " duration: " : ""), (duration ? ConvToStr(duration).c_str() : ""),
+                                                       type.c_str(), (duration ? " duration: " : ""), (duration ? parameters[2] : ""),
                                                        reason.c_str());
                                        return CMD_SUCCESS;
                                }
@@ -161,9 +163,14 @@ FilterBase::~FilterBase()
 {
 }
 
+int FilterBase::OnStats(char symbol, userrec* user, string_list &results)
+{
+       return 0;
+}
+
 void FilterBase::Implements(char* List)
 {
-       List[I_OnSyncOtherMetaData] = List[I_OnDecodeMetaData] = List[I_OnUserPreMessage] = List[I_OnUserPreNotice] = List[I_OnRehash] = 1;
+       List[I_OnStats] = List[I_OnSyncOtherMetaData] = List[I_OnDecodeMetaData] = List[I_OnUserPreMessage] = List[I_OnUserPreNotice] = List[I_OnRehash] = 1;
 }
 
 int FilterBase::OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status)