summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel De Graaf <danieldg@inspircd.org>2010-08-03 21:05:10 -0400
committerDaniel De Graaf <danieldg@inspircd.org>2010-08-03 21:05:37 -0400
commit11f88ab2cc6dd6c932d8984ba4063c93b59aa166 (patch)
tree5a5ca452a2ce8e9248df143fb53632883ad61db5
parentd14b48f31beee0283cfefff2ff88dd645a9c80c6 (diff)
Use the remote channel's capitalization on a losing TS merge
-rw-r--r--src/modules/m_spanningtree/fjoin.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/modules/m_spanningtree/fjoin.cpp b/src/modules/m_spanningtree/fjoin.cpp
index be32410ef..ea217b398 100644
--- a/src/modules/m_spanningtree/fjoin.cpp
+++ b/src/modules/m_spanningtree/fjoin.cpp
@@ -91,9 +91,11 @@ CmdResult CommandFJoin::Handle(const std::vector<std::string>& params, User *src
/* Our TS greater than theirs, clear all our modes from the channel, accept theirs. */
ServerInstance->SNO->WriteToSnoMask('d', "Removing our modes, accepting remote");
parameterlist param_list;
- if (Utils->AnnounceTSChange && chan)
- chan->WriteChannelWithServ(ServerInstance->Config->ServerName, "NOTICE %s :TS for %s changed from %lu to %lu", chan->name.c_str(), chan->name.c_str(), (unsigned long) ourTS, (unsigned long) TS);
+ if (Utils->AnnounceTSChange)
+ chan->WriteChannelWithServ(ServerInstance->Config->ServerName, "NOTICE %s :TS for %s changed from %lu to %lu", chan->name.c_str(), channel.c_str(), (unsigned long) ourTS, (unsigned long) TS);
ourTS = TS;
+ // while the name is equal in case-insensitive compare, it might differ in case; use the remote version
+ chan->name = channel;
chan->age = TS;
param_list.push_back(channel);
this->RemoveStatus(ServerInstance->FakeClient, param_list);