]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_spanningtree/treesocket.h
Fixes found by removing User inheritance from StreamSocket
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / treesocket.h
index 3744de96bd59be61840395ffc9ff64eac2602b74..34390f9d0dd927edc3e17fe18e4b6263f00d7078 100644 (file)
 #include "socket.h"
 #include "inspircd.h"
 #include "xline.h"
-#include "../transport.h"
 
 #include "utils.h"
-#include "handshaketimer.h"
 
 /*
  * The server list in InspIRCd is maintained as two structures
@@ -91,7 +89,6 @@ class TreeSocket : public BufferedSocket
        bool auth_challenge;                    /* Did we auth using challenge/response */
        int proto_version;                      /* Remote protocol version */
  public:
-       HandshakeTimer* hstimer;                /* Handshake timer, needed to work around I/O hook buffering */
        reference<Autoconnect> myautoconnect;           /* Autoconnect used to cause this connection, if any */
        time_t age;
 
@@ -100,13 +97,13 @@ class TreeSocket : public BufferedSocket
         * most of the action, and append a few of our own values
         * to it.
         */
-       TreeSocket(SpanningTreeUtilities* Util, std::string host, int port, unsigned long maxtime, const std::string &ServerName, const std::string &bindto, Autoconnect* myac, Module* HookMod = NULL);
+       TreeSocket(SpanningTreeUtilities* Util, const std::string& host, int port, unsigned long maxtime, const std::string &ServerName, const std::string &bindto, Autoconnect* myac, const std::string& Hook);
 
        /** When a listening socket gives us a new file descriptor,
         * we must associate it with a socket without creating a new
         * connection. This constructor is used for this purpose.
         */
-       TreeSocket(SpanningTreeUtilities* Util, int newfd, char* ip, Autoconnect* myac, Module* HookMod = NULL);
+       TreeSocket(SpanningTreeUtilities* Util, int newfd, ListenSocket* via, irc::sockets::sockaddrs* client, irc::sockets::sockaddrs* server);
 
        /** Get link state
         */
@@ -136,6 +133,7 @@ class TreeSocket : public BufferedSocket
         */
        void CleanNegotiationInfo();
 
+       CullResult cull();
        /** Destructor
         */
        ~TreeSocket();
@@ -212,13 +210,13 @@ class TreeSocket : public BufferedSocket
        void Squit(TreeServer* Current, const std::string &reason);
 
        /** FMODE command - server mode with timestamp checks */
-       bool ForceMode(const std::string &source, parameterlist &params);
+       void ForceMode(User* who, parameterlist &params);
 
        /** FTOPIC command */
        bool ForceTopic(const std::string &source, parameterlist &params);
 
        /** FJOIN, similar to TS6 SJOIN, but not quite. */
-       bool ForceJoin(const std::string &source, parameterlist &params);
+       void ForceJoin(User* who, parameterlist &params);
 
        /* Used on nick collision ... XXX ugly function HACK */
        int DoCollision(User *u, time_t remotets, const std::string &remoteident, const std::string &remoteip, const std::string &remoteuid);
@@ -286,7 +284,7 @@ class TreeSocket : public BufferedSocket
 
        /** ENCAP command
         */
-       bool Encap(const std::string &prefix, parameterlist &params);
+       void Encap(User* who, parameterlist &params);
 
        /** OPERQUIT command
         */
@@ -354,7 +352,7 @@ class TreeSocket : public BufferedSocket
        /** Remove all modes from a channel, including statusmodes (+qaovh etc), simplemodes, parameter modes.
         * This does not update the timestamp of the target channel, this must be done seperately.
         */
-       bool RemoveStatus(const std::string &prefix, parameterlist &params);
+       void RemoveStatus(User* source, parameterlist &params);
 
        /** <- (remote) <- SERVER
         */