From bbbf55dfcadf02784dced07c5b5c72581dff66a2 Mon Sep 17 00:00:00 2001 From: brain Date: Wed, 22 Feb 2006 22:22:37 +0000 Subject: Force burst to end if a remote server pings us, or answers a pong, if this is the case it just "forgot" to send an ENDBURST! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3295 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_spanningtree.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src') diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp index 1577a6a0e..1374c88a2 100644 --- a/src/modules/m_spanningtree.cpp +++ b/src/modules/m_spanningtree.cpp @@ -2295,6 +2295,16 @@ class TreeSocket : public InspSocket } else if (command == "PING") { + /* + * We just got a ping from a server that's bursting. + * This can't be right, so set them to not bursting, and + * apply their lines. + */ + if (this->bursting) + { + this->bursting = false; + apply_lines(APPLY_ZLINES|APPLY_GLINES|APPLY_QLINES); + } if (prefix == "") { prefix = this->GetName(); @@ -2303,6 +2313,16 @@ class TreeSocket : public InspSocket } else if (command == "PONG") { + /* + * We just got a pong from a server that's bursting. + * This can't be right, so set them to not bursting, and + * apply their lines. + */ + if (this->bursting) + { + this->bursting = false; + apply_lines(APPLY_ZLINES|APPLY_GLINES|APPLY_QLINES); + } if (prefix == "") { prefix = this->GetName(); -- cgit v1.2.3