diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mode.cpp | 2 | ||||
-rw-r--r-- | src/modules/m_spanningtree/ftopic.cpp | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/mode.cpp b/src/mode.cpp index 625474cce..39f5f1da2 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -766,7 +766,7 @@ void ModeParser::Process(const std::vector<std::string>& parameters, User *user, if (!output_sequence.empty()) { LastParseParams.push_front(output_sequence); - if (servermode) + if (!user) { if (type == MODETYPE_CHANNEL) { diff --git a/src/modules/m_spanningtree/ftopic.cpp b/src/modules/m_spanningtree/ftopic.cpp index 8f330cd1c..99816e64a 100644 --- a/src/modules/m_spanningtree/ftopic.cpp +++ b/src/modules/m_spanningtree/ftopic.cpp @@ -39,7 +39,8 @@ bool TreeSocket::ForceTopic(const std::string &source, std::deque<std::string> & c->topic.assign(params[3], 0, ServerInstance->Config->Limits.MaxTopic); if (!user) { - c->WriteChannelWithServ(ServerInstance->Config->ServerName, "TOPIC %s :%s", c->name.c_str(), c->topic.c_str()); + std::string sourceserv = Utils->FindServer(source)->GetName(); + c->WriteChannelWithServ(sourceserv.c_str(), "TOPIC %s :%s", c->name.c_str(), c->topic.c_str()); } else { |