]> jfr.im git - irc/quakenet/snircd-patchqueue.git/blame - freetargetcheckaftermodechecks.patch
whonoidle: hide idle time of users with mode +I in non-HIS setup in WHO
[irc/quakenet/snircd-patchqueue.git] / freetargetcheckaftermodechecks.patch
CommitLineData
82236955 1move free target check after the snircd chanmode checks - dont use up a free target when the message never had a chance
2
3diff -r 03afb3a4d053 ircd/ircd_relay.c
4--- a/ircd/ircd_relay.c Sat Mar 20 14:53:39 2010 +0100
5+++ b/ircd/ircd_relay.c Sat Mar 20 15:03:03 2010 +0100
6@@ -103,9 +103,6 @@
7 send_reply(sptr, ERR_CANNOTSENDTOCHAN, chptr->chname);
8 return;
9 }
10- if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
11- check_target_limit(sptr, chptr, chptr->chname, 0))
12- return;
13
14 /* +T check */
15 if ((chptr->mode.mode & MODE_NOMULTITARGET) && (targetc > 1)) {
16@@ -128,6 +125,10 @@
17 return;
18 }
19
20+ if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
21+ check_target_limit(sptr, chptr, chptr->chname, 0))
22+ return;
23+
24 RevealDelayedJoinIfNeeded(sptr, chptr);
25 sendcmdto_channel_butone(sptr, CMD_PRIVATE, chptr, cli_from(sptr),
26 SKIP_DEAF | SKIP_BURST, "%H :%s", chptr, text);
27@@ -156,10 +157,6 @@
28 if (!client_can_send_to_channel(sptr, chptr, 0))
29 return;
30
31- if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
32- check_target_limit(sptr, chptr, chptr->chname, 0))
33- return;
34-
35 if ((chptr->mode.mode & MODE_NONOTICE))
36 return;
37
38@@ -178,6 +175,10 @@
39 if (*ch++==1)
40 return;
41
42+ if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
43+ check_target_limit(sptr, chptr, chptr->chname, 0))
44+ return;
45+
46 RevealDelayedJoinIfNeeded(sptr, chptr);
47 sendcmdto_channel_butone(sptr, CMD_NOTICE, chptr, cli_from(sptr),
48 SKIP_DEAF | SKIP_BURST, "%H :%s", chptr, text);
49diff -r 03afb3a4d053 ircd/m_wallchops.c
50--- a/ircd/m_wallchops.c Sat Mar 20 14:53:39 2010 +0100
51+++ b/ircd/m_wallchops.c Sat Mar 20 15:03:03 2010 +0100
52@@ -118,9 +118,6 @@
53
54 if (IsChannelName(parv[1]) && (chptr = FindChannel(parv[1]))) {
55 if (client_can_send_to_channel(sptr, chptr, 0) && !(chptr->mode.mode & MODE_NONOTICE)) {
56- if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
57- check_target_limit(sptr, chptr, chptr->chname, 0))
58- return 0;
59
60 /* +cC checks */
61 if (chptr->mode.mode & MODE_NOCOLOUR)
62@@ -135,6 +132,10 @@
63 return 0;
64 }
65
66+ if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
67+ check_target_limit(sptr, chptr, chptr->chname, 0))
68+ return 0;
69+
70 RevealDelayedJoinIfNeeded(sptr, chptr);
71 sendcmdto_channel_butone(sptr, CMD_WALLCHOPS, chptr, cptr,
72 SKIP_DEAF | SKIP_BURST | SKIP_NONOPS,
73diff -r 03afb3a4d053 ircd/m_wallvoices.c
74--- a/ircd/m_wallvoices.c Sat Mar 20 14:53:39 2010 +0100
75+++ b/ircd/m_wallvoices.c Sat Mar 20 15:03:03 2010 +0100
76@@ -117,9 +117,6 @@
77
78 if (IsChannelName(parv[1]) && (chptr = FindChannel(parv[1]))) {
79 if (client_can_send_to_channel(sptr, chptr, 0) && !(chptr->mode.mode & MODE_NONOTICE)) {
80- if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
81- check_target_limit(sptr, chptr, chptr->chname, 0))
82- return 0;
83
84 /* +cC checks */
85 if (chptr->mode.mode & MODE_NOCOLOUR)
86@@ -134,6 +131,10 @@
87 return 0;
88 }
89
90+ if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
91+ check_target_limit(sptr, chptr, chptr->chname, 0))
92+ return 0;
93+
94 RevealDelayedJoinIfNeeded(sptr, chptr);
95 sendcmdto_channel_butone(sptr, CMD_WALLVOICES, chptr, cptr,
96 SKIP_DEAF | SKIP_BURST | SKIP_NONVOICES,