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

BUILD : 1.7.6 (463) BUGS : 192, 210, 222, 234 NOTES : 1. Removed +d references from the ptlink protocol code, since they do not timestamp the nicks 2. Memos sent as notification of receipt can not be cancelled. 3. Unreal3.2 supports SVSMODE -b on clearing bans 4. fixed do_kill() not remove the user from the user list 5. /os set sql [on|off] runtime sql toggle 6. Segfaults logged to the services log when DumpCore is disabled 7. fixed RUNGROUP not passed during build time 8. Exceptions now update if the limit is changed 9. Solid-IRCD support 10. Fixed TSMODE warnings when using FANTASY commands 11. Fixed read_int32 warnings (fixes compiling and running under cygwin) - Thats all..

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


git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@317 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b
2004-11-28 06:10:17 +00:00
parent c55942927e
commit f373142341
39 changed files with 2321 additions and 78 deletions
+10
View File
@@ -7,9 +7,18 @@ 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
11/27 A Solid IRCD support (Solid IRCD 3.4.6 or later) [ #00]
11/27 A Exceptions now update if the limit is different [ #00]
11/27 A Segfaults logged to the services log when DumpCore is disabled [ #00]
11/27 A OperServ SET SQL [on|off] disable/enable SQL during run time [ #00]
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]
11/27 F Compiles and Runs under CYGWIN again [ #00]
11/27 F bot_raw_mode() would cause a TSMODE warning [#234]
11/27 F do_kil() not removing users from the user list [#222]
11/27 F Unreal3.2 supports SVSMODE -b on clearing bans [ #00]
11/27 F Removed +d references from the PTlink protocol file [ #00]
11/23 F Rage 2 updated to support BETA 7 [#226]
11/23 F PTLink anope_cmd_server() message [ #00]
11/20 F Disables UseRDB if there is an error duing SQL init [ #00]
@@ -21,6 +30,7 @@ Provided by Trystan <trystan@nomadirc.net> - 2004
11/16 F NickTracking could allow usage of forbidden nick in some cases. [ #00]
Provided by DrStein <gacevedo@anope.org> - 2004
11/26 F Memos sent as notification of receipt can't be cancelled. [#192]
11/23 F Moving Services Operators to Services Admins and vice-versa [#230]
11/22 F HelpChan +h mode not being given if status was greater then op. [#223]
+7
View File
@@ -5,6 +5,13 @@ Anope Version S V N
NICK_REGISTERED_NO_MASK
OPER_ADMIN_MOVED
OPER_OPER_MOVED
OPER_HELP_SET_SQL
OPER_SET_SQL_ON
OPER_SET_SQL_OFF
OPER_SET_SQL_ERROR
OPER_SET_SQL_ERROR_INIT
OPER_EXCEPTION_EXISTS
OPER_EXCEPTION_CHANGED
*** Mod Strings:
+6 -1
View File
@@ -222,7 +222,7 @@ echo " 7) ViagraIRCd 1.3.x [or later]"
echo " 8) PTlink 6.15.0 [experimental]"
echo " 9) RageIRCd 2.0.0 [beta-6 or later]"
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]"
while [ $ok -eq 0 ] ; do
echo2 "[$IRCTYPE] "
@@ -277,6 +277,11 @@ while [ $ok -eq 0 ] ; do
ok=1;
;;
11)
IRCTYPE_DEF="IRC_SOLID"
ok=1;
;;
*)
echo "Please enter a valid option number."
+1
View File
@@ -15,6 +15,7 @@ MODULE_PATH=@MODULE_PATH@
MYSQL=@MYSQL@
RDB=@RDB@
LDFLAGS=@LDFLAGS@
RUNGROUP=@RUNGROUP@
all: language headers build modules
strict: language headers strict_build strict_modules
Vendored
+158 -1
View File
@@ -309,7 +309,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT RM CP TOUCH INSTALL CPP EGREP MYSQL RDB MYSQLCLIENT_LDFLAGS MYSQLCLIENT_CFLAGS MYSQLCLIENT_LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS ANOPELIBS BINDEST DATDEST MODULE_PATH LIBOBJS LTLIBOBJS'
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT RM CP TOUCH INSTALL CPP EGREP MYSQL RDB MYSQLCLIENT_LDFLAGS MYSQLCLIENT_CFLAGS MYSQLCLIENT_LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS ANOPELIBS RUNGROUP BINDEST DATDEST MODULE_PATH LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -6815,6 +6815,152 @@ _ACEOF
fi
if test "${ac_cv_header_execinfo_h+set}" = set; then
echo "$as_me:$LINENO: checking for execinfo.h" >&5
echo $ECHO_N "checking for execinfo.h... $ECHO_C" >&6
if test "${ac_cv_header_execinfo_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
fi
echo "$as_me:$LINENO: result: $ac_cv_header_execinfo_h" >&5
echo "${ECHO_T}$ac_cv_header_execinfo_h" >&6
else
# Is the header compilable?
echo "$as_me:$LINENO: checking execinfo.h usability" >&5
echo $ECHO_N "checking execinfo.h usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
$ac_includes_default
#include <execinfo.h>
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; } &&
{ ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_header_compiler=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_header_compiler=no
fi
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
# Is the header present?
echo "$as_me:$LINENO: checking execinfo.h presence" >&5
echo $ECHO_N "checking execinfo.h presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include <execinfo.h>
_ACEOF
if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
else
ac_cpp_err=yes
fi
if test -z "$ac_cpp_err"; then
ac_header_preproc=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_header_preproc=no
fi
rm -f conftest.err conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
yes:no: )
{ echo "$as_me:$LINENO: WARNING: execinfo.h: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: execinfo.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
{ echo "$as_me:$LINENO: WARNING: execinfo.h: proceeding with the compiler's result" >&5
echo "$as_me: WARNING: execinfo.h: proceeding with the compiler's result" >&2;}
ac_header_preproc=yes
;;
no:yes:* )
{ echo "$as_me:$LINENO: WARNING: execinfo.h: present but cannot be compiled" >&5
echo "$as_me: WARNING: execinfo.h: present but cannot be compiled" >&2;}
{ echo "$as_me:$LINENO: WARNING: execinfo.h: check for missing prerequisite headers?" >&5
echo "$as_me: WARNING: execinfo.h: check for missing prerequisite headers?" >&2;}
{ echo "$as_me:$LINENO: WARNING: execinfo.h: see the Autoconf documentation" >&5
echo "$as_me: WARNING: execinfo.h: see the Autoconf documentation" >&2;}
{ echo "$as_me:$LINENO: WARNING: execinfo.h: section \"Present But Cannot Be Compiled\"" >&5
echo "$as_me: WARNING: execinfo.h: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: execinfo.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: execinfo.h: proceeding with the preprocessor's result" >&2;}
{ echo "$as_me:$LINENO: WARNING: execinfo.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: execinfo.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
## ------------------------------------------ ##
## Report this to the AC_PACKAGE_NAME lists. ##
## ------------------------------------------ ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
;;
esac
echo "$as_me:$LINENO: checking for execinfo.h" >&5
echo $ECHO_N "checking for execinfo.h... $ECHO_C" >&6
if test "${ac_cv_header_execinfo_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_cv_header_execinfo_h=$ac_header_preproc
fi
echo "$as_me:$LINENO: result: $ac_cv_header_execinfo_h" >&5
echo "${ECHO_T}$ac_cv_header_execinfo_h" >&6
fi
if test $ac_cv_header_execinfo_h = yes; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_BACKTRACE 1
_ACEOF
fi
for ac_func in strerror
@@ -8293,14 +8439,18 @@ done
if test "${with_rungroup+set}" = set; then
withval="$with_rungroup"
cat >>confdefs.h <<_ACEOF
#define RUNGROUP "$withval"
_ACEOF
RUNGROUP=$withval
fi;
# Check whether --with-permissions or --without-permissions was given.
if test "${with_permissions+set}" = set; then
withval="$with_permissions"
@@ -8423,6 +8573,12 @@ cat >>confdefs.h <<\_ACEOF
#define IRC_UNREAL32 1
_ACEOF
elif test "$withval" = "IRC_SOLID"; then
cat >>confdefs.h <<\_ACEOF
#define IRC_SOLID 1
_ACEOF
fi
@@ -9088,6 +9244,7 @@ s,@PTHREAD_CC@,$PTHREAD_CC,;t t
s,@PTHREAD_LIBS@,$PTHREAD_LIBS,;t t
s,@PTHREAD_CFLAGS@,$PTHREAD_CFLAGS,;t t
s,@ANOPELIBS@,$ANOPELIBS,;t t
s,@RUNGROUP@,$RUNGROUP,;t t
s,@BINDEST@,$BINDEST,;t t
s,@DATDEST@,$DATDEST,;t t
s,@MODULE_PATH@,$MODULE_PATH,;t t
+8 -1
View File
@@ -145,6 +145,7 @@ unreal_CHECK_TYPE_SIZES
AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H,1,""))
AC_CHECK_HEADER(sys/select.h,AC_DEFINE(HAVE_SYS_SELECT_H,1,""))
AC_CHECK_HEADER(execinfo.h,AC_DEFINE(HAVE_BACKTRACE,1,""))
AC_CHECK_FUNCS(strerror,AC_DEFINE(HAVE_STRERROR,1))
AC_CHECK_FUNCS(sys_errlist,AC_DEFINE(HAVE_SYS_ERRLIST,1))
@@ -162,7 +163,11 @@ AC_CHECK_FUNCS(gethostbyname,AC_DEFINE(HAVE_GETHOSTBYNAME,1))
AC_CHECK_FUNCS(gethostbyname_r,AC_DEFINE(HAVE_GETHOSTBYNAME_R,1))
AC_ARG_WITH(rungroup, [ --with-rungroup=group Specify the rungroup for anope], AC_DEFINE_UNQUOTED(RUNGROUP,"$withval","Run group"))
AC_ARG_WITH(rungroup, [ --with-rungroup=group Specify the rungroup for anope], [
AC_DEFINE_UNQUOTED(RUNGROUP,"$withval","Run group")
RUNGROUP=$withval
])
AC_SUBST(RUNGROUP)
dnl AC_DEFINE_UNQUOTED(MYOSNAME,"`uname -a`","uname")
@@ -208,6 +213,8 @@ AC_ARG_WITH(ircd, [ --with-ircd=ircd Specify the first ircd type], [
AC_DEFINE(IRC_RAGE2,1,"First IRCD type")
elif test "$withval" = "IRC_UNREAL32"; then
AC_DEFINE(IRC_UNREAL32,1,"First IRCD type")
elif test "$withval" = "IRC_SOLID"; then
AC_DEFINE(IRC_SOLID,1,"First IRCD type")
fi
])
+4 -1
View File
@@ -609,6 +609,8 @@ E time_t start_time;
E void save_databases(void);
E void expire_all(void);
E void do_backtrace(void);
E void sighandler(int signum);
/**** memory.c ****/
@@ -871,7 +873,8 @@ E void disconn(int s);
E User *userlist[1024];
E int32 usercnt, opcnt, maxusercnt;
E int32 usercnt, opcnt;
E uint32 maxusercnt;
E time_t maxusertime;
E void delete_user(User *user);
+8 -3
View File
@@ -50,6 +50,10 @@
#include <sys/types.h>
#include <sys/time.h>
#ifdef HAVE_BACKTRACE
#include <execinfo.h>
#endif
#ifdef USE_RDB
# define MAX_SQL_BUF 4096
#endif
@@ -171,6 +175,7 @@ typedef enum { false, true } boolean;
#include "ultimate3.h"
#include "dreamforge.h"
#include "unreal32.h"
#include "solidircd.h"
typedef struct ircdvars_ IRCDVar;
typedef struct ircdcapab_ IRCDCAPAB;
@@ -372,7 +377,7 @@ struct nickcore_ {
char *greet; /* Greet associated to the nick */
uint32 icq; /* ICQ # associated to the nick */
char *url; /* URL associated to the nick */
int32 flags; /* See NI_* below */
uint32 flags; /* See NI_* below */
uint16 language; /* Language selected by nickname owner (LANG_*) */
int16 accesscount; /* # of entries */
char **access; /* Array of strings */
@@ -899,7 +904,7 @@ struct hostcore_ {
struct newsitem_ {
int16 type;
int32 num; /* Numbering is separate for login and oper news */
uint32 num; /* Numbering is separate for login and oper news */
char *text;
char who[NICKMAX];
time_t time;
@@ -968,7 +973,7 @@ struct hostcache_ {
/* Memo Flags */
#define MF_UNREAD 0x0001 /* Memo has not yet been read */
#define MF_RECEIPT 0x0002 /* Sender requested receipt */
#define MF_NOTIFYS 0x0004 /* Memo is a notification of receitp */
/* Nickname status flags: */
#define NS_VERBOTEN 0x0002 /* Nick may not be registered or used */
+78
View File
@@ -0,0 +1,78 @@
/* Bahamut functions
*
* (C) 2003 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_SOLID
#define PROTECT_SET_MODE "+"
#define PROTECT_UNSET_MODE "-"
#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 /* umode +a - Services Admin */
#define UMODE_h 0x00000002 /* umode +h - Helper */
#define UMODE_i 0x00000004 /* umode +i - Invisible */
#define UMODE_o 0x00000008 /* umode +o - Oper */
#define UMODE_r 0x00000010 /* umode +r - registered nick */
#define UMODE_w 0x00000020 /* umode +w - Get wallops */
#define UMODE_A 0x00000040 /* umode +A - Server Admin */
#define UMODE_x 0x00000080 /* umode +x - Squelch with notice */
#define UMODE_X 0x00000100 /* umode +X - Squelch without notice */
#define UMODE_F 0x00000200 /* umode +F - no cptr->since message rate throttle */
#define UMODE_j 0x00000400 /* umode +j - client rejection notices */
#define UMODE_K 0x00000800 /* umode +K - U: lined server kill messages */
#define UMODE_O 0x00001000 /* umode +O - Local Oper */
#define UMODE_s 0x00002000 /* umode +s - Server notices */
#define UMODE_c 0x00004000 /* umode +c - Client connections/exits */
#define UMODE_k 0x00008000 /* umode +k - Server kill messages */
#define UMODE_f 0x00010000 /* umode +f - Server flood messages */
#define UMODE_y 0x00020000 /* umode +y - Stats/links */
#define UMODE_d 0x00040000 /* umode +d - Debug info */
#define UMODE_g 0x00080000 /* umode +g - Globops */
#define UMODE_b 0x00100000 /* umode +b - Chatops */
#define UMODE_n 0x00200000 /* umode +n - Routing Notices */
#define UMODE_m 0x00400000 /* umode +m - spambot notices */
#define UMODE_e 0x00800000 /* umode +e - oper notices for the above +D */
#define UMODE_D 0x01000000 /* umode +D - Hidden dccallow umode */
#define UMODE_I 0x02000000 /* umode +I - invisible oper (masked) */
#define UMODE_C 0x04000000 /* umode +C - conops */
#define UMODE_v 0x10000000 /* umode +v - hostmasking */
#define UMODE_H 0x20000000 /* umode +H - Oper Hiding */
#define UMODE_z 0x40000000 /* umode +z - SSL */
#define UMODE_R 0x80000000 /* umode +R - No non registered msgs */
#define CMODE_i 0x00000001
#define CMODE_m 0x00000002
#define CMODE_n 0x00000004
#define CMODE_p 0x00000008
#define CMODE_s 0x00000010
#define CMODE_t 0x00000020
#define CMODE_k 0x00000040 /* These two used only by ChanServ */
#define CMODE_l 0x00000080
#define CMODE_R 0x00000100 /* Only identified users can join */
#define CMODE_r 0x00000200 /* Set for all registered channels */
#define CMODE_c 0x00000400 /* Colors can't be used */
#define CMODE_M 0x00000800 /* Non-regged nicks can't send messages */
#define CMODE_j 0x00001000 /* join throttle */
#define CMODE_O 0x00008000 /* Only opers can join */
#define DEFAULT_MLOCK CMODE_n | CMODE_t | CMODE_r
#endif
+6
View File
@@ -75,6 +75,9 @@
/* "" */
#undef HAVE_SYS_SELECT_H
/* "" */
#undef HAVE_BACKTRACE
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
@@ -117,6 +120,9 @@
/* "First IRCD type" */
#undef IRC_VIAGRA
/* "First IRCD type" */
#undef IRC_SOLID
/* "Module dir" */
#undef MODULE_PATH
+12
View File
@@ -2679,6 +2679,14 @@ OPER_SET_NOEXPIRE_ERROR
Establiment per a NOEXPIRE ha de ser ON o OFF.
OPER_SET_UNKNOWN_OPTION
Opció %s desconeguda.
OPER_SET_SQL_ON
SQL code will be used.
OPER_SET_SQL_OFF
SQL code will not be used.
OPER_SET_SQL_ERROR
Setting for SQL must be ON or OFF.
OPER_SET_SQL_ERROR_INIT
Error during init of SQL, check your logs to correct.
# NOOP responses
OPER_NOOP_SYNTAX
@@ -2949,6 +2957,10 @@ OPER_EXCEPTION_INVALID_LIMIT
Límit de sessió invàlid. Ha de ser un sencer vàlido més gran o igual a zero i mes petit que %d.
OPER_EXCEPTION_INVALID_HOSTMASK
Mascara invalida. Nomès mascares reals son valides ja que excepcions no son comparades a nicks o usernames.
OPER_EXCEPTION_EXISTS
%s already exists on the EXCEPTION list.
OPER_EXCEPTION_CHANGED
Exception for %s has been updated to %d.
# SESSION responses
OPER_SESSION_SYNTAX
+12
View File
@@ -2669,6 +2669,14 @@ OPER_SET_NOEXPIRE_ERROR
Die Einstellung von NOEXPIRE kann nur ON oder OFF sein.
OPER_SET_UNKNOWN_OPTION
Unbekannte Option %s.
OPER_SET_SQL_ON
SQL code will be used.
OPER_SET_SQL_OFF
SQL code will not be used.
OPER_SET_SQL_ERROR
Setting for SQL must be ON or OFF.
OPER_SET_SQL_ERROR_INIT
Error during init of SQL, check your logs to correct.
# NOOP responses
OPER_NOOP_SYNTAX
@@ -2942,6 +2950,10 @@ OPER_EXCEPTION_INVALID_LIMIT
Null aber kleiner als %d.
OPER_EXCEPTION_INVALID_HOSTMASK
Ungültige Hostmask. Nur echte Hostmasken sind gültig als Einträge (ohne Nicknamen und Idents).
OPER_EXCEPTION_EXISTS
%s already exists on the EXCEPTION list.
OPER_EXCEPTION_CHANGED
Exception for %s has been updated to %d.
# SESSION responses
OPER_SESSION_SYNTAX
+18
View File
@@ -2610,6 +2610,14 @@ OPER_SET_NOEXPIRE_ERROR
Setting for NOEXPIRE must be ON or OFF.
OPER_SET_UNKNOWN_OPTION
Unknown option %s.
OPER_SET_SQL_ON
SQL code will be used.
OPER_SET_SQL_OFF
SQL code will not be used.
OPER_SET_SQL_ERROR
Setting for SQL must be ON or OFF.
OPER_SET_SQL_ERROR_INIT
Error during init of SQL, check your logs to correct.
# NOOP responses
OPER_NOOP_SYNTAX
@@ -2841,6 +2849,10 @@ OPER_EXCEPTION_INVALID_LIMIT
Invalid session limit. It must be a valid integer greater than or equal to zero and less than %d.
OPER_EXCEPTION_INVALID_HOSTMASK
Invalid hostmask. Only real hostmasks are valid as exceptions are not matched against nicks or usernames.
OPER_EXCEPTION_EXISTS
%s already exists on the EXCEPTION list.
OPER_EXCEPTION_CHANGED
Exception for %s has been updated to %d.
# SESSION responses
OPER_SESSION_SYNTAX
@@ -5394,6 +5406,12 @@ OPER_HELP_SET_SUPERADMIN
This option is not persistant, and should only be used when
needed, and set back to OFF when no longer needed.
OPER_HELP_SET_SQL
Syntax: SET SQL {ON | OFF}
Setting this will toggle Anope's from usage of SQL, this should
be used to disable and enable SQL should your SQL server go down
while services are running.
OPER_HELP_NOOP
Syntax: NOOP SET server
+12
View File
@@ -2658,6 +2658,14 @@ OPER_SET_NOEXPIRE_ERROR
Seteo para NOEXPIRE debe ser ON u OFF.
OPER_SET_UNKNOWN_OPTION
Opcion %s desconocida.
OPER_SET_SQL_ON
SQL code will be used.
OPER_SET_SQL_OFF
SQL code will not be used.
OPER_SET_SQL_ERROR
Setting for SQL must be ON or OFF.
OPER_SET_SQL_ERROR_INIT
Error during init of SQL, check your logs to correct.
# NOOP responses
OPER_NOOP_SYNTAX
@@ -2929,6 +2937,10 @@ OPER_EXCEPTION_INVALID_LIMIT
Limite de sesion invalido. Debe ser un entero valido mayor o igual a cero y menor a %d.
OPER_EXCEPTION_INVALID_HOSTMASK
Mascara invalida. Solo mascaras reales son validas ya que excepciones no son comparadas a nicks o usernames.
OPER_EXCEPTION_EXISTS
%s already exists on the EXCEPTION list.
OPER_EXCEPTION_CHANGED
Exception for %s has been updated to %d.
# SESSION responses
OPER_SESSION_SYNTAX
+12
View File
@@ -2690,6 +2690,14 @@ OPER_SET_NOEXPIRE_ERROR
La valeur de NOEXPIRE doit être ON ou OFF.
OPER_SET_UNKNOWN_OPTION
Option inconnue %s.
OPER_SET_SQL_ON
SQL code will be used.
OPER_SET_SQL_OFF
SQL code will not be used.
OPER_SET_SQL_ERROR
Setting for SQL must be ON or OFF.
OPER_SET_SQL_ERROR_INIT
Error during init of SQL, check your logs to correct.
# NOOP responses
OPER_NOOP_SYNTAX
@@ -2962,6 +2970,10 @@ OPER_EXCEPTION_INVALID_LIMIT
Limite de session invalide. Elle doit être un entier valide supérieur ou égal à zero et plus petit que %d.
OPER_EXCEPTION_INVALID_HOSTMASK
Hostmask invalide. Seuls les hostmasks réels sont valides puisque les exceptions ne sont pas comparés aux nicks et usernames.
OPER_EXCEPTION_EXISTS
%s already exists on the EXCEPTION list.
OPER_EXCEPTION_CHANGED
Exception for %s has been updated to %d.
# SESSION responses
OPER_SESSION_SYNTAX
+12
View File
@@ -2668,6 +2668,14 @@ OPER_SET_NOEXPIRE_ERROR
Ç åðéëïãÞ ãéá NOEXPIRE ðñÝðåé íá åßíáé ON Þ OFF.
OPER_SET_UNKNOWN_OPTION
¢ãíùóôç åðéëïãÞ %s.
OPER_SET_SQL_ON
SQL code will be used.
OPER_SET_SQL_OFF
SQL code will not be used.
OPER_SET_SQL_ERROR
Setting for SQL must be ON or OFF.
OPER_SET_SQL_ERROR_INIT
Error during init of SQL, check your logs to correct.
# NOOP responses
OPER_NOOP_SYNTAX
@@ -2938,6 +2946,10 @@ OPER_EXCEPTION_INVALID_LIMIT
ËÜèïò session limit. ÐñÝðåé íá åßíáé ëÜèïò ï integer greater Þ ðñÝðåé íá åßíáé ìåôáîý ìçäÝí êáé %d.
OPER_EXCEPTION_INVALID_HOSTMASK
ËÜèïò hostmask. Ìüíï ðñáãìáôéêÜ hostmasks ÷ñçóéìïðïéïýíôáé êáé ü÷é øåõäþíõìá Þ usernames.
OPER_EXCEPTION_EXISTS
%s already exists on the EXCEPTION list.
OPER_EXCEPTION_CHANGED
Exception for %s has been updated to %d.
# SESSION responses
OPER_SESSION_SYNTAX
+12
View File
@@ -2631,6 +2631,14 @@ OPER_SET_NOEXPIRE_ERROR
Az NOEXPIRE beállításhoz kell ON vagy OFF.
OPER_SET_UNKNOWN_OPTION
Ismeretlen beállítás %s.
OPER_SET_SQL_ON
SQL code will be used.
OPER_SET_SQL_OFF
SQL code will not be used.
OPER_SET_SQL_ERROR
Setting for SQL must be ON or OFF.
OPER_SET_SQL_ERROR_INIT
Error during init of SQL, check your logs to correct.
# NOOP válaszok
OPER_NOOP_SYNTAX
@@ -2868,6 +2876,10 @@ OPER_EXCEPTION_INVALID_LIMIT
OPER_EXCEPTION_INVALID_HOSTMASK
Érvénytelen hosztmaszk. Csak érvényes hosztmaszk lehet,
a kivétel nem lehet nick vagy usernév.
OPER_EXCEPTION_EXISTS
%s already exists on the EXCEPTION list.
OPER_EXCEPTION_CHANGED
Exception for %s has been updated to %d.
# SESSION válaszok
OPER_SESSION_SYNTAX
+12
View File
@@ -2675,6 +2675,14 @@ OPER_SET_NOEXPIRE_ERROR
Il parametro dell'opzione NOEXPIRE deve essere ON o OFF.
OPER_SET_UNKNOWN_OPTION
Opzione %s sconosciuta.
OPER_SET_SQL_ON
SQL code will be used.
OPER_SET_SQL_OFF
SQL code will not be used.
OPER_SET_SQL_ERROR
Setting for SQL must be ON or OFF.
OPER_SET_SQL_ERROR_INIT
Error during init of SQL, check your logs to correct.
# NOOP responses
OPER_NOOP_SYNTAX
@@ -2942,6 +2950,10 @@ OPER_EXCEPTION_INVALID_LIMIT
Limite delle sessioni non valido. Deve essere un numero intero maggiore o uguale a zero e minore di %d.
OPER_EXCEPTION_INVALID_HOSTMASK
Hostmask non valida. Solo le hostmask reali sono valide; le eccezioni non vengono confrontate con i nick o con gli username (ident).
OPER_EXCEPTION_EXISTS
%s already exists on the EXCEPTION list.
OPER_EXCEPTION_CHANGED
Exception for %s has been updated to %d.
# SESSION responses
OPER_SESSION_SYNTAX
+12
View File
@@ -2645,6 +2645,14 @@ OPER_SET_NOEXPIRE_ERROR
Instelling voor NOEXPIRE moet ON of OFF zijn.
OPER_SET_UNKNOWN_OPTION
Onbekende optie %s.
OPER_SET_SQL_ON
SQL code will be used.
OPER_SET_SQL_OFF
SQL code will not be used.
OPER_SET_SQL_ERROR
Setting for SQL must be ON or OFF.
OPER_SET_SQL_ERROR_INIT
Error during init of SQL, check your logs to correct.
# NOOP responses
OPER_NOOP_SYNTAX
@@ -2895,6 +2903,10 @@ OPER_EXCEPTION_INVALID_LIMIT
Ongeldige sessie limiet. Het moet een geldige integer groter dan of gelijk aan nul en kleiner dan %d.
OPER_EXCEPTION_INVALID_HOSTMASK
Ongeldige hostmask. Alleen echte hostmasks zijn geldig als uitzondering omdat deze niet worden vergeleken met nicks of usernames.
OPER_EXCEPTION_EXISTS
%s already exists on the EXCEPTION list.
OPER_EXCEPTION_CHANGED
Exception for %s has been updated to %d.
# SESSION responses
OPER_SESSION_SYNTAX
+12
View File
@@ -2859,6 +2859,14 @@ OPER_SET_NOEXPIRE_ERROR
ON lub OFF.
OPER_SET_UNKNOWN_OPTION
Nieznana opcja %s.
OPER_SET_SQL_ON
SQL code will be used.
OPER_SET_SQL_OFF
SQL code will not be used.
OPER_SET_SQL_ERROR
Setting for SQL must be ON or OFF.
OPER_SET_SQL_ERROR_INIT
Error during init of SQL, check your logs to correct.
# NOOP responses
OPER_NOOP_SYNTAX
@@ -3105,6 +3113,10 @@ OPER_EXCEPTION_INVALID_LIMIT
OPER_EXCEPTION_INVALID_HOSTMASK
Nieprawid³owa maska. Tylko rzeczywiste maski s±
prawid³owe jako wyj±tki.
OPER_EXCEPTION_EXISTS
%s already exists on the EXCEPTION list.
OPER_EXCEPTION_CHANGED
Exception for %s has been updated to %d.
# SESSION responses
OPER_SESSION_SYNTAX
+12
View File
@@ -2670,6 +2670,14 @@ OPER_SET_NOEXPIRE_ERROR
Opção NOEXPIRE deve ser ON ou OFF.
OPER_SET_UNKNOWN_OPTION
Opção desconhecida: %s.
OPER_SET_SQL_ON
SQL code will be used.
OPER_SET_SQL_OFF
SQL code will not be used.
OPER_SET_SQL_ERROR
Setting for SQL must be ON or OFF.
OPER_SET_SQL_ERROR_INIT
Error during init of SQL, check your logs to correct.
# NOOP responses
OPER_NOOP_SYNTAX
@@ -2946,6 +2954,10 @@ OPER_EXCEPTION_INVALID_LIMIT
Limite de sessão inválida. O limite deve ser um número inteiro maior ou igual a zero e menor que %d.
OPER_EXCEPTION_INVALID_HOSTMASK
Máscara inválida. Apenas máscaras (hosts) são válidas como exceções aos limites de sessões. Nick ou username não são válidos.
OPER_EXCEPTION_EXISTS
%s already exists on the EXCEPTION list.
OPER_EXCEPTION_CHANGED
Exception for %s has been updated to %d.
# SESSION responses
OPER_SESSION_SYNTAX
+12
View File
@@ -2642,6 +2642,14 @@ OPER_SET_NOEXPIRE_ERROR
Опция NOEXPIRE должна иметь значения только ON или OFF.
OPER_SET_UNKNOWN_OPTION
Неизвестная опция %s.
OPER_SET_SQL_ON
SQL code will be used.
OPER_SET_SQL_OFF
SQL code will not be used.
OPER_SET_SQL_ERROR
Setting for SQL must be ON or OFF.
OPER_SET_SQL_ERROR_INIT
Error during init of SQL, check your logs to correct.
# NOOP responses
OPER_NOOP_SYNTAX
@@ -2876,6 +2884,10 @@ OPER_EXCEPTION_INVALID_LIMIT
Некорректный лимит сессий. Он должен быть целым числом больше или равным нуля и меньше %d.
OPER_EXCEPTION_INVALID_HOSTMASK
Некорректная хостмаска. Только реальная хостмаска может быть добавлена в исключения, она не должна содержать ников или имен пользователей.
OPER_EXCEPTION_EXISTS
%s already exists on the EXCEPTION list.
OPER_EXCEPTION_CHANGED
Exception for %s has been updated to %d.
# SESSION responses
OPER_SESSION_SYNTAX
+12
View File
@@ -2673,6 +2673,14 @@ OPER_SET_NOEXPIRE_ERROR
NOEXPIRE ayarı ON yada OFF olmalıdır.
OPER_SET_UNKNOWN_OPTION
Varolmayan özellik %s.
OPER_SET_SQL_ON
SQL code will be used.
OPER_SET_SQL_OFF
SQL code will not be used.
OPER_SET_SQL_ERROR
Setting for SQL must be ON or OFF.
OPER_SET_SQL_ERROR_INIT
Error during init of SQL, check your logs to correct.
# NOOP responses
OPER_NOOP_SYNTAX
@@ -2943,6 +2951,10 @@ OPER_EXCEPTION_INVALID_LIMIT
Geçersiz session limiti. Sıfırdan büyük yada eşit ve %d den az bir geçerli tamsayı olmalıdır.
OPER_EXCEPTION_INVALID_HOSTMASK
Geçersiz hostmask. Sadece gerçek hostmasklar exception olarak geçerlidir.
OPER_EXCEPTION_EXISTS
%s already exists on the EXCEPTION list.
OPER_EXCEPTION_CHANGED
Exception for %s has been updated to %d.
# SESSION responses
OPER_SESSION_SYNTAX
+3 -3
View File
@@ -5,14 +5,14 @@ OBJS = actions.o base64.o botserv.o channels.o chanserv.o commands.o compat.o c
memory.o memoserv.o messages.o misc.o modules.o news.o nickserv.o operserv.o \
process.o proxy.o send.o servers.o sessions.o slist.o sockutil.o \
timeout.o users.o dreamforge.o bahamut.o unreal31.o ultimate2.o ultimate3.o \
hybrid.o ptlink.o viagra.o rageircd.o unreal32.o \
hybrid.o ptlink.o viagra.o rageircd.o unreal32.o solidircd.o \
$(VSNPRINTF_O) $(RDB_OBJ) $(MYSQL_OBJ)
SRCS = actions.c base64.c botserv.c channels.c chanserv.c commands.c compat.c converter.c \
config.c datafiles.c encrypt.c helpserv.c hostserv.c init.c language.c list.c log.c mail.c main.c \
memory.c memoserv.c messages.c misc.c modules.c news.c nickserv.c operserv.c \
process.c proxy.c send.c servers.c sessions.c slist.c sockutil.c \
dreamforge.c bahamut.c unreal31.c ultimate2.c ultimate3.c \
hybrid.c ptlink.c viagra.c rageircd.c unreal32.c \
hybrid.c ptlink.c viagra.c rageircd.c unreal32.c solidircd.c \
timeout.c users.c \
$(VSNPRINTF_C) $(RDB) $(MYSQL)
@@ -23,7 +23,7 @@ INCLUDES = ../include/commands.h ../include/defs.h ../include/language.h \
../include/modules.h ../include/slist.h \
../include/dreamforge.h ../include/bahamut.h ../include/ultimate2.h \
../include/ultimate3.h ../include/hybrid.h ../include/ptlink.h ../include/unreal31.h \
../include/viagra.h ../include/rageircd.h ../include/unreal32.h
../include/viagra.h ../include/rageircd.h ../include/unreal32.h ../include/solidircd.h
MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
+25 -8
View File
@@ -612,7 +612,7 @@ void load_bs_dbase(void)
dbFILE *f;
int c, ver;
int16 tmp16;
int32 tmp32;
uint32 tmp32;
BotInfo *bi;
int failed = 0;
@@ -1148,12 +1148,19 @@ static void bot_raw_kick(User * requester, ChannelInfo * ci, char *nick,
static void bot_raw_mode(User * requester, ChannelInfo * ci, char *mode,
char *nick)
{
char *av[3];
User *u = finduser(nick);
char *av[4];
int ac;
char buf[BUFSIZE];
*buf = '\0';
User *u;
u = finduser(nick);
if (!u || !is_on_chan(ci->c, u))
return;
snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL));
if (ircd->protectedumode) {
if (is_protected(u) && *mode == '-' && (requester != u)) {
anope_cmd_privmsg(ci->bi->nick, ci->name, "%s",
@@ -1167,12 +1174,22 @@ static void bot_raw_mode(User * requester, ChannelInfo * ci, char *mode,
&& (get_access(u, ci) >= get_access(requester, ci)))
return;
av[0] = ci->name;
av[1] = mode;
av[2] = nick;
if (ircdcap->tsmode) {
av[0] = ci->name;
av[1] = buf;
av[2] = mode;
av[3] = nick;
ac = 4;
anope_cmd_mode(ci->bi->nick, av[0], "%s %s", av[2], av[3]);
} else {
av[0] = ci->name;
av[1] = mode;
av[2] = nick;
ac = 3;
anope_cmd_mode(ci->bi->nick, av[0], "%s %s", av[1], av[2]);
}
anope_cmd_mode(ci->bi->nick, av[0], "%s %s", av[1], av[2]);
do_cmode(ci->bi->nick, 3, av);
do_cmode(ci->bi->nick, ac, av);
}
/*************************************************************************/
+1 -1
View File
@@ -636,7 +636,7 @@ void load_cs_dbase(void)
for (i = 0; i < 256 && !failed; i++) {
int16 tmp16;
int32 tmp32;
uint32 tmp32;
int n_levels;
char *s;
NickAlias *na;
+2 -2
View File
@@ -535,7 +535,7 @@ void load_hs_dbase_v2(dbFILE * f)
char *nick;
char *vHost;
char *creator;
int32 time;
uint32 time;
while (!failed && (c = getc_db(f)) == 1) {
@@ -563,7 +563,7 @@ void load_hs_dbase_v3(dbFILE * f)
char *vHost;
char *creator;
char *vIdent;
int32 time;
uint32 time;
while (!failed && (c = getc_db(f)) == 1) {
if (c == 1) {
+1 -1
View File
@@ -66,7 +66,7 @@ static void load_lang(int index, const char *filename)
{
char buf[256];
FILE *f;
int num, i;
int32 num, i;
if (debug) {
alog("debug: Loading language %d from file `languages/%s'",
+33 -2
View File
@@ -397,13 +397,20 @@ void sighandler(int signum)
signum);
#endif
}
if (signum == SIGSEGV) {
do_backtrace();
}
if (started) {
services_shutdown();
exit(0);
} else {
alog("%s", quitmsg);
if (isatty(2))
if (isatty(2)) {
fprintf(stderr, "%s\n", quitmsg);
} else {
alog("%s", quitmsg);
}
exit(1);
}
}
@@ -554,3 +561,27 @@ int main(int ac, char **av, char **envp)
}
/*************************************************************************/
void do_backtrace(void)
{
#ifdef HAVE_BACKTRACE
void *array[50];
size_t size;
char **strings;
int i;
alog("Backtrace: Segmentation fault detected");
alog("Backtrace: report the following lines");
alog("Backtrace: Anope version %s %s %s", version_number,
version_build, version_flags);
size = backtrace(array, 10);
strings = backtrace_symbols(array, size);
for (i = 1; i < size; i++) {
alog("Backtrace(%d): %s", i, strings[i]);
}
free(strings);
alog("Backtrace: complete");
#else
alog("Backtrace: not available on this platform");
#endif
}
+6 -1
View File
@@ -361,6 +361,10 @@ void memo_send(User * u, char *name, char *text, int z)
m->time = time(NULL);
m->text = sstrdup(text);
m->flags = MF_UNREAD;
/* Set notify sent flag - DrStein */
if (z == 2) {
m->flags |= MF_NOTIFYS;
}
/* Set receipt request flag */
if (z == 3)
m->flags |= MF_RECEIPT;
@@ -446,7 +450,8 @@ static int do_cancel(User * u)
for (i = mi->memocount - 1; i >= 0; i--) {
if ((mi->memos[i].flags & MF_UNREAD)
&& !stricmp(mi->memos[i].sender, u->na->nc->display)) {
&& !stricmp(mi->memos[i].sender, u->na->nc->display)
&& (!(mi->memos[i].flags & MF_NOTIFYS))) {
delmemo(mi, mi->memos[i].number);
notice_lang(s_MemoServ, u, MEMO_CANCELLED, name);
return MOD_CONT;
+1 -1
View File
@@ -156,7 +156,7 @@ void load_news()
dbFILE *f;
int i;
int16 n;
int32 tmp32;
uint32 tmp32;
if (!(f = open_db(s_OperServ, NewsDBName, "r", NEWS_VERSION)))
return;
+3 -3
View File
@@ -374,7 +374,7 @@ void load_old_ns_dbase(void)
int failed = 0;
int16 tmp16;
int32 tmp32;
uint32 tmp32;
char bufn[NICKMAX], bufp[PASSMAX];
char *email, *greet, *url, *forbidby, *forbidreason;
@@ -632,7 +632,7 @@ void load_ns_req_db(void)
dbFILE *f;
int i, c, ver;
NickRequest *nr;
int32 tmp32;
uint32 tmp32;
int failed = 0;
if (!(f = open_db(s_NickServ, PreNickDBName, "r", PRE_NICK_VERSION)))
@@ -663,7 +663,7 @@ void load_ns_dbase(void)
NickCore *nc, **nclast, *ncprev;
int failed = 0;
int16 tmp16;
int32 tmp32;
uint32 tmp32;
char *s;
if (!(f = open_db(s_NickServ, NickDBName, "r", NICK_VERSION)))
+28 -10
View File
@@ -168,12 +168,15 @@ void moduleAddOperServCmds(void) {
c = createCommand("SZLINE", do_szline, is_services_oper,OPER_HELP_SZLINE, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
/* Commands for Services admins: */
c = createCommand("SET", do_set, is_services_admin,OPER_HELP_SET, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("SET READONLY", NULL, NULL,OPER_HELP_SET_READONLY, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("SET LOGCHAN",NULL, NULL,OPER_HELP_SET_LOGCHAN, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("SET DEBUG", NULL, NULL,OPER_HELP_SET_DEBUG, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("SET NOEXPIRE",NULL, NULL,OPER_HELP_SET_NOEXPIRE, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("SET SUPERADMIN",NULL, NULL,OPER_HELP_SET_SUPERADMIN, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("SET", do_set, is_services_admin,OPER_HELP_SET, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("SET READONLY", NULL, NULL,OPER_HELP_SET_READONLY, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("SET LOGCHAN", NULL, NULL,OPER_HELP_SET_LOGCHAN, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("SET DEBUG", NULL, NULL,OPER_HELP_SET_DEBUG, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("SET NOEXPIRE", NULL, NULL,OPER_HELP_SET_NOEXPIRE, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("SET SUPERADMIN", NULL, NULL,OPER_HELP_SET_SUPERADMIN, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
#ifdef USE_MYSQL
c = createCommand("SET SQL", NULL, NULL,OPER_HELP_SET_SQL, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
#endif
c = createCommand("SVSNICK", do_svsnick, is_services_admin,OPER_HELP_SVSNICK, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("UMODE", do_operumodes, is_services_admin,OPER_HELP_UMODE, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("NOOP", do_noop, is_services_admin,OPER_HELP_NOOP, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
@@ -377,7 +380,7 @@ static void load_old_akill(void)
dbFILE *f;
int i, j;
int16 tmp16;
int32 tmp32;
uint32 tmp32;
char buf[NICKMAX], mask2[BUFSIZE], *mask, *s;
Akill *ak, *entry;
@@ -491,7 +494,7 @@ void load_os_dbase(void)
int16 i, n, ver, c;
HostCache *hc, **hclast, *hcprev;
int16 tmp16;
int32 tmp32;
uint32 tmp32;
char *s;
int failed = 0;
@@ -533,7 +536,7 @@ void load_os_dbase(void)
}
if (ver >= 7) {
int32 tmp32;
uint32 tmp32;
SAFE(read_int32(&maxusercnt, f));
SAFE(read_int32(&tmp32, f));
maxusertime = tmp32;
@@ -4466,7 +4469,22 @@ static int do_set(User * u)
} else {
notice_lang(s_OperServ, u, OPER_SET_IGNORE_ERROR);
}
#ifdef USE_MYSQL
} else if (stricmp(option, "SQL") == 0) {
if (stricmp(setting, "on") == 0) {
if (rdb_init()) {
notice_lang(s_OperServ, u, OPER_SET_SQL_ON);
} else {
notice_lang(s_OperServ, u, OPER_SET_SQL_ERROR_INIT);
}
} else if (stricmp(setting, "off") == 0) {
/* could call rdb_close() but that does nothing - TSL */
do_mysql = 0;
notice_lang(s_OperServ, u, OPER_SET_SQL_OFF);
} else {
notice_lang(s_OperServ, u, OPER_SET_SQL_ERROR);
}
#endif
} else if (stricmp(option, "READONLY") == 0) {
if (stricmp(setting, "on") == 0) {
readonly = 1;
+2 -13
View File
@@ -54,7 +54,7 @@ IRCDVar ircd[] = {
NULL, /* Mode to unset for an owner */
"+r", /* Mode On Reg */
"-r", /* Mode on UnReg */
"+d", /* Mode on Nick Change */
NULL, /* Mode on Nick Change */
1, /* Supports SGlines */
1, /* Supports SQlines */
1, /* Supports SZlines */
@@ -1378,17 +1378,6 @@ void anope_set_umode(User * user, int ac, char **av)
case '-':
add = 0;
break;
case 'd':
if (ac == 0) {
alog("user: umode +d with no parameter (?) for user %s",
user->nick);
break;
}
ac--;
av++;
user->svid = strtoul(*av, NULL, 0);
break;
case 'o':
if (add) {
opcnt++;
@@ -1560,7 +1549,7 @@ void anope_cmd_svid_umode(char *nick, time_t ts)
/* nc_change was = 1, and there is no na->status */
void anope_cmd_nc_change(User * u)
{
common_svsmode(u, "+d", "1");
/* Not Supported by this ircd */
}
/* SVSMODE +d */
+25 -10
View File
@@ -76,7 +76,7 @@ int16 nexceptions = 0;
static Session *findsession(const char *host);
static Exception *find_host_exception(const char *host);
static int exception_add(const char *mask, const int limit,
static int exception_add(User * u, const char *mask, const int limit,
const char *reason, const char *who,
const time_t expires);
@@ -380,7 +380,7 @@ void load_exceptions()
int i;
int16 n;
int16 tmp16;
int32 tmp32;
uint32 tmp32;
if (!
(f = open_db(s_OperServ, ExceptionDBName, "r", EXCEPTION_VERSION)))
@@ -479,16 +479,29 @@ void save_rdb_exceptions()
/************************ Exception Manipulation *************************/
/*************************************************************************/
static int exception_add(const char *mask, const int limit,
static int exception_add(User * u, const char *mask, const int limit,
const char *reason, const char *who,
const time_t expires)
{
int i;
/* Check if an exception already exists for this mask */
for (i = 0; i < nexceptions; i++)
if (stricmp(mask, exceptions[i].mask) == 0)
return 0;
for (i = 0; i < nexceptions; i++) {
if (!stricmp(mask, exceptions[i].mask)) {
if (exceptions[i].limit != limit) {
exceptions[i].limit = limit;
if (u)
notice_lang(s_OperServ, u, OPER_EXCEPTION_CHANGED,
mask, exceptions[i].limit);
return -2;
} else {
if (u)
notice_lang(s_OperServ, u, OPER_EXCEPTION_EXISTS,
mask);
return -1;
}
}
}
nexceptions++;
exceptions = srealloc(exceptions, sizeof(Exception) * nexceptions);
@@ -626,6 +639,7 @@ int do_exception(User * u)
char *mask, *reason, *expiry, *limitstr;
int limit, expires;
int i;
int x;
if (!LimitSessions) {
notice_lang(s_OperServ, u, OPER_EXCEPTION_DISABLED);
@@ -679,12 +693,13 @@ int do_exception(User * u)
return MOD_CONT;
}
if (exception_add(mask, limit, reason, u->nick, expires))
x = exception_add(u, mask, limit, reason, u->nick, expires);
if (x == 1) {
notice_lang(s_OperServ, u, OPER_EXCEPTION_ADDED, mask,
limit);
else
notice_lang(s_OperServ, u, OPER_EXCEPTION_ALREADY_PRESENT,
mask, limit);
}
if (readonly)
notice_lang(s_OperServ, u, READ_ONLY_MODE);
}
+1710
View File
File diff suppressed because it is too large Load Diff
+4 -8
View File
@@ -71,7 +71,7 @@ IRCDVar ircd[] = {
0, /* Has Admin */
0, /* Chan SQlines */
0, /* Quit on Kill */
0, /* SVSMODE unban */
1, /* SVSMODE unban */
1, /* Has Protect */
1, /* Reverse */
1, /* Chan Reg */
@@ -201,7 +201,7 @@ char csmodes[128] = {
0,
0, 0, 0,
'h', /* (37) % Channel halfops */
'b', /* (38) & Channel halfops */
'b', /* (38) & bans */
0, 0, 0,
'q',
@@ -1932,7 +1932,8 @@ void anope_cmd_sgline(char *mask, char *reason)
/* SVSMODE -b */
void anope_cmd_unban(char *name, char *nick)
{
/* Not Supported by this IRCD */
send_cmd(ServerName, "%s %s -b %s", send_token("SVSMODE", "n"), name,
nick);
}
/* SVSMODE +d */
@@ -2025,7 +2026,6 @@ int anope_event_swhois(char *source, int ac, char **av)
return MOD_CONT;
}
int anope_event_rehash(char *source, int ac, char **av)
{
return MOD_CONT;
@@ -2041,7 +2041,6 @@ int anope_event_admin(char *source, int ac, char **av)
return MOD_CONT;
}
int anope_event_sdesc(char *source, int ac, char **av)
{
Server *s;
@@ -2054,14 +2053,12 @@ int anope_event_sdesc(char *source, int ac, char **av)
return MOD_CONT;
}
int anope_event_sjoin(char *source, int ac, char **av)
{
do_sjoin(source, ac, av);
return MOD_CONT;
}
void anope_cmd_swhois(char *source, char *who, char *mask)
{
send_cmd(source, "SWHOIS %s :%s", who, mask);
@@ -2072,7 +2069,6 @@ void anope_cmd_eob()
send_cmd(ServerName, "EOS");
}
/* svswatch
* parv[0] - sender
* parv[1] - target nick
+13 -7
View File
@@ -17,7 +17,8 @@
#define HASH(nick) (((nick)[0]&31)<<5 | ((nick)[1]&31))
User *userlist[1024];
int32 usercnt = 0, opcnt = 0, maxusercnt = 0;
int32 usercnt = 0, opcnt = 0;
uint32 maxusercnt = 0;
time_t maxusertime;
/*************************************************************************/
@@ -707,8 +708,9 @@ void do_quit(const char *source, int ac, char **av)
merge_args(ac, av));
return;
}
if (debug)
if (debug) {
alog("debug: %s quits", source);
}
if ((na = user->na) && (!(na->status & NS_VERBOTEN))
&& (na->status & (NS_IDENTIFIED | NS_RECOGNIZED))) {
na->last_seen = time(NULL);
@@ -717,8 +719,9 @@ void do_quit(const char *source, int ac, char **av)
na->last_quit = *av[0] ? sstrdup(av[0]) : NULL;
}
#ifndef STREAMLINED
if (LimitSessions)
if (LimitSessions) {
del_session(user->host);
}
#endif
delete_user(user);
}
@@ -736,13 +739,15 @@ void do_kill(char *nick, char *msg)
NickAlias *na;
user = finduser(nick);
if (!user)
if (!user) {
if (debug) {
alog("debug: KILL of nonexistent nick: %s", nick);
}
return;
if (debug)
return;
}
if (debug) {
alog("debug: %s killed", nick);
}
if ((na = user->na) && (!(na->status & NS_VERBOTEN))
&& (na->status & (NS_IDENTIFIED | NS_RECOGNIZED))) {
na->last_seen = time(NULL);
@@ -752,8 +757,9 @@ void do_kill(char *nick, char *msg)
}
#ifndef STREAMLINED
if (LimitSessions)
if (LimitSessions) {
del_session(user->host);
}
#endif
delete_user(user);
}
+16 -1
View File
@@ -8,10 +8,25 @@
VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="6"
VERSION_BUILD="462"
VERSION_BUILD="463"
# $Log$
#
# BUILD : 1.7.6 (463)
# BUGS : 192, 210, 222, 234
# NOTES : 1. Removed +d references from the ptlink protocol code, since they do not timestamp the nicks
# 2. Memos sent as notification of receipt can not be cancelled.
# 3. Unreal3.2 supports SVSMODE -b on clearing bans
# 4. fixed do_kill() not remove the user from the user list
# 5. /os set sql [on|off] runtime sql toggle
# 6. Segfaults logged to the services log when DumpCore is disabled
# 7. fixed RUNGROUP not passed during build time
# 8. Exceptions now update if the limit is changed
# 9. Solid-IRCD support
# 10. Fixed TSMODE warnings when using FANTASY commands
# 11. Fixed read_int32 warnings (fixes compiling and running under cygwin)
# - Thats all..
#
# BUILD : 1.7.6 (462)
# BUGS : 226
# NOTES : 1. RageIRCD sends TSMODE which is part of their beta7