diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-02-22 22:22:37 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-02-22 22:22:37 +0000 |
commit | bbbf55dfcadf02784dced07c5b5c72581dff66a2 (patch) | |
tree | 95833aa5e59e5a961ce7e5e062e89d4ef65f6927 /src/modules | |
parent | b06361b4ec5f2451c0b31a0a889781076b9b1358 (diff) |
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
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/m_spanningtree.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
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(); |