X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Ftreesocket.h;h=efcce5f7a3e46463eb71eb061d0c525f06da7a1d;hb=18ecf9d7e4056c4de789064508074266208e678f;hp=be5455bce9102d99828acea1d74ace8fa4624fa8;hpb=44f42a13de52c8025942ddab42f51feb36821782;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/treesocket.h b/src/modules/m_spanningtree/treesocket.h index be5455bce..efcce5f7a 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 @@ -91,9 +97,15 @@ class TreeSocket : public BufferedSocket ServerState LinkState; /* Link state */ CapabData* capab; /* Link setup data (held until burst is sent) */ TreeServer* MyRoot; /* The server we are talking to */ - time_t NextPing; /* Time when we are due to ping this server */ - 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 */ + + static const unsigned int FMODE_MAX_LENGTH = 350; + + /** Checks if the given servername and sid are both free + */ + bool CheckDuplicate(const std::string& servername, const std::string& sid); + public: time_t age; @@ -215,16 +227,16 @@ class TreeSocket : public BufferedSocket * If the length of a single line is more than 480-NICKMAX * in length, it is split over multiple lines. */ - void SendFJoins(TreeServer* Current, Channel* c); + void SendFJoins(Channel* c); /** Send G, Q, Z and E lines */ - void SendXLines(TreeServer* Current); + void SendXLines(); /** Send channel modes and topics */ - void SendChannelModes(TreeServer* Current); + void SendChannelModes(); /** send all users and their oper state/modes */ - void SendUsers(TreeServer* Current); + void SendUsers(); /** This function is called when we want to send a netburst to a local * server. There is a set order we must do this, because for example @@ -315,6 +327,10 @@ class TreeSocket : public BufferedSocket /** Handle server quit on close */ virtual void Close(); + + /** Returns true if this server was introduced to the rest of the network + */ + bool Introduced(); }; #endif