summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes10
-rw-r--r--Changes.lang7
-rwxr-xr-xConfig7
-rw-r--r--Makefile.in1
-rwxr-xr-xconfigure159
-rw-r--r--configure.in9
-rw-r--r--include/extern.h5
-rw-r--r--include/services.h11
-rw-r--r--include/solidircd.h78
-rw-r--r--include/sysconf.h.in6
-rw-r--r--lang/cat.l12
-rw-r--r--lang/de.l12
-rw-r--r--lang/en_us.l18
-rw-r--r--lang/es.l12
-rw-r--r--lang/fr.l12
-rw-r--r--lang/gr.l12
-rw-r--r--lang/hun.l12
-rw-r--r--lang/it.l12
-rw-r--r--lang/nl.l12
-rw-r--r--lang/pl.l12
-rw-r--r--lang/pt.l12
-rw-r--r--lang/ru.l12
-rw-r--r--lang/tr.l12
-rw-r--r--src/Makefile6
-rw-r--r--src/botserv.c33
-rw-r--r--src/chanserv.c2
-rw-r--r--src/hostserv.c4
-rw-r--r--src/language.c2
-rw-r--r--src/main.c35
-rw-r--r--src/memoserv.c7
-rw-r--r--src/news.c2
-rw-r--r--src/nickserv.c6
-rw-r--r--src/operserv.c38
-rw-r--r--src/ptlink.c15
-rw-r--r--src/sessions.c35
-rw-r--r--src/solidircd.c1710
-rw-r--r--src/unreal32.c12
-rw-r--r--src/users.c20
-rw-r--r--version.log17
39 files changed, 2321 insertions, 78 deletions
diff --git a/Changes b/Changes
index a7821044b..9249e8988 100644
--- a/Changes
+++ b/Changes
@@ -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]
diff --git a/Changes.lang b/Changes.lang
index 3a713e46c..d6b5adfcb 100644
--- a/Changes.lang
+++ b/Changes.lang
@@ -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:
diff --git a/Config b/Config
index 990a70335..387e379fb 100755
--- a/Config
+++ b/Config
@@ -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."
diff --git a/Makefile.in b/Makefile.in
index 910b5d557..cf5aa6e1c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -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
diff --git a/configure b/configure
index 871d693b6..b53440450 100755
--- a/configure
+++ b/configure
@@ -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
diff --git a/configure.in b/configure.in
index 65200f69e..f821a414e 100644
--- a/configure.in
+++ b/configure.in
@@ -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
])
diff --git a/include/extern.h b/include/extern.h
index 31b37a8cf..a3e6da887 100644
--- a/include/extern.h
+++ b/include/extern.h
@@ -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);
diff --git a/include/services.h b/include/services.h
index 9002789ae..2d6aae05f 100644
--- a/include/services.h
+++ b/include/services.h
@@ -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 */
diff --git a/include/solidircd.h b/include/solidircd.h
new file mode 100644
index 000000000..6225885ea
--- /dev/null
+++ b/include/solidircd.h
@@ -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
+
diff --git a/include/sysconf.h.in b/include/sysconf.h.in
index 8d8a0e292..472075577 100644
--- a/include/sysconf.h.in
+++ b/include/sysconf.h.in
@@ -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
diff --git a/lang/cat.l b/lang/cat.l
index 49d242b39..d2bc618d6 100644
--- a/lang/cat.l
+++ b/lang/cat.l
@@ -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
diff --git a/lang/de.l b/lang/de.l
index fdc32ff69..32d71bec5 100644
--- a/lang/de.l
+++ b/lang/de.l
@@ -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
diff --git a/lang/en_us.l b/lang/en_us.l
index b9915434f..70b12fc6f 100644
--- a/lang/en_us.l
+++ b/lang/en_us.l
@@ -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
diff --git a/lang/es.l b/lang/es.l
index 441a81f0f..22f376b7d 100644
--- a/lang/es.l
+++ b/lang/es.l
@@ -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
diff --git a/lang/fr.l b/lang/fr.l
index a721a6fbf..2934f91d7 100644
--- a/lang/fr.l
+++ b/lang/fr.l
@@ -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
diff --git a/lang/gr.l b/lang/gr.l
index 553b64ca4..f941d5706 100644
--- a/lang/gr.l
+++ b/lang/gr.l
@@ -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
diff --git a/lang/hun.l b/lang/hun.l
index 766fb319e..4d67fb930 100644
--- a/lang/hun.l
+++ b/lang/hun.l
@@ -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