summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modules/m_spanningtree/capab.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/modules/m_spanningtree/capab.cpp b/src/modules/m_spanningtree/capab.cpp
index bcf16c760..d39e5f4ab 100644
--- a/src/modules/m_spanningtree/capab.cpp
+++ b/src/modules/m_spanningtree/capab.cpp
@@ -157,19 +157,20 @@ bool TreeSocket::Capab(const std::deque<std::string> &params)
*/
if ((this->ModuleList != this->MyCapabilities()) && (this->ModuleList.length()))
{
- std::string diff = ListDifference(this->ModuleList, this->MyCapabilities());
- if (!diff.length())
+ std::string diffIneed = ListDifference(this->ModuleList, this->MyCapabilities());
+ std::string diffUneed = ListDifference(this->MyCapabilities(), this->ModuleList);
+ if (diffIneed.length() == 0 && diffUneed.length() == 0)
{
- diff = "your server:" + ListDifference(this->MyCapabilities(), this->ModuleList);
+ reason = "Module list in CAPAB is not alphabetically ordered, cannot compare lists.";
}
else
{
- diff = "the remote server:" + diff;
+ reason = "Modules incorrectly matched on these servers.";
+ if (diffIneed.length())
+ reason += " Not loaded here:" + diffIneed;
+ if (diffUneed.length())
+ reason += " Not loaded there:" + diffUneed;
}
- if (diff.length() == 12)
- reason = "Module list in CAPAB is not alphabetically ordered, cannot compare lists.";
- else
- reason = "Modules loaded on these servers are not correctly matched, these modules are not loaded on " + diff;
}
if (((this->CapKeys.find("IP6SUPPORT") == this->CapKeys.end()) && (ip6support)) || ((this->CapKeys.find("IP6SUPPORT") != this->CapKeys.end()) && (this->CapKeys.find("IP6SUPPORT")->second != ConvToStr(ip6support))))