summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/treesocket.h
diff options
context:
space:
mode:
authorPeter Powell <petpow@saberuk.com>2018-10-27 18:13:29 +0100
committerPeter Powell <petpow@saberuk.com>2018-10-27 18:13:29 +0100
commitac09aff7f4db2e915cf9fb84d209f577530c09e2 (patch)
tree63a8230901f1c97c3ba75b2af9ebd4c4c6a0baf0 /src/modules/m_spanningtree/treesocket.h
parent0fc595caac348944f1154cc7dabf44e206e58bf5 (diff)
Improve CAPAB negotiation in the spanningtree module.
- Remove the CHANMODES, USERMODES, and PREFIX tokens in the 1205 protocol. These have entirely been superceded by the CHANMODES and USERMODES CAPAB commands. - Only compare the 1202 PREFIX tokens if the remote server did not send CAPAB CHANMODES. This replicates the existing behaviour used for the CHANMODES token. - Fix checking whether the remote server has an appropriate case mapping. If it is not sent we assume it is the same as the local server as always. This should prevent issues with people using services packages that do not send this token yet. - Fix checking if the user modes are mismatched and then promptly overwriting the error message with mismatched channel modes. - Fix servers not being able to tell whether a mode on the remote server is a prefixless prefix mode. Requires the 1205 protocol. - Fix servers that receive CAPAB CHANMODES or CAPAB USERMODES not checking the type of those modes. Requires the 1205 protocol.
Diffstat (limited to 'src/modules/m_spanningtree/treesocket.h')
-rw-r--r--src/modules/m_spanningtree/treesocket.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/modules/m_spanningtree/treesocket.h b/src/modules/m_spanningtree/treesocket.h
index d99dc9104..e8dbfd7cf 100644
--- a/src/modules/m_spanningtree/treesocket.h
+++ b/src/modules/m_spanningtree/treesocket.h
@@ -238,6 +238,11 @@ class TreeSocket : public BufferedSocket
*/
std::string MyModules(int filter);
+ /** Returns mode list as a string, filtered by type.
+ * @param type The type of modes to return.
+ */
+ std::string BuildModeList(ModeType type);
+
/** Send my capabilities to the remote side
*/
void SendCapabilities(int phase);