diff options
-rw-r--r-- | Changes | 1 | ||||
-rw-r--r-- | src/channels.c | 20 | ||||
-rw-r--r-- | src/users.c | 3 | ||||
-rw-r--r-- | version.log | 6 |
4 files changed, 24 insertions, 6 deletions
@@ -21,6 +21,7 @@ Provided by Trystan <trystan@nomadirc.net> - 2006 03/01 A Clarity on module loading status numbers. [#435] 03/01 F Crash when not giving user for moduleGetLangString. [#454] 02/23 F Usermatching possible null arg on sstrdup. [ #00] +02/20 F Fixed some TS6 issues with do_cmode() and do_nick() [#396] 02/12 F Double unbanning of in certain conditions. [ #00] 01/25 F va_copy issue for various platforms. [ #00] diff --git a/src/channels.c b/src/channels.c index 8f77d8fdd..f2614b799 100644 --- a/src/channels.c +++ b/src/channels.c @@ -1104,11 +1104,21 @@ void do_cmode(const char *source, int ac, char **av) /* :42XAAAAAO TMODE 1106409026 #ircops +b *!*@*.aol.com */ if (UseTS6 && ircd->ts6) { - alog("chan %s : mode %s : extra %s", av[1], av[2], av[3]); - av[0] = sstrdup(av[1]); - av[1] = sstrdup(av[2]); - av[2] = sstrdup(av[3]); - alog("chan %s : mode %s : extra %s", av[0], av[1], av[2]); + if (*av[0] == '#' || *av[0] == '&') { + if (debug) { + alog("debug: Before TS6 swap: do_cmode() chan %s : mode %s : extra %s", av[1], av[2], av[3]); + } + av[0] = (ac >= 2 ? sstrdup(av[1]) : NULL); + av[1] = (ac >= 3 ? sstrdup(av[2]) : NULL); + av[2] = (ac >= 4 ? sstrdup(av[3]) : NULL); + if (debug) { + alog("debug: After TS swap: do_cmode() chan %s : mode %s : extra %s", av[0], av[1], av[2]); + } + } else { + if (debug) { + alog("debug: TS swap not needed: do_cmode() chan %s : mode %s : extra %s", av[0], av[1], av[2]); + } + } } chan = findchan(av[0]); diff --git a/src/users.c b/src/users.c index c8abab7c3..5d1583b25 100644 --- a/src/users.c +++ b/src/users.c @@ -656,6 +656,9 @@ User *do_nick(const char *source, char *nick, char *username, char *host, /* An old user changing nicks. */ if (UseTS6) user = find_byuid(source); + if (!user) { + user = finduser(source); + } else user = finduser(source); diff --git a/version.log b/version.log index 02c62a75c..b7e82b2ee 100644 --- a/version.log +++ b/version.log @@ -9,10 +9,14 @@ VERSION_MAJOR="1" VERSION_MINOR="7" VERSION_PATCH="13" VERSION_EXTRA="-svn" -VERSION_BUILD="975" +VERSION_BUILD="976" # $Log$ # +# BUILD : 1.7.13 (976) +# BUGS : 396 +# NOTES : Fixed TS6 issues with handling nick changes and channel modes +# # BUILD : 1.7.13 (975) # BUGS : 435 # NOTES : Added messages explaining what module status numbers mean |