1
0
mirror of https://github.com/anope/anope.git synced 2026-07-01 10:26:38 +02:00

BUILD : 1.7.2 (93) BUGS : 46 NOTES : Applied the Rage2 IRCD patch provided by al

git-svn-id: svn://svn.anope.org/anope/trunk@93 31f1291d-b8d6-0310-a050-a5561fc1590b


git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@69 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b
2004-05-11 17:31:25 +00:00
parent b6210244dd
commit da4db9a711
15 changed files with 335 additions and 160 deletions
+5 -2
View File
@@ -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>
+4 -2
View File
@@ -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
+31 -24
View File
@@ -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)
{
+17 -17
View File
@@ -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;
Vendored
+18 -6
View File
@@ -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."
;;
+96 -85
View File
@@ -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);
+8 -3
View File
@@ -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
}
/*************************************************************************/
+38 -3
View File
@@ -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
+51 -2
View File
@@ -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* */
+2 -2
View File
@@ -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);
+2 -2
View File
@@ -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);
+44 -4
View File
@@ -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
+10 -6
View File
@@ -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)
{
+5 -1
View File
@@ -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
+4 -1
View File
@@ -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.* -"