]> jfr.im git - irc/quakenet/snircd-patchqueue.git/blob - chanopaccountabilityforkickdelayedjoin.patch
whonoidle: hide idle time of users with mode +I in non-HIS setup in WHO
[irc/quakenet/snircd-patchqueue.git] / chanopaccountabilityforkickdelayedjoin.patch
1 kicking of a delayedjoin user by a chanop is shown to ALL chanops on the channel, for accountability reasons (instead of only to source and victim)
2
3 diff -r c4d8c0416ae6 ircd/m_kick.c
4 --- a/ircd/m_kick.c Sun Jan 11 22:38:38 2009 +0000
5 +++ b/ircd/m_kick.c Sun Jan 11 22:38:39 2009 +0000
6 @@ -176,11 +176,17 @@
7
8 if (IsDelayedJoin(member)) {
9 /* If it's a delayed join, only send the KICK to the person doing
10 - * the kicking and the victim */
11 + * the kicking and the victim
12 + * ok, but accountability among chanops:
13 + * a chanop kicks the victim, tell the other chanops about his action,
14 + * join the victim to the channel, followed by the kick
15 + */
16 if (MyUser(who))
17 sendcmdto_one(sptr, CMD_KICK, who, "%H %C :%s", chptr, who, comment);
18 - sendcmdto_one(who, CMD_JOIN, sptr, "%H", chptr);
19 - sendcmdto_one(sptr, CMD_KICK, sptr, "%H %C :%s", chptr, who, comment);
20 + sendcmdto_channel_butserv_butone(who, CMD_JOIN, chptr, NULL, SKIP_NONOPS,
21 + "%H", chptr);
22 + sendcmdto_channel_butserv_butone(sptr, CMD_KICK, chptr, NULL, SKIP_NONOPS,
23 + "%H %C :%s", chptr, who, comment);
24 CheckDelayedJoins(chptr);
25 } else
26 sendcmdto_channel_butserv_butone((IsServer(sptr) ? &me : sptr), CMD_KICK, chptr, NULL, 0, "%H %C :%s", chptr, who,
27 @@ -270,6 +276,16 @@
28
29 if (member) { /* and tell the channel about it */
30 if (IsDelayedJoin(member)) {
31 + /* accountability among chanops:
32 + * a chanop kicks the victim, tell the other chanops about his action,
33 + * join the victim to the channel, followed by the kick
34 + */
35 + if (IsUser(sptr)) {
36 + sendcmdto_channel_butserv_butone(who, CMD_JOIN, chptr, NULL, SKIP_NONOPS,
37 + "%H", chptr);
38 + sendcmdto_channel_butserv_butone(sptr, CMD_KICK, chptr, NULL, SKIP_NONOPS,
39 + "%H %C :%s", chptr, who, comment);
40 + }
41 if (MyUser(who))
42 sendcmdto_one(IsServer(sptr) ? &his : sptr, CMD_KICK,
43 who, "%H %C :%s", chptr, who, comment);