summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordane dane@31f1291d-b8d6-0310-a050-a5561fc1590b <dane dane@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-09-29 20:19:18 +0000
committerdane dane@31f1291d-b8d6-0310-a050-a5561fc1590b <dane dane@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-09-29 20:19:18 +0000
commit676b8eaf7fcec02ad2583dc0bcc531942b65068e (patch)
treed8405dc99f4b8a50935452374b7afc983dfde641
parentb6f83ea4db94339449c05be946477b729e9b991a (diff)
BUILD : 1.7.5 (362) BUGS : 17 143 147 166 172 173 NOTES : Applied patch 927 provided by Trystan.
git-svn-id: svn://svn.anope.org/anope/trunk@362 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@233 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r--Changes9
-rw-r--r--Changes.conf12
-rw-r--r--Changes.lang2
-rw-r--r--data/example.conf12
-rw-r--r--docs/README6
-rw-r--r--include/bahamut.h38
-rw-r--r--include/dreamforge.h25
-rw-r--r--include/extern.h51
-rw-r--r--include/hybrid.h48
-rw-r--r--include/ptlink.h14
-rw-r--r--include/services.h12
-rw-r--r--include/ultimate3.h15
-rw-r--r--include/unreal32.h44
-rw-r--r--lang/cat.l12
-rw-r--r--lang/de.l8
-rw-r--r--lang/en_us.l8
-rw-r--r--lang/es.l8
-rw-r--r--lang/fr.l8
-rw-r--r--lang/gr.l8
-rw-r--r--lang/hun.l8
-rw-r--r--lang/it.l8
-rw-r--r--lang/nl.l8
-rw-r--r--lang/pl.l8
-rw-r--r--lang/pt.l8
-rw-r--r--lang/ru.l8
-rw-r--r--lang/tr.l8
-rw-r--r--src/Makefile4
-rw-r--r--src/actions.c16
-rw-r--r--src/bahamut.c196
-rw-r--r--src/base64.c125
-rw-r--r--src/botserv.c80
-rw-r--r--src/channels.c214
-rw-r--r--src/chanserv.c74
-rw-r--r--src/config.c13
-rw-r--r--src/dreamforge.c132
-rw-r--r--src/hostserv.c7
-rw-r--r--src/hybrid.c242
-rw-r--r--src/init.c31
-rw-r--r--src/main.c5
-rw-r--r--src/memoserv.c3
-rw-r--r--src/messages.c25
-rw-r--r--src/misc.c58
-rw-r--r--src/modules.c20
-rw-r--r--src/modules/ircd_catserv.c9
-rw-r--r--src/mysql.c1
-rw-r--r--src/nickserv.c38
-rw-r--r--src/operserv.c15
-rw-r--r--src/ptlink.c365
-rw-r--r--src/rageircd.c173
-rw-r--r--src/servers.c63
-rw-r--r--src/ultimate2.c235
-rw-r--r--src/ultimate3.c213
-rw-r--r--src/unreal31.c84
-rw-r--r--src/unreal32.c657
-rw-r--r--src/users.c68
-rw-r--r--src/viagra.c211
-rw-r--r--version.log6
57 files changed, 3185 insertions, 594 deletions
diff --git a/Changes b/Changes
index 1ba0dd979..915c048be 100644
--- a/Changes
+++ b/Changes
@@ -17,10 +17,19 @@ Provided by Anope Dev. <dev@anope.org> - 2004
08/24 F Compile error with gcc2. [ #00]
Provided by Trystan <trystan@nomadirc.net> - 2004
+08/28 A CSupport for +I channel mode. [ #00]
+08/28 A Complete support for Unreal3.2 [ #00]
+08/28 A New BASE64 general library. [ #00]
09/07 A Unreal32 channel mode +T support. [ #00]
09/07 A Ircd CHANMODE now trapped and stored. [ #00]
08/23 A New protocol independent design (aka anope-capab). [ #00]
08/28 A New IRCD document for adding new ircd support to new design. [ #00]
+09/27 F Verbose message for vident. [#173]
+09/27 F Check and trap for forbidden nicks on HS. [#172]
+09/27 F Tracking of IP address for simple checks. [#166]
+09/27 F Proper deletion of added NS timeouts. [#143]
+09/27 F Partial fix for +a compile error. [#147]
+09/27 F Resolved longstanding NICKIP issue on AKILLs. [ #17]
09/07 F Handling of most Unknown Message from Server commands. [ #00]
09/07 F Several Hybrid support fixes and improvements. [ #00]
09/07 F Several Unreal support fixes and improvements. [ #00]
diff --git a/Changes.conf b/Changes.conf
index 764272f5b..332bbb6b9 100644
--- a/Changes.conf
+++ b/Changes.conf
@@ -19,6 +19,18 @@ Anope Version S V N
# register NewTester or Tester123 unless you are an IRC operator.
#RestrictOperNicks
+# UseTokens [OPTIONAL]
+# Allows irc networks to use TOKEN commands instead of the
+# standard commands. This saves bandwidth but can break older
+# modules that are not set to trap for TOKEN - if you are using
+# older modules do NOT use this option
+#UseTokens
+
+# UseSVS2MODE [OPTIONAL]
+# On Unreal IRCD use SVS2MODE instead of SVSMODE, doing this will
+# show services changing user modes.
+#UseSVS2MODE
+
** MODIFIED CONFIGURATION DIRECTIVES **
** DELETED CONFIGURATION DIRECTIVES **
diff --git a/Changes.lang b/Changes.lang
index ae72d1347..f26ec5c87 100644
--- a/Changes.lang
+++ b/Changes.lang
@@ -8,6 +8,8 @@ Anope Version S V N
OPER_SQLINE_UNSUPPORTED
OPER_SVSO_UNSUPPORTED
OPER_UMODE_UNSUPPORTED
+ CHAN_CLEARED_INVITES
+ NICK_INFO_VHOST2
*** Mod Strings:
diff --git a/data/example.conf b/data/example.conf
index 937a11213..a0e6d34b6 100644
--- a/data/example.conf
+++ b/data/example.conf
@@ -464,6 +464,18 @@ GlobalOnCycleUP "Services are now back online - have a nice day"
# register NewTester or Tester123 unless you are an IRC operator.
#RestrictOperNicks
+# UseTokens [OPTIONAL]
+# Allows irc networks to use TOKEN commands instead of the
+# standard commands. This saves bandwidth but can break older
+# modules that are not set to trap for TOKEN - if you are using
+# older modules do NOT use this option
+#UseTokens
+
+# UseSVS2MODE [OPTIONAL]
+# On Unreal IRCD use SVS2MODE instead of SVSMODE, doing this will
+# show services changing user modes.
+#UseSVS2MODE
+
###########################################################################
#
# Mail-related options
diff --git a/docs/README b/docs/README
index 5f9d909c1..f6b2f19ee 100644
--- a/docs/README
+++ b/docs/README
@@ -63,13 +63,15 @@ Anope credits:
Lucas Nussbaum <lucas@lucas-nussbaum.net>
Pieter Bootsma <geniusdex@anope.org>
Thomas Juberg Stensås <ShadowMaster@Shadow-Realm.org>
- Trystan .S Lee <trystan@anope.org>
+ Trystan .S Lee <trystan@nomadirc.net>
openglx <openglx@brasnerd.com.br>
Anope Translations:
GeniusDex <geniusdex@anope.org> (nl.l)
Oleg Nikolaev aka Isot <isot@complife.ru> (ru.l)
Stuff <the.stuff@gmx.de> (de.l)
DrStein <gacevedo@anope.org> (es.l)
+ Janos Kapitany <sarkanyka@cjbchat.hu> (hun.l)
+ Mateusz Szczyrzyca <annihilator@ircnet.pl> (pl.l)
2. PRESENTATION
@@ -130,7 +132,7 @@ Anope currently works with:
- ViagraIRCd 1.3 or later
- Hybrid 7 or later
- PTlink 6.15 or later
- - RageIRCd 2.0 beta-3 or later
+ - RageIRCd 2.0 beta-6 or later
Anope could also work with some of the daemons derived by the ones
listed above, but there's no support for them if they work or don't
diff --git a/include/bahamut.h b/include/bahamut.h
index e04729463..78cefe1f9 100644
--- a/include/bahamut.h
+++ b/include/bahamut.h
@@ -16,7 +16,7 @@
#ifdef IRC_BAHAMUT
#define PROTECT_SET_MODE "+"
-#define PROTECT_UNSET_MODE "+"
+#define PROTECT_UNSET_MODE "-"
#define CS_CMD_PROTECT "PROTECT"
#define CS_CMD_DEPROTECT "DEPROTECT"
#define FANT_PROTECT_ADD "!protect"
@@ -25,15 +25,33 @@
#define LEVELINFO_PROTECT_WORD "PROTECT"
#define LEVELINFO_PROTECTME_WORD "PROTECTME"
-
-#define UMODE_a 0x00000001
-#define UMODE_h 0x00000002
-#define UMODE_i 0x00000004
-#define UMODE_o 0x00000008
-#define UMODE_r 0x00000010
-#define UMODE_w 0x00000020
-#define UMODE_A 0x00000040
-#define UMODE_R 0x80000000
+#define UMODE_a 0x00000001 /* umode +a - Services Admin */
+#define UMODE_h 0x00000002 /* umode +h - Helper */
+#define UMODE_i 0x00000004 /* umode +i - Invisible */
+#define UMODE_o 0x00000008 /* umode +o - Oper */
+#define UMODE_r 0x00000010 /* umode +r - registered nick */
+#define UMODE_w 0x00000020 /* umode +w - Get wallops */
+#define UMODE_A 0x00000040 /* umode +A - Server Admin */
+#define UMODE_x 0x00000080 /* umode +x - Squelch with notice */
+#define UMODE_X 0x00000100 /* umode +X - Squelch without notice */
+#define UMODE_F 0x00000200 /* umode +F - no cptr->since message rate throttle */
+#define UMODE_j 0x00000400 /* umode +j - client rejection notices */
+#define UMODE_K 0x00000800 /* umode +K - U: lined server kill messages */
+#define UMODE_O 0x00001000 /* umode +O - Local Oper */
+#define UMODE_s 0x00002000 /* umode +s - Server notices */
+#define UMODE_c 0x00004000 /* umode +c - Client connections/exits */
+#define UMODE_k 0x00008000 /* umode +k - Server kill messages */
+#define UMODE_f 0x00010000 /* umode +f - Server flood messages */
+#define UMODE_y 0x00020000 /* umode +y - Stats/links */
+#define UMODE_d 0x00040000 /* umode +d - Debug info */
+#define UMODE_g 0x00080000 /* umode +g - Globops */
+#define UMODE_b 0x00100000 /* umode +b - Chatops */
+#define UMODE_n 0x00200000 /* umode +n - Routing Notices */
+#define UMODE_m 0x00400000 /* umode +m - spambot notices */
+#define UMODE_e 0x00800000 /* umode +e - oper notices for the above +D */
+#define UMODE_D 0x01000000 /* umode +D - Hidden dccallow umode */
+#define UMODE_I 0x02000000 /* umode +I - invisible oper (masked) */
+#define UMODE_R 0x80000000 /* unmode +R - No non registered msgs */
#define CMODE_i 0x00000001
#define CMODE_m 0x00000002
diff --git a/include/dreamforge.h b/include/dreamforge.h
index f5f3c755f..414e0639c 100644
--- a/include/dreamforge.h
+++ b/include/dreamforge.h
@@ -13,10 +13,8 @@
#ifdef IRC_DREAMFORGE
-#define OWNER_SET_MODE "+"
-#define OWNER_UNSET_MODE "+"
#define PROTECT_SET_MODE "+"
-#define PROTECT_UNSET_MODE "+"
+#define PROTECT_UNSET_MODE "-"
#define CS_CMD_PROTECT "PROTECT"
#define CS_CMD_DEPROTECT "DEPROTECT"
#define FANT_PROTECT_ADD "!protect"
@@ -25,14 +23,19 @@
#define LEVELINFO_PROTECT_WORD "PROTECT"
#define LEVELINFO_PROTECTME_WORD "PROTECTME"
-#define UMODE_a 0x00000001
-#define UMODE_h 0x00000002
-#define UMODE_i 0x00000004
-#define UMODE_o 0x00000008
-#define UMODE_r 0x00000010
-#define UMODE_w 0x00000020
-#define UMODE_A 0x00000040
-#define UMODE_g 0x80000000
+#define UMODE_a 0x00000001 /* Services Admin */
+#define UMODE_h 0x00000002 /* Help system operator */
+#define UMODE_i 0x00000004 /* makes user invisible */
+#define UMODE_o 0x00000008 /* Operator */
+#define UMODE_r 0x00000010 /* Nick set by services as registered */
+#define UMODE_w 0x00000020 /* send wallops to them */
+#define UMODE_A 0x00000040 /* Admin */
+#define UMODE_O 0x00000080 /* Local operator */
+#define UMODE_s 0x00000100 /* server notices such as kill */
+#define UMODE_k 0x00000200 /* Show server-kills... */
+#define UMODE_c 0x00000400 /* Show client information */
+#define UMODE_f 0x00000800 /* Receive flood warnings */
+#define UMODE_g 0x80000000 /* Shows some global messages */
#define CMODE_i 0x00000001
#define CMODE_m 0x00000002
diff --git a/include/extern.h b/include/extern.h
index 7fb46ed25..d20e8060a 100644
--- a/include/extern.h
+++ b/include/extern.h
@@ -59,13 +59,14 @@ E CMMode cmmodes[128];
E unsigned long umodes[128];
E char csmodes[128];
-extern void do_mass_mode(char *modes);
extern void add_ban(Channel * chan, char *mask);
extern void chan_adduser2(User * user, Channel * c);
+extern void add_invite(Channel * chan, char *mask);
extern void chan_delete(Channel * c);
extern void del_ban(Channel * chan, char *mask);
extern void set_key(Channel * chan, char *value);
extern void set_limit(Channel * chan, char *value);
+extern void del_invite(Channel * chan, char *mask);
extern char *get_key(Channel * chan);
extern char *get_limit(Channel * chan);
extern Channel *chan_create(char *chan);
@@ -291,7 +292,9 @@ E int DumpCore;
E int LogUsers;
E int NickRegDelay;
E int UseSVSHOLD;
+E int UseSVS2MODE;
E int RestrictOperNicks;
+E int UseTokens;
E char **HostSetters;
E int HostNumber;
@@ -508,6 +511,8 @@ E void helpserv_init(void);
/**** hostserv.c ****/
E void hostserv_init(void);
E void addHostCore(char *nick, char *vIdent, char *vhost, char *creator, int32 tmp_time);
+E char *getvIdent(char *nick);
+E char *getvHost(char *nick);
/**** init.c ****/
@@ -642,9 +647,10 @@ E char *myStrGetOnlyToken(const char *str, const char dilim,
E char *myStrSubString(const char *src, int start, int end);
E char *myStrGetTokenRemainder(const char *str, const char dilim,
int token_number);
+E int myNumToken(const char *str, const char dilim);
E void doCleanBuffer(char *str);
E void EnforceQlinedNick(char *nick, char *killer);
-E int nickIsServices(char *nick);
+E int nickIsServices(char *nick, int bot);
E void add_entropy_userkeys(void);
E void rand_init(void);
@@ -705,6 +711,8 @@ E void nsStartNickTracking(User * u);
E void nsStopNickTracking(User * u);
E int nsCheckNickTracking(User *u);
+E int group_identified(User * u, NickCore * nc);
+E int is_on_access(User * u, NickCore * nc);
/**** operserv.c ****/
@@ -800,13 +808,14 @@ E Server *first_server(int flags);
E Server *next_server(int flags);
E Server *new_server(Server * uplink, const char *name, const char *desc,
- uint16 flags);
+ uint16 flags, char *suid);
E Server *findserver(Server *s, const char *name);
-E void do_server(const char *source, int ac, char **av);
+E void do_server(const char *source, char *servername, char *hops, char *descript, char *numeric);
E void do_squit(const char *source, int ac, char **av);
E void capab_parse(int ac, char **av);
+E int anope_check_sync(const char *name);
/**** sessions.c ****/
@@ -864,6 +873,7 @@ E User *do_nick(const char *source, char *nick, char *username, char *host,
char *server, char *realname, time_t ts, uint32 svid, uint32 ip, char *vhost, char *uid);
E void do_umode(const char *source, int ac, char **av);
+E void do_umode2(const char *source, int ac, char **av);
E void do_quit(const char *source, int ac, char **av);
E void do_kill(char *source, char *reason);
@@ -874,6 +884,7 @@ E int is_excepted(ChannelInfo * ci, User * user);
E int is_excepted_mask(ChannelInfo * ci, char *mask);
E int match_usermask(const char *mask, User * user);
+E int match_userip(const char *mask, User * user, char *host);
E void split_usermask(const char *mask, char **nick, char **user,
char **host);
E char *create_mask(User * u);
@@ -978,19 +989,27 @@ extern void anope_cmd_sqline(char *mask, char *reason);
extern void anope_cmd_szline(char *mask, char *reason); /* SZLINE */
extern void anope_cmd_squit(char *servname, char *message); /* SQUIT */
extern void anope_cmd_svinfo(); /* SVINFO */
+extern void anope_cmd_svsadmin(char *server, int set); /* SVSADMIN */
extern void anope_cmd_svshold(char *nick); /* SVSHOLD */
extern void anope_cmd_release_svshold(char *nick); /* SVSHOLD */
extern void anope_cmd_svsinfo(); /* SVSINFO */
+extern void anope_cmd_svsjoin(char *source, char *nick,char *chan); /* SVSJOIN */
extern void anope_cmd_svskill(char *source,char *user, const char *fmt, ...); /* SVSKILL */
extern void anope_cmd_svsmode(User * u, int ac, char **av); /* SVSMODE */
extern void anope_cmd_svsnick(char *nick,char *newnick, time_t when); /* SVSNICK */
extern void anope_cmd_svsnoop(char *server, int set); /* SVSNOOP */
extern void anope_cmd_svso(char *source,char *nick, char *flag); /* SVSO */
+extern void anope_cmd_svspart(char *source, char *nick,char *chan); /* SVSPART */
+extern void anope_cmd_swhois(char *source, char *who, char *mask); /* SWHOIS */
extern void anope_cmd_topic(char *whosets, char *chan, char *whosetit, char *topic, time_t when); /* TOPIC */
extern void anope_cmd_unsgline(char *mask); /* UNSGLINE */
extern void anope_cmd_unsqline(char *user); /* UNSQLINE */
extern void anope_cmd_unszline(char *mask); /* UNSZLINE */
+extern void anope_cmd_eob(); /* EOB - end of burst */
+extern void anope_cmd_burst(); /* BURST - use eob to send burst 0 */
+extern void anope_cmd_svswatch(char *sender, char *nick, char *parm);
+extern int anope_event_482(char *source, int ac, char **av);
extern int anope_event_436(char *source, int ac, char **av);
extern int anope_event_away(char *source, int ac, char **av);
extern int anope_event_ping(char *source, int ac, char **av);
@@ -1028,27 +1047,51 @@ extern int anope_event_snick(char *source, int ac, char **av);
extern int anope_event_vhost(char *source, int ac, char **av);
extern int anope_event_tkl(char *source, int ac, char **av);
extern int anope_event_eos(char *source, int ac, char **av);
+extern int anope_event_eob(char *source, int ac, char **av);
extern int anope_event_pass(char *source, int ac, char **av);
extern int anope_event_netinfo(char *source, int ac, char **av);
extern int anope_event_error(char *source, int ac, char **av);
extern int anope_event_eb(char *source, int ac, char **av);
extern int anope_event_netctrl(char *source, int ac, char **av);
extern int anope_event_notice(char *source, int ac, char **av);
+extern int anope_event_snotice(char *source, int ac, char **av);
extern int anope_event_sqline(char *source, int ac, char **av);
extern int anope_event_error(char *source, int ac, char **av);
extern int anope_event_smo(char *source, int ac, char **av);
extern int anope_event_myid(char *source, int ac, char **av);
extern int anope_event_vctrl(char *source, int ac, char **av);
+extern int anope_event_tctrl(char *source, int ac, char **av);
extern int anope_event_netinfo(char *source, int ac, char **av);
extern int anope_event_snetinfo(char *source, int ac, char **av);
+extern int anope_event_umode2(char *source, int ac, char **av);
+extern int anope_event_globops(char *source, int ac, char **av);
+extern int anope_event_swhois(char *source, int ac, char **av);
+extern int anope_event_burst(char *source, int ac, char **av);
+extern int anope_event_luserslock(char *source, int ac, char **av);
+extern int anope_event_admin(char *source, int ac, char **av);
+extern int anope_event_credits(char *source, int ac, char **av);
+extern int anope_event_rehash(char *source, int ac, char **av);
+extern int anope_event_sdesc(char *source, int ac, char **av);
+extern int anope_event_netglobal(char *source, int ac, char **av);
+extern int anope_event_invite(char *source, int ac, char **av);
extern void anope_set_umode(User * user, int ac, char **av);
extern void anope_cmd_svid_umode(char *nick, time_t ts);
extern void anope_cmd_svid_umode2(User *u, char *ts);
extern void anope_cmd_svid_umode3(User *u, char *ts);
extern void anope_cmd_nc_change(User *u);
+extern int anope_flood_mode_check(char *value);
extern char *common_get_vident(User *u);
extern char *common_get_vhost(User *u);
+extern char *send_token(char *token1, char *token2);
+extern char *base64enc(long i);
+extern long base64dec(char *b64);
+extern long base64dects(char *ts);
+
+#define Anope_Free(x) if ((x) != NULL) free(x)
+
+extern char *host_resolve(char *host);
+
#endif /* EXTERN_H */
diff --git a/include/hybrid.h b/include/hybrid.h
index 58664e01a..74c69c3a1 100644
--- a/include/hybrid.h
+++ b/include/hybrid.h
@@ -14,7 +14,7 @@
#ifdef IRC_HYBRID
#define PROTECT_SET_MODE "+"
-#define PROTECT_UNSET_MODE "+"
+#define PROTECT_UNSET_MODE "-"
#define CS_CMD_PROTECT "PROTECT"
#define CS_CMD_DEPROTECT "DEPROTECT"
#define FANT_PROTECT_ADD "!protect"
@@ -23,23 +23,35 @@
#define LEVELINFO_PROTECT_WORD "PROTECT"
#define LEVELINFO_PROTECTME_WORD "PROTECTME"
-#define UMODE_a 0x00000001
-#define UMODE_h 0x00000002
-#define UMODE_i 0x00000004
-#define UMODE_o 0x00000008
-#define UMODE_r 0x00000010
-#define UMODE_w 0x00000020
-#define UMODE_A 0x00000040
-
-#define CMODE_i 0x00000001
-#define CMODE_m 0x00000002
-#define CMODE_n 0x00000004
-#define CMODE_p 0x00000008
-#define CMODE_s 0x00000010
-#define CMODE_t 0x00000020
-#define CMODE_k 0x00000040 /* These two used only by ChanServ */
-#define CMODE_l 0x00000080
-#define CMODE_a 0x00000400
+#define UMODE_a 0x00000001 /* Admin status */
+#define UMODE_b 0x00000080 /* See bot and drone flooding notices */
+#define UMODE_c 0x00000100 /* Client connection/quit notices */
+#define UMODE_d 0x00000200 /* See debugging notices */
+#define UMODE_f 0x00000400 /* See I: line full notices */
+#define UMODE_g 0x00000800 /* Server Side Ignore */
+#define UMODE_i 0x00000004 /* Not shown in NAMES or WHO unless you share a channel */
+#define UMODE_k 0x00001000 /* See server generated KILL messages */
+#define UMODE_l 0x00002000 /* See LOCOPS messages */
+#define UMODE_n 0x00004000 /* See client nick changes */
+#define UMODE_o 0x00000008 /* Operator status */
+#define UMODE_r 0x00000010 /* See rejected client notices */
+#define UMODE_s 0x00008000 /* See general server notices */
+#define UMODE_u 0x00010000 /* See unauthorized client notices */
+#define UMODE_w 0x00000020 /* See server generated WALLOPS */
+#define UMODE_x 0x00020000 /* See remote server connection and split notices */
+#define UMODE_y 0x00040000 /* See LINKS, STATS (if configured), TRACE notices */
+#define UMODE_z 0x00080000 /* See oper generated WALLOPS */
+
+#define CMODE_i 0x00000001 /* Invite only */
+#define CMODE_m 0x00000002 /* Users without +v/h/o cannot send text to the channel */
+#define CMODE_n 0x00000004 /* Users must be in the channel to send text to it */
+#define CMODE_p 0x00000008 /* Private is obsolete, this now restricts KNOCK */
+#define CMODE_s 0x00000010 /* The channel does not show up on NAMES or LIST */
+#define CMODE_t 0x00000020 /* Only chanops can change the topic */
+#define CMODE_k 0x00000040 /* Key/password for the channel. */
+#define CMODE_l 0x00000080 /* Limit the number of users in a channel */
+#define CMODE_a 0x00000400 /* Anonymous ops, chanops are hidden */
+
#define DEFAULT_MLOCK CMODE_n | CMODE_t
diff --git a/include/ptlink.h b/include/ptlink.h
index 7091add18..8e61f52bf 100644
--- a/include/ptlink.h
+++ b/include/ptlink.h
@@ -30,6 +30,19 @@
#define UMODE_r 0x00000010
#define UMODE_w 0x00000020
#define UMODE_A 0x00000040
+#define UMODE_B 0x00000080
+#define UMODE_H 0x00000100
+#define UMODE_N 0x00000200
+#define UMODE_O 0x00000400
+#define UMODE_p 0x00000800
+#define UMODE_R 0x00001000
+#define UMODE_s 0x00002000
+#define UMODE_S 0x00004000
+#define UMODE_T 0x00008000
+#define UMODE_v 0x00001000
+#define UMODE_y 0x00002000
+#define UMODE_z 0x00004000
+
#define CMODE_i 0x00000001
@@ -52,6 +65,7 @@
#define CMODE_N 0x00080000
#define CMODE_R 0x00000100 /* Only identified users can join */
#define CMODE_r 0x00000200 /* Set for all registered channels */
+#define CMODE_C 0x00100000
#define DEFAULT_MLOCK CMODE_n | CMODE_t | CMODE_r
diff --git a/include/services.h b/include/services.h
index 4c7ddcb4e..81c1b2017 100644
--- a/include/services.h
+++ b/include/services.h
@@ -245,7 +245,11 @@ struct ircdvars_ {
uint32 chan_lmode; /* Mode */
int check_nick_id; /* On nick change check if they could be identified */
int knock_needs_i; /* Check if we needed +i when setting NOKNOCK */
- char *chanmodes; /* If the ircd sends CHANMODE in CAPAB this is where we store it */
+ char *chanmodes; /* If the ircd sends CHANMODE in CAPAB this is where we store it */
+ int token; /* Does Anope support the tokens for the ircd */
+ int tokencaseless; /* TOKEN are not case senstive - most its Unreal that is case senstive */
+ int sjb64; /* Base 64 encode TIMESTAMP */
+ int invitemode; /* +I */
};
struct ircdcapab_ {
@@ -278,6 +282,7 @@ struct ircdcapab_ {
uint32 dodkey;
uint32 dozip;
uint32 chanmodes;
+ uint32 sjb64;
};
/*************************************************************************/
@@ -658,6 +663,7 @@ struct server_ {
char *desc; /* Server description */
uint16 flags; /* Some info flags, as defined below */
char *suid; /* Server Univeral ID */
+ int sync; /* Whether is synced or not */
Server *links; /* Linked list head for linked servers */
Server *uplink; /* Server which pretends to be the uplink */
@@ -800,6 +806,8 @@ struct channel_ {
char **bans;
int32 exceptcount, exceptsize;
char **excepts;
+ int32 invitecount, invitesize;
+ char **invite;
struct c_userlist {
struct c_userlist *next, *prev;
User *user;
@@ -1072,7 +1080,7 @@ struct hostcache_ {
#define CAPAB_VL 0x04000000
#define CAPAB_TLKEXT 0x08000000
#define CAPAB_CHANMODE 0x10000000
-
+#define CAPAB_SJB64 0x20000000
/*************************************************************************/
diff --git a/include/ultimate3.h b/include/ultimate3.h
index 511037144..0aafffa87 100644
--- a/include/ultimate3.h
+++ b/include/ultimate3.h
@@ -30,11 +30,17 @@
#define UMODE_r 0x00000010
#define UMODE_w 0x00000020
#define UMODE_A 0x00000040