X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Ftreesocket.h;h=d8445572bf0c405b51f4aed800a7cc4ad6307ba1;hb=ed08638c1afa2742f0ebc3006dd0f1054020f7d4;hp=2ad4d68afbc224f959c8e256a3e0df8c91077112;hpb=8f85458ff9cdfd0c677086e56492955ee89f6702;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/treesocket.h b/src/modules/m_spanningtree/treesocket.h index 2ad4d68af..d8445572b 100644 --- a/src/modules/m_spanningtree/treesocket.h +++ b/src/modules/m_spanningtree/treesocket.h @@ -1,18 +1,27 @@ -/* +------------------------------------+ - * | Inspire Internet Relay Chat Daemon | - * +------------------------------------+ +/* + * InspIRCd -- Internet Relay Chat Daemon + * + * Copyright (C) 2009-2010 Daniel De Graaf + * Copyright (C) 2008 Robin Burchell + * Copyright (C) 2007 Dennis Friis + * Copyright (C) 2007 Craig Edwards * - * InspIRCd: (C) 2002-2010 InspIRCd Development Team - * See: http://wiki.inspircd.org/Credits + * This file is part of InspIRCd. InspIRCd is free software: you can + * redistribute it and/or modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation, version 2. * - * This program is free but copyrighted software; see - * the file COPYING for details. + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. * - * --------------------------------------------------- + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#ifndef __TREESOCKET_H__ -#define __TREESOCKET_H__ + +#ifndef M_SPANNINGTREE_TREESOCKET_H +#define M_SPANNINGTREE_TREESOCKET_H #include "socket.h" #include "inspircd.h" @@ -69,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 @@ -85,6 +100,12 @@ 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 */ + + /** Checks if the given servername and sid are both free + */ + bool CheckDuplicate(const std::string& servername, const std::string& sid); + public: time_t age; @@ -206,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 @@ -306,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