From 44ffefb3561bb5a48369685a50d1ff1c23503eb2 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Sat, 5 Dec 2020 03:15:44 +0000 Subject: Omit module prefixes/suffixes when linking using the 1206 protocol. --- src/modules/m_spanningtree/capab.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/modules/m_spanningtree/capab.cpp') diff --git a/src/modules/m_spanningtree/capab.cpp b/src/modules/m_spanningtree/capab.cpp index 57317225a..92589c84c 100644 --- a/src/modules/m_spanningtree/capab.cpp +++ b/src/modules/m_spanningtree/capab.cpp @@ -44,12 +44,21 @@ std::string TreeSocket::MyModules(int filter) if ((!(mod->properties & filter))) continue; - if (i != modlist.begin()) + if (!capabilities.empty()) capabilities.push_back(' '); - std::string modname = i->first; - modname.replace(modname.end() - strlen(DLL_EXTENSION) - 1, modname.end(), ".so"); - capabilities.append(modname); + size_t endpos = i->first.length() - strlen(DLL_EXTENSION); + if (proto_version <= PROTO_INSPIRCD_30) + { + // Replace m_foo.dylib with m_foo.so + capabilities.append(i->first.substr(0, endpos)).append(".so"); + } + else + { + // Replace m_foo.dylib with foo + size_t startpos = i->first.compare(0, 2, "m_", 2) ? 0 : 2; + capabilities.append(i->first.substr(startpos, endpos - startpos)); + } std::string link_data; mod->GetLinkData(link_data); -- cgit v1.3.1-10-gc9f91