]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/mode.cpp
Added support for 472 numeric (Unknown mode char) - typobox43
[user/henk/code/inspircd.git] / src / mode.cpp
index e7ed4badf90ff54eedaa1909f867b148caa91be0..604111e6f8c179ffeb8a7d9254383871f91ef88a 100644 (file)
@@ -1,3 +1,19 @@
+/*       +------------------------------------+
+ *       | Inspire Internet Relay Chat Daemon |
+ *       +------------------------------------+
+ *
+ *  Inspire is copyright (C) 2002-2004 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 "inspircd.h"
 #include "inspircd_io.h"
 #include "inspircd_util.h"
@@ -40,6 +56,8 @@ using namespace std;
 extern int MODCOUNT;
 extern vector<Module*> modules;
 extern vector<ircd_module*> factory;
+extern std::vector<std::string> module_names;
+
 
 extern int LogLevel;
 extern char ServerName[MAXBUF];
@@ -797,7 +815,7 @@ void process_modes(char **parameters,userrec* user,chanrec *chan,int status, int
                                break;
                                
                                default:
-                                       log(DEBUG,"Preprocessing custom mode %c",modechar);
+                                       log(DEBUG,"Preprocessing custom mode %c: modelist: %s",modechar,chan->custom_modes);
                                        string_list p;
                                        p.clear();
                                        if (((!strchr(chan->custom_modes,modechar)) && (!mdir)) || ((strchr(chan->custom_modes,modechar)) && (mdir)))
@@ -825,10 +843,10 @@ void process_modes(char **parameters,userrec* user,chanrec *chan,int status, int
                                                bool handled = false;
                                                if (param>=pcnt)
                                                {
-                                                       log(DEBUG,"Not enough parameters for module-mode %c",modechar);
                                                        // we're supposed to have a parameter, but none was given... so dont handle the mode.
                                                        if (((ModeDefinedOn(modechar,MT_CHANNEL)>0) && (mdir)) || ((ModeDefinedOff(modechar,MT_CHANNEL)>0) && (!mdir))) 
                                                        {
+                                                               log(DEBUG,"Not enough parameters for module-mode %c",modechar);
                                                                handled = true;
                                                                param++;
                                                        }
@@ -884,6 +902,10 @@ void process_modes(char **parameters,userrec* user,chanrec *chan,int status, int
                                                        }
                                                }
                                        }
+                                       else
+                                       {
+                                               WriteServ(user->fd,"472 %s %c :is unknown mode char to me",user->nick,modechar);
+                                       }
                                break;
                                
                        }
@@ -1006,7 +1028,7 @@ bool process_module_umode(char umode, userrec* source, void* dest, bool adding)
                {
                        if (modules[i]->OnExtendedMode(source,(void*)dest,umode,MT_CLIENT,adding,p))
                        {
-                               log(DEBUG,"Module claims umode %c",umode);
+                               log(DEBUG,"Module %s claims umode %c",module_names[i].c_str(),umode);
                                return true;
                        }
                }