summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgeniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2006-03-01 09:57:02 +0000
committergeniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2006-03-01 09:57:02 +0000
commitaff742a18e9e30c22d93c229836aa37a18bc4c21 (patch)
tree4646f3a3b87edd2c5768b0cc6800b9cf6d681b57
parent3f7afe4d02fd1ed1084c740113605064a415a436 (diff)
BUILD : 1.7.13 (976) BUGS : 396 NOTES : Fixed TS6 issues with handling nick changes and channel modes
git-svn-id: svn://svn.anope.org/anope/trunk@976 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@701 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r--Changes1
-rw-r--r--src/channels.c20
-rw-r--r--src/users.c3
-rw-r--r--version.log6
4 files changed, 24 insertions, 6 deletions
diff --git a/Changes b/Changes
index 56ea0f1e8..4d951dcaa 100644
--- a/Changes
+++ b/Changes
@@ -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