X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmodules%2Fm_spanningtree%2Ftreesocket.h;h=f705887b70ac7b6517947cebed2d8220d91713b0;hb=0a6b1e1a7de92e078a98f0b955d2624e5b85e4c1;hp=d99dc910419a13405ab83e2cdbb9ad97f5a4f5d4;hpb=b2ac8cc0a6405946a388b80df3be21bc276a61f3;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/treesocket.h b/src/modules/m_spanningtree/treesocket.h index d99dc9104..f705887b7 100644 --- a/src/modules/m_spanningtree/treesocket.h +++ b/src/modules/m_spanningtree/treesocket.h @@ -1,10 +1,15 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2019 Matt Schatz + * Copyright (C) 2013, 2017-2020 Sadie Powell + * Copyright (C) 2012-2015 Attila Molnar + * Copyright (C) 2012, 2019 Robby * Copyright (C) 2009-2010 Daniel De Graaf - * Copyright (C) 2008 Robin Burchell + * Copyright (C) 2009 Uli Schlachter + * Copyright (C) 2007-2008 Robin Burchell + * Copyright (C) 2007, 2010 Craig Edwards * Copyright (C) 2007 Dennis Friis - * Copyright (C) 2007 Craig Edwards * * 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 @@ -75,6 +80,7 @@ struct CapabData int capab_phase; /* Have sent CAPAB already */ bool auth_fingerprint; /* Did we auth using SSL certificate fingerprint */ bool auth_challenge; /* Did we auth using challenge/response */ + irc::sockets::sockaddrs remotesa; /* The remote socket address. */ // Data saved from incoming SERVER command, for later use when our credentials have been accepted by the other party std::string description; @@ -95,7 +101,7 @@ 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 */ - int proto_version; /* Remote protocol version */ + unsigned int proto_version; /* Remote protocol version */ /** True if we've sent our burst. * This only changes the behavior of message translation for 1202 protocol servers and it can be @@ -164,7 +170,7 @@ class TreeSocket : public BufferedSocket * most of the action, and append a few of our own values * to it. */ - TreeSocket(Link* link, Autoconnect* myac, const std::string& ipaddr); + TreeSocket(Link* link, Autoconnect* myac, const irc::sockets::sockaddrs& sa); /** When a listening socket gives us a new file descriptor, * we must associate it with a socket without creating a new @@ -238,6 +244,11 @@ class TreeSocket : public BufferedSocket */ std::string MyModules(int filter); + /** Returns mode list as a string, filtered by type. + * @param type The type of modes to return. + */ + std::string BuildModeList(ModeType type); + /** Send my capabilities to the remote side */ void SendCapabilities(int phase); @@ -254,7 +265,7 @@ class TreeSocket : public BufferedSocket */ void SendFJoins(Channel* c); - /** Send G, Q, Z and E lines */ + /** Send G-, Q-, Z- and E-lines */ void SendXLines(); /** Send all known information about a channel */ @@ -289,13 +300,17 @@ class TreeSocket : public BufferedSocket /** Handle IRC line split */ - void Split(const std::string &line, std::string& prefix, std::string& command, CommandBase::Params& params); + void Split(const std::string& line, std::string& tags, std::string& prefix, std::string& command, CommandBase::Params& params); /** Process complete line from buffer */ void ProcessLine(std::string &line); - void ProcessConnectedLine(std::string& prefix, std::string& command, CommandBase::Params& params); + /** Process message tags received from a remote server. */ + void ProcessTag(User* source, const std::string& tag, ClientProtocol::TagMap& tags); + + /** Process a message for a fully connected server. */ + void ProcessConnectedLine(std::string& tags, std::string& prefix, std::string& command, CommandBase::Params& params); /** Handle socket timeout from connect() */