summaryrefslogtreecommitdiff
path: root/services.h
diff options
context:
space:
mode:
Diffstat (limited to 'services.h')
-rw-r--r--services.h48
1 files changed, 44 insertions, 4 deletions
diff --git a/services.h b/services.h
index e207e971b..1d8e54fad 100644
--- a/services.h
+++ b/services.h
@@ -134,22 +134,32 @@ typedef struct channel_ Channel;
/* Protocol tweaks */
#ifdef IRC_HYBRID
# define HAS_HALFOP
+# define HAS_EXCEPT /* Has +e (chan excepts) */
#endif
#ifdef IRC_VIAGRA
# define HAS_HALFOP
# define HAS_VHOST
# define HAS_VIDENT
+# define HAS_EXCEPT
#endif
#ifdef IRC_BAHAMUT
# define HAS_NICKIP
#endif
+#ifdef IRC_RAGE2
+# define HAS_HALFOP
+# define HAS_EXCEPT
+# define HAS_VHOST
+# define HAS_NICKVHOST
+#endif
+
#ifdef IRC_PTLINK
# define HAS_NICKVHOST
# define HAS_VHOST
# define HAS_FMODE
+# define HAS_EXCEPT
#endif
#ifdef IRC_ULTIMATE
@@ -158,6 +168,7 @@ typedef struct channel_ Channel;
# define HAS_LMODE /* Has +L chan mode */
# define HAS_VHOST
# define HAS_VIDENT /* Can the IRCD Change Idents on the fly */
+# define HAS_EXCEPT
#endif
#ifdef IRC_UNREAL
@@ -167,6 +178,7 @@ typedef struct channel_ Channel;
# define HAS_NICKVHOST
# define HAS_VHOST
# define HAS_VIDENT /* Can the IRCD Change Idents on the fly */
+# define HAS_EXCEPT
#endif
#ifdef IRC_ULTIMATE3
@@ -174,6 +186,7 @@ typedef struct channel_ Channel;
# define HAS_VHOST
# define HAS_NICKVHOST
# define HAS_VIDENT /* Can the IRCD Change Idents on the fly */
+# define HAS_EXCEPT
#endif
/*************************************************************************/
@@ -667,6 +680,10 @@ struct csmodeutil_ {
#define MUT_DEPROTECT 6
#define MUT_PROTECT 7
#endif
+#ifdef IRC_RAGE2
+#define MUT_DEPROTECT 6
+#define MUT_PROTECT 7
+#endif
#ifdef IRC_VIAGRA
#define MUT_DEPROTECT 6
#define MUT_PROTECT 7
@@ -752,12 +769,12 @@ struct user_ {
#define UMODE_p 0x04000000
#endif
-#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_VIAGRA)
+#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_VIAGRA) || defined(IRC_RAGE2)
# define UMODE_x 0x40000000
#endif
/* Returns *current* user hostname */
-#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_VIAGRA)
+#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_VIAGRA) || defined(IRC_RAGE2)
# define GetHost(x) ((x)->mode & UMODE_x ? (x)->vhost : (x)->host)
#elif defined(IRC_PTLINK)
# define GetHost(x) ((x)->mode & UMODE_o ? (x)->vhost ? (x)->vhost : (x)->host : (x)->host)
@@ -789,7 +806,14 @@ struct user_ {
(user), (host), ServerName, (real)); \
if ((qline)) send_cmd(NULL, "SQLINE %s :Reserved for services", (nick)); \
} while (0)
-#elif defined(IRC_BAHAMUT) && !defined(IRC_ULTIMATE3)
+#elif defined(IRC_RAGE2)
+# define NEWNICK(nick,user,host,real,modes,qline) \
+ do { \
+ send_cmd(NULL, "SNICK %s %ld 1 %s %s 0 * %s 0 %s :%s", (nick), time(NULL), (user), \
+ (host), ServerName, (modes), (real)); \
+ if ((qline)) send_cmd(NULL, "SQLINE %s :Reserved for services", (nick)); \
+ } while (0)
+#elif defined(IRC_BAHAMUT) && !defined(IRC_ULTIMATE3) && !defined(IRC_RAGE2)
# define NEWNICK(nick,user,host,real,modes,qline) \
do { \
send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s 0 0 :%s", (nick), time(NULL), (modes), \
@@ -885,6 +909,10 @@ struct cumode_ {
#define CUS_PROTECT 0x0010 /* Protected users (+a) */
#endif
+#ifdef IRC_RAGE2
+#define CUS_PROTECT 0x0010 /* Protected users (+a) */
+#endif
+
/* Used by PTlink */
#ifdef IRC_PTLINK
#define CUS_PROTECT 0x0016 /* Protected users (+a) */
@@ -902,13 +930,17 @@ struct cumode_ {
# define CHAN_MAX_SYMBOLS 5
#elif defined(IRC_UNREAL)
# define CHAN_MAX_SYMBOLS 5
+#elif defined(IRC_RAGE2)
+# define CHAN_MAX_SYMBOLS 3
#else
# define CHAN_MAX_SYMBOLS 2
#endif
/* Binary modes that need to be cleared */
-#if defined(IRC_BAHAMUT)
+#if defined(IRC_RAGE2)
+#define MODESTOREMOVE "-iklmnpRstcOASCNM"
+#elif defined(IRC_BAHAMUT)
#define MODESTOREMOVE "-ciklmnpstOR"
#elif defined(IRC_ULTIMATE)
#define MODESTOREMOVE "-kiflmnpstxAIKLORS"
@@ -1063,6 +1095,14 @@ struct channel_ {
#define CMODE_K 0x00004000
#endif
+/* These modes are for IRC_RAGE2 servers only */
+#ifdef IRC_RAGE2
+#define CMODE_A 0x00000800
+#define CMODE_N 0x00001000
+#define CMODE_S 0x00002000
+#define CMODE_C 0x00004000
+#endif
+
/* These modes are for IRC_PTLINK servers only. */
#ifdef IRC_PTLINK
#define CMODE_A 0x00000400