]> jfr.im git - irc/rizon/plexus4.git/commitdiff
m_topic: respect hidden servers
authorAdam <redacted>
Sat, 24 Nov 2018 15:28:31 +0000 (10:28 -0500)
committerAdam <redacted>
Sat, 24 Nov 2018 15:28:31 +0000 (10:28 -0500)
modules/m_topic.c

index a66c0cdae0b022004f70893f225b171add035d5a..b73441331e18d5e2a3342407d14805ae9551c6c2 100644 (file)
@@ -146,11 +146,13 @@ ms_topic(struct Client *client_p, struct Client *source_p,
   if ((chptr = hash_find_channel(parv[1])) == NULL)
     return;
 
-  if (!IsClient(source_p))
-    strlcpy(topic_info, source_p->name, sizeof(topic_info));
-  else
+  if (IsClient(source_p))
     snprintf(topic_info, sizeof(topic_info), "%s!%s@%s", source_p->name,
              source_p->username, source_p->host);
+  else if (IsHidden(source_p) || ConfigServerHide.hide_servers)
+    strlcpy(topic_info, me.name, sizeof(topic_info));
+  else
+    strlcpy(topic_info, source_p->name, sizeof(topic_info));
 
   set_channel_topic(chptr, parv[2], topic_info, CurrentTime, 0);
 
@@ -202,7 +204,7 @@ me_topic(struct Client *client_p, struct Client *source_p,
   {
     if (!IsClient(source_p))
       sendto_channel_local(ALL_MEMBERS, 0, chptr, ":%s TOPIC %s :%s",
-                           source_p->name,
+                           IsHidden(source_p) || ConfigServerHide.hide_servers ? me.name : source_p->name,
                            chptr->chname, chptr->topic);
     else
       sendto_channel_local(ALL_MEMBERS, 0, chptr, ":%s!%s@%s TOPIC %s :%s",