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
Original issue reported on code.google.com by
raphidae
on 19 Mar 2009 at 1:50