class TreeServer;
class TreeSocket;
class Link;
+class Autoconnect;
class ModuleSpanningTree;
class SpanningTreeUtilities;
SpanningTreeUtilities *Utils;
public:
- ServerSocketListener(InspIRCd* Instance, SpanningTreeUtilities *u, int port, char* addr) : ListenSocketBase(Instance, port, addr)
+ ServerSocketListener(SpanningTreeUtilities *u, int port, char* addr) : ListenSocketBase(port, addr)
{
this->Utils = u;
+ Hook = NULL;
}
+ Module* Hook;
+
virtual void OnAcceptReady(int nfd);
};
*/
class SpanningTreeUtilities : public classbase
{
- private:
- /** Creator server
- */
- InspIRCd* ServerInstance;
public:
/** Creator module
*/
*/
bool AnnounceTSChange;
+ /** Allow modules marked as VF_OPTCOMMON to be mismatched when linking
+ */
+ bool AllowOptCommon;
+
/** Make snomasks +CQ quiet during bursts and splits
*/
bool quiet_bursts;
std::map<TreeSocket*, std::pair<std::string, int> > timeoutlist;
/** Holds the data from the <link> tags in the conf
*/
- std::vector<Link> LinkBlocks;
+ std::vector<reference<Link> > LinkBlocks;
+ /** Holds the data from the <autoconnect> tags in the conf
+ */
+ std::vector<reference<Autoconnect> > AutoconnectBlocks;
/** List of module pointers which can provide I/O abstraction
*/
/** Initialise utility class
*/
- SpanningTreeUtilities(InspIRCd* Instance, ModuleSpanningTree* Creator);
+ SpanningTreeUtilities(ModuleSpanningTree* Creator);
+
+ /** Prepare for class destruction
+ */
+ bool cull();
/** Destroy class and free listeners etc
*/
*/
bool IsServer(const std::string &ServerName);
- /** Attempt to connect to the failover link of link x
- */
- void DoFailOver(Link* x);
-
/** Find a link tag from a server name
*/
Link* FindLink(const std::string& name);