diff options
| author | dane 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 |
|---|---|---|
| committer | dane 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 |
| commit | 676b8eaf7fcec02ad2583dc0bcc531942b65068e (patch) | |
| tree | d8405dc99f4b8a50935452374b7afc983dfde641 | |
| parent | b6f83ea4db94339449c05be946477b729e9b991a (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
57 files changed, 3185 insertions, 594 deletions
@@ -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 |
