#define _UserNode_h
#include "main.h"
-#define USERFLAG_ISBOT 0x01
+#define USERFLAG_ISBOT 0x0001
+#define USERFLAG_ISAUTHED 0x0002
+#define USERFLAG_ISIRCOP 0x0004
+#define USERFLAG_ISTMPUSER 0x0008
+#define USERFLAG_ISSERVER 0x0010
+#define USERFLAG_FREETMPUSER 0x0020
+#define USERFLAG_LOADED_SETTINGS 0x0040
+#define USERFLAG_REPLY_PRIVMSG 0x0080
+#define USERFLAG_GOD_MODE 0x0100
+
+#define USERFLAG_SCRIPTFLAG1 0x40000000
+#define USERFLAG_SCRIPTFLAG2 0x80000000
+
struct ChanUser;
+struct language;
struct UserNode {
char nick[NICKLEN+1];
char ident[USERLEN+1];
char host[HOSTLEN+1];
char realname[REALLEN+1];
- char flags;
+ char auth[AUTHLEN+1];
+ unsigned int flags;
+ time_t created;
struct ChanUser *channel;
+ struct language *language;
struct UserNode *next;
};
+#define isNetworkService(USER) (USER->flags & (USERFLAG_ISBOT | USERFLAG_ISIRCOP))
+
void init_UserNode();
+void free_UserNode();
int is_valid_nick(const char *nick);
struct UserNode* getUserByNick(const char *nick);
struct UserNode* getUserByMask(const char *mask);
+int countUsersWithHost(char *host);
+char *getAuthFakehost(char *auth);
struct UserNode* searchUserByNick(const char *nick);
+struct UserNode* getAllUsers(struct UserNode *last);
+int getUserCount();
struct UserNode* addUser(const char *nick);
struct UserNode* addUserMask(const char *mask);
+struct UserNode* createTempUser(const char *mask);
int renameUser(struct UserNode* user, const char *new_nick);
void delUser(struct UserNode* user, int freeUser);
+void clearTempUsers();
#endif