aboutsummaryrefslogtreecommitdiff
path: root/ircd/service_def.h
diff options
context:
space:
mode:
Diffstat (limited to 'ircd/service_def.h')
-rw-r--r--ircd/service_def.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/ircd/service_def.h b/ircd/service_def.h
new file mode 100644
index 0000000..02a1d9d
--- /dev/null
+++ b/ircd/service_def.h
@@ -0,0 +1,54 @@
+
+/* The different things a service can `sniff' */
+
+#define SERVICE_WANT_SERVICE 0x00000001 /* other services signing on/off */
+#define SERVICE_WANT_OPER 0x00000002 /* operators, included in _UMODE */
+#define SERVICE_WANT_UMODE 0x00000004 /* user modes, iow + local modes */
+#define SERVICE_WANT_AWAY 0x00000008 /* away isn't propaged anymore.. */
+#define SERVICE_WANT_KILL 0x00000010 /* KILLs */
+#define SERVICE_WANT_NICK 0x00000020 /* all NICKs (new user, change) */
+#define SERVICE_WANT_USER 0x00000040 /* USER signing on */
+#define SERVICE_WANT_QUIT 0x00000080 /* all QUITs (users signing off) */
+#define SERVICE_WANT_SERVER 0x00000100 /* servers signing on */
+#define SERVICE_WANT_WALLOP 0x00000200 /* wallops */
+#define SERVICE_WANT_SQUIT 0x00000400 /* servers signing off */
+#define SERVICE_WANT_RQUIT 0x00000800 /* regular user QUITs (these which
+ are also sent between servers) */
+#define SERVICE_WANT_MODE 0x00001000 /* channel modes (not +ov) */
+#define SERVICE_WANT_CHANNEL 0x00002000 /* channel creations/destructions */
+#define SERVICE_WANT_VCHANNEL 0x00004000 /* channel joins/parts */
+#define SERVICE_WANT_TOPIC 0x00008000 /* channel topics */
+
+#define SERVICE_WANT_ERRORS 0x01000000 /* &ERRORS */
+#define SERVICE_WANT_NOTICES 0x02000000 /* &NOTICES */
+#define SERVICE_WANT_LOCAL 0x04000000 /* &LOCAL */
+#define SERVICE_WANT_NUMERICS 0x08000000 /* &NUMERICS */
+
+#define SERVICE_WANT_USERLOG 0x10000000 /* FNAME_USERLOG */
+#define SERVICE_WANT_CONNLOG 0x20000000 /* FNAME_CONNLOG */
+
+/* masks */
+#define SERVICE_MASK_GLOBAL 0x00007000 /*for these,service must be global*/
+#define SERVICE_MASK_PREFIX 0x00000FFF /* these actions have a prefix */
+#define SERVICE_MASK_ALL 0x3F00FFFF /* all possible actions */
+#define SERVICE_MASK_NUM (SERVICE_WANT_NICK|SERVICE_WANT_USER|\
+ SERVICE_WANT_UMODE)
+
+/* options */
+#define SERVICE_WANT_PREFIX 0x00010000 /* to receive n!u@h instead of n */
+#define SERVICE_WANT_TOKEN 0x00020000 /* use serv token instead of name */
+#define SERVICE_WANT_EXTNICK 0x00040000 /* user extended NICK syntax */
+
+/* A couple example types of services */
+#define SERVICE_ALL SERVICE_MASK_ALL /* 4095 */
+#define SERVICE_NICK SERVICE_WANT_NICK | \
+ SERVICE_WANT_QUIT | \
+ SERVICE_WANT_AWAY /* 168 */
+#define SERVICE_USERS SERVICE_WANT_NICK | \
+ SERVICE_WANT_USER | \
+ SERVICE_WANT_QUIT | \
+ SERVICE_WANT_AWAY | \
+ SERVICE_WANT_UMODE /* 236 */
+#define SERVICE_LINKS SERVICE_WANT_SERVER | \
+ SERVICE_WANT_SQUIT | \
+ SERVICE_WANT_WALLOP /* 1792 */