diff options
Diffstat (limited to 'src/modules/m_spanningtree.cpp')
-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(); |