changed Makefile; build all commands as an own file
[NeonServV5.git] / UserNode.h
index bc5780bb39ade865b41fc771326aace4f31352a2..f905437aae542a80341aafa035dafb29f4d625a4 100644 (file)
@@ -2,28 +2,53 @@
 #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