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);
{
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",