]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_dccallow.cpp
Convert more modules
[user/henk/code/inspircd.git] / src / modules / m_dccallow.cpp
index bed359e3c0aa4247bdd956eea76dea7ba08e7567..817057b8719d0776a02140d9f9106d557e2f6f9c 100644 (file)
  * ---------------------------------------------------
  */
 
-#include <stdio.h>
-#include <vector>
-#include <string.h>
+#include "inspircd.h"
 #include "users.h"
 #include "channels.h"
 #include "modules.h"
-#include "inspircd.h"
 
 /* $ModDesc: Povides support for the /DCCALLOW command */
 
@@ -164,7 +161,7 @@ class cmd_dccallow : public command_t
                                        long length;
                                        if (pcnt < 2)
                                        {
-                                               length = ServerInstance->Duration(default_length.c_str());
+                                               length = ServerInstance->Duration(default_length);
                                        } 
                                        else if (!atoi(parameters[1]))
                                        {
@@ -190,7 +187,8 @@ class cmd_dccallow : public command_t
                                        {
                                                user->WriteServ("994 %s %s :Added %s to DCCALLOW list for this session", user->nick, user->nick, target->nick);
                                        }
-                               
+
+                                       /* route it. */
                                        return CMD_SUCCESS;
                                }
                        }
@@ -253,7 +251,7 @@ class ModuleDCCAllow : public Module
  public:
 
        ModuleDCCAllow(InspIRCd* Me)
-               : Module::Module(Me)
+               : Module(Me)
        {
                Conf = new ConfigReader(ServerInstance);
                mycommand = new cmd_dccallow(ServerInstance);
@@ -272,7 +270,7 @@ class ModuleDCCAllow : public Module
                Conf = new ConfigReader(ServerInstance);
        }
 
-       virtual void OnUserQuit(userrec* user, const std::string &reason)
+       virtual void OnUserQuit(userrec* user, const std::string &reason, const std::string &oper_message)
        {
                dccallowlist* dl;
        
@@ -317,7 +315,6 @@ class ModuleDCCAllow : public Module
                
                        if ((text.length()) && (text[0] == '\1'))
                        {
-
                                Expire();
 
                                // :jamie!jamie@test-D4457903BA652E0F.silverdream.org PRIVMSG eimaj :DCC SEND m_dnsbl.cpp 3232235786 52650 9676
@@ -327,24 +324,17 @@ class ModuleDCCAllow : public Module
                                {
                                        u->GetExt("dccallow_list", dl);
                
-                                       if (dl)
+                                       if (dl && dl->size())
                                        {
-                                               if (dl->size())
-                                               {
-                                                       for (dccallowlist::const_iterator iter = dl->begin(); iter != dl->end(); ++iter)
-                                                       {
-                                                               if (ServerInstance->MatchText(user->GetFullHost(), iter->hostmask))
-                                                               {
-                                                                       return 0;
-                                                               }
-                                                       }
-                                               }
+                                               for (dccallowlist::const_iterator iter = dl->begin(); iter != dl->end(); ++iter)
+                                                       if (ServerInstance->MatchText(user->GetFullHost(), iter->hostmask))
+                                                               return 0;
                                        }
                
                                        // tokenize
-                                       stringstream ss(text);
+                                       std::stringstream ss(text);
                                        std::string buf;
-                                       vector<string> tokens;
+                                       std::vector<std::string> tokens;
                
                                        while (ss >> buf)
                                                tokens.push_back(buf);
@@ -376,6 +366,7 @@ class ModuleDCCAllow : public Module
                                                        user->WriteServ("NOTICE %s :The user %s is not accepting DCC SENDs from you. Your file %s was not sent.", user->nick, u->nick, filename.c_str());
                                                        u->WriteServ("NOTICE %s :%s (%s@%s) attempted to send you a file named %s, which was blocked.", u->nick, user->nick, user->ident, user->dhost, filename.c_str());
                                                        u->WriteServ("NOTICE %s :If you trust %s and were expecting this, you can type /DCCALLOW HELP for information on the DCCALLOW system.", u->nick, user->nick);
+                                                       return 1;
                                                }
                                        }
                                        else if ((type == "CHAT") && (blockchat))
@@ -383,8 +374,8 @@ class ModuleDCCAllow : public Module
                                                user->WriteServ("NOTICE %s :The user %s is not accepting DCC CHAT requests from you.", user->nick, u->nick);
                                                u->WriteServ("NOTICE %s :%s (%s@%s) attempted to initiate a DCC CHAT session, which was blocked.", u->nick, user->nick, user->ident, user->dhost);
                                                u->WriteServ("NOTICE %s :If you trust %s and were expecting this, you can type /DCCALLOW HELP for information on the DCCALLOW system.", u->nick, user->nick);
+                                               return 1;
                                        }
-                                       return 1;
                                }
                        }
                }
@@ -513,7 +504,7 @@ class ModuleDCCAllowFactory : public ModuleFactory
 
 };
 
-extern "C" void * init_module( void )
+extern "C" DllExport void * init_module( void )
 {
        return new ModuleDCCAllowFactory;
 }