]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/command_parse.cpp
/who tidyup - needs QA'ing
[user/henk/code/inspircd.git] / src / command_parse.cpp
index cb43df1a1bb15eb25896b061b450d6b03139cfbe..f84df33427dfdabd5af31704fcba02783d0919d9 100644 (file)
@@ -38,12 +38,10 @@ int InspIRCd::OperPassCompare(const char* data,const char* input, int tagnumber)
 {
        int MOD_RESULT = 0;
        FOREACH_RESULT_I(this,I_OnOperCompare,OnOperCompare(data, input, tagnumber))
-       Log(DEBUG,"OperPassCompare: %d",MOD_RESULT);
        if (MOD_RESULT == 1)
                return 0;
        if (MOD_RESULT == -1)
                return 1;
-       Log(DEBUG,"strcmp fallback: '%s' '%s' %d",data,input,strcmp(data,input));
        return strcmp(data,input);
 }
 
@@ -106,89 +104,6 @@ long InspIRCd::Duration(const char* str)
        return total;
 }
 
-/* All other ircds when doing this check usually just look for a string of *@* or *. We're smarter than that, though. */
-
-bool InspIRCd::HostMatchesEveryone(const std::string &mask, userrec* user)
-{
-       char buffer[MAXBUF];
-       char itrigger[MAXBUF];
-       long matches = 0;
-       
-       if (!Config->ConfValue(Config->config_data, "insane","trigger", 0, itrigger, MAXBUF))
-               strlcpy(itrigger,"95.5",MAXBUF);
-       
-       if (Config->ConfValueBool(Config->config_data, "insane","hostmasks", 0))
-               return false;
-       
-       for (user_hash::iterator u = clientlist.begin(); u != clientlist.end(); u++)
-       {
-               strlcpy(buffer,u->second->ident,MAXBUF);
-               charlcat(buffer,'@',MAXBUF);
-               strlcat(buffer,u->second->host,MAXBUF);
-               if (match(buffer,mask.c_str()))
-                       matches++;
-       }
-       float percent = ((float)matches / (float)clientlist.size()) * 100;
-       if (percent > (float)atof(itrigger))
-       {
-               WriteOpers("*** \2WARNING\2: %s tried to set a G/K/E line mask of %s, which covers %.2f%% of the network!",user->nick,mask.c_str(),percent);
-               return true;
-       }
-       return false;
-}
-
-bool InspIRCd::IPMatchesEveryone(const std::string &ip, userrec* user)
-{
-       char itrigger[MAXBUF];
-       long matches = 0;
-       
-       if (!Config->ConfValue(Config->config_data, "insane","trigger",0,itrigger,MAXBUF))
-               strlcpy(itrigger,"95.5",MAXBUF);
-       
-       if (Config->ConfValueBool(Config->config_data, "insane","ipmasks",0))
-               return false;
-       
-       for (user_hash::iterator u = clientlist.begin(); u != clientlist.end(); u++)
-       {
-               if (match(u->second->GetIPString(),ip.c_str(),true))
-                       matches++;
-       }
-       
-       float percent = ((float)matches / (float)clientlist.size()) * 100;
-       if (percent > (float)atof(itrigger))
-       {
-               WriteOpers("*** \2WARNING\2: %s tried to set a Z line mask of %s, which covers %.2f%% of the network!",user->nick,ip.c_str(),percent);
-               return true;
-       }
-       return false;
-}
-
-bool InspIRCd::NickMatchesEveryone(const std::string &nick, userrec* user)
-{
-       char itrigger[MAXBUF];
-       long matches = 0;
-       
-       if (!Config->ConfValue(Config->config_data, "insane","trigger",0,itrigger,MAXBUF))
-               strlcpy(itrigger,"95.5",MAXBUF);
-       
-       if (Config->ConfValueBool(Config->config_data, "insane","nickmasks",0))
-               return false;
-
-       for (user_hash::iterator u = clientlist.begin(); u != clientlist.end(); u++)
-       {
-               if (match(u->second->nick,nick.c_str()))
-                       matches++;
-       }
-       
-       float percent = ((float)matches / (float)clientlist.size()) * 100;
-       if (percent > (float)atof(itrigger))
-       {
-               WriteOpers("*** \2WARNING\2: %s tried to set a Q line mask of %s, which covers %.2f%% of the network!",user->nick,nick.c_str(),percent);
-               return true;
-       }
-       return false;
-}
-
 /* LoopCall is used to call a command classes handler repeatedly based on the contents of a comma seperated list.
  * There are two overriden versions of this method, one of which takes two potential lists and the other takes one.
  * We need a version which takes two potential lists for JOIN, because a JOIN may contain two lists of items at once,
@@ -238,8 +153,7 @@ int CommandParser::LoopCall(userrec* user, command_t* CommandObj, const char** p
                        new_parameters[splithere] = item.c_str();
                        new_parameters[extra] = extrastuff.c_str();
 
-                       if (CommandObj->Handle(new_parameters,pcnt,user) == CMD_USER_DELETED)
-                               return 1;
+                       CommandObj->Handle(new_parameters,pcnt,user);
 
                        dupes[item.c_str()] = true;
                }
@@ -258,7 +172,6 @@ int CommandParser::LoopCall(userrec* user, command_t* CommandObj, const char** p
        std::map<irc::string, bool> dupes;
 
        /* Only one commasepstream here */
-       ServerInstance->Log(DEBUG,"Splitting '%s'",parameters[splithere]);
        irc::commasepstream items1(parameters[splithere]);
        std::string item = "*";
        unsigned int max = 0;
@@ -284,8 +197,7 @@ int CommandParser::LoopCall(userrec* user, command_t* CommandObj, const char** p
                         * record out from under us (e.g. if we /kill a comma sep list, and we're
                         * in that list ourselves) abort if we're gone.
                         */
-                       if (CommandObj->Handle(new_parameters,pcnt,user) == CMD_USER_DELETED)
-                               return 1;
+                       CommandObj->Handle(new_parameters,pcnt,user);
 
                        dupes[item.c_str()] = true;
                }
@@ -430,10 +342,7 @@ void CommandParser::ProcessCommand(userrec *user, std::string &cmd)
                                 */
                                CmdResult result = cm->second->Handle(command_p,items,user);
 
-                               if (result != CMD_USER_DELETED)
-                               {
-                                       FOREACH_MOD(I_OnPostCommand,OnPostCommand(command, command_p, items, user, result,cmd));
-                               }
+                               FOREACH_MOD(I_OnPostCommand,OnPostCommand(command, command_p, items, user, result,cmd));
                                return;
                        }
                        else
@@ -493,8 +402,11 @@ void CommandParser::ProcessBuffer(std::string &buffer,userrec *user)
 
        if (buffer.length())
        {
-               ServerInstance->Log(DEBUG,"CMDIN: %s %s",user->nick,buffer.c_str());
-               this->ProcessCommand(user,buffer);
+               if (!user->muted)
+               {
+                       ServerInstance->Log(DEBUG,"-> :%s %s",user->nick,buffer.c_str());
+                       this->ProcessCommand(user,buffer);
+               }
        }
 }
 
@@ -503,10 +415,7 @@ bool CommandParser::CreateCommand(command_t *f, void* so_handle)
        if (so_handle)
        {
                if (RFCCommands.find(f->command) == RFCCommands.end())
-               {
                        RFCCommands[f->command] = so_handle;
-                       ServerInstance->Log(DEFAULT,"Monitoring RFC-specified reloadable command at %8x",so_handle);
-               }
                else
                {
                        ServerInstance->Log(DEFAULT,"ERK! Somehow, we loaded a cmd_*.so file twice! Only the first instance is being recorded.");
@@ -518,7 +427,6 @@ bool CommandParser::CreateCommand(command_t *f, void* so_handle)
        if (cmdlist.find(f->command) == cmdlist.end())
        {
                cmdlist[f->command] = f;
-               ServerInstance->Log(DEBUG,"Added command %s (%lu parameters)",f->command.c_str(),(unsigned long)f->min_params);
                return true;
        }
        else return false;
@@ -600,8 +508,6 @@ void CommandParser::LoadCommand(const char* name)
        command_t* (*cmd_factory_func)(InspIRCd*);
 
        snprintf(filename, MAXBUF, "%s/%s", LIBRARYDIR, name);
-       ServerInstance->Log(DEBUG,"Load command: %s", filename);
-
        h = dlopen(filename, RTLD_NOW | RTLD_GLOBAL);
 
        if (!h)