]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/users.h
Replace most usages of "GECOS" with "real" or "real name".
[user/henk/code/inspircd.git] / include / users.h
index 4c8df549dce07346a6b09a0a640215de38697c13..bcddab1bfa08b518acefc05df6f712f88eac41bc 100644 (file)
@@ -244,6 +244,12 @@ class CoreExport User : public Extensible
         */
        std::string cachedip;
 
+       /** If set then the hostname which is displayed to users. */
+       std::string displayhost;
+
+       /** The real hostname of this user. */
+       std::string realhost;
+
        /** The user's mode list.
         * Much love to the STL for giving us an easy to use bitset, saving us RAM.
         * if (modes[modeid]) is set, then the mode is set.
@@ -270,11 +276,6 @@ class CoreExport User : public Extensible
         */
        typedef insp::intrusive_list<Membership> ChanList;
 
-       /** Hostname of connection.
-        * This should be valid as per RFC1035.
-        */
-       std::string host;
-
        /** Time that the object was instantiated (used for TS calculation etc)
        */
        time_t age;
@@ -307,12 +308,7 @@ class CoreExport User : public Extensible
         */
        std::string ident;
 
-       /** The host displayed to non-opers (used for cloaking etc).
-        * This usually matches the value of User::host.
-        */
-       std::string dhost;
-
-       /** The users full name (GECOS).
+       /** The users full name.
         */
        std::string fullname;
 
@@ -357,13 +353,24 @@ class CoreExport User : public Extensible
        unsigned int quitting:1;
 
        /** What type of user is this? */
-       const unsigned int usertype:2;
+       const UserType usertype:2;
 
        /** Get client IP string from sockaddr, using static internal buffer
         * @return The IP string
         */
        const std::string& GetIPString();
 
+       /** Retrieves this user's hostname.
+        * @param uncloak If true then return the real host; otherwise, the display host.
+        */
+       const std::string& GetHost(bool uncloak) const;
+
+       /** Retrieves this user's displayed hostname. */
+       const std::string& GetDisplayedHost() const;
+
+       /** Retrieves this user's real hostname. */
+       const std::string& GetRealHost() const;
+
        /** Get CIDR mask, using default range, for this user
         */
        irc::sockets::cidr_mask GetCIDRMask();
@@ -371,14 +378,14 @@ class CoreExport User : public Extensible
        /** Sets the client IP for this user
         * @return true if the conversion was successful
         */
-       virtual bool SetClientIP(const char* sip, bool recheck_eline = true);
+       virtual bool SetClientIP(const std::string& address, bool recheck_eline = true);
 
        virtual void SetClientIP(const irc::sockets::sockaddrs& sa, bool recheck_eline = true);
 
        /** Constructor
         * @throw CoreException if the UID allocated to the user already exists
         */
-       User(const std::string& uid, Server* srv, int objtype);
+       User(const std::string& uid, Server* srv, UserType objtype);
 
        /** Returns the full displayed host of the user
         * This member function returns the hostname of the user as seen by other users
@@ -435,7 +442,7 @@ class CoreExport User : public Extensible
        bool IsModeSet(UserModeReference& moderef) const;
 
        /** Set a specific usermode to on or off
-        * @param m The user mode
+        * @param mh The user mode
         * @param value On or off setting of the mode
         */
        void SetMode(ModeHandler* mh, bool value);
@@ -675,16 +682,18 @@ class CoreExport User : public Extensible
         */
        bool SharesChannelWith(User *other);
 
-       /** Change the displayed host of a user.
-        * ALWAYS use this function, rather than writing User::dhost directly,
-        * as this triggers module events allowing the change to be syncronized to
-        * remote servers.
-        * @param host The new hostname to set
-        * @return True if the change succeeded, false if it didn't
-        * (a module vetoed the change).
+       /** Change the displayed hostname of this user.
+        * @param host The new displayed hostname of this user.
+        * @return True if the hostname was changed successfully; otherwise, false.
         */
        bool ChangeDisplayedHost(const std::string& host);
 
+       /** Change the real hostname of this user.
+        * @param host The new real hostname of this user.
+        * @param resetdisplay Whether to reset the display host to this value.
+        */
+       void ChangeRealHost(const std::string& host, bool resetdisplay);
+
        /** Change the ident (username) of a user.
         * ALWAYS use this function, rather than writing User::ident directly,
         * as this triggers module events allowing the change to be syncronized to
@@ -698,13 +707,14 @@ class CoreExport User : public Extensible
         * ALWAYS use this function, rather than writing User::fullname directly,
         * as this triggers module events allowing the change to be syncronized to
         * remote servers.
-        * @param gecos The user's new realname
+        * @param real The user's new real name
         * @return True if the change succeeded, false if otherwise
         */
-       bool ChangeName(const std::string& gecos);
+       bool ChangeName(const std::string& real);
 
        /** Change a user's nick
         * @param newnick The new nick. If equal to the users uuid, the nick change always succeeds.
+        * @param newts The time at which this nick change happened.
         * @return True if the change succeeded
         */
        bool ChangeNick(const std::string& newnick, time_t newts = 0);
@@ -717,7 +727,7 @@ class CoreExport User : public Extensible
        /** Default destructor
         */
        virtual ~User();
-       virtual CullResult cull() CXX11_OVERRIDE;
+       CullResult cull() CXX11_OVERRIDE;
 };
 
 class CoreExport UserIOHandler : public StreamSocket
@@ -725,8 +735,9 @@ class CoreExport UserIOHandler : public StreamSocket
  public:
        LocalUser* const user;
        UserIOHandler(LocalUser* me) : user(me) {}
-       void OnDataReady();
-       void OnError(BufferedSocketError error);
+       void OnDataReady() CXX11_OVERRIDE;
+       void OnSetEndPoint(const irc::sockets::sockaddrs& local, const irc::sockets::sockaddrs& remote) CXX11_OVERRIDE;
+       void OnError(BufferedSocketError error) CXX11_OVERRIDE;
 
        /** Adds to the user's write buffer.
         * You may add any amount of text up to this users sendq value, if you exceed the
@@ -836,7 +847,7 @@ class CoreExport LocalUser : public User, public insp::intrusive_list_node<Local
         */
        void SetClass(const std::string &explicit_name = "");
 
-       bool SetClientIP(const char* sip, bool recheck_eline = true) CXX11_OVERRIDE;
+       bool SetClientIP(const std::string& address, bool recheck_eline = true) CXX11_OVERRIDE;
 
        void SetClientIP(const irc::sockets::sockaddrs& sa, bool recheck_eline = true) CXX11_OVERRIDE;
 
@@ -904,9 +915,9 @@ class CoreExport FakeUser : public User
                nick = sname;
        }
 
-       virtual CullResult cull() CXX11_OVERRIDE;
-       virtual const std::string& GetFullHost() CXX11_OVERRIDE;
-       virtual const std::string& GetFullRealHost() CXX11_OVERRIDE;
+       CullResult cull() CXX11_OVERRIDE;
+       const std::string& GetFullHost() CXX11_OVERRIDE;
+       const std::string& GetFullRealHost() CXX11_OVERRIDE;
 };
 
 /* Faster than dynamic_cast */