#define CC_ALLOW 0
#define CC_DENY 1
-template<typename T> inline string ConvToStr(const T &in);
+template<typename T> string ConvToStr(const T &in);
/** Holds a channel name to which a user has been invited.
*/
/** The host displayed to non-opers (used for cloaking etc).
* This usually matches the value of userrec::host.
*/
- char dhost[160];
+ char dhost[64];
/** The users full name.
*/
*/
char modes[54];
- std::vector<ucrec> chans;
+ std::vector<ucrec*> chans;
/** The server the user is connected to.
*/
#endif
};
-/** A lightweight userrec used by WHOWAS
- */
-class WhoWasUser
+class WhoWasGroup
{
public:
- char nick[NICKMAX];
- char ident[IDENTMAX+1];
- char dhost[160];
- char host[160];
- char fullname[MAXGECOS+1];
- char server[256];
+ char* host;
+ char* dhost;
+ char* ident;
+ char* server;
+ char* gecos;
time_t signon;
+
+ WhoWasGroup(userrec* user);
+ ~WhoWasGroup();
};
+typedef std::deque<WhoWasGroup*> whowas_set;
+typedef std::map<irc::string,whowas_set*> whowas_users;
+
+/** A lightweight userrec used by WHOWAS
+ */
+
void AddOper(userrec* user);
void DeleteOper(userrec* user);
void kill_link(userrec *user,const char* r);
void kill_link_silent(userrec *user,const char* r);
void AddWhoWas(userrec* u);
+void MaintainWhoWas(time_t TIME);
void AddClient(int socket, int port, bool iscached, in_addr ip4);
void FullConnectUser(userrec* user, CullList* Goners);
userrec* ReHashNick(char* Old, char* New);
void force_nickchange(userrec* user,const char* newnick);
+void ReadClassesAndTypes();
#endif