/** Typedef for the list of user-channel records for a user
*/
-typedef std::vector<ucrec*> UserChanList;
+typedef std::map<chanrec*, char> UserChanList;
+typedef UserChanList::iterator UCListIter;
/** Holds all information about a user
* This class stores all information about a user connected to the irc server. Everything about a
*/
long recvqmax;
+ /** This is true if the user matched an exception when they connected to the ircd.
+ * It isnt valid after this point, and you should not attempt to do anything with it
+ * after this point, because the eline might be removed at a later time, and/or no
+ * longer be applicable to this user. It is only used to save doing the eline lookup
+ * twice (instead we do it once and set this value).
+ */
+ bool exempt;
+
/** Default constructor
* @throw Nothing at present
*/
*/
typedef std::map<irc::string,whowas_set*> whowas_users;
+ /** Sets of time and users in whowas list
+ */
+ typedef std::map<time_t,irc::string> whowas_users_fifo;
+
/** Called every hour by the core to remove expired entries
*/
void MaintainWhoWas(InspIRCd* ServerInstance, time_t TIME);
+
+ /** Prune for WhoWasGroupSize, WhoWasMaxGroups and
+ * WhoWasMaxKeep on rehash
+ */
+ void PruneWhoWas(InspIRCd* ServerInstance, time_t TIME);
};
};
/* Configuration callbacks */
class ServerConfig;
-bool InitTypes(ServerConfig* conf, const char* tag);
-bool InitClasses(ServerConfig* conf, const char* tag);
-bool DoType(ServerConfig* conf, const char* tag, char** entries, void** values, int* types);
-bool DoClass(ServerConfig* conf, const char* tag, char** entries, void** values, int* types);
-bool DoneClassesAndTypes(ServerConfig* conf, const char* tag);
#endif