return 0;
}
- if((chptr->mode.mode & MODE_TOPICLIMIT) == 0 || is_chanop(msptr))
+ if((chptr->mode.mode & MODE_TOPICLIMIT) == 0 || is_any_op(msptr) || IsOverride(source_p))
{
char topic_info[USERHOST_REPLYLEN];
- rb_sprintf(topic_info, "%s!%s@%s",
- source_p->name, source_p->username, source_p->host);
+
+ if(ConfigChannel.host_in_topic)
+ rb_sprintf(topic_info, "%s!%s@%s",
+ source_p->name, source_p->username, source_p->host);
+ else
+ rb_strlcpy(topic_info, source_p->name, sizeof(topic_info));
+
set_channel_topic(chptr, parv[2], topic_info, rb_current_time());
sendto_server(client_p, chptr, CAP_TS6, NOCAPS,