summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjantje_85 <jantje_85@5417fbe8-f217-4b02-8779-1006273d7864>2009-07-31 17:55:24 +0000
committerjantje_85 <jantje_85@5417fbe8-f217-4b02-8779-1006273d7864>2009-07-31 17:55:24 +0000
commit97a42e4f7da424b47619496c1ad4bfaef33a7d1f (patch)
tree808ef9c13f4bd6830f7afdb97c0429070b4e5fa2
parent113237964dcc3f93181d42ea0a4ae1ecc1ebe08a (diff)
Fixed a TS6 bug in chan_set_modes() causing restrictions such as secureops to fail if the IRCd sends UUIDs instead of nicks.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2398 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r--Changes1
-rw-r--r--src/channels.c8
-rw-r--r--version.log3
3 files changed, 9 insertions, 3 deletions
diff --git a/Changes b/Changes
index 3a6cbaf88..eb4aa7723 100644
--- a/Changes
+++ b/Changes
@@ -5,6 +5,7 @@ Provided by Han` <Han@mefalcon.org> 2009
07/28 F Updated german language file. [ #00]
07/28 F Added german language support to hs_request.c. [ #00]
07/31 F Fixed anope sending umode change using channels' syntax. [ #00]
+07/31 F Fixed TS6 UUID issue while parsing modechanges. [ #00]
Anope Version 1.8.2
-------------------
diff --git a/src/channels.c b/src/channels.c
index bed260da9..c9b1b8db8 100644
--- a/src/channels.c
+++ b/src/channels.c
@@ -302,8 +302,10 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
}
}
- /* Don't bounce modes from u:lined clients or servers, bug #1004. */
+ /* Don't bounce modes from u:lined clients or servers, bug #1004. *
+ * We can get UUIDs as well.. don not assume nick ~ Viper */
user = finduser(source);
+ if (!user && UseTS6 && ircd->ts6) user = find_byuid(source);
if ((user && is_ulined(user->server->name)) || is_ulined((char *)source))
return;
@@ -317,7 +319,9 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
real_ac--;
real_av++;
for (i = 0; i < real_ac; i++) {
- if ((user = finduser(*real_av)) && is_on_chan(chan, user)) {
+ user = finduser(*real_av);
+ if (!user && UseTS6 && ircd->ts6) user = find_byuid(*real_av);
+ if (user && is_on_chan(chan, user)) {
if (check < 2)
chan_set_correct_modes(user, chan, 0);
else if ((chan->ci->flags) && (chan->ci->flags & CI_SECUREOPS))
diff --git a/version.log b/version.log
index 89190c883..bada4f094 100644
--- a/version.log
+++ b/version.log
@@ -9,9 +9,10 @@ VERSION_MAJOR="1"
VERSION_MINOR="8"
VERSION_PATCH="2"
VERSION_EXTRA="-svn"
-VERSION_BUILD="2397"
+VERSION_BUILD="2398"
# $Log$ # Changes since 1.8.2 Release
+#Revision 2398 - Fixed a TS6 bug in chan_set_modes() causing restrictions such as secureops to fail if the IRCd sends UUIDs instead of nicks.
#Revision 2397 - Fixed a bug in UMODE causing anope to send an extra umode change as a channel mode change.
#Revision 2395 - Added german language support to hs_request.c. Patch provided by Han.
#Revision 2394 - Updated german language file. Update provided by Han.