gcfavorites / dircproxy

Automatically exported from code.google.com/p/dircproxy
GNU General Public License v2.0
0 stars 0 forks source link

dircproxy handling of umodes screws up for umodes with a parameter (i.e. snomask) #65

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
On network that use an umode with a parameter dircproxy does not handle 
these correctly.

For instance when setting: "-ix+IWsn +kKlodxtfgj" (here "+kKlodxtfgj" is a 
parameter to +n (InspIRCd)).

Dircprocy does not understand the parameter and just proceeds to try and 
add the parameter to the list of umodes. As I understand the code it is 
actually specifically instructed to do this for every parameter (why!?). 
This results in a stored umode of something like "+IWsnkKlodxtfgj" which 
is then sent to the client upon reattach.

I think ideally dircproxy should support parameters to umodes and store 
the umodes as a list of umodes+their parameter instead of a string.

Quick fix (makes dircproxy ignore parameters to umodes):

--- ./dircproxy-1.2.0-RC1/src/irc_server.c      2009-01-15 
21:27:28.000000000 +0100
+++ ./dircproxy-1.2.0-RC1+raphmod-0.2/src/irc_server.c  2009-03-19 
14:45:42.000000000 +0100
@@ -912,13 +940,13 @@

       if (!irc_strcasecmp(p->nickname, msg.params[0])) {
         /* Personal mode change */
-        int param;
+        //int param;

         irclog_log(p, IRC_LOG_MODE, IRC_LOGFILE_SERVER, p->servername,
                    "Your mode was changed: %s", msg.paramstarts[1]);  

-        for (param = 1; param < msg.numparams; param++)
-          ircclient_change_mode(p, msg.params[param]); 
+//        for (param = 1; param < msg.numparams; param++)
+          ircclient_change_mode(p, msg.params[1]);

         /* Check for refuse modes */
         if (p->modes && p->conn_class->refuse_modes &&

Original issue reported on code.google.com by raphidae on 19 Mar 2009 at 1:50

GoogleCodeExporter commented 9 years ago
I registered another account for googlecode (this one).

Original comment by r...@mediamonks.net on 19 Mar 2009 at 2:31