diff options
-rw-r--r-- | Changes | 7 | ||||
-rw-r--r-- | botserv.c | 6 | ||||
-rw-r--r-- | channels.c | 55 | ||||
-rw-r--r-- | chanserv.c | 34 | ||||
-rwxr-xr-x | configure | 24 | ||||
-rw-r--r-- | extern.h | 181 | ||||
-rw-r--r-- | hostserv.c | 11 | ||||
-rw-r--r-- | init.c | 41 | ||||
-rw-r--r-- | messages.c | 53 | ||||
-rw-r--r-- | nickserv.c | 4 | ||||
-rw-r--r-- | operserv.c | 4 | ||||
-rw-r--r-- | services.h | 48 | ||||
-rw-r--r-- | users.c | 16 | ||||
-rw-r--r-- | version.log | 6 | ||||
-rw-r--r-- | version.sh | 5 |
15 files changed, 335 insertions, 160 deletions
@@ -1,8 +1,8 @@ Anope Version 1.7.x (will be renamed when next release is produced) ------------------- Provided by Anope Dev. <dev@anope.org> -2004/06/11 Fixed a bug with module unload / memo moduleData ( #43 ) -2004/06/05 Fixed bug with RDB and empty nickserv greet message (# 28). +2004/05/11 Fixed a bug with module unload / memo moduleData ( #43 ) +2004/05/05 Fixed bug with RDB and empty nickserv greet message (# 28). 2004/05/04 Fixed Badwords kicker to ignore control characters and color codes. 2004/05/04 anoperc bugfixes including checking if anope binary exists. 2004/05/03 always set the right module name when executing mod_tail commands @@ -13,6 +13,9 @@ Provided by Anope Dev. <dev@anope.org> 2004/04/22 Fixed ALIST bug when being invoked by systems admins (Bug #20) 2004/04/19 Added /bin/anoperc anope console control script +Provided by Rage IRCD. <rageircd@users.sourceforge.net> +2004/05/11 Added Rage2 IRCD support accepted feature request ( #46 ) + Anope Version 1.7.2 -------------------- Provided by Anope Dev. <dev@anope.org> @@ -224,7 +224,7 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf) #if defined(IRC_UNREAL) || defined (IRC_VIAGRA) (!(ci->botflags & BS_DONTKICKOPS) || !(cstatus & (CUS_HALFOP | CUS_OP | CUS_OWNER | CUS_PROTECT))) -# elif defined (IRC_ULTIMATE3) +# elif defined (IRC_ULTIMATE3) || defined(IRC_RAGE2) (!(ci->botflags & BS_DONTKICKOPS) || !(cstatus & (CUS_HALFOP | CUS_OP | CUS_PROTECT))) # else @@ -1060,7 +1060,7 @@ static void bot_raw_ban(User * requester, ChannelInfo * ci, char *nick, && (get_access(u, ci) >= get_access(requester, ci))) return; -#if defined (IRC_ULTIMATE) || defined(IRC_ULTIMATE3) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) || defined(IRC_HYBRID) +#ifdef HAVE_EXCEPT if (is_excepted(ci, u) == 1) { send_cmd(ci->bi->nick, "PRIVMSG %s :%s", ci->name, getstring2(NULL, BOT_EXCEPT)); @@ -1358,6 +1358,8 @@ static int do_bot(User * u) NEWNICK(bi->nick, bi->user, bi->host, bi->real, "+qS", 1); #elif defined(IRC_ULTIMATE) || defined (IRC_ULTIMATE3) NEWNICK(bi->nick, bi->user, bi->host, bi->real, "+pS", 1); +#elif defined(IRC_RAGE2) + NEWNICK(bi->nick, bi->user, bi->host, bi->real, "+S", 1); #else NEWNICK(bi->nick, bi->user, bi->host, bi->real, "+", 1); #endif diff --git a/channels.c b/channels.c index 94b165f79..c219e7a73 100644 --- a/channels.c +++ b/channels.c @@ -20,14 +20,14 @@ Channel *chanlist[1024]; #define HASH(chan) ((chan)[1] ? ((chan)[1]&31)<<5 | ((chan)[2]&31) : 0) static void add_ban(Channel * chan, char *mask); -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_HYBRID) +#ifdef HAS_EXCEPT static void add_exception(Channel * chan, char *mask); #endif static void chan_adduser2(User * user, Channel * c); static Channel *chan_create(const char *chan); static void chan_delete(Channel * c); static void del_ban(Channel * chan, char *mask); -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_HYBRID) +#ifdef HAS_EXCEPT static void del_exception(Channel * chan, char *mask); #endif #ifdef HAS_FMODE @@ -62,13 +62,13 @@ CBMode cbmodes[128] = { { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) +#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) { CMODE_A, CBM_NO_USER_MLOCK, NULL, NULL }, #else { 0 }, /* A */ #endif { 0 }, /* B */ -#ifdef IRC_UNREAL +#if defined(IRC_UNREAL) || defined(IRC_RAGE2) { CMODE_C, 0, NULL, NULL }, #else { 0 }, /* C */ @@ -104,12 +104,12 @@ CBMode cbmodes[128] = { #else { 0 }, /* M */ #endif -#if defined (IRC_UNREAL) || defined (IRC_ULTIMATE3) || defined (IRC_PTLINK) +#if defined (IRC_UNREAL) || defined (IRC_ULTIMATE3) || defined (IRC_PTLINK) || defined(IRC_RAGE2) { CMODE_N, 0, NULL, NULL }, #else { 0 }, /* N */ #endif -#if defined(IRC_BAHAMUT) || defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) +#if defined(IRC_BAHAMUT) || defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) { CMODE_O, CBM_NO_USER_MLOCK, NULL, NULL }, #else { 0 }, /* O */ @@ -125,7 +125,7 @@ CBMode cbmodes[128] = { #else { 0 }, #endif -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined (IRC_ULTIMATE3) || defined (IRC_PTLINK) +#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined (IRC_ULTIMATE3) || defined (IRC_PTLINK) || defined(IRC_RAGE2) { CMODE_S, 0, NULL, NULL }, #else { 0 }, /* S */ @@ -211,7 +211,7 @@ CBModeInfo cbmodeinfos[] = { #if defined(IRC_HYBRID) { 'a', CMODE_a, 0, NULL, NULL }, #endif -#if defined(IRC_BAHAMUT) || defined(IRC_UNREAL) || defined(IRC_PTLINK) +#if defined(IRC_BAHAMUT) || defined(IRC_UNREAL) || defined(IRC_PTLINK) || defined(IRC_RAGE2) { 'c', CMODE_c, 0, NULL, NULL }, #endif #if defined(IRC_PTLINK) @@ -243,11 +243,13 @@ CBModeInfo cbmodeinfos[] = { #ifdef IRC_UNREAL { 'z', CMODE_z, 0, NULL, NULL }, #endif -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_PTLINK) +#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_PTLINK) || defined(IRC_RAGE2) { 'A', CMODE_A, 0, NULL, NULL }, #endif -#ifdef IRC_UNREAL +#if defined(IRC_UNREAL) || defined(IRC_RAGE2) { 'C', CMODE_C, 0, NULL, NULL }, +#endif +#ifdef IRC_UNREAL { 'G', CMODE_G, 0, NULL, NULL }, { 'H', CMODE_H, 0, NULL, NULL }, #endif @@ -265,10 +267,10 @@ CBModeInfo cbmodeinfos[] = { { 'M', CMODE_M, 0, NULL, NULL }, #endif #endif -#if defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_PTLINK) +#if defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_PTLINK) || defined(IRC_RAGE2) { 'N', CMODE_N, 0, NULL, NULL }, #endif -#if defined(IRC_BAHAMUT) || defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) +#if defined(IRC_BAHAMUT) || defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) { 'O', CMODE_O, 0, NULL, NULL }, #endif #ifdef IRC_UNREAL @@ -277,7 +279,7 @@ CBModeInfo cbmodeinfos[] = { #ifndef IRC_HYBRID { 'R', CMODE_R, 0, NULL, NULL }, #endif -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_PTLINK) +#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_PTLINK) || defined(IRC_RAGE2) { 'S', CMODE_S, 0, NULL, NULL }, #endif #ifdef IRC_UNREAL @@ -304,7 +306,7 @@ static CMMode cmmodes[128] = { { add_ban, del_ban }, { NULL }, { NULL }, -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_HYBRID) +#ifdef HAS_EXCEPT { add_exception, del_exception }, #endif { NULL }, @@ -314,7 +316,7 @@ static CMMode cmmodes[128] = { { NULL }, { NULL }, { NULL }, { NULL }, { NULL }, { NULL }, { NULL }, { NULL } }; - #if defined(IRC_BAHAMUT) || defined(IRC_HYBRID) || defined(IRC_PTLINK) +#if defined(IRC_BAHAMUT) || defined(IRC_HYBRID) || defined(IRC_PTLINK) static char csmodes[128] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -322,17 +324,22 @@ static char csmodes[128] = { 0, #if defined(IRC_ULTIMATE3) || defined(IRC_HYBRID) - 'a', /* (33) * Channel Admins */ + 'a', /* (33) ! Channel Admins */ #else 0, #endif 0, 0, 0, - #ifdef IRC_ULTIMATE3 + #if defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) 'h', /* (37) % Channel halfops */ #else 0, #endif - 0, 0, 0, 0, 0, + 0, 0, 0, 0, + #if defined(IRC_RAGE2) + 'a', /* * Channel Admins */ + #else + 0, + #endif 'v', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -367,7 +374,7 @@ static CUMode cumodes[128] = { #if defined(IRC_UNREAL) || defined(IRC_VIAGRA) { CUS_PROTECT, CUF_PROTECT_BOTSERV, check_valid_op }, #else -#if defined(IRC_ULTIMATE3) +#if defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) { CUS_PROTECT, CUF_PROTECT_BOTSERV, check_valid_admin }, #else { 0 }, /* a */ @@ -753,7 +760,7 @@ void get_channel_stats(long *nrec, long *memuse) if (chan->bans[j]) mem += strlen(chan->bans[j]) + 1; } -#if defined (IRC_ULTIMATE) || defined (IRC_UNREAL) || defined (IRC_ULTIMATE3) || defined(IRC_HYBRID) +#ifdef HAS_EXCEPT mem += sizeof(char *) * chan->exceptsize; for (j = 0; j < chan->exceptcount; j++) { if (chan->excepts[j]) @@ -1193,7 +1200,7 @@ static void add_ban(Channel * chan, char *mask) /*************************************************************************/ -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_HYBRID) +#ifdef HAS_EXCEPT static void add_exception(Channel * chan, char *mask) { @@ -1230,7 +1237,7 @@ static void chan_adduser2(User * user, Channel * c) chan_set_user_status(c, user, CUS_OWNER | CUS_OP); } else #endif -#if defined(IRC_UNREAL) || defined(IRC_VIAGRA) || defined(IRC_ULTIMATE3) +#if defined(IRC_UNREAL) || defined(IRC_VIAGRA) || defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) if (check_should_protect(user, chan)) { chan_set_user_status(c, user, CUS_PROTECT | CUS_OP); } else @@ -1368,7 +1375,7 @@ static void chan_delete(Channel * c) if (c->bansize) free(c->bans); -#if defined (IRC_ULTIMATE) || defined (IRC_UNREAL) || defined (IRC_ULTIMATE3) || defined(IRC_HYBRID) +#ifdef HAS_EXCEPT for (i = 0; i < c->exceptcount; ++i) { if (c->excepts[i]) free(c->excepts[i]); @@ -1419,7 +1426,7 @@ static void del_ban(Channel * chan, char *mask) /*************************************************************************/ -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_HYBRID) +#ifdef HAS_EXCEPT static void del_exception(Channel * chan, char *mask) { diff --git a/chanserv.c b/chanserv.c index 4adabd737..cbb8e1e00 100644 --- a/chanserv.c +++ b/chanserv.c @@ -79,7 +79,7 @@ static LevelInfo levelinfo[] = { #ifdef IRC_VIAGRA { CA_AUTOPROTECT, "AUTOPROTECT", CHAN_LEVEL_AUTOPROTECT }, #endif -#ifdef IRC_ULTIMATE3 +#if defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) { CA_AUTOPROTECT, "AUTOADMIN", CHAN_LEVEL_AUTOPROTECT }, #endif { CA_AUTOVOICE, "AUTOVOICE", CHAN_LEVEL_AUTOVOICE }, @@ -113,7 +113,7 @@ static LevelInfo levelinfo[] = { { CA_PROTECT, "PROTECT", CHAN_LEVEL_PROTECT }, { CA_PROTECTME, "PROTECTME", CHAN_LEVEL_PROTECTME }, #endif -#ifdef IRC_ULTIMATE3 +#if defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) { CA_PROTECT, "ADMIN", CHAN_LEVEL_PROTECT }, { CA_PROTECTME, "ADMINME", CHAN_LEVEL_PROTECTME }, #endif @@ -152,7 +152,7 @@ CSModeUtil csmodeutils[] = { { "DEPROTECT", "!deprotect", "-a", 0 , CA_PROTECT, CA_PROTECTME }, { "PROTECT", "!protect", "+a", 0 , CA_PROTECT, CA_PROTECTME }, #endif -#ifdef IRC_ULTIMATE3 +#if defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) { "DEPROTECT", "!deadmin", "-a", 0 , CA_PROTECT, CA_PROTECTME }, { "PROTECT", "!admin", "+a", 0 , CA_PROTECT, CA_PROTECTME }, #endif @@ -295,7 +295,7 @@ static int do_deprotect(User * u); static int do_owner(User * u); static int do_deowner(User * u); #endif -#ifdef IRC_ULTIMATE3 +#if defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) static int do_protect(User * u); static int do_deprotect(User * u); #endif @@ -375,7 +375,7 @@ void moduleAddChanServCmds(void) { c = createCommand("OWNER", do_owner, NULL, CHAN_HELP_OWNER, -1,-1,-1,-1); addCoreCommand(CHANSERV,c); c = createCommand("DEOWNER", do_deowner, NULL, CHAN_HELP_DEOWNER, -1,-1,-1,-1); addCoreCommand(CHANSERV,c); #endif -#ifdef IRC_ULTIMATE3 +#if defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) c = createCommand("ADMIN", do_protect, NULL, CHAN_HELP_PROTECT, -1,-1,-1,-1); addCoreCommand(CHANSERV,c); c = createCommand("DEADMIN",do_deprotect,NULL, CHAN_HELP_DEPROTECT, -1,-1,-1,-1); addCoreCommand(CHANSERV,c); #endif @@ -1438,8 +1438,7 @@ void check_modes(Channel * c) /*************************************************************************/ -#ifdef IRC_ULTIMATE3 - +#if defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) int check_valid_admin(User * user, Channel * chan, int servermode) { @@ -1494,7 +1493,7 @@ int check_valid_op(User * user, Channel * chan, int servermode) chan->name, user->nick, user->nick, user->nick, user->nick); } -# elif defined(IRC_ULTIMATE3) +# elif defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) if (check_access(user, chan->ci, CA_AUTOHALFOP)) { send_cmd(whosends(chan->ci), "MODE %s -ao %s %s", chan->name, user->nick, user->nick); @@ -1631,7 +1630,7 @@ int check_should_owner(User * user, const char *chan) /*************************************************************************/ -#if defined(IRC_UNREAL) || defined(IRC_VIAGRA) || defined(IRC_ULTIMATE3) +#if defined(IRC_UNREAL) || defined(IRC_VIAGRA) || defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) int check_should_protect(User * user, const char *chan) { @@ -1714,7 +1713,7 @@ int check_kick(User * user, char *chan) else nc = NULL; -#if defined (IRC_ULTIMATE) || defined(IRC_ULTIMATE3) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) || defined(IRC_HYBRID) +#ifdef HAS_EXCEPT /* * Before we go through akick lists, see if they're excepted FIRST * We cannot kick excempted users that are akicked or not on the channel access list @@ -2574,7 +2573,7 @@ static int do_help(User * u) #ifdef IRC_ULTIMATE notice_help(s_ChanServ, u, CHAN_HELP_ULTIMATE); #endif -#ifdef IRC_ULTIMATE3 +#if defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) notice_help(s_ChanServ, u, CHAN_HELP_ULTIMATE3); #endif if (CSExpire >= 86400) @@ -2721,7 +2720,7 @@ static int do_register(User * u) uc->chan = ci; /* Implement new mode lock */ check_modes(c); -#ifdef IRC_ULTIMATE3 +#if defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) send_cmd(s_ChanServ, "MODE %s +a %s", chan, u->nick); #endif } @@ -4406,7 +4405,7 @@ static int do_akick(User * u) } /* Check excepts BEFORE we get this far */ -#if defined (IRC_ULTIMATE) || defined(IRC_ULTIMATE3) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) || defined(IRC_HYBRID) +#ifdef HAS_EXCEPT if (is_excepted_mask(ci, mask) == 1) { notice_lang(s_ChanServ, u, CHAN_EXCEPTED, mask, chan); return MOD_CONT; @@ -5254,7 +5253,7 @@ static int do_dehalfop(User * u) /*************************************************************************/ -#if defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_VIAGRA) +#if defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_VIAGRA) || defined(IRC_RAGE2) static int do_protect(User * u) { @@ -5269,6 +5268,7 @@ static int do_deprotect(User * u) } /*************************************************************************/ + #endif #if defined(IRC_UNREAL) || defined(IRC_VIAGRA) @@ -5503,7 +5503,7 @@ static int do_ban(User * u) char *av[3]; char mask[BUFSIZE]; -#if defined (IRC_ULTIMATE) || defined(IRC_ULTIMATE3) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) || defined(IRC_HYBRID) +#ifdef HAS_EXCEPT /* * Dont ban/kick the user on channels where he is excepted * to prevent services <-> server wars. @@ -5557,7 +5557,7 @@ static int do_ban(User * u) } else if (!is_same && (ci->flags & CI_PEACE) && (get_access(u2, ci) >= get_access(u, ci))) { notice_lang(s_ChanServ, u, PERMISSION_DENIED); -#if defined (IRC_ULTIMATE) || defined(IRC_ULTIMATE3) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) || defined(IRC_HYBRID) +#ifdef HAS_EXCEPT /* * Dont ban/kick the user on channels where he is excepted * to prevent services <-> server wars. @@ -5743,7 +5743,7 @@ static int do_clear(User * u) } notice_lang(s_ChanServ, u, CHAN_CLEARED_BANS, chan); free(bans); -#if defined (IRC_ULTIMATE) || defined (IRC_UNREAL) || defined (IRC_ULTIMATE3) || defined(IRC_HYBRID) +#ifdef HAS_EXCEPT } else if (stricmp(what, "excepts") == 0) { char *av[3]; int i; @@ -463,6 +463,7 @@ echo " 5) UltimateIRCd 3.0.0 [alpha26 or later]" echo " 6) Hybrid IRCd 7.0 [experimental]" echo " 7) ViagraIRCd 1.3.x [or later]" echo " 8) PTlink 6.15.0 [experimental]" +echo " 9) RageIRCd 2.0 [beta-3 or later]" while [ $ok -eq 0 ] ; do echo2 "[$IRCTYPE] " @@ -485,30 +486,41 @@ while [ $ok -eq 0 ] ; do IRCTYPE_DEF2= ok=1 ;; - 3) IRCTYPE_DEF="IRC_DREAMFORGE" + 3) + IRCTYPE_DEF="IRC_DREAMFORGE" IRCTYPE_DEF2="IRC_UNREAL" ok=1 ;; - 4) IRCTYPE_DEF="IRC_DREAMFORGE" + 4) + IRCTYPE_DEF="IRC_DREAMFORGE" IRCTYPE_DEF2="IRC_ULTIMATE" ok=1 ;; - 5) IRCTYPE_DEF="IRC_BAHAMUT" + 5) + IRCTYPE_DEF="IRC_BAHAMUT" IRCTYPE_DEF2="IRC_ULTIMATE3" ok=1 ;; - 6) IRCTYPE_DEF="IRC_HYBRID" + 6) + IRCTYPE_DEF="IRC_HYBRID" IRCTYPE_DEF2= ok=1 ;; - 7) IRCTYPE_DEF="IRC_BAHAMUT" + 7) + IRCTYPE_DEF="IRC_BAHAMUT" IRCTYPE_DEF2="IRC_VIAGRA" ok=1 ;; - 8) IRCTYPE_DEF="IRC_PTLINK" + 8) + IRCTYPE_DEF="IRC_PTLINK" IRCTYPE_DEF2= ok=1 ;; + 9) + IRCTYPE_DEF="IRC_BAHAMUT" + IRCTYPE_DEF2="IRC_RAGE2" + ok=1 + ;; *) echo "Please enter a valid option number." ;; @@ -26,9 +26,9 @@ E void moduleCleanStruct(ModuleData * moduleData[]); /**** actions.c ****/ -E void change_user_mode(User *u, char *modes, char *arg); +E void change_user_mode(User * u, char *modes, char *arg); E void kill_user(const char *source, const char *user, const char *reason); -E void bad_password(User *u); +E void bad_password(User * u); /**** botserv.c ****/ @@ -60,20 +60,21 @@ E Channel *findchan(const char *chan); E Channel *firstchan(void); E Channel *nextchan(void); -E void chan_deluser(User *user, Channel *c); +E void chan_deluser(User * user, Channel * c); -E int is_on_chan(Channel *c, User *u); -E User *nc_on_chan(Channel *c, NickCore *nc); +E int is_on_chan(Channel * c, User * u); +E User *nc_on_chan(Channel * c, NickCore * nc); -E char *chan_get_modes(Channel *chan, int complete, int plus); -E void chan_set_modes(const char *source, Channel *chan, int ac, char **av, int check); +E char *chan_get_modes(Channel * chan, int complete, int plus); +E void chan_set_modes(const char *source, Channel * chan, int ac, + char **av, int check); -E int chan_get_user_status(Channel *chan, User *user); -E int chan_has_user_status(Channel *chan, User *user, int16 status); -E void chan_remove_user_status(Channel *chan, User *user, int16 status); -E void chan_set_user_status(Channel *chan, User *user, int16 status); +E int chan_get_user_status(Channel * chan, User * user); +E int chan_has_user_status(Channel * chan, User * user, int16 status); +E void chan_remove_user_status(Channel * chan, User * user, int16 status); +E void chan_set_user_status(Channel * chan, User * user, int16 status); -E int get_access_level(ChannelInfo *ci, NickAlias *na); +E int get_access_level(ChannelInfo * ci, NickAlias * na); E char *get_xop_level(int level); E void do_cmode(const char *source, int ac, char **av); @@ -97,58 +98,58 @@ E int delchan(ChannelInfo * ci); E void alpha_insert_chan(ChannelInfo * ci); E void reset_levels(ChannelInfo * ci); E void cs_init(void); -E void chanserv(User *u, char *buf); +E void chanserv(User * u, char *buf); E void load_cs_dbase(void); E void save_cs_dbase(void); E void save_cs_rdb_dbase(void); E void expire_chans(void); -E void cs_remove_nick(const NickCore *nc); -E void cs_remove_bot(const BotInfo *bi); +E void cs_remove_nick(const NickCore * nc); +E void cs_remove_bot(const BotInfo * bi); -E void check_modes(Channel *c); -#ifdef IRC_ULTIMATE3 -E int check_valid_admin(User *user, Channel *chan, int servermode); +E void check_modes(Channel * c); +#if defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) +E int check_valid_admin(User * user, Channel * chan, int servermode); #endif -E int check_valid_op(User *user, Channel *chan, int servermode); -E int check_should_op(User *user, const char *chan); -E int check_should_voice(User *user, const char *chan); +E int check_valid_op(User * user, Channel * chan, int servermode); +E int check_should_op(User * user, const char *chan); +E int check_should_voice(User * user, const char *chan); #ifdef HAS_HALFOP -E int check_should_halfop(User *user, const char *chan); +E int check_should_halfop(User * user, const char *chan); #endif #if defined(IRC_UNREAL) || defined(IRC_VIAGRA) -E int check_should_owner(User *user, const char *chan); -E int check_should_protect(User *user, const char *chan); +E int check_should_owner(User * user, const char *chan); +E int check_should_protect(User * user, const char *chan); #endif -#ifdef IRC_ULTIMATE3 -E int check_should_protect(User *user, const char *chan); +#if defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) +E int check_should_protect(User * user, const char *chan); #endif -E int check_kick(User *user, char *chan); +E int check_kick(User * user, char *chan); E void record_topic(const char *chan); E void restore_topic(const char *chan); -E int check_topiclock(Channel *c, time_t topic_time); +E int check_topiclock(Channel * c, time_t topic_time); E ChannelInfo *cs_findchan(const char *chan); -E int check_access(User *user, ChannelInfo *ci, int what); -E int is_founder(User *user, ChannelInfo *ci); -E int get_access(User *user, ChannelInfo *ci); -E ChanAccess *get_access_entry(NickCore *nc, ChannelInfo *ci); -E void update_cs_lastseen(User *user, ChannelInfo *ci); -E int get_idealban(ChannelInfo *ci, User *u, char *ret, int retlen); -E AutoKick *is_stuck(ChannelInfo *ci, char *mask); -E void stick_mask(ChannelInfo *ci, AutoKick *akick); -E void stick_all(ChannelInfo *ci); +E int check_access(User * user, ChannelInfo * ci, int what); +E int is_founder(User * user, ChannelInfo * ci); +E int get_access(User * user, ChannelInfo * ci); +E ChanAccess *get_access_entry(NickCore * nc, ChannelInfo * ci); +E void update_cs_lastseen(User * user, ChannelInfo * ci); +E int get_idealban(ChannelInfo * ci, User * u, char *ret, int retlen); +E AutoKick *is_stuck(ChannelInfo * ci, char *mask); +E void stick_mask(ChannelInfo * ci, AutoKick * akick); +E void stick_all(ChannelInfo * ci); #ifdef HAS_FMODE -E char *cs_get_flood(ChannelInfo *ci); -E void cs_set_flood(ChannelInfo *ci, char *value); +E char *cs_get_flood(ChannelInfo * ci); +E void cs_set_flood(ChannelInfo * ci, char *value); #endif -E char *cs_get_key(ChannelInfo *ci); -E void cs_set_key(ChannelInfo *ci, char *value); -E char *cs_get_limit(ChannelInfo *ci); -E void cs_set_limit(ChannelInfo *ci, char *value); +E char *cs_get_key(ChannelInfo * ci); +E void cs_set_key(ChannelInfo * ci, char *value); +E char *cs_get_limit(ChannelInfo * ci); +E void cs_set_limit(ChannelInfo * ci, char *value); #ifdef HAS_LMODE -E char *cs_get_redirect(ChannelInfo *ci); -E void cs_set_redirect(ChannelInfo *ci, char *value); +E char *cs_get_redirect(ChannelInfo * ci); +E void cs_set_redirect(ChannelInfo * ci, char *value); #endif /**** compat.c ****/ @@ -229,9 +230,9 @@ E char *s_HostServ; E void load_hs_dbase(void); E void save_hs_dbase(void); E void save_hs_rdb_dbase(void); -E int do_on_id(User *u); +E int do_on_id(User * u); E void delHostCore(char *nick); -E void hostserv(User *u, char *buf); +E void hostserv(User * u, char *buf); E char *s_NickServAlias; E char *s_ChanServAlias; @@ -499,8 +500,10 @@ E void lang_init(void); (langtexts[((na)&&((NickAlias*)na)->nc&&!(((NickAlias*)na)->status & NS_VERBOTEN)?((NickAlias*)na)->nc->language:NSDefLanguage)][(index)]) #define getstring2(nc,index) \ (langtexts[((nc)?((NickCore*)nc)->language:NSDefLanguage)][(index)]) -E int strftime_lang(char *buf, int size, User *u, int format, struct tm *tm); -E void syntax_error(const char *service, User *u, const char *command, int msgnum); +E int strftime_lang(char *buf, int size, User * u, int format, + struct tm *tm); +E void syntax_error(const char *service, User * u, const char *command, + int msgnum); /**** list.c ****/ @@ -572,8 +575,8 @@ E char *sstrdup(const char *s); /**** memoserv.c ****/ E void ms_init(void); -E void memoserv(User *u, char *buf); -E void check_memos(User *u); +E void memoserv(User * u, char *buf); +E void check_memos(User * u); /**** misc.c ****/ @@ -588,12 +591,12 @@ E int match_wild(const char *pattern, const char *str); E int match_wild_nocase(const char *pattern, const char *str); E int dotime(const char *s); -E char *duration(NickAlias *na, char *buf, int bufsize, time_t seconds); -E char *expire_left(NickAlias *na, char *buf, int len, time_t expires); +E char *duration(NickAlias * na, char *buf, int bufsize, time_t seconds); +E char *expire_left(NickAlias * na, char *buf, int len, time_t expires); -typedef int (*range_callback_t)(User *u, int num, va_list args); +typedef int (*range_callback_t) (User * u, int num, va_list args); E int process_numlist(const char *numstr, int *count_ret, - range_callback_t callback, User *u, ...); + range_callback_t callback, User * u, ...); E int isValidHost(const char *host, int type); E int isvalidchar(char c); @@ -615,10 +618,10 @@ E void get_news_stats(long *nrec, long *memuse); E void load_news(void); E void save_news(void); E void save_rdb_news(void); -E void display_news(User *u, int16 type); -E int do_logonnews(User *u); -E int do_opernews(User *u); -E int do_randomnews(User *u); +E void display_news(User * u, int16 type); +E int do_logonnews(User * u); +E int do_opernews(User * u); +E int do_randomnews(User * u); /**** nickserv.c ****/ @@ -635,28 +638,28 @@ E void get_aliases_stats(long *nrec, long *memuse); E void get_core_stats(long *nrec, long *memuse); E void ns_init(void); -E void nickserv(User *u, char *buf); +E void nickserv(User * u, char *buf); E void load_ns_dbase(void); E void load_ns_req_db(void); E void save_ns_dbase(void); E void save_ns_req_dbase(void); E void save_ns_rdb_dbase(void); E void save_ns_req_rdb_dbase(void); -E int validate_user(User *u); -E void cancel_user(User *u); -E int nick_identified(User *u); -E int nick_recognized(User *u); +E int validate_user(User * u); +E void cancel_user(User * u); +E int nick_identified(User * u); +E int nick_recognized(User * u); E void expire_nicks(void); E void expire_requests(void); E int ns_do_register(User * u); -E int delnick(NickAlias *na); +E int delnick(NickAlias * na); E NickAlias *findnick(const char *nick); E NickCore *findcore(const char *nick); -E void clean_ns_timeouts(NickAlias *na); +E void clean_ns_timeouts(NickAlias * na); /**** helpserv.c ****/ -E void helpserv(User *u, char *buf); +E void helpserv(User * u, char *buf); E void helpserv_init(void); /**** hostserv.c ****/ @@ -701,11 +704,12 @@ E int check_chan_sqline(const char *chan); E void expire_sqlines(void); #ifdef IRC_BAHAMUT -E int add_szline(User *u, char *mask, const char *by, const time_t expires, const char *reason); +E int add_szline(User * u, char *mask, const char *by, + const time_t expires, const char *reason); E void expire_szlines(void); #endif -E void check_clones(User *user); +E void check_clones(User * user); E void delete_ignore(const char *nick); @@ -722,7 +726,8 @@ E void process(void); /**** protocol.c ****/ -E void s_akill(char *user, char *host, char *who, time_t when, time_t expires, char *reason); +E void s_akill(char *user, char *host, char *who, time_t when, + time_t expires, char *reason); E void s_rakill(char *user, char *host); E void s_sgline(char *mask, char *reason); E void s_sqline(char *mask, char *reason); @@ -796,7 +801,7 @@ E char *sgets(char *buf, int len, int s); E char *sgets2(char *buf, int len, int s); E int sread(int s, char *buf, int len); E int sputs(char *str, int s); -E int sockprintf(int s, char *fmt,...); +E int sockprintf(int s, char *fmt, ...); E int conn(const char *host, int port, const char *lhost, int lport); E void disconn(int s); @@ -807,35 +812,39 @@ E User *userlist[1024]; E int32 usercnt, opcnt, maxusercnt; E time_t maxusertime; -E void set_umode(User *user, int ac, char **av); +E void set_umode(User * user, int ac, char **av); E void get_user_stats(long *nusers, long *memuse); E User *finduser(const char *nick); E User *firstuser(void); E User *nextuser(void); +#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_VIAGRA) || defined(IRC_PTLINK) || defined(IRC_RAGE2) +E void change_user_host(User * user, const char *host); +#endif #if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_VIAGRA) || defined(IRC_PTLINK) -E void change_user_host(User *user, const char *host); -E void change_user_username(User *user, const char *username); -E void change_user_realname(User *user, const char *realname); +E void change_user_username(User * user, const char *username); +E void change_user_realname(User * user, const char *realname); #endif -E User *do_nick(const char *source, char *nick, char *username, char *host, char *server, char *realname, time_t ts, uint32 svid, ...); +E User *do_nick(const char *source, char *nick, char *username, char *host, + char *server, char *realname, time_t ts, uint32 svid, ...); E void do_umode(const char *source, int ac, char **av); E void do_quit(const char *source, int ac, char **av); E void do_kill(const char *source, int ac, char **av); -E int is_oper(User *user); -E int is_protected(User *user); +E int is_oper(User * user); +E int is_protected(User * user); -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_VIAGRA) || defined(IRC_HYBRID) -E int is_excepted(ChannelInfo *ci, User *user); -E int is_excepted_mask(ChannelInfo *ci, char *mask); +#ifdef HAS_EXCEPT +E int is_excepted(ChannelInfo * ci, User * user); +E int is_excepted_mask(ChannelInfo * ci, char *mask); #endif -E int match_usermask(const char *mask, User *user); -E void split_usermask(const char *mask, char **nick, char **user, char **host); -E char *create_mask(User *u); +E int match_usermask(const char *mask, User * user); +E void split_usermask(const char *mask, char **nick, char **user, + char **host); +E char *create_mask(User * u); #ifdef USE_MYSQL /**** mysql.c ****/ @@ -853,7 +862,9 @@ E void db_mysql_save_ns_core(NickCore * nc); E void db_mysql_save_ns_alias(NickAlias * na); E void db_mysql_save_ns_req(NickRequest * nr); E void db_mysql_save_cs_info(ChannelInfo * ci); -E void db_mysql_save_os_db(unsigned int maxucnt, unsigned int maxutime, SList *ak, SList *sgl, SList *sql, SList *szl, HostCache *hc); +E void db_mysql_save_os_db(unsigned int maxucnt, unsigned int maxutime, + SList * ak, SList * sgl, SList * sql, + SList * szl, HostCache * hc); E void db_mysql_save_news(NewsItem * ni); E void db_mysql_save_exceptions(Exception * e); E void db_mysql_save_hs_core(HostCore * hc); diff --git a/hostserv.c b/hostserv.c index 187154641..da8c13bd8 100644 --- a/hostserv.c +++ b/hostserv.c @@ -1075,8 +1075,10 @@ void send_on(char *nick, char *vIdent, char *vhost) send_cmd(s_HostServ, "SVSMODE %s +x", nick); send_cmd(ServerName, "SETHOST %s %s", nick, vhost); #endif - - +#ifdef IRC_RAGE2 + send_cmd(s_HostServ, "SVSMODE %s +z", nick); + send_cmd(ServerName, "VHOST %s %s", nick, vhost); +#endif } /*************************************************************************/ @@ -1101,7 +1103,10 @@ void send_off(User * u) send_cmd(s_HostServ, "SVSMODE %s -x", u->nick); notice_lang(s_HostServ, u, HOST_OFF_UNREAL, u->nick); #endif - +#ifdef IRC_RAGE2 + send_cmd(s_HostServ, "SVSMODE %s -z", u->nick); + notice_lang(s_HostServ, u, HOST_OFF_UNREAL, u->nick); +#endif } /*************************************************************************/ @@ -37,6 +37,13 @@ extern void moduleAddMsgs(void); ServiceUser, ServiceHost, ServerName, (name)); \ send_cmd(NULL, "SQLINE %s :Reserved for services", (nick)); \ } while (0) +#elif defined(IRC_RAGE2) +# define NICK(nick,name,modes) \ + do { \ + send_cmd(NULL, "SNICK %s %ld 1 %s %s 0 * %s 0 %s :%s", (nick), time(NULL), ServiceUser, \ + ServiceHost, ServerName, (modes), (name)); \ + send_cmd(NULL, "SQLINE %s :Reserved for services", (nick)); \ + } while (0) #elif defined(IRC_BAHAMUT) # define NICK(nick,name,modes) \ do { \ @@ -81,6 +88,8 @@ void introduce_user(const char *user) if (!user || stricmp(user, s_NickServ) == 0) #if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) NICK(s_NickServ, desc_NickServ, "+S"); +#elif defined(IRC_RAGE2) + NICK(s_NickServ, desc_NickServ, "+dS"); #elif defined(IRC_UNREAL) || defined(IRC_VIAGRA) NICK(s_NickServ, desc_NickServ, "+oS"); #else @@ -89,6 +98,8 @@ void introduce_user(const char *user) if (!user || stricmp(user, s_ChanServ) == 0) #if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) NICK(s_ChanServ, desc_ChanServ, "+S"); +#elif defined(IRC_RAGE2) + NICK(s_ChanServ, desc_ChanServ, "+dS"); #elif defined(IRC_UNREAL) || defined(IRC_VIAGRA) NICK(s_ChanServ, desc_ChanServ, "+oS"); #else @@ -99,6 +110,8 @@ void introduce_user(const char *user) if (s_HostServ && (!user || stricmp(user, s_HostServ) == 0)) #if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) NICK(s_HostServ, desc_HostServ, "+oS"); +#elif defined(IRC_RAGE2) + NICK(s_HostServ, desc_HostServ, "+dS"); #else NICK(s_HostServ, desc_HostServ, "+o"); #endif @@ -107,6 +120,8 @@ void introduce_user(const char *user) if (!user || stricmp(user, s_MemoServ) == 0) #if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) NICK(s_MemoServ, desc_MemoServ, "+S"); +#elif defined(IRC_RAGE2) + NICK(s_MemoServ, desc_MemoServ, "+dS"); #elif defined(IRC_UNREAL) || defined(IRC_VIAGRA) NICK(s_MemoServ, desc_MemoServ, "+oS"); #else @@ -115,6 +130,8 @@ void introduce_user(const char *user) if (s_BotServ && (!user || stricmp(user, s_BotServ) == 0)) #if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) NICK(s_BotServ, desc_BotServ, "+S"); +#elif defined(IRC_RAGE2) + NICK(s_BotServ, desc_BotServ, "+dS"); #elif defined(IRC_UNREAL) || defined(IRC_VIAGRA) NICK(s_BotServ, desc_BotServ, "+oS"); #else @@ -123,6 +140,8 @@ void introduce_user(const char *user) if (!user || stricmp(user, s_HelpServ) == 0) #if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) NICK(s_HelpServ, desc_HelpServ, "+Sh"); +#elif defined(IRC_RAGE2) + NICK(s_HelpServ, desc_HelpServ, "+dSh"); #elif defined(IRC_UNREAL) || defined(IRC_VIAGRA) NICK(s_HelpServ, desc_HelpServ, "+oS"); #else @@ -131,6 +150,8 @@ void introduce_user(const char *user) if (!user || stricmp(user, s_OperServ) == 0) #if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) NICK(s_OperServ, desc_OperServ, "+iS"); +#elif defined(IRC_RAGE2) + NICK(s_OperServ, desc_OperServ, "+diS"); #elif defined(IRC_UNREAL) || defined(IRC_VIAGRA) NICK(s_OperServ, desc_OperServ, "+ioS"); #else @@ -139,12 +160,16 @@ void introduce_user(const char *user) if (s_DevNull && (!user || stricmp(user, s_DevNull) == 0)) #if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) NICK(s_DevNull, desc_DevNull, "+iS"); +#elif defined(IRC_RAGE2) + NICK(s_DevNull, desc_DevNull, "+diS"); #else NICK(s_DevNull, desc_DevNull, "+i"); #endif if (!user || stricmp(user, s_GlobalNoticer) == 0) #if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) NICK(s_GlobalNoticer, desc_GlobalNoticer, "+iS"); +#elif defined(IRC_RAGE2) + NICK(s_GlobalNoticer, desc_GlobalNoticer, "+diS"); #elif defined(IRC_UNREAL) || defined(IRC_VIAGRA) NICK(s_GlobalNoticer, desc_GlobalNoticer, "+ioS"); #else @@ -222,7 +247,7 @@ void introduce_user(const char *user) #elif defined(IRC_ULTIMATE) NEWNICK(bi->nick, bi->user, bi->host, bi->real, "+pS", 1); -#elif defined(IRC_ULTIMATE3) +#elif defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) NEWNICK(bi->nick, bi->user, bi->host, bi->real, "+S", 1); #else @@ -781,7 +806,14 @@ int init(int ac, char **av) else if (servernum == 3) send_cmd(NULL, "PASS %s :TS", RemotePassword3); send_cmd(NULL, "CAPAB NICKIP SSJ5 TS5 CLIENT"); - +#elif defined(IRC_RAGE2) + if (servernum == 1) + send_cmd(NULL, "PASS %s :TS", RemotePassword); + else if (servernum == 2) + send_cmd(NULL, "PASS %s :TS", RemotePassword2); + else if (servernum == 3) + send_cmd(NULL, "PASS %s :TS", RemotePassword3); + send_cmd(NULL, "CAPAB SSJ3 SN2 VHOST"); #elif defined(IRC_BAHAMUT) if (servernum == 1) send_cmd(NULL, "PASS %s :TS", RemotePassword); @@ -819,7 +851,10 @@ int init(int ac, char **av) #else send_cmd(NULL, "SERVER %s 1 :%s", ServerName, ServerDesc); #endif -#ifdef IRC_BAHAMUT +#ifdef IRC_RAGE2 + send_cmd(NULL, "SVINFO 5 5 0 %ld bluemoon 0", time(NULL)); +#endif +#if defined(IRC_BAHAMUT) && !defined(IRC_RAGE2) send_cmd(NULL, "SVINFO 3 1 0 :%ld", time(NULL)); #endif #ifdef IRC_HYBRID diff --git a/messages.c b/messages.c index 1a1da4d75..571bf6286 100644 --- a/messages.c +++ b/messages.c @@ -304,7 +304,7 @@ static int m_nick(char *source, int ac, char **av) set_umode(user, 1, &av[3]); #else #if defined(IRC_BAHAMUT) -#if defined(IRC_ULTIMATE3) +#if defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) User *user = do_nick(source, av[0], av[4], av[5], av[6], av[9], strtoul(av[2], NULL, 10), strtoul(av[7], NULL, 0), @@ -382,6 +382,26 @@ static int m_client(char *source, int ac, char **av) /*************************************************************************/ +#ifdef IRC_RAGE2 + +static int m_snick(char *source, int ac, char **av) +{ + if (ac != 2) { + User *user = do_nick(source, av[0], av[3], av[4], av[8], av[10], + strtoul(av[1], NULL, 10), strtoul(av[7], NULL, + 0), + strtoul(av[5], NULL, 0), av[6]); + if (user) { + set_umode(user, 1, &av[9]); + } + } + return MOD_CONT; +} + +#endif + +/*************************************************************************/ + #ifdef IRC_BAHAMUT static int m_ns(char *source, int ac, char **av) @@ -663,6 +683,7 @@ static int m_server(char *source, int ac, char **av) } /*************************************************************************/ + #if defined(IRC_ULTIMATE3) static int m_sethost(char *source, int ac, char **av) @@ -687,6 +708,30 @@ static int m_sethost(char *source, int ac, char **av) /*************************************************************************/ +#ifdef IRC_RAGE2 + +static int m_vhost(char *source, int ac, char **av) +{ + User *u; + + if (ac != 2) + return MOD_CONT; + + u = finduser(av[0]); + if (!u) { + if (debug) + alog("user: VHOST for nonexistent user %s", av[0]); + return MOD_CONT; + } + + change_user_host(u, av[1]); + return MOD_CONT; +} + +#endif + +/*************************************************************************/ + #if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) static int m_chghost(char *source, int ac, char **av) @@ -806,7 +851,7 @@ static int m_setname(char *source, int ac, char **av) /*************************************************************************/ -#if defined(IRC_BAHAMUT) || defined(IRC_HYBRID) || defined(IRC_PTLINK) +#if defined(IRC_BAHAMUT) || defined(IRC_HYBRID) || defined(IRC_PTLINK) || defined(IRC_RAGE2) static int m_sjoin(char *source, int ac, char **av) { @@ -1181,6 +1226,10 @@ void moduleAddMsgs(void) { m = createMessage("CLIENT", m_client); addCoreMessage(IRCD,m); m = createMessage("SMODE", NULL); addCoreMessage(IRCD,m); #endif +#ifdef IRC_RAGE2 + m = createMessage("SNICK", m_snick); addCoreMessage(IRCD,m); + m = createMessage("VHOST", m_vhost); addCoreMessage(IRCD,m); +#endif } /* *INDENT-ON* */ diff --git a/nickserv.c b/nickserv.c index 0a05a58b3..0198a1c8d 100644 --- a/nickserv.c +++ b/nickserv.c @@ -2483,7 +2483,7 @@ int should_mode_change(int16 status, int16 mode) } break; #endif -#ifdef IRC_ULTIMATE3 +#if defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) case CUS_PROTECT: if (status & CUS_PROTECT) { return 0; @@ -2510,7 +2510,7 @@ static int do_setmodes(User * u) chan_set_user_status(c, u, CUS_OWNER); } else #endif -#if defined(IRC_UNREAL) || defined(IRC_VIAGRA) || defined(IRC_ULTIMATE3) +#if defined(IRC_UNREAL) || defined(IRC_VIAGRA) || defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) if (should_mode_change(uc->status, CUS_PROTECT) && check_should_protect(u, chan)) { chan_set_user_status(c, u, CUS_PROTECT); diff --git a/operserv.c b/operserv.c index 07f76ca8b..b4d84f959 100644 --- a/operserv.c +++ b/operserv.c @@ -1614,7 +1614,7 @@ static int do_clearmodes(User * u) int all = 0; int count; /* For saving ban info */ char **bans; /* For saving ban info */ -#if defined (IRC_ULTIMATE) || defined (IRC_UNREAL) || defined (IRC_ULTIMATE3) ||defined (IRC_VIAGRA) +#ifdef HAS_EXCEPT int exceptcount; /* For saving except info */ char **excepts; /* For saving except info */ #endif @@ -1723,7 +1723,7 @@ static int do_clearmodes(User * u) free(bans); -#if defined (IRC_ULTIMATE) || defined (IRC_UNREAL) || defined (IRC_ULTIMATE3) || defined (IRC_VIAGRA) +#ifdef HAS_EXCEPT /* Clear excepts */ exceptcount = c->exceptcount; excepts = scalloc(sizeof(char *) * exceptcount, 1); 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 @@ -57,12 +57,14 @@ static unsigned long umodes[128] = { 0, #endif 0, UMODE_r, 0, 0, 0, 0, UMODE_w, -#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) UMODE_x, #else 0, #endif - 0, 0, 0, 0, 0, 0, 0 + 0, + 0, + 0, 0, 0, 0, 0 }; /*************************************************************************/ @@ -160,7 +162,7 @@ static void update_host(User * user) /*************************************************************************/ -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_VIAGRA) || defined(IRC_PTLINK) +#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) || defined(IRC_VIAGRA) || defined(IRC_PTLINK) || defined(IRC_RAGE2) /* Change the (virtual) hostname of a user. */ @@ -311,12 +313,14 @@ void set_umode(User * user, int ac, char **av) user->mode |= UMODE_a; } #endif -#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) +#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) || defined(IRC_RAGE2) if (is_services_oper(user)) { send_cmd(ServerName, "SVSMODE %s +a", user->nick); user->mode |= UMODE_a; } +#endif +#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) if (is_services_admin(user)) { send_cmd(ServerName, "SVSMODE %s +P", user->nick); user->mode |= UMODE_P; @@ -345,7 +349,7 @@ void set_umode(User * user, int ac, char **av) user->mode &= ~UMODE_r; } break; -#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) case 'x': update_host(user); break; @@ -956,7 +960,7 @@ int is_oper(User * user) /*************************************************************************/ /*************************************************************************/ -#if defined (IRC_ULTIMATE) || defined(IRC_ULTIMATE3) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) || defined(IRC_HYBRID) +#ifdef HAS_EXCEPT /* Is the given user ban-excepted? */ int is_excepted(ChannelInfo * ci, User * user) { diff --git a/version.log b/version.log index 9b99d6221..f07411d52 100644 --- a/version.log +++ b/version.log @@ -8,11 +8,15 @@ VERSION_MAJOR="1" VERSION_MINOR="7" VERSION_PATCH="2" -VERSION_BUILD="92" +VERSION_BUILD="93" VERSION_EXTRA="" # $Log$ # +# BUILD : 1.7.2 (93) +# BUGS : 46 +# NOTES : Applied the Rage2 IRCD patch provided by al +# # BUILD : 1.7.2 (92) # BUGS : 43 # NOTES : Fixed moduleData error with memo Data handeling diff --git a/version.sh b/version.sh index 8e19f92a4..c29a030ac 100644 --- a/version.sh +++ b/version.sh @@ -53,10 +53,13 @@ const char version_build[] = const char version_protocol[] = #if defined(IRC_ULTIMATE3) "UltimateIRCd 3.0.0.a26+" -#define VER_IRCD "UltimateIRCd 3.0.* -" +# define VER_IRCD "UltimateIRCd 3.0.* -" #elif defined(IRC_VIAGRA) "ViagraIRCd 1.3.x" # define VER_IRCD "ViagraIRCd 1.3.* -" +#elif defined(IRC_RAGE2) + "RageIRCd 2.0.x" +# define VER_IRCD "RageIRCd 2.0.* -" #elif defined(IRC_BAHAMUT) "Bahamut 1.4.27+" # define VER_IRCD "BahamutIRCd 1.4.* -" |