]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_spanningtree/treesocket.h
This will royally fuck 1.2's linking right now, but..
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / treesocket.h
index 5af0b0eb9f6cc825740f9964b235529977ca5e07..55a83f3efa950b2a047303fa7792c9614773f2d6 100644 (file)
@@ -94,7 +94,8 @@ class TreeSocket : public InspSocket
        Module* Hook;                           /* I/O hooking module that we're attached to for this socket */
        std::string ourchallenge;               /* Challenge sent for challenge/response */
        std::string theirchallenge;             /* Challenge recv for challenge/response */
-
+       std::string OutboundPass;               /* Outbound password */
+       bool sentcapab;                         /* Have sent CAPAB already */
  public:
 
        /** Because most of the I/O gubbins are encapsulated within
@@ -137,6 +138,10 @@ class TreeSocket : public InspSocket
         */
        void SetTheirChallenge(const std::string &c);
 
+       /** Compare two passwords based on authentication scheme
+        */
+       bool ComparePass(const std::string &ours, const std::string &theirs);
+
        /** Return the module which we are hooking to for I/O encapsulation
         */
        Module* GetHook();
@@ -166,6 +171,11 @@ class TreeSocket : public InspSocket
         */
        virtual void OnError(InspSocketError e);
 
+       /** Sends an error to the remote server, and displays it locally to show
+        * that it was sent.
+        */
+       void SendError(const std::string &errormessage);
+
        /** Handle socket disconnect event
         */
        virtual int OnDisconnect();
@@ -220,8 +230,8 @@ class TreeSocket : public InspSocket
        /** FJOIN, similar to TS6 SJOIN, but not quite. */
        bool ForceJoin(const std::string &source, std::deque<std::string> &params);
 
-       /** NICK command */
-       bool IntroduceClient(const std::string &source, std::deque<std::string> &params);
+       /** UID command */
+       bool ParseUID(const std::string &source, std::deque<std::string> &params);
 
        /** Send one or more FJOINs for a channel of users.
         * If the length of a single line is more than 480-NICKMAX
@@ -285,12 +295,6 @@ class TreeSocket : public InspSocket
 
        bool OperQuit(const std::string &prefix, std::deque<std::string> &params);
 
-       /** Remote SQUIT (RSQUIT). Routing works similar to SVSNICK: Route it to the server that the target is connected to locally,
-        * then let that server do the dirty work (squit it!). Example:
-        * A -> B -> C -> D: oper on A squits D, A routes to B, B routes to C, C notices D connected locally, kills it. -- w00t
-        */
-       bool RemoteSquit(const std::string &prefix, std::deque<std::string> &params);
-
        /** SVSJOIN
         */
        bool ServiceJoin(const std::string &prefix, std::deque<std::string> &params);
@@ -389,5 +393,21 @@ class TreeSocket : public InspSocket
        virtual int OnIncomingConnection(int newsock, char* ip);
 };
 
+/* Used to validate the value lengths of multiple parameters for a command */
+struct cmd_validation
+{
+       const char* item;
+       size_t param;
+       size_t length;
+};
+
+/* Used to validate the length values in CAPAB CAPABILITIES */
+struct cap_validation
+{
+       const char* reason;
+       const char* key;
+       size_t size;
+};
+
 #endif