]> 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 74b55202d5db4375a67119711245e07923bb1b94..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. :)
@@ -556,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.
@@ -648,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
         */
@@ -678,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.
@@ -873,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();
@@ -931,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
@@ -942,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);
 
@@ -959,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
@@ -972,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
@@ -983,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
@@ -1008,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.
@@ -1058,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