From 65072d44f23804d85dd800c5ce6aa3548831142e Mon Sep 17 00:00:00 2001 From: attilamolnar Date: Wed, 10 Apr 2013 17:05:13 +0200 Subject: m_spanningtree Create new TreeServers for incoming connections only when they've accepted our credentials, not when they send SERVER --- src/modules/m_spanningtree/treesocket.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/modules/m_spanningtree/treesocket.h') diff --git a/src/modules/m_spanningtree/treesocket.h b/src/modules/m_spanningtree/treesocket.h index c1ca5e74a..d8445572b 100644 --- a/src/modules/m_spanningtree/treesocket.h +++ b/src/modules/m_spanningtree/treesocket.h @@ -78,6 +78,12 @@ struct CapabData int capab_phase; /* Have sent CAPAB already */ bool auth_fingerprint; /* Did we auth using SSL fingerprint */ bool auth_challenge; /* Did we auth using challenge/response */ + + // Data saved from incoming SERVER command, for later use when our credentials have been accepted by the other party + std::string description; + std::string sid; + std::string name; + bool hidden; }; /** Every SERVER connection inbound or outbound is represented by an object of @@ -95,6 +101,11 @@ class TreeSocket : public BufferedSocket bool LastPingWasGood; /* Responded to last ping we sent? */ int proto_version; /* Remote protocol version */ bool ConnectionFailureShown; /* Set to true if a connection failure message was shown */ + + /** Checks if the given servername and sid are both free + */ + bool CheckDuplicate(const std::string& servername, const std::string& sid); + public: time_t age; -- cgit v1.3.1-10-gc9f91