From 2d2ab4fec463fc86c552ec79e6ee6ff4b0421341 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 1 Oct 2012 21:26:41 -0400 Subject: [PATCH] Fixed handling TOPIC on unreal, dont set topics in Channel::Reset unless we are synced, and fixed ts checking in Channel::SetModesInternal --- modules/protocol/unreal.cpp | 2 +- src/channels.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/protocol/unreal.cpp b/modules/protocol/unreal.cpp index d3b94b26c..de452e196 100644 --- a/modules/protocol/unreal.cpp +++ b/modules/protocol/unreal.cpp @@ -1062,7 +1062,7 @@ struct IRCDMessageSJoin : IRCDMessage struct IRCDMessageTopic : IRCDMessage { - IRCDMessageTopic() : IRCDMessage("TOPIC", 4) { SetFlag(IRCDMESSAGE_REQUIRE_USER); } + IRCDMessageTopic() : IRCDMessage("TOPIC", 4) { } /* ** source = sender prefix diff --git a/src/channels.cpp b/src/channels.cpp index 1790ddda1..c95e46373 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -96,7 +96,7 @@ void Channel::Reset() for (CUserList::const_iterator it = this->users.begin(), it_end = this->users.end(); it != it_end; ++it) chan_set_correct_modes((*it)->user, this, 1, false); - if (this->ci) + if (this->ci && Me && Me->IsSynced()) this->ci->RestoreTopic(); } @@ -695,9 +695,9 @@ void Channel::SetModesInternal(MessageSource &source, const Anope::string &mode, ++this->server_modecount; } - if (ts > 0 && ts < this->creation_time) + if (ts > this->creation_time) return; - else if (ts > this->creation_time) + else if (ts < this->creation_time) { Log(LOG_DEBUG) << "Changing TS of " << this->name << " from " << this->creation_time << " to " << ts; this->creation_time = ts;