1 /*
2  * Userlist functions and definitions.
3  * Copyright Colten Edwards 1996
4  *
5  */
6 
7 #ifndef _user_list_h
8 #define _user_list_h
9 
10 void add_shit (char *, char *, char *, char *);
11 void add_user (char *, char *, char *, char *);
12 void showuserlist (char *, char *, char *, char *);
13 void change_user (char *, char *, char *, char *);
14 void savelists (char *, char *, char *, char *);
15 
16 void add_to_a_list (char *, int, char *, char *, char *, int);
17 void showlist (NickList *, char *);
18 UserList *lookup_userlevelc (char *, char *, char *, char *);
19 
20 UserList *nickinuser (char *, char *);
21 ShitList *nickinshit (char *, char *);
22 
23 int	find_user_level (char *, char *, char *);
24 int	find_shit_level (char *, char *, char *);
25 
26 NickList *check_auto (char *, NickList *, ChannelList *);
27 int check_prot (char *, char *, ChannelList *, BanList *, NickList *);
28 void check_shit (ChannelList *);
29 void check_hack (char *, ChannelList *, NickList *, char *);
30 int check_channel_match (char *, char *);
31 int delay_check_auto (char *);
32 
33 
34 extern ShitList *shitlist_list;
35 extern LameList *lame_list;
36 extern WordKickList *ban_words;
37 
38 #define USERLIST_REMOVE 0
39 #define USERLIST_ADD 1
40 #define SHITLIST_ADD 11
41 #define SHITLIST_REMOVE 12
42 
43 #define ADD_VOICE	0x00000001
44 #define ADD_OPS		0x00000002
45 #define ADD_BAN		0x00000004
46 #define ADD_UNBAN	0x00000008
47 #define ADD_INVITE	0x00000010
48 #define ADD_DCC		0x00000020
49 #define ADD_TCL		0x00000040
50 #define ADD_IOPS	0x00000080
51 #define ADD_FLOOD	0x00000100
52 #define ADD_BOT		0x00000200
53 
54 #define PROT_REOP	0x00000400
55 #define PROT_DEOP	0x00000800
56 #define PROT_KICK	0x00001000
57 #define PROT_BAN	0x00002000
58 #define PROT_INVITE	0x00004000
59 #define USER_FLAG_OPS	0x00008000
60 #define USER_FLAG_PROT	0x00010000
61 #define ADD_CTCP	0x00100000
62 
63 #define ADD_FRIEND	(ADD_VOICE|ADD_OPS|ADD_UNBAN|ADD_INVITE)
64 #define ADD_MASTER	(ADD_VOICE|ADD_OPS|ADD_BAN|ADD_UNBAN|ADD_INVITE|ADD_DCC|ADD_FLOOD)
65 #define ADD_OWNER	(ADD_MASTER|ADD_BOT|ADD_CTCP)
66 #define PROT_ALL	(PROT_REOP|PROT_DEOP|PROT_KICK|PROT_BAN|PROT_INVITE)
67 
68 #define SHIT_NOOP	0x0001
69 #define SHIT_KICK	0x0002
70 #define SHIT_KICKBAN	0x0004
71 #define SHIT_PERMBAN	0x0008
72 #define SHIT_IGNORE	0x0010
73 
74 /* user.c functions for dealing with hashed userlist */
75 UserList *find_bestmatch(char *, char *, char *, char *);
76 char * convert_flags(unsigned long flags);
77 UserList *find_userlist(char *, char *, int);
78 void add_userlist(UserList *);
79 UserList *next_userlist(UserList *, int *, void **);
80 void destroy_sorted_userlist(UserList **);
81 UserList *create_sorted_userlist(void);
82 char *convert_flags_to_str(unsigned long);
83 unsigned long convert_str_to_flags(char *);
84 int change_pass(char *, char *);
85 
86 #endif
87 
88