1
0
mirror of https://github.com/anope/anope.git synced 2026-06-12 19:14:47 +02:00

BUILD : 1.7.8 (595) BUGS : N/A NOTES : ShadowIRCD, and cleaned up Numeric

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


git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@444 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b
2005-03-04 03:44:07 +00:00
parent 1a1781fd0c
commit a22d9ec3b0
19 changed files with 1973 additions and 33 deletions
+2 -1
View File
@@ -1,11 +1,12 @@
Anope Version S V N
-------------------
Provided by Anope Dev. <dev@anope.org> - 2005
03/03 A ShadowIRCD 4.0 beta 7 support added. [ #00]
02/27 A Added multi-file module support. [ #00]
02/13 A Internal Event support, see EVENTS in the doc folder for help [ #00]
02/05 A Support for Unreal 3.2 +I channel mode. [ #00]
02/03 A Merged anope-win32 branch into the main, now Win32 ready. [ #00]
03/03 F ircd admin/ower mode handling. [#307]
03/03 F Numeric in the config is now a string not an int [ #00]
03/02 F Fixed LogUser message, normalizes the "realname" on nick change. [#306]
03/02 F ircd protocol support for owner and admin taken from proto. files.[ #00]
03/02 F /ns alist output. [#288]
+6
View File
@@ -19,6 +19,12 @@ Anope Version S V N
# UserKey2 <your_second_random_number_here>
# UserKey3 <you_third_random_number_here>
# Numeric [OPTIONAL]
# Many ircd identify themselves with a Numeric ID when using this option
# consult your ircds documentation before using this.
#Numeric "3AX"
#Numeric "4"
** DELETED CONFIGURATION DIRECTIVES **
Anope Version 1.7.8
+6
View File
@@ -225,6 +225,7 @@ echo " 10) Unreal 3.2 [Unreal 3.2 beta19 or later]"
echo " 11) Solid IRCD 3.4.x [Solid IRCD 3.4.6 or later]"
echo " 12) Plexus 2.0 [or later]"
echo " 13) Ratbox 2.0.6 [or later]"
echo " 14) ShadowIRCD 4.0x [beta 7 or later]"
while [ $ok -eq 0 ] ; do
echo2 "[$IRCTYPE] "
@@ -291,6 +292,11 @@ while [ $ok -eq 0 ] ; do
IRCTYPE_DEF="IRC_RATBOX"
ok=1;
;;
14)
IRCTYPE_DEF="IRC_SHADOWIRCD"
ok=1;
;;
*)
echo "Please enter a valid option number."
Vendored
+9
View File
@@ -8639,6 +8639,15 @@ _ACEOF
IRCDFILE=" ratbox.c "
elif test "$withval" = "IRC_SHADOWIRCD"; then
cat >>confdefs.h <<\_ACEOF
#define IRC_SHADOWIRCD 1
_ACEOF
IRCDFILE=" shadowircd.c "
fi
+5
View File
@@ -267,6 +267,11 @@ AC_ARG_WITH(ircd, [ --with-ircd=ircd Specify the first ircd type], [
AC_DEFINE(IRC_RATBOX,1,"First IRCD type")
IRCDFILE=" ratbox.c "
AC_SUBST(IRCDFILE)
elif test "$withval" = "IRC_SHADOWIRCD"; then
AC_DEFINE(IRC_SHADOWIRCD,1,"First IRCD type")
IRCDFILE=" shadowircd.c "
AC_SUBST(IRCDFILE)
fi
])
+2 -3
View File
@@ -240,9 +240,8 @@ NetworkName "LocalNet"
# Numeric [OPTIONAL]
# Many ircd identify themselves with a Numeric ID when using this option
# consult your ircds documentation before using this
# - With TS6 ircd this must be 2 numbers, Anope will append X to this to
# make the numeric ##X
#Numeric 0
#Numeric "3AX"
#Numeric "4"
###########################################################################
#
+1 -1
View File
@@ -312,7 +312,7 @@ E int UseSVS2MODE;
E int RestrictOperNicks;
E int UseTokens;
E int NewsCount;
E int Numeric;
E char *Numeric;
E int UnRestrictSAdmin;
E int UseTS6;
+1
View File
@@ -245,6 +245,7 @@ typedef enum { false, true } boolean;
#include "solidircd.h"
#include "plexus.h"
#include "ratbox.h"
#include "shadowircd.h"
typedef struct ircdvars_ IRCDVar;
typedef struct ircdcapab_ IRCDCAPAB;
+86
View File
@@ -0,0 +1,86 @@
/* Ratbox IRCD functions
*
* (C) 2003-2005 Anope Team
* Contact us at info@anope.org
*
* Please read COPYING and README for furhter details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
*
*/
#ifdef IRC_SHADOWIRCD
/* The protocol revision. */
#define PROTOCOL_REVISION 3402
#define PROTECT_SET_MODE "+a"
#define PROTECT_UNSET_MODE "-a"
#define CS_CMD_PROTECT "PROTECT"
#define CS_CMD_DEPROTECT "DEPROTECT"
#define FANT_PROTECT_ADD "!protect"
#define FANT_PROTECT_DEL "!deprotect"
#define LEVEL_PROTECT_WORD "AUTOPROTECT"
#define LEVELINFO_PROTECT_WORD "PROTECT"
#define LEVELINFO_PROTECTME_WORD "PROTECTME"
#define UMODE_a 0x00000001
#define UMODE_C 0x00000002
#define UMODE_i 0x00000004
#define UMODE_o 0x00000008
#define UMODE_z 0x00000010
#define UMODE_w 0x00000020
#define UMODE_s 0x00000040
#define UMODE_c 0x00000080
#define UMODE_r 0x00000100
#define UMODE_k 0x00000200
#define UMODE_f 0x00000400
#define UMODE_y 0x00000800
#define UMODE_d 0x00001000
#define UMODE_n 0x00002000
#define UMODE_x 0x00004000
#define UMODE_u 0x00008000
#define UMODE_b 0x00010000
#define UMODE_l 0x00020000
#define UMODE_g 0x00040000
#define UMODE_v 0x00080000
#define UMODE_A 0x00100000
#define UMODE_E 0x00200000
#define UMODE_G 0x00400000
#define UMODE_R 0x00800000
#define UMODE_e 0x01000000
#define UMODE_O 0x02000000
#define UMODE_H 0x04000000
#define CMODE_i 0x00000001
#define CMODE_m 0x00000002
#define CMODE_n 0x00000004
#define CMODE_p 0x00000008
#define CMODE_s 0x00000010
#define CMODE_t 0x00000020
#define CMODE_k 0x00000040
#define CMODE_l 0x00000080
#define CMODE_K 0x00000100
#define CMODE_A 0x00000200
#define CMODE_r 0x00000400
#define CMODE_z 0x00000800
#define CMODE_S 0x00001000
#define CMODE_c 0x00002000
#define CMODE_E 0x00004000
#define CMODE_F 0x00008000
#define CMODE_G 0x00010000
#define CMODE_L 0x00020000
#define CMODE_N 0x00040000
#define CMODE_O 0x00080000
#define CMODE_P 0x00100000
#define CMODE_R 0x00200000
#define CMODE_T 0x00400000
#define CMODE_V 0x00800000
#define DEFAULT_MLOCK CMODE_n | CMODE_t | CMODE_r
#endif
+3
View File
@@ -129,6 +129,9 @@
/* "First IRCD type" */
#undef IRC_RATBOX
/* "First IRCD type" */
#undef IRC_SHADOWIRCD
/* "Module dir" */
#undef MODULE_PATH
+5
View File
@@ -26,6 +26,7 @@
# 11 Solid IRCD 3.4.x [Solid IRCD 3.4.6 or later]
# 12 Plexus 2.0 [or later]
# 13 Ratbox 2.0.6 [or later]
# 14 ShadowIRCD 4.0x [beta 7 or later]
IRCD=10
@@ -128,6 +129,10 @@ CAPAB_O=plexus.obj
IRCTYPE=/D IRC_RATBOX
CAPAB_C=ratbox.c
CAPAB_O=ratbox.obj
!ELSEIF $(IRCD) == 14
IRCTYPE=/D IRC_SHADOWIRCD
CAPAB_C=shadowircd.c
CAPAB_O=shadowircd.obj
!ELSE
!ERROR Invalid IRCd
!ENDIF
+4
View File
@@ -114,6 +114,10 @@ dist:
echo Compiling Ratbox IRCd build
$(MAKE) IRCTYPE=/DIRC_RATBOX CAPAB_C=ratbox.c CAPAB_O=ratbox.obj
-@copy src\$(PROGRAM) services-ratbox.exe
#Compile ShadowIRCD
echo Compiling Shadow IRCd build
$(MAKE) IRCTYPE=/DIRC_SHADOWIRCD CAPAB_C=shadowircd.c CAPAB_O=shadwoircd.obj
-@copy src\$(PROGRAM) services-shadowircd.exe
#Compile mypasql
$(MYPASQL_BUILD)
+6 -2
View File
@@ -1558,6 +1558,7 @@ int check_should_halfop(User * user, char *chan)
int check_should_owner(User * user, char *chan)
{
char *tmp;
ChannelInfo *ci = cs_findchan(chan);
if (!ci || (ci->flags & CI_VERBOTEN) || *chan == '+')
@@ -1565,7 +1566,8 @@ int check_should_owner(User * user, char *chan)
if (((ci->flags & CI_SECUREFOUNDER) && is_real_founder(user, ci))
|| (!(ci->flags & CI_SECUREFOUNDER) && is_founder(user, ci))) {
anope_cmd_mode(whosends(ci), chan, "+oq %s %s", user->nick,
tmp = stripModePrefix(ircd->ownerset);
anope_cmd_mode(whosends(ci), chan, "+o%s %s %s", tmp, user->nick,
user->nick);
return 1;
}
@@ -1577,13 +1579,15 @@ int check_should_owner(User * user, char *chan)
int check_should_protect(User * user, char *chan)
{
char *tmp;
ChannelInfo *ci = cs_findchan(chan);
if (!ci || (ci->flags & CI_VERBOTEN) || *chan == '+')
return 0;
if (check_access(user, ci, CA_AUTOPROTECT)) {
anope_cmd_mode(whosends(ci), chan, "+oa %s %s", user->nick,
tmp = stripModePrefix(ircd->adminset);
anope_cmd_mode(whosends(ci), chan, "+o%s %s %s", tmp, user->nick,
user->nick);
return 1;
}
+10 -2
View File
@@ -324,7 +324,7 @@ long unsigned int UserKey1;
long unsigned int UserKey2;
long unsigned int UserKey3;
int Numeric;
char *Numeric;
int UnRestrictSAdmin;
@@ -519,7 +519,7 @@ Directive directives[] = {
{"NewsCount", {{PARAM_POSINT, PARAM_RELOAD, &NewsCount}}},
{"NewsDB", {{PARAM_STRING, PARAM_RELOAD, &NewsDBName}}},
{"NickservDB", {{PARAM_STRING, PARAM_RELOAD, &NickDBName}}},
{"Numeric", {{PARAM_POSINT, PARAM_RELOAD, &Numeric}}},
{"Numeric", {{PARAM_STRING, PARAM_RELOAD, &Numeric}}},
{"PreNickServDB", {{PARAM_STRING, PARAM_RELOAD, &PreNickDBName}}},
{"NSEmailReg", {{PARAM_SET, PARAM_RELOAD, &NSEmailReg}}},
{"NickRegDelay", {{PARAM_POSINT, PARAM_RELOAD, &NickRegDelay}}},
@@ -1438,6 +1438,14 @@ int read_config(int reload)
}
}
if (UseTS6 && ircd->ts6) {
if (!Numeric) {
error(0,
"UseTS6 requires the setting of Numeric to be enabled.");
retval = 0;
}
}
/**
* If they try to enable any email registration option,
* make sure they have everything else they need too...
+2 -6
View File
@@ -748,13 +748,9 @@ void anope_cmd_pong(char *servname, char *who)
void anope_cmd_connect(int servernum)
{
char buf[16];
*buf = '\0';
if (Numeric) {
snprintf(buf, sizeof(buf), "%d", Numeric);
me_server =
new_server(NULL, ServerName, ServerDesc, SERVER_ISME, buf);
new_server(NULL, ServerName, ServerDesc, SERVER_ISME, Numeric);
} else {
me_server =
new_server(NULL, ServerName, ServerDesc, SERVER_ISME, NULL);
@@ -768,7 +764,7 @@ void anope_cmd_connect(int servernum)
anope_cmd_pass(RemotePassword3);
anope_cmd_capab();
if (Numeric) {
send_cmd(NULL, "MYID !%d", Numeric);
send_cmd(NULL, "MYID !%s", Numeric);
}
anope_cmd_server(ServerName, 1, ServerDesc);
anope_cmd_svinfo();
+3 -7
View File
@@ -727,13 +727,9 @@ int anope_event_436(char *source, int ac, char **av)
void moduleAddIRCDMsgs(void)
{
Message *m;
char buf[BUFSIZE];
*buf = '\0';
if (UseTS6) {
snprintf(buf, BUFSIZE - 1, "%dX", Numeric);
TS6SID = sstrdup(buf);
TS6SID = sstrdup(Numeric);
UseTSMODE = 1; /* TMODE */
}
@@ -998,7 +994,7 @@ void anope_cmd_bot_nick(char *nick, char *user, char *host, char *real,
char nicknumbuf[10];
EnforceQlinedNick(nick, NULL);
if (UseTS6) {
snprintf(nicknumbuf, 10, "%dXAAAAA%c", Numeric,
snprintf(nicknumbuf, 10, "%sAAAAA%c", Numeric,
(ts6nickcount + 'A'));
send_cmd(TS6SID, "UID %s 1 %ld %s %s %s 0 %s :%s", nick,
(long int) time(NULL), modes, user, host, nicknumbuf,
@@ -1463,7 +1459,7 @@ void anope_cmd_nick(char *nick, char *name, char *mode)
char nicknumbuf[10];
EnforceQlinedNick(nick, NULL);
if (UseTS6) {
snprintf(nicknumbuf, 10, "%dXAAAAA%c", Numeric,
snprintf(nicknumbuf, 10, "%sAAAAA%c", Numeric,
(ts6nickcount + 'A'));
send_cmd(TS6SID, "UID %s 1 %ld %s %s %s 0 %s :%s", nick,
(long int) time(NULL), mode, ServiceUser, ServiceHost,
+1811
View File
File diff suppressed because it is too large Load Diff
+6 -10
View File
@@ -1094,7 +1094,7 @@ void anope_cmd_pass(char *pass)
void anope_cmd_server(char *servname, int hop, char *descript)
{
if (Numeric) {
send_cmd(NULL, "SERVER %s %d :U0-*-%d %s", servname, hop, Numeric,
send_cmd(NULL, "SERVER %s %d :U0-*-%s %s", servname, hop, Numeric,
descript);
} else {
send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
@@ -1489,13 +1489,9 @@ void anope_cmd_vhost_on(char *nick, char *vIdent, char *vhost)
void anope_cmd_connect(int servernum)
{
char buf[16];
*buf = '\0';
if (Numeric) {
snprintf(buf, sizeof(buf), "%d", Numeric);
me_server =
new_server(NULL, ServerName, ServerDesc, SERVER_ISME, buf);
new_server(NULL, ServerName, ServerDesc, SERVER_ISME, Numeric);
} else {
me_server =
new_server(NULL, ServerName, ServerDesc, SERVER_ISME, NULL);
@@ -1887,17 +1883,17 @@ int anope_event_server(char *source, int ac, char **av)
{
char *desc;
char *vl;
char *numeric;
char *upnumeric;
if (!stricmp(av[1], "1")) {
uplink = sstrdup(av[0]);
vl = myStrGetToken(av[2], ' ', 0);
numeric = myStrGetToken(vl, '-', 2);
upnumeric = myStrGetToken(vl, '-', 2);
desc = myStrGetTokenRemainder(av[2], ' ', 1);
do_server(source, av[0], av[1], desc, numeric);
do_server(source, av[0], av[1], desc, upnumeric);
Anope_Free(vl);
Anope_Free(desc);
Anope_Free(numeric);
Anope_Free(upnumeric);
} else {
do_server(source, av[0], av[1], av[2], NULL);
}
+5 -1
View File
@@ -8,10 +8,14 @@
VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="8"
VERSION_BUILD="594"
VERSION_BUILD="595"
# $Log$
#
# BUILD : 1.7.8 (595)
# BUGS : N/A
# NOTES : ShadowIRCD, and cleaned up Numeric
#
# BUILD : 1.7.8 (594)
# BUGS : N/A
# NOTES : Changes strdup to sstrdup - doh!