X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Ftreesocket.h;h=b6230a6a58741174bb7f29e6e1b494fcbd2fd394;hb=e9e75e50bc25e67af22dd88b39b12217a553d5cb;hp=be5455bce9102d99828acea1d74ace8fa4624fa8;hpb=553a8da754c8cd308bad2008018849714e70f9b7;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/treesocket.h b/src/modules/m_spanningtree/treesocket.h index be5455bce..b6230a6a5 100644 --- a/src/modules/m_spanningtree/treesocket.h +++ b/src/modules/m_spanningtree/treesocket.h @@ -20,12 +20,9 @@ */ -#ifndef M_SPANNINGTREE_TREESOCKET_H -#define M_SPANNINGTREE_TREESOCKET_H +#pragma once -#include "socket.h" #include "inspircd.h" -#include "xline.h" #include "utils.h" @@ -94,6 +91,7 @@ class TreeSocket : public BufferedSocket 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 */ public: time_t age; @@ -168,13 +166,8 @@ class TreeSocket : public BufferedSocket /** Recursively send the server tree with distances as hops. * This is used during network burst to inform the other server * (and any of ITS servers too) of what servers we know about. - * If at any point any of these servers already exist on the other - * end, our connection may be terminated. The hopcounts given - * by this function are relative, this doesn't matter so long as - * they are all >1, as all the remote servers re-calculate them - * to be relative too, with themselves as hop 0. */ - void SendServers(TreeServer* Current, TreeServer* s, int hops); + void SendServers(TreeServer* Current, TreeServer* s); /** Returns module list as a string, filtered by filter * @param filter a module version bitmask, such as VF_COMMON or VF_OPTCOMMON @@ -185,9 +178,6 @@ class TreeSocket : public BufferedSocket */ void SendCapabilities(int phase); - /** Add modules to VF_COMMON list for backwards compatability */ - void CompatAddModules(std::vector& modlist); - /* Isolate and return the elements that are different between two lists */ void ListDifference(const std::string &one, const std::string &two, char sep, std::string& mleft, std::string& mright); @@ -215,16 +205,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); + /** Send all known information about a channel */ + void SyncChannel(Channel* chan); /** 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,7 +305,12 @@ class TreeSocket : public BufferedSocket /** Handle server quit on close */ virtual void Close(); -}; -#endif + /** Returns true if this server was introduced to the rest of the network + */ + bool Introduced(); + /** Fixes messages coming from old servers so the new command handlers understand them + */ + bool PreProcessOldProtocolMessage(User*& who, std::string& cmd, std::vector& params); +};