]> jfr.im git - irc/quakenet/snircd-patchqueue.git/blob - delayedjoinXusersnotrevealed.patch
Remove topic_reveal.patch. This has been fixed in IRCU and ircu patch is correct...
[irc/quakenet/snircd-patchqueue.git] / delayedjoinXusersnotrevealed.patch
1 # HG changeset patch
2 # Parent aaa3a5dc576b78c7da4518c794f81a738fb0edd0
3
4 diff -r aaa3a5dc576b ircd/channel.c
5 --- a/ircd/channel.c Wed Jul 17 21:18:06 2013 +0100
6 +++ b/ircd/channel.c Wed Jul 17 21:20:09 2013 +0100
7 @@ -691,6 +691,13 @@
8 RevealDelayedJoin(member);
9 return 1;
10 }
11 +
12 + /* +X user can always speak on the channel */
13 + if (IsXtraOp(member->user)) {
14 + if (IsDelayedJoin(member) && reveal)
15 + RevealDelayedJoin(member);
16 + return 1;
17 + }
18
19 /* Discourage using the Apass to get op. They should use the Upass. */
20 if (IsChannelManager(member) && member->channel->mode.apass[0])
21 @@ -743,7 +750,7 @@
22 /*
23 * Servers can always speak on channels.
24 */
25 - if (IsServer(cptr) || IsXtraOp(cptr))
26 + if (IsServer(cptr))
27 return 1;
28
29 member = find_channel_member(cptr, chptr);
30 @@ -753,7 +760,9 @@
31 * or +m (moderated).
32 */
33 if (!member) {
34 - if ((chptr->mode.mode & (MODE_NOPRIVMSGS|MODE_MODERATED)) ||
35 + if (IsXtraOp(cptr))
36 + return 1;
37 + else if ((chptr->mode.mode & (MODE_NOPRIVMSGS|MODE_MODERATED)) ||
38 ((chptr->mode.mode & (MODE_REGONLY|MODE_MODERATENOREG)) && !IsAccount(cptr)))
39 return 0;
40 else