From 89257d9bcef1c4dfa9f66d3d5cdca31eded74f47 Mon Sep 17 00:00:00 2001 From: Attila Molnar Date: Wed, 5 Nov 2014 00:13:29 +0100 Subject: [PATCH] InspIRCd 2.0: Re-set server-side topiclock when an incoming METADATA topiclock from a bursting server changes it --- modules/protocol/inspircd20.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp index 5b0c6e847..9130c4354 100644 --- a/modules/protocol/inspircd20.cpp +++ b/modules/protocol/inspircd20.cpp @@ -875,6 +875,13 @@ class IRCDMessageMetadata : IRCDMessage if (modes != params[2]) UplinkSocket::Message(Me) << "METADATA " << c->name << " mlock :" << modes; } + else if ((do_topiclock) && (params[1] == "topiclock")) + { + bool mystate = c->ci->GetExt("TOPICLOCK"); + bool serverstate = (params[2] == "1"); + if (mystate != serverstate) + UplinkSocket::Message(Me) << "METADATA " << c->name << " topiclock :" << (mystate ? "1" : ""); + } } }