Description:
Fix the issues described by weibe in SourceForge.net bug
2045310
(TOPIC, WALLCHOPS and WALLVOICES do not reveal join-delayed users).
git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/branches/u2_10_12_branch@1903
c9e4aea6-c8fd-4c43-8297-
357d70d61c8c
+2009-01-12 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/m_topic.c (do_settopic): Just before sending the topic out,
+ check to see if the user is join-delayed and should be shown.
+
+ * ircd/m_wallchops.c (m_wallchops): Allow this command to expose
+ join-delayed users.
+ (ms_wallchops): Likewise.
+
+ * ircd/m_wallvoices.c (m_wallvoices): Allow this command to expose
+ join-delayed users.
+ (ms_wallvoices): Likewise.
+
2009-01-12 Michael Poole <mdpoole@troilus.org>
* ircd/channel.c (modebuf_mode_uint): Fix bouncing of limit changes.
2009-01-12 Michael Poole <mdpoole@troilus.org>
* ircd/channel.c (modebuf_mode_uint): Fix bouncing of limit changes.
sendcmdto_serv_butone(sptr, CMD_TOPIC, cptr, "%H %Tu %Tu :%s", chptr,
chptr->creationtime, chptr->topic_time, chptr->topic);
if (newtopic)
sendcmdto_serv_butone(sptr, CMD_TOPIC, cptr, "%H %Tu %Tu :%s", chptr,
chptr->creationtime, chptr->topic_time, chptr->topic);
if (newtopic)
+ {
+ struct Membership *member;
+
+ /* If the member is delayed-join, show them. */
+ member = find_channel_member(sptr, chptr);
+ if (member && IsDelayedJoin(member))
+ RevealDelayedJoin(member);
+
sendcmdto_channel_butserv_butone(from, CMD_TOPIC, chptr, NULL, 0,
"%H :%s", chptr, chptr->topic);
sendcmdto_channel_butserv_butone(from, CMD_TOPIC, chptr, NULL, 0,
"%H :%s", chptr, chptr->topic);
/* if this is the same topic as before we send it to the person that
* set it (so they knew it went through ok), but don't bother sending
* it to everyone else on the channel to save bandwidth
/* if this is the same topic as before we send it to the person that
* set it (so they knew it went through ok), but don't bother sending
* it to everyone else on the channel to save bandwidth
return send_reply(sptr, ERR_NOTEXTTOSEND);
if (IsChannelName(parv[1]) && (chptr = FindChannel(parv[1]))) {
return send_reply(sptr, ERR_NOTEXTTOSEND);
if (IsChannelName(parv[1]) && (chptr = FindChannel(parv[1]))) {
- if (client_can_send_to_channel(sptr, chptr, 0)) {
+ if (client_can_send_to_channel(sptr, chptr, 1)) {
if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
check_target_limit(sptr, chptr, chptr->chname, 0))
return 0;
if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
check_target_limit(sptr, chptr, chptr->chname, 0))
return 0;
return 0;
if (!IsLocalChannel(parv[1]) && (chptr = FindChannel(parv[1]))) {
return 0;
if (!IsLocalChannel(parv[1]) && (chptr = FindChannel(parv[1]))) {
- if (client_can_send_to_channel(sptr, chptr, 0)) {
+ if (client_can_send_to_channel(sptr, chptr, 1)) {
sendcmdto_channel_butone(sptr, CMD_WALLCHOPS, chptr, cptr,
SKIP_DEAF | SKIP_BURST | SKIP_NONOPS,
"%H :%s", chptr, parv[parc - 1]);
sendcmdto_channel_butone(sptr, CMD_WALLCHOPS, chptr, cptr,
SKIP_DEAF | SKIP_BURST | SKIP_NONOPS,
"%H :%s", chptr, parv[parc - 1]);
return send_reply(sptr, ERR_NOTEXTTOSEND);
if (IsChannelName(parv[1]) && (chptr = FindChannel(parv[1]))) {
return send_reply(sptr, ERR_NOTEXTTOSEND);
if (IsChannelName(parv[1]) && (chptr = FindChannel(parv[1]))) {
- if (client_can_send_to_channel(sptr, chptr, 0)) {
+ if (client_can_send_to_channel(sptr, chptr, 1)) {
if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
check_target_limit(sptr, chptr, chptr->chname, 0))
return 0;
if ((chptr->mode.mode & MODE_NOPRIVMSGS) &&
check_target_limit(sptr, chptr, chptr->chname, 0))
return 0;
return 0;
if (!IsLocalChannel(parv[1]) && (chptr = FindChannel(parv[1]))) {
return 0;
if (!IsLocalChannel(parv[1]) && (chptr = FindChannel(parv[1]))) {
- if (client_can_send_to_channel(sptr, chptr, 0)) {
+ if (client_can_send_to_channel(sptr, chptr, 1)) {
sendcmdto_channel_butone(sptr, CMD_WALLVOICES, chptr, cptr,
SKIP_DEAF | SKIP_BURST | SKIP_NONVOICES,
"%H :%s", chptr, parv[parc - 1]);
sendcmdto_channel_butone(sptr, CMD_WALLVOICES, chptr, cptr,
SKIP_DEAF | SKIP_BURST | SKIP_NONVOICES,
"%H :%s", chptr, parv[parc - 1]);