changed Makefile; build all commands as an own file
[NeonServV5.git] / UserNode.h
1 #ifndef _UserNode_h
2 #define _UserNode_h
3 #include "main.h"
4
5 #define USERFLAG_ISBOT              0x0001
6 #define USERFLAG_ISAUTHED           0x0002
7 #define USERFLAG_ISIRCOP            0x0004
8 #define USERFLAG_ISTMPUSER          0x0008
9 #define USERFLAG_ISSERVER           0x0010
10 #define USERFLAG_FREETMPUSER        0x0020
11 #define USERFLAG_LOADED_SETTINGS    0x0040
12 #define USERFLAG_REPLY_PRIVMSG      0x0080
13 #define USERFLAG_GOD_MODE           0x0100
14
15 #define USERFLAG_SCRIPTFLAG1        0x40000000
16 #define USERFLAG_SCRIPTFLAG2        0x80000000
17
18 struct ChanUser;
19 struct language;
20
21 struct UserNode {
22     char nick[NICKLEN+1];
23     char ident[USERLEN+1];
24     char host[HOSTLEN+1];
25     char realname[REALLEN+1];
26     char auth[AUTHLEN+1];
27     unsigned int flags;
28     time_t created;
29     struct ChanUser *channel;
30     struct language *language;
31     
32     struct UserNode *next;
33 };
34
35 #define isNetworkService(USER) (USER->flags & (USERFLAG_ISBOT | USERFLAG_ISIRCOP))
36
37 void init_UserNode();
38 void free_UserNode();
39 int is_valid_nick(const char *nick);
40 struct UserNode* getUserByNick(const char *nick);
41 struct UserNode* getUserByMask(const char *mask);
42 int countUsersWithHost(char *host);
43 char *getAuthFakehost(char *auth);
44 struct UserNode* searchUserByNick(const char *nick);
45 struct UserNode* getAllUsers(struct UserNode *last);
46 int getUserCount();
47 struct UserNode* addUser(const char *nick);
48 struct UserNode* addUserMask(const char *mask);
49 struct UserNode* createTempUser(const char *mask);
50 int renameUser(struct UserNode* user, const char *new_nick);
51 void delUser(struct UserNode* user, int freeUser);
52 void clearTempUsers();
53
54 #endif