1 move free target check after the snircd chanmode checks - dont use up a free target when the message never had a chance
3 diff -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
7 send_reply(sptr, ERR_CANNOTSENDTOCHAN, chptr->chname);
10 - if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
11 - check_target_limit(sptr, chptr, chptr->chname, 0))
15 if ((chptr->mode.mode & MODE_NOMULTITARGET) && (targetc > 1)) {
20 + if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
21 + check_target_limit(sptr, chptr, chptr->chname, 0))
24 RevealDelayedJoinIfNeeded(sptr, chptr);
25 sendcmdto_channel_butone(sptr, CMD_PRIVATE, chptr, cli_from(sptr),
26 SKIP_DEAF | SKIP_BURST, "%H :%s", chptr, text);
28 if (!client_can_send_to_channel(sptr, chptr, 0))
31 - if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
32 - check_target_limit(sptr, chptr, chptr->chname, 0))
35 if ((chptr->mode.mode & MODE_NONOTICE))
42 + if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
43 + check_target_limit(sptr, chptr, chptr->chname, 0))
46 RevealDelayedJoinIfNeeded(sptr, chptr);
47 sendcmdto_channel_butone(sptr, CMD_NOTICE, chptr, cli_from(sptr),
48 SKIP_DEAF | SKIP_BURST, "%H :%s", chptr, text);
49 diff -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
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))
61 if (chptr->mode.mode & MODE_NOCOLOUR)
66 + if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
67 + check_target_limit(sptr, chptr, chptr->chname, 0))
70 RevealDelayedJoinIfNeeded(sptr, chptr);
71 sendcmdto_channel_butone(sptr, CMD_WALLCHOPS, chptr, cptr,
72 SKIP_DEAF | SKIP_BURST | SKIP_NONOPS,
73 diff -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
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))
85 if (chptr->mode.mode & MODE_NOCOLOUR)
90 + if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
91 + check_target_limit(sptr, chptr, chptr->chname, 0))
94 RevealDelayedJoinIfNeeded(sptr, chptr);
95 sendcmdto_channel_butone(sptr, CMD_WALLVOICES, chptr, cptr,
96 SKIP_DEAF | SKIP_BURST | SKIP_NONVOICES,