]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/users.h
Add the ability to have multiple SSL profiles
[user/henk/code/inspircd.git] / include / users.h
index 478476cdde38a944a5d87381b6efd80e1a13f960..f8bfb5a6e523eeb78cf7579d4becb2b9709b42c3 100644 (file)
@@ -133,7 +133,7 @@ struct CoreExport ConnectClass : public refcountbase
 
        /** If set to true, no user DNS lookups are to be performed
         */
-       bool nouserdns;
+       bool resolvehostnames;
 
        /** Create a new connect class with no settings.
         */
@@ -306,7 +306,7 @@ class CoreExport User : public Extensible
 
        /** The server the user is connected to.
         */
-       const std::string server;
+       Server* server;
 
        /** The user's away message.
         * If this string is empty, the user is not marked as away.
@@ -328,10 +328,6 @@ class CoreExport User : public Extensible
         */
        unsigned int registered:3;
 
-       /** Whether or not to send an snotice about this user's quitting
-        */
-       unsigned int quietquit:1;
-
        /** If this is set to true, then all socket operations for the user
         * are dropped into the bit-bucket.
         * This value is set by QuitUser, and is not needed seperately from that call.
@@ -361,7 +357,7 @@ class CoreExport User : public Extensible
        /** Constructor
         * @throw CoreException if the UID allocated to the user already exists
         */
-       User(const std::string &uid, const std::string& srv, int objtype);
+       User(const std::string& uid, Server* srv, int objtype);
 
        /** Returns the full displayed host of the user
         * This member function returns the hostname of the user as seen by other users
@@ -593,7 +589,7 @@ class CoreExport User : public Extensible
         * @return True if the change succeeded, false if it didn't
         * (a module vetoed the change).
         */
-       bool ChangeDisplayedHost(const char* host);
+       bool ChangeDisplayedHost(const std::string& host);
 
        /** Change the ident (username) of a user.
         * ALWAYS use this function, rather than writing User::ident directly,
@@ -602,7 +598,7 @@ class CoreExport User : public Extensible
         * @param newident The new ident to set
         * @return True if the change succeeded, false if it didn't
         */
-       bool ChangeIdent(const char* newident);
+       bool ChangeIdent(const std::string& newident);
 
        /** Change a users realname field.
         * ALWAYS use this function, rather than writing User::fullname directly,
@@ -611,7 +607,7 @@ class CoreExport User : public Extensible
         * @param gecos The user's new realname
         * @return True if the change succeeded, false if otherwise
         */
-       bool ChangeName(const char* gecos);
+       bool ChangeName(const std::string& gecos);
 
        /** Change a user's nick
         * @param newnick The new nick
@@ -635,11 +631,6 @@ class CoreExport User : public Extensible
         */
        void PurgeEmptyChannels();
 
-       /** Get the connect class which this user belongs to. NULL for remote users.
-        * @return A pointer to this user's connect class.
-        */
-       virtual ConnectClass* GetClass();
-
        /** Default destructor
         */
        virtual ~User();
@@ -702,7 +693,10 @@ class CoreExport LocalUser : public User, public InviteBase
         */
        reference<ConnectClass> MyClass;
 
-       ConnectClass* GetClass();
+       /** Get the connect class which this user belongs to.
+        * @return A pointer to this user's connect class.
+        */
+       ConnectClass* GetClass() const { return MyClass; }
 
        /** Call this method to find the matching \<connect> for a user, and to check them against it.
         */
@@ -824,7 +818,7 @@ class CoreExport LocalUser : public User, public InviteBase
 class CoreExport RemoteUser : public User
 {
  public:
-       RemoteUser(const std::string& uid, const std::string& srv) : User(uid, srv, USERTYPE_REMOTE)
+       RemoteUser(const std::string& uid, Server* srv) : User(uid, srv, USERTYPE_REMOTE)
        {
        }
        virtual void SendText(const std::string& line);
@@ -833,9 +827,15 @@ class CoreExport RemoteUser : public User
 class CoreExport FakeUser : public User
 {
  public:
-       FakeUser(const std::string &uid, const std::string& srv) : User(uid, srv, USERTYPE_SERVER)
+       FakeUser(const std::string& uid, Server* srv) : User(uid, srv, USERTYPE_SERVER)
+       {
+               nick = srv->GetName();
+       }
+
+       FakeUser(const std::string& uid, const std::string& sname, const std::string& sdesc)
+               : User(uid, new Server(sname, sdesc), USERTYPE_SERVER)
        {
-               nick = srv;
+               nick = sname;
        }
 
        virtual CullResult cull();