X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fusers.h;h=ed7b6bf5e4ae8b752f19624d5e0c83e5f12d3d43;hb=d3ca6510fa23308481d10da0bb7770d251fb659b;hp=637f8f88e0ca815b470c1ba1b751db78d3e8fa47;hpb=3cd1a24a51b9560a6dd6590b4a384f6b6942370d;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/users.h b/include/users.h index 637f8f88e..ed7b6bf5e 100644 --- a/include/users.h +++ b/include/users.h @@ -2,7 +2,7 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2009 InspIRCd Development Team + * InspIRCd: (C) 2002-2010 InspIRCd Development Team * See: http://wiki.inspircd.org/Credits * * This program is free but copyrighted software; see @@ -25,7 +25,9 @@ enum ClassTypes { /** connect:allow */ CC_ALLOW = 0, /** connect:deny */ - CC_DENY = 1 + CC_DENY = 1, + /** named connect block (for opers, etc) */ + CC_NAMED = 2 }; /** RFC1459 channel modes @@ -90,14 +92,6 @@ struct CoreExport ConnectClass : public refcountbase */ unsigned int pingtime; - /** (Optional) Password for this line - */ - std::string pass; - - /** (Optional) Hash Method for this line - */ - std::string hash; - /** Maximum size of sendq for users in this class (bytes) * Users cannot send commands if they go over this limit */ @@ -131,10 +125,6 @@ struct CoreExport ConnectClass : public refcountbase */ unsigned int maxchans; - /** Port number this connect class applies to - */ - int port; - /** How many users may be in this connect class before they are refused? * (0 = no limit = default) */ @@ -150,11 +140,8 @@ struct CoreExport ConnectClass : public refcountbase /** Update the settings in this block to match the given block */ void Update(const ConnectClass* newSettings); - const std::string& GetName() { return name; } - const std::string& GetPass() { return pass; } const std::string& GetHost() { return host; } - const int GetPort() { return port; } /** Returns the registration timeout */ @@ -196,7 +183,7 @@ struct CoreExport ConnectClass : public refcountbase */ unsigned int GetPenaltyThreshold() { - return (penaltythreshold ? penaltythreshold : 10); + return penaltythreshold ? penaltythreshold : (fakelag ? 10 : 20); } unsigned int GetCommandRate() @@ -204,7 +191,7 @@ struct CoreExport ConnectClass : public refcountbase return commandrate ? commandrate : 1000; } - /** Returusn the maximum number of local sessions + /** Return the maximum number of local sessions */ unsigned long GetMaxLocal() { @@ -513,14 +500,6 @@ class CoreExport User : public Extensible */ void Oper(OperInfo* info); - /** Change this users hash key to a new string. - * You should not call this function directly. It is used by the core - * to update the users hash entry on a nickchange. - * @param New new user_hash key - * @return Pointer to User in hash (usually 'this') - */ - User* UpdateNickHash(const char* New); - /** Force a nickname change. * If the nickname change fails (for example, because the nick in question * already exists) this function will return false, and you must then either @@ -528,7 +507,7 @@ class CoreExport User : public Extensible * @param newnick The nickname to change to * @return True if the nickchange was successful. */ - bool ForceNickChange(const char* newnick); + inline bool ForceNickChange(const char* newnick) { return ChangeNick(newnick, true); } /** Oper down. * This will clear the +o usermode and unset the user's oper type @@ -670,6 +649,13 @@ class CoreExport User : public Extensible */ bool ChangeName(const char* gecos); + /** Change a user's nick + * @param newnick The new nick + * @param force True if the change is being forced (should not be blocked by modes like +N) + * @return True if the change succeeded + */ + bool ChangeNick(const std::string& newnick, bool force = false); + /** Send a command to all local users from this user * The command given must be able to send text with the * first parameter as a servermask (e.g. $*), so basically @@ -704,14 +690,6 @@ class CoreExport User : public Extensible */ virtual ConnectClass* GetClass(); - /** Show the message of the day to this user - */ - void ShowMOTD(); - - /** Show the server RULES file to this user - */ - void ShowRULES(); - /** Default destructor */ virtual ~User(); @@ -734,6 +712,8 @@ class CoreExport UserIOHandler : public StreamSocket void AddWriteBuf(const std::string &data); }; +typedef unsigned int already_sent_t; + class CoreExport LocalUser : public User { /** A list of channels the user has a pending invite to. @@ -798,6 +778,9 @@ class CoreExport LocalUser : public User */ unsigned int CommandFloodPenalty; + static already_sent_t already_sent_id; + already_sent_t already_sent; + /** Stored reverse lookup from res_forward. Should not be used after resolution. */ std::string stored_host; @@ -873,8 +856,6 @@ class CoreExport LocalUser : public User * @return True if the user can set or unset this mode. */ bool HasModePermission(unsigned char mode, ModeType type); - - inline int GetFd() { return eh.GetFd(); } }; class CoreExport RemoteUser : public User @@ -926,12 +907,8 @@ inline FakeUser* IS_SERVER(User* u) class CoreExport UserResolver : public Resolver { private: - /** User this class is 'attached' to. - */ - LocalUser* bound_user; - /** File descriptor teh lookup is bound to - */ - int bound_fd; + /** UUID we are looking up */ + std::string uuid; /** True if the lookup is forward, false if is a reverse lookup */ bool fwd;