1
0
mirror of https://github.com/anope/anope.git synced 2026-07-01 19:26:40 +02:00

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
This commit is contained in:
jantje_85
2009-07-31 17:55:24 +00:00
parent 113237964d
commit 97a42e4f7d
3 changed files with 9 additions and 3 deletions
+6 -2
View File
@@ -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))