added basic ssl support to ircu
[ircu2.10.12-pk.git] / ircd / m_topic.c
index 9ef803ebaf3954199cee20c10ea88c2553e8fa61..4fb1a8f0d0384ecff1da3e9a2b6fc461f84e3738 100644 (file)
@@ -72,8 +72,17 @@ static void do_settopic(struct Client *sptr, struct Client *cptr,
      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);
+   }
       /* 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
@@ -188,6 +197,7 @@ int ms_topic(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
     if (parc > 3 && (ts = atoi(parv[2])) && chptr->creationtime < ts)
       continue;
 
+    ts = 0; /* Default to the current time if no topic_time is passed. */
     if (parc > 4 && (ts = atoi(parv[3])) && chptr->topic_time > ts)
       continue;