1 
2 /* The different things a service can `sniff' */
3 
4 #define	SERVICE_WANT_SERVICE	0x00000001 /* other services signing on/off */
5 #define	SERVICE_WANT_OPER	0x00000002 /* operators, included in _UMODE */
6 #define	SERVICE_WANT_UMODE	0x00000004 /* user modes, iow + local modes */
7 #define	SERVICE_WANT_AWAY	0x00000008 /* away isn't propaged anymore.. */
8 #define	SERVICE_WANT_KILL	0x00000010 /* KILLs */
9 #define	SERVICE_WANT_NICK	0x00000020 /* all NICKs (new user, change) */
10 #define	SERVICE_WANT_USER	0x00000040 /* USER signing on */
11 #define	SERVICE_WANT_QUIT	0x00000080 /* all QUITs (users signing off) */
12 #define	SERVICE_WANT_SERVER	0x00000100 /* servers signing on */
13 #define	SERVICE_WANT_WALLOP	0x00000200 /* wallops */
14 #define	SERVICE_WANT_SQUIT	0x00000400 /* servers signing off */
15 #define	SERVICE_WANT_RQUIT	0x00000800 /* regular user QUITs (these which
16 					   are also sent between servers) */
17 #define	SERVICE_WANT_MODE	0x00001000 /* channel modes (not +ov) */
18 #define	SERVICE_WANT_CHANNEL	0x00002000 /* channel creations/destructions */
19 #define	SERVICE_WANT_VCHANNEL	0x00004000 /* channel joins/parts */
20 #define	SERVICE_WANT_TOPIC	0x00008000 /* channel topics */
21 
22 #define	SERVICE_WANT_ERRORS	0x01000000 /* &ERRORS */
23 #define	SERVICE_WANT_NOTICES	0x02000000 /* &NOTICES */
24 #define	SERVICE_WANT_LOCAL	0x04000000 /* &LOCAL */
25 #define	SERVICE_WANT_NUMERICS	0x08000000 /* &NUMERICS */
26 
27 #define	SERVICE_WANT_USERLOG	0x10000000 /* FNAME_USERLOG */
28 #define	SERVICE_WANT_CONNLOG	0x20000000 /* FNAME_CONNLOG */
29 
30 #define	SERVICE_WANT_CLIENTS	0x40000000 /* &CLIENTS */
31 
32 #define	SERVICE_WANT_TKLINE	0x00100000 /* service wants to TKLINE */
33 #define	SERVICE_WANT_KLINE	0x00200000 /* service wants to KLINE */
34 
35 /* masks */
36 #define	SERVICE_MASK_GLOBAL	0x00007000 /*for these,service must be global*/
37 #define	SERVICE_MASK_PREFIX	0x00000FFF /* these actions have a prefix */
38 #define	SERVICE_MASK_ALL	0x7F30FFFF /* all possible actions */
39 #define	SERVICE_MASK_NUM	(SERVICE_WANT_NICK|SERVICE_WANT_USER|\
40 				 SERVICE_WANT_UMODE)
41 
42 /* options */
43 #define	SERVICE_WANT_PREFIX	0x00010000 /* to receive n!u@h instead of n */
44 #define	SERVICE_WANT_SID	0x00020000 /* use serv token instead of name */
45 #define	SERVICE_WANT_EXTNICK	0x00040000 /* user extended NICK syntax */
46 #define	SERVICE_WANT_UID	0x00080000 /* user extended UID syntax */
47 
48 /* A couple example types of services */
49 #define	SERVICE_ALL	SERVICE_MASK_ALL
50 #define	SERVICE_NICK	SERVICE_WANT_NICK | \
51 			SERVICE_WANT_QUIT | \
52 			SERVICE_WANT_AWAY
53 #define	SERVICE_USERS	SERVICE_WANT_NICK | \
54 			SERVICE_WANT_USER | \
55 			SERVICE_WANT_QUIT | \
56 			SERVICE_WANT_AWAY | \
57 			SERVICE_WANT_UMODE
58 #define	SERVICE_LINKS	SERVICE_WANT_SERVER | \
59 			SERVICE_WANT_SQUIT | \
60 			SERVICE_WANT_WALLOP
61