]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/users.h
Remove SpanningTreeProtocolInterface::SendOperNotice - it was translated to a SendSNO...
[user/henk/code/inspircd.git] / include / users.h
index 07843b7c09a34560b693af905a5fd18e34fc675f..229edcfa2564aea295979c9f8c966d3fbbc24bc7 100644 (file)
@@ -239,6 +239,12 @@ public:
                this->limit = llimit;
        }
 
+       void Update(const std::string &n, const std::string &hst)
+       {
+               name = n;
+               host = hst;
+       }
+
        /** Reference counter. Contains an int as to how many users are connected to this class. :)
         * This will be 0 if no users are connected. If a <connect> is removed from the config, and there
         * are 0 users on it - it will go away in RAM. :)
@@ -464,6 +470,10 @@ class CoreExport User : public connection
        bool* AllowedChanModes;
 
  public:
+       /** Module responsible for raw i/o
+        */
+       Module* io;
+
        /** Contains a pointer to the connect class a user is on from - this will be NULL for remote connections.
         * The pointer is guarenteed to *always* be valid. :)
         */
@@ -552,6 +562,11 @@ class CoreExport User : public connection
         */
        char awaymsg[MAXAWAY+1];
 
+       /** Time the user last went away.
+        * This is ONLY RELIABLE if user IS_AWAY()!
+        */
+       time_t awaytime;
+
        /** Timestamp of current time + connection class timeout.
         * This user must send USER/NICK before this timestamp is
         * reached or they will be disconnected.
@@ -644,7 +659,7 @@ class CoreExport User : public connection
        /** Get IP string from sockaddr, using static internal buffer
         * @return The IP string
         */
-       const char* GetIPString();
+       const char* GetIPString(bool translate4in6 = true);
 
        /* Write error string
         */
@@ -674,6 +689,10 @@ class CoreExport User : public connection
         */
        User(InspIRCd* Instance, const std::string &uid = "");
 
+       /** Check if the user matches a G or K line, and disconnect them if they do
+        */
+       void CheckLines();
+
        /** Returns the full displayed host of the user
         * This member function returns the hostname of the user as seen by other users
         * on the server, in nick!ident&at;host form.
@@ -869,14 +888,6 @@ class CoreExport User : public connection
         */
        void CloseSocket();
 
-       /** Disconnect a user gracefully
-        * @param user The user to remove
-        * @param r The quit reason to show to normal users
-        * @param oreason The quit reason to show to opers
-        * @return Although this function has no return type, on exit the user provided will no longer exist.
-        */
-       static void QuitUser(InspIRCd* Instance, User *user, const std::string &r, const char* oreason = "");
-
        /** Add the user to WHOWAS system
         */
        void AddToWhoWas();
@@ -927,7 +938,7 @@ class CoreExport User : public connection
         * @param text The format string for text to send to the user
         * @param ... POD-type format arguments
         */
-       void Write(const char *text, ...);
+       void Write(const char *text, ...) CUSTOM_PRINTF(2, 3);
 
        /** Write text to this user, appending CR/LF and prepending :server.name
         * @param text A std::string to send to the user
@@ -938,9 +949,9 @@ class CoreExport User : public connection
         * @param text The format string for text to send to the user
         * @param ... POD-type format arguments
         */
-       void WriteServ(const char* text, ...);
+       void WriteServ(const char* text, ...) CUSTOM_PRINTF(2, 3);
 
-       void WriteNumeric(unsigned int numeric, const char* text, ...);
+       void WriteNumeric(unsigned int numeric, const char* text, ...) CUSTOM_PRINTF(3, 4);
 
        void WriteNumeric(unsigned int numeric, const std::string &text);
 
@@ -955,7 +966,7 @@ class CoreExport User : public connection
         * @param text The format string for text to send to the user
         * @param ... POD-type format arguments
         */
-       void WriteFrom(User *user, const char* text, ...);
+       void WriteFrom(User *user, const char* text, ...) CUSTOM_PRINTF(3, 4);
 
        /** Write text to the user provided in the first parameter, appending CR/LF, and prepending THIS user's :nick!user@host.
         * @param dest The user to route the message to
@@ -968,7 +979,7 @@ class CoreExport User : public connection
         * @param text The format string for text to send to the user
         * @param ... POD-type format arguments
         */
-       void WriteTo(User *dest, const char *data, ...);
+       void WriteTo(User *dest, const char *data, ...) CUSTOM_PRINTF(3, 4);
 
        /** Write to all users that can see this user (including this user in the list), appending CR/LF
         * @param text A std::string to send to the users
@@ -979,13 +990,13 @@ class CoreExport User : public connection
         * @param text The format string for text to send to the users
         * @param ... POD-type format arguments
         */
-       void WriteCommon(const char* text, ...);
+       void WriteCommon(const char* text, ...) CUSTOM_PRINTF(2, 3);
 
        /** Write to all users that can see this user (not including this user in the list), appending CR/LF
         * @param text The format string for text to send to the users
         * @param ... POD-type format arguments
         */
-       void WriteCommonExcept(const char* text, ...);
+       void WriteCommonExcept(const char* text, ...) CUSTOM_PRINTF(2, 3);
 
        /** Write to all users that can see this user (not including this user in the list), appending CR/LF
         * @param text A std::string to send to the users
@@ -1004,7 +1015,7 @@ class CoreExport User : public connection
         * @param text The format string to send in the WALLOPS message
         * @param ... Format arguments
         */
-       void WriteWallOps(const char* text, ...);
+       void WriteWallOps(const char* text, ...) CUSTOM_PRINTF(2, 3);
 
        /** Write a WALLOPS message from this user to all local opers.
         * If this user is not opered, the function will return without doing anything.
@@ -1054,7 +1065,7 @@ class CoreExport User : public connection
         * @param text The text format string to send
         * @param ... Format arguments
         */
-       void SendAll(const char* command, const char* text, ...);
+       void SendAll(const char* command, const char* text, ...) CUSTOM_PRINTF(3, 4);
 
        /** Compile a channel list for this user, and send it to the user 'source'
         * Used internally by WHOIS