summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mode.cpp2
-rw-r--r--src/modules/m_spanningtree/ftopic.cpp3
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
{