diff options
Diffstat (limited to 'src/modules')
| -rw-r--r-- | src/modules/m_spanningtree/link.h | 1 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/treesocket1.cpp | 2 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/utils.cpp | 8 |
3 files changed, 10 insertions, 1 deletions
diff --git a/src/modules/m_spanningtree/link.h b/src/modules/m_spanningtree/link.h index 49e86bf3e..4f15f829d 100644 --- a/src/modules/m_spanningtree/link.h +++ b/src/modules/m_spanningtree/link.h @@ -42,6 +42,7 @@ public: unsigned long Timeout; std::string Bind; bool Hidden; + int Protocol = 0; Link(const std::shared_ptr<ConfigTag>& Tag) : tag(Tag) { diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp index 37de1adc8..2da154642 100644 --- a/src/modules/m_spanningtree/treesocket1.cpp +++ b/src/modules/m_spanningtree/treesocket1.cpp @@ -66,7 +66,7 @@ TreeSocket::TreeSocket(const std::shared_ptr<Link>& link, const std::shared_ptr< } } - DoConnect(dest, bind, link->Timeout); + DoConnect(dest, bind, link->Timeout, link->Protocol); Utils->timeoutlist[this] = std::pair<std::string, unsigned int>(linkID, link->Timeout); SendCapabilities(1); } diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp index f05c587f6..42a331ab6 100644 --- a/src/modules/m_spanningtree/utils.cpp +++ b/src/modules/m_spanningtree/utils.cpp @@ -263,6 +263,14 @@ void SpanningTreeUtilities::ReadConfiguration() { L->IPAddr = tag->getString("ipaddr"); L->Port = static_cast<in_port_t>(tag->getUInt("port", 0, 0, 65535)); + if (tag->getBool("sctp")) + { +#ifdef IPPROTO_SCTP + L->Protocol = IPPROTO_SCTP; +#else + throw ModuleException((Module*)Creator, "Unable to use SCTP listener as this platform does not support SCTP!"); +#endif + } } else { |
