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
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;
* 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
/** Handle server quit on close
*/
virtual void Close();
+
+ /** Returns true if this server was introduced to the rest of the network
+ */
+ bool Introduced();
};
#endif