]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/users.h
Merge pull request #569 from ShutterQuick/inspircd+asrootfix
[user/henk/code/inspircd.git] / include / users.h
index 9b7d28d31f685896aabf38505b3d1b196bdf9f87..73ecba0ab51d47c7166fefc9bcccd3ef123aa161 100644 (file)
@@ -144,6 +144,10 @@ struct CoreExport ConnectClass : public refcountbase
         */
        unsigned long limit;
 
+       /** If set to true, no user DNS lookups are to be performed
+        */
+       bool nouserdns;
+
        /** Create a new connect class with no settings.
         */
        ConnectClass(ConfigTag* tag, char type, const std::string& mask);
@@ -399,7 +403,7 @@ class CoreExport User : public Extensible
        /** Create a displayable mode string for this users snomasks
         * @return The notice mask character sequence
         */
-       const char* FormatNoticeMasks();
+       std::string FormatNoticeMasks();
 
        /** Process a snomask modifier string, e.g. +abc-de
         * @param sm A sequence of notice mask characters
@@ -443,12 +447,16 @@ class CoreExport User : public Extensible
         * @return True if the mode is set
         */
        bool IsModeSet(unsigned char m);
+       bool IsModeSet(ModeHandler* mh);
+       bool IsModeSet(ModeHandler& mh) { return IsModeSet(&mh); }
 
        /** Set a specific usermode to on or off
         * @param m The user mode
         * @param value On or off setting of the mode
         */
        void SetMode(unsigned char m, bool value);
+       void SetMode(ModeHandler* mh, bool value);
+       void SetMode(ModeHandler& mh, bool value) { SetMode(&mh, value); }
 
        /** Returns true or false for if a user can execute a privilaged oper command.
         * This is done by looking up their oper type from User::oper, then referencing
@@ -477,12 +485,6 @@ class CoreExport User : public Extensible
         */
        virtual bool HasModePermission(unsigned char mode, ModeType type);
 
-       /** Creates a wildcard host.
-        * Takes a buffer to use and fills the given buffer with the host in the format *!*\@hostname
-        * @return The wildcarded hostname in *!*\@host form
-        */
-       char* MakeWildHost();
-
        /** Creates a usermask with real host.
         * Takes a buffer to use and fills the given buffer with the hostmask in the format user\@host
         * @return the usermask in the format user\@host
@@ -507,7 +509,7 @@ class CoreExport User : public Extensible
         * @param newnick The nickname to change to
         * @return True if the nickchange was successful.
         */
-       inline bool ForceNickChange(const char* newnick) { return ChangeNick(newnick, true); }
+       bool ForceNickChange(const std::string& newnick) { return ChangeNick(newnick, true); }
 
        /** Oper down.
         * This will clear the +o usermode and unset the user's oper type
@@ -539,6 +541,11 @@ class CoreExport User : public Extensible
         */
        void WriteServ(const char* text, ...) CUSTOM_PRINTF(2, 3);
 
+       /** Sends a server notice to this user.
+        * @param text The contents of the message to send.
+        */
+       void WriteNotice(const std::string& text);
+
        void WriteNumeric(unsigned int numeric, const char* text, ...) CUSTOM_PRINTF(3, 4);
 
        void WriteNumeric(unsigned int numeric, const std::string &text);
@@ -595,10 +602,10 @@ class CoreExport User : public Extensible
        void WriteCommonQuit(const std::string &normal_text, const std::string &oper_text);
 
        /** Dump text to a user target, splitting it appropriately to fit
-        * @param LinePrefix text to prefix each complete line with
-        * @param TextStream the text to send to the user
+        * @param linePrefix text to prefix each complete line with
+        * @param textStream the text to send to the user
         */
-       void SendText(const std::string &LinePrefix, std::stringstream &TextStream);
+       void SendText(const std::string& linePrefix, std::stringstream& textStream);
 
        /** Write to the user, routing the line if the user is remote.
         */
@@ -815,7 +822,7 @@ class CoreExport LocalUser : public User, public InviteBase
        InviteList& GetInviteList();
 
        /** Returns true if a user is invited to a channel.
-        * @param channel A channel to look up
+        * @param chan A channel to look up
         * @return True if the user is invited to the given channel
         */
        bool IsInvited(Channel* chan) { return (Invitation::Find(chan, this) != NULL); }
@@ -823,7 +830,7 @@ class CoreExport LocalUser : public User, public InviteBase
        /** Removes a channel from a users invite list.
         * This member function is called on successfully joining an invite only channel
         * to which the user has previously been invited, to clear the invitation.
-        * @param channel The channel to remove the invite to
+        * @param chan The channel to remove the invite to
         * @return True if the user was invited to the channel and the invite was erased, false if the user wasn't invited
         */
        bool RemoveInvite(Channel* chan);
@@ -898,3 +905,14 @@ inline FakeUser* IS_SERVER(User* u)
        return u->usertype == USERTYPE_SERVER ? static_cast<FakeUser*>(u) : NULL;
 }
 
+inline bool User::IsModeSet(ModeHandler* mh)
+{
+       char m = mh->GetModeChar();
+       return (modes[m-65]);
+}
+
+inline void User::SetMode(ModeHandler* mh, bool value)
+{
+       char m = mh->GetModeChar();
+       modes[m-65] = value;
+}