mirror of
https://github.com/anope/anope.git
synced 2026-07-10 02:05:43 +02:00
BUILD : 1.7.6 (469) BUGS : N/A NOTES : 1. ultimate3 setting the wrong channel mode on botserv bots 2. helpserv.c is doxygen ready, did some code clean up 3. Services Clients (+S) now override channel modes (yeah no more deopping NeoStats), this only works on ircds where there is a clear services mode (Unreal, Viagra, Ultimeate2/3) 4. send.c is doxygen ready, did some code clean up 5. commands.c id doxygen ready, did some code clean up
git-svn-id: svn://svn.anope.org/anope/trunk@469 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@323 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
parent
f18d506cad
commit
1aaeba38f4
@@ -8,6 +8,7 @@ Provided by Anope Dev. <dev@anope.org> - 2004
|
||||
11/19 F Wrong string and missing registered nick check in bot change. [#221]
|
||||
|
||||
Provided by Trystan <trystan@nomadirc.net> - 2004
|
||||
12/02 A Support for +S (services clients) mode to override channel modes [ #00]
|
||||
11/28 A Support for Unreal's version of SVSHOLD [ #00]
|
||||
11/28 A /OS SET LIST to list the set options [ #00]
|
||||
11/27 A Solid IRCD support (Solid IRCD 3.4.6 or later) [ #00]
|
||||
@@ -17,6 +18,7 @@ Provided by Trystan <trystan@nomadirc.net> - 2004
|
||||
11/21 A Opened SGLINE to all ircd that support GEOS bans [ #00]
|
||||
11/21 A Opened SZLINE to all ircd that support ZLINE's [ #00]
|
||||
11/19 A Added anope_cmd_ctcp() to code API, for sending CTCP messages. [ #00]
|
||||
12/02 F Ultimate3 botserv bots were getting wrong modes [ #00]
|
||||
12/01 F ChanServ AKICK DEL (reordering) (pointed to freed memory) [ #00]
|
||||
12/01 F del_session() warning messages when LimitSessions is disabled [ #00]
|
||||
11/28 F NSSecureAdmins now restricts /NS SET EMAIL [#218]
|
||||
|
||||
@@ -258,6 +258,8 @@ struct ircdvars_ {
|
||||
int invitemode; /* +I */
|
||||
int sjoinbanchar; /* use single quotes to define it */
|
||||
int sjoinexchar; /* use single quotes to define it */
|
||||
uint32 servicesmode; /* Services Mode +S */
|
||||
int p10; /* P10 ircd */
|
||||
};
|
||||
|
||||
struct ircdcapab_ {
|
||||
@@ -305,6 +307,7 @@ struct ircdcapab_ {
|
||||
#define NICK_VERSION 13
|
||||
#define PRE_NICK_VERSION 1
|
||||
#define OPER_VERSION 13
|
||||
#define HELP_VERSION 1
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
@@ -102,6 +102,8 @@ IRCDVar ircd[] = {
|
||||
0, /* +I support */
|
||||
0, /* SJOIN ban char */
|
||||
0, /* SJOIN except char */
|
||||
0, /* Services Client mode */
|
||||
0, /* not p10 */
|
||||
}
|
||||
,
|
||||
{NULL}
|
||||
|
||||
@@ -235,6 +235,19 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
|
||||
mode, chan->name, user->nick);
|
||||
|
||||
if (add) {
|
||||
/*
|
||||
Okay everyones biggest complaint is that NeoStats or any other
|
||||
services clients are flagged as services but we still strip their
|
||||
channel modes when strict is enabled. This lets them keep the mode and
|
||||
we update our internal user/channel struct - TSL
|
||||
*/
|
||||
if (ircd->servicesmode) {
|
||||
if (user->mode & ircd->servicesmode) {
|
||||
chan_remove_user_status(chan, user, cum->status);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
/* Fixes bug #68
|
||||
- might be a bit ugly but it works, the idea is that since the
|
||||
is_valid function strips out all of the modes there is no point
|
||||
|
||||
+66
-8
File diff suppressed because it is too large
Load Diff
@@ -100,6 +100,8 @@ IRCDVar ircd[] = {
|
||||
0, /* +I support */
|
||||
0, /* SJOIN ban char */
|
||||
0, /* SJOIN except char */
|
||||
0, /* Services Client mode */
|
||||
0, /* not p10 */
|
||||
}
|
||||
,
|
||||
{NULL}
|
||||
|
||||
+28
-12
@@ -16,13 +16,15 @@
|
||||
#include "services.h"
|
||||
#include "pseudo.h"
|
||||
|
||||
#define HELP_VERSION 1
|
||||
|
||||
void helpserv_init(void);
|
||||
static int do_help(User * u);
|
||||
void moduleAddHelpServCmds(void);
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Setup the commands for HelpServ
|
||||
* @return void
|
||||
*/
|
||||
void moduleAddHelpServCmds(void)
|
||||
{
|
||||
Command *c;
|
||||
@@ -32,15 +34,23 @@ void moduleAddHelpServCmds(void)
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*************************************************************************/
|
||||
/* HelpServ initialization. */
|
||||
/**
|
||||
* HelpServ initialization.
|
||||
* @return void
|
||||
*/
|
||||
void helpserv_init(void)
|
||||
{
|
||||
moduleAddHelpServCmds();
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
/* Main HelpServ routine. */
|
||||
|
||||
/**
|
||||
* Main HelpServ routine.
|
||||
* @param u User Struct of the user sending the PRIVMSG
|
||||
* @param buf Buffer containing the PRIVMSG data
|
||||
* @return void
|
||||
*/
|
||||
void helpserv(User * u, char *buf)
|
||||
{
|
||||
char *cmd, *s;
|
||||
@@ -60,11 +70,15 @@ void helpserv(User * u, char *buf)
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
/* Display the HelpServ help. */
|
||||
/* This core function has been embed in the source for a long time, but */
|
||||
/* it moved into it's own file so we now all can enjoy the joy of */
|
||||
/* modules for HelpServ. */
|
||||
|
||||
/**
|
||||
* Display the HelpServ help.
|
||||
* This core function has been embed in the source for a long time, but
|
||||
* it moved into it's own file so we now all can enjoy the joy of
|
||||
* modules for HelpServ.
|
||||
* @param u User Struct of the user looking for help
|
||||
* @return MOD_CONT
|
||||
*/
|
||||
static int do_help(User * u)
|
||||
{
|
||||
char *cmd = strtok(NULL, "");
|
||||
@@ -72,10 +86,12 @@ static int do_help(User * u)
|
||||
if (!cmd) {
|
||||
notice_help(s_HelpServ, u, HELP_HELP, s_NickServ, s_ChanServ,
|
||||
s_MemoServ);
|
||||
if (s_BotServ)
|
||||
if (s_BotServ) {
|
||||
notice_help(s_HelpServ, u, HELP_HELP_BOT, s_BotServ);
|
||||
if (s_HostServ)
|
||||
}
|
||||
if (s_HostServ) {
|
||||
notice_help(s_HelpServ, u, HELP_HELP_HOST, s_HostServ);
|
||||
}
|
||||
moduleDisplayHelp(7, u);
|
||||
} else {
|
||||
mod_help_cmd(s_HelpServ, u, HELPSERV, cmd);
|
||||
|
||||
@@ -100,6 +100,8 @@ IRCDVar ircd[] = {
|
||||
0, /* +I support */
|
||||
0, /* SJOIN ban char */
|
||||
0, /* SJOIN except char */
|
||||
0, /* Services Client mode */
|
||||
0, /* not p10 */
|
||||
}
|
||||
,
|
||||
{NULL}
|
||||
|
||||
@@ -100,6 +100,8 @@ IRCDVar ircd[] = {
|
||||
0, /* +I support */
|
||||
0, /* SJOIN ban char */
|
||||
0, /* SJOIN except char */
|
||||
0, /* Services Client mode */
|
||||
0, /* not p10 */
|
||||
}
|
||||
,
|
||||
{NULL}
|
||||
|
||||
@@ -101,6 +101,8 @@ IRCDVar ircd[] = {
|
||||
1, /* +I support */
|
||||
0, /* SJOIN ban char */
|
||||
0, /* SJOIN except char */
|
||||
0, /* Services Client mode */
|
||||
0, /* not p10 */
|
||||
},
|
||||
{NULL}
|
||||
};
|
||||
|
||||
+94
-16
File diff suppressed because it is too large
Load Diff
@@ -102,6 +102,8 @@ IRCDVar ircd[] = {
|
||||
1, /* +I support */
|
||||
0, /* SJOIN ban char */
|
||||
0, /* SJOIN except char */
|
||||
0, /* Services Client mode */
|
||||
0, /* not p10 */
|
||||
}
|
||||
,
|
||||
{NULL}
|
||||
|
||||
+4
-4
@@ -100,6 +100,8 @@ IRCDVar ircd[] = {
|
||||
0, /* +I support */
|
||||
0, /* SJOIN ban char */
|
||||
0, /* SJOIN except char */
|
||||
UMODE_S, /* Services Client mode */
|
||||
0, /* not p10 */
|
||||
}
|
||||
,
|
||||
{NULL}
|
||||
@@ -194,22 +196,20 @@ void anope_set_umode(User * user, int ac, char **av)
|
||||
case 'o':
|
||||
if (add) {
|
||||
opcnt++;
|
||||
|
||||
if (WallOper)
|
||||
if (WallOper) {
|
||||
anope_cmd_global(s_OperServ,
|
||||
"\2%s\2 is now an IRC operator.",
|
||||
user->nick);
|
||||
}
|
||||
display_news(user, NEWS_OPER);
|
||||
if (is_services_oper(user)) {
|
||||
common_svsmode(user, "+a", NULL);
|
||||
user->mode |= UMODE_a;
|
||||
}
|
||||
|
||||
if (is_services_admin(user)) {
|
||||
common_svsmode(user, "+P", NULL);
|
||||
user->mode |= UMODE_P;
|
||||
}
|
||||
|
||||
if (is_services_root(user)) {
|
||||
common_svsmode(user, "+R", NULL);
|
||||
user->mode |= UMODE_R;
|
||||
|
||||
+9
-9
@@ -48,7 +48,7 @@ IRCDVar ircd[] = {
|
||||
"+S", /* Used by BotServ Bots */
|
||||
5, /* Chan Max Symbols */
|
||||
"-ilmnpqstRKAO", /* Modes to Remove */
|
||||
"+ao", /* Channel Umode used by Botserv bots */
|
||||
"+o", /* Channel Umode used by Botserv bots */
|
||||
1, /* SVSNICK */
|
||||
1, /* Vhost */
|
||||
0, /* Has Owner */
|
||||
@@ -102,6 +102,8 @@ IRCDVar ircd[] = {
|
||||
0, /* +I support */
|
||||
0, /* SJOIN ban char */
|
||||
0, /* SJOIN except char */
|
||||
UMODE_S, /* Services Client mode */
|
||||
0, /* not p10 */
|
||||
},
|
||||
{NULL}
|
||||
};
|
||||
@@ -194,25 +196,23 @@ void anope_set_umode(User * user, int ac, char **av)
|
||||
case 'o':
|
||||
if (add) {
|
||||
opcnt++;
|
||||
|
||||
if (WallOper)
|
||||
if (WallOper) {
|
||||
anope_cmd_global(s_OperServ,
|
||||
"\2%s\2 is now an IRC operator.",
|
||||
user->nick);
|
||||
}
|
||||
display_news(user, NEWS_OPER);
|
||||
if (is_services_oper(user)) {
|
||||
send_cmd(ServerName, "SVSMODE %s +a", user->nick);
|
||||
common_svsmode(user, "+a", NULL);
|
||||
user->mode |= UMODE_a;
|
||||
}
|
||||
|
||||
if (is_services_admin(user)) {
|
||||
send_cmd(ServerName, "SVSMODE %s +P", user->nick);
|
||||
common_svsmode(user, "+P", NULL);
|
||||
user->mode |= UMODE_P;
|
||||
}
|
||||
|
||||
if (is_services_root(user)) {
|
||||
send_cmd(ServerName, "SVSMODE %s +Z", user->nick);
|
||||
user->mode |= UMODE_Z;
|
||||
common_svsmode(user, "+R", NULL);
|
||||
user->mode |= UMODE_R;
|
||||
}
|
||||
} else {
|
||||
opcnt--;
|
||||
|
||||
+4
-2
@@ -103,6 +103,8 @@ IRCDVar ircd[] = {
|
||||
0, /* +I support */
|
||||
0, /* SJOIN ban char */
|
||||
0, /* SJOIN except char */
|
||||
UMODE_S, /* Services Client mode */
|
||||
0, /* not p10 */
|
||||
},
|
||||
{NULL}
|
||||
};
|
||||
@@ -394,11 +396,11 @@ void anope_set_umode(User * user, int ac, char **av)
|
||||
case 'o':
|
||||
if (add) {
|
||||
opcnt++;
|
||||
|
||||
if (WallOper)
|
||||
if (WallOper) {
|
||||
anope_cmd_global(s_OperServ,
|
||||
"\2%s\2 is now an IRC operator.",
|
||||
user->nick);
|
||||
}
|
||||
display_news(user, NEWS_OPER);
|
||||
} else {
|
||||
opcnt--;
|
||||
|
||||
+17
-5
@@ -102,6 +102,8 @@ IRCDVar ircd[] = {
|
||||
0, /* +I support */
|
||||
'&', /* SJOIN ban char */
|
||||
'\"', /* SJOIN except char */
|
||||
UMODE_S, /* Services Client mode */
|
||||
0, /* not p10 */
|
||||
},
|
||||
{NULL}
|
||||
};
|
||||
@@ -429,11 +431,21 @@ void anope_set_umode(User * user, int ac, char **av)
|
||||
if (add) {
|
||||
opcnt++;
|
||||
|
||||
if (WallOper)
|
||||
anope_cmd_global(s_OperServ,
|
||||
"\2%s\2 is now an IRC operator.",
|
||||
user->nick);
|
||||
display_news(user, NEWS_OPER);
|
||||
/* No need to display news to a services client */
|
||||
if (user->mode & ircd->servicesmode) {
|
||||
if (WallOper) {
|
||||
anope_cmd_global(s_OperServ,
|
||||
"\2%s\2 is now a Network Service.",
|
||||
user->nick);
|
||||
}
|
||||
} else {
|
||||
if (WallOper) {
|
||||
anope_cmd_global(s_OperServ,
|
||||
"\2%s\2 is now an IRC operator.",
|
||||
user->nick);
|
||||
}
|
||||
display_news(user, NEWS_OPER);
|
||||
}
|
||||
} else {
|
||||
opcnt--;
|
||||
}
|
||||
|
||||
+4
-2
@@ -100,6 +100,8 @@ IRCDVar ircd[] = {
|
||||
0, /* +I support */
|
||||
0, /* SJOIN ban char */
|
||||
0, /* SJOIN except char */
|
||||
UMODE_S, /* Services Client mode */
|
||||
0, /* not p10 */
|
||||
}
|
||||
,
|
||||
{NULL}
|
||||
@@ -179,11 +181,11 @@ void anope_set_umode(User * user, int ac, char **av)
|
||||
case 'o':
|
||||
if (add) {
|
||||
opcnt++;
|
||||
|
||||
if (WallOper)
|
||||
if (WallOper) {
|
||||
anope_cmd_global(s_OperServ,
|
||||
"\2%s\2 is now an IRC operator.",
|
||||
user->nick);
|
||||
}
|
||||
display_news(user, NEWS_OPER);
|
||||
} else {
|
||||
opcnt--;
|
||||
|
||||
+10
-1
@@ -8,10 +8,19 @@
|
||||
VERSION_MAJOR="1"
|
||||
VERSION_MINOR="7"
|
||||
VERSION_PATCH="6"
|
||||
VERSION_BUILD="468"
|
||||
VERSION_BUILD="469"
|
||||
|
||||
# $Log$
|
||||
#
|
||||
# BUILD : 1.7.6 (469)
|
||||
# BUGS : N/A
|
||||
# NOTES : 1. ultimate3 setting the wrong channel mode on botserv bots
|
||||
# 2. helpserv.c is doxygen ready, did some code clean up
|
||||
# 3. Services Clients (+S) now override channel modes (yeah no more deopping NeoStats), this only
|
||||
# works on ircds where there is a clear services mode (Unreal, Viagra, Ultimeate2/3)
|
||||
# 4. send.c is doxygen ready, did some code clean up
|
||||
# 5. commands.c id doxygen ready, did some code clean up
|
||||
#
|
||||
# BUILD : 1.7.6 (468)
|
||||
# BUGS : N/A
|
||||
# NOTES : 1. fixes del_session() warning when LimitSessions is disabled
|
||||
|
||||
Reference in New Issue
Block a user