Thread: [IRC-Dev CVS] [CVS] Module ircd-ircdev: Change committed (Page 4)
Brought to you by:
zolty
From: Toni G. <zo...@us...> - 2005-04-11 08:45:37
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-11 08:45:11 UTC Modified files: ChangeLog ChangeLog.es acinclude.m4 aclocal.m4 config.h.in configure configure.in doc/ircd.sample-en.conf doc/ircd.sample-es.conf include/capab.h include/client.h include/numeric.h include/s_conf.h ircd/Makefile.in ircd/channel.c ircd/ircd.c ircd/ircd_parser.y ircd/ircd_string.c ircd/m_burst.c ircd/m_cap.c ircd/m_whowas.c ircd/s_conf.c ircd/s_err.c ircd/s_user.c tools/convert-conf.py Log message: Author: zoltan <zo...@ir...> Log message: 2005-04-11 Toni García <zo...@ir...> 1.0.alpha25 * Comando CAPAB totalmente funcional * Sincronización Undernet ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.26 ircd-ircdev/ChangeLog:1.27 --- ircd-ircdev/ChangeLog:1.26 Sat Apr 2 11:47:33 2005 +++ ircd-ircdev/ChangeLog Mon Apr 11 01:44:55 2005 @@ -1,10 +1,14 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.26 2005/04/02 19:47:33 zolty Exp $ +# $Id: ChangeLog,v 1.27 2005/04/11 08:44:55 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-04-11 Toni García <zo...@ir...> 1.0.alpha25 + * CAPAB command + * Undernet synchronization + 2005-04-02 Toni García <zo...@ir...> 1.0.alpha24 * STATS J for jupe nicks * PRIVS remote Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.26 ircd-ircdev/ChangeLog.es:1.27 --- ircd-ircdev/ChangeLog.es:1.26 Sat Apr 2 11:47:33 2005 +++ ircd-ircdev/ChangeLog.es Mon Apr 11 01:44:55 2005 @@ -1,10 +1,14 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.26 2005/04/02 19:47:33 zolty Exp $ +# $Id: ChangeLog.es,v 1.27 2005/04/11 08:44:55 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-04-11 Toni García <zo...@ir...> 1.0.alpha25 + * Comando CAPAB totalmente funcional + * Sincronización Undernet + 2005-04-02 Toni García <zo...@ir...> 1.0.alpha24 * STATS J para jupe de nicks * PRIVS remoto Index: ircd-ircdev/acinclude.m4 diff -u ircd-ircdev/acinclude.m4:1.2 ircd-ircdev/acinclude.m4:1.3 --- ircd-ircdev/acinclude.m4:1.2 Wed Nov 24 08:11:30 2004 +++ ircd-ircdev/acinclude.m4 Mon Apr 11 01:44:56 2005 @@ -1,28 +1,4 @@ dnl -dnl Macro: unet_PIPE_CFLAGS -dnl -dnl If the compiler understands -pipe, add it to CFLAGS if not already -dnl there. -dnl -AC_DEFUN(unet_PIPE_CFLAGS, -[AC_MSG_CHECKING([if the compiler understands -pipe]) -unet_cv_pipe_flags="$ac_cv_prog_gcc" -if test "$ac_cv_prog_gcc" = no; then - OLDCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -pipe" - AC_TRY_COMPILE(,,unet_cv_pipe_flags=yes,) - CFLAGS="$OLDCFLAGS" -fi -AC_MSG_RESULT($unet_cv_pipe_flags) -if test "$unet_cv_pipe_flags" = yes ; then - x=`echo $CFLAGS | grep 'pipe' 2>/dev/null` - if test "$x" = "" ; then - CFLAGS="$CFLAGS -pipe" - fi -fi -]) - -dnl dnl Macro: unet_NONBLOCKING dnl dnl Check whether we have posix, bsd or sysv non-blocking sockets and Index: ircd-ircdev/aclocal.m4 diff -u ircd-ircdev/aclocal.m4:1.3 ircd-ircdev/aclocal.m4:1.4 --- ircd-ircdev/aclocal.m4:1.3 Wed Nov 24 08:11:30 2004 +++ ircd-ircdev/aclocal.m4 Mon Apr 11 01:44:56 2005 @@ -11,30 +11,6 @@ dnl PARTICULAR PURPOSE. dnl -dnl Macro: unet_PIPE_CFLAGS -dnl -dnl If the compiler understands -pipe, add it to CFLAGS if not already -dnl there. -dnl -AC_DEFUN(unet_PIPE_CFLAGS, -[AC_MSG_CHECKING([if the compiler understands -pipe]) -unet_cv_pipe_flags="$ac_cv_prog_gcc" -if test "$ac_cv_prog_gcc" = no; then - OLDCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -pipe" - AC_TRY_COMPILE(,,unet_cv_pipe_flags=yes,) - CFLAGS="$OLDCFLAGS" -fi -AC_MSG_RESULT($unet_cv_pipe_flags) -if test "$unet_cv_pipe_flags" = yes ; then - x=`echo $CFLAGS | grep 'pipe' 2>/dev/null` - if test "$x" = "" ; then - CFLAGS="$CFLAGS -pipe" - fi -fi -]) - -dnl dnl Macro: unet_NONBLOCKING dnl dnl Check whether we have posix, bsd or sysv non-blocking sockets and Index: ircd-ircdev/config.h.in diff -u ircd-ircdev/config.h.in:1.7 ircd-ircdev/config.h.in:1.8 --- ircd-ircdev/config.h.in:1.7 Wed Mar 23 10:34:16 2005 +++ ircd-ircdev/config.h.in Mon Apr 11 01:44:56 2005 @@ -19,7 +19,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: config.h.in,v 1.7 2005/03/23 18:34:16 zolty Exp $ + * $Id: config.h.in,v 1.8 2005/04/11 08:44:56 zolty Exp $ * */ #ifndef INCLUDED_config_h @@ -169,6 +169,9 @@ /* Define to 1 if you have the <sys/param.h> header file. */ #undef HAVE_SYS_PARAM_H +/* Define to 1 if you have the <sys/resource.h> header file. */ +#undef HAVE_SYS_RESOURCE_H + /* Define to 1 if you have the <sys/socket.h> header file. */ #undef HAVE_SYS_SOCKET_H @@ -232,9 +235,6 @@ /* Define if you have POSIX signals. */ #undef POSIX_SIGNALS -/* Services Environment (Ex-TerraIRCU) */ -#undef SERVICES - /* The size of a `int', as computed by sizeof. */ #undef SIZEOF_INT @@ -268,9 +268,6 @@ /* Define to 1 if your <sys/time.h> declares `struct tm'. */ #undef TM_IN_SYS_TIME -/* UnderNet Environment */ -#undef UNDERNET - /* Define to enable the /dev/poll engine */ #undef USE_DEVPOLL Index: ircd-ircdev/configure diff -u ircd-ircdev/configure:1.14 ircd-ircdev/configure:1.15 --- ircd-ircdev/configure:1.14 Wed Mar 23 10:34:18 2005 +++ ircd-ircdev/configure Mon Apr 11 01:44:56 2005 @@ -310,7 +310,7 @@ # 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 build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP AWK SET_MAKE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S RMPROG SHPROG LEX LEXLIB LEX_OUTPUT_ROOT YACC ENGINE_C INSTALL_RULE SYMLINK IRCDMODE IRCDOWN IRCDGRP DPATH 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 build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP AWK SET_MAKE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S RMPROG SHPROG LEX LEXLIB LEX_OUTPUT_ROOT YACC ENGINE_C INSTALL_RULE SYMLINK IRCDMODE IRCDOWN IRCDGRP DPATH ENVIRONMENT LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -861,6 +861,8 @@ Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-optimization=-O2 Explicitly set the compiler optimization flags + (default: -O3) --with-leak-detect Turn on the leak detector(requires patched boehm) --without-ipv6 disable IPv6 support (default is autodetect) --with-symlink=name Name to give the symlink; if name is "no," no @@ -876,6 +878,9 @@ --with-cpath=file Set server configuration file --with-lpath=file Set the debugging log file --with-maxcon=maxcon Maximum number of connections server will accept + --with-ddb-environment Use the DDB Environment (Distributed DataBase) + --with-services-environment Use the Services Environment (Ex TerraIRCU) + --with-undernet-environment Use the Undernet Environment Some influential environment variables: CC C compiler command @@ -2462,11 +2467,28 @@ *) CC="$CC $am_cv_prog_cc_stdc" ;; esac -if test x"$CFLAGS" != x; then - CFLAGS=`echo "$CFLAGS" | sed -e 's/-O2/-O3/'` + +# Check whether --with-optimization or --without-optimization was given. +if test "${with_optimization+set}" = set; then + withval="$with_optimization" + unet_cv_optimization=$withval +else + unet_cv_optimization='-O3' +fi; +echo "$as_me:$LINENO: checking optimization level" >&5 +echo $ECHO_N "checking optimization level... $ECHO_C" >&6 +if test "${unet_cv_optimization+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + unet_cv_optimization='-O3' +fi +echo "$as_me:$LINENO: result: $unet_cv_optimization" >&5 +echo "${ECHO_T}$unet_cv_optimization" >&6 +if test "x$unet_cv_optimization" = "xno" ; then + unet_cv_optimization="" fi if test x"$CFLAGS" != x; then - CFLAGS=`echo "$CFLAGS" | sed -e 's/-pipe//g'` + CFLAGS=`echo "$CFLAGS" | sed -e s/-O2/$unet_cv_optimization/` fi if test x"$CFLAGS" != x; then unet_old_cflags=$CFLAGS @@ -3757,7 +3779,8 @@ -for ac_header in crypt.h poll.h inttypes.h stdint.h sys/devpoll.h sys/epoll.h sys/event.h sys/param.h sys/socket.h + +for ac_header in crypt.h poll.h inttypes.h stdint.h sys/devpoll.h sys/epoll.h sys/event.h sys/param.h sys/resource.h sys/socket.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then @@ -8864,7 +8887,6 @@ echo "$as_me: WARNING: $YACC may not work as yacc." >&2;} fi - echo "$as_me:$LINENO: checking for posix non-blocking" >&5 echo $ECHO_N "checking for posix non-blocking... $ECHO_C" >&6 if test "${unet_cv_sys_nonblocking_posix+set}" = set; then @@ -9153,67 +9175,6 @@ fi fi -echo "$as_me:$LINENO: checking if the compiler understands -pipe" >&5 -echo $ECHO_N "checking if the compiler understands -pipe... $ECHO_C" >&6 -unet_cv_pipe_flags="$ac_cv_c_compiler_gnu" -if test "$ac_cv_c_compiler_gnu" = no; then - OLDCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -pipe" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_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 - unet_cv_pipe_flags=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$OLDCFLAGS" -fi -echo "$as_me:$LINENO: result: $unet_cv_pipe_flags" >&5 -echo "${ECHO_T}$unet_cv_pipe_flags" >&6 -if test "$unet_cv_pipe_flags" = yes ; then - x=`echo $CFLAGS | grep 'pipe' 2>/dev/null` - if test "$x" = "" ; then - CFLAGS="$CFLAGS -pipe" - fi -fi - - echo "$as_me:$LINENO: checking for OS-dependent information" >&5 echo $ECHO_N "checking for OS-dependent information... $ECHO_C" >&6 case "$host" in @@ -10195,15 +10156,85 @@ +ircdev_cv_environment_ddb=yes; + +echo "$as_me:$LINENO: checking whether to use DDB Environment (Distributed DataBase)" >&5 +echo $ECHO_N "checking whether to use DDB Environment (Distributed DataBase)... $ECHO_C" >&6 + +# Check whether --with-ddb-environment or --without-ddb-environment was given. +if test "${with_ddb_environment+set}" = set; then + withval="$with_ddb_environment" + ircdev_cv_environment_ddb=$with_ddb_environment +else + if test "${ircdev_cv_environment_ddb+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ircdev_cv_environment_ddb=no +fi + +fi; +echo "$as_me:$LINENO: result: $ircdev_cv_environment_ddb" >&5 +echo "${ECHO_T}$ircdev_cv_environment_ddb" >&6 + +echo "$as_me:$LINENO: checking whether to use Services Environment (Ex TerraIRCU)" >&5 +echo $ECHO_N "checking whether to use Services Environment (Ex TerraIRCU)... $ECHO_C" >&6 + +# Check whether --with-services-environment or --without-services-environment was given. +if test "${with_services_environment+set}" = set; then + withval="$with_services_environment" + ircdev_cv_environment_services=$with_services_environment +else + if test "${ircdev_cv_environment_services+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ircdev_cv_environment_services=no +fi + +fi; +echo "$as_me:$LINENO: result: $ircdev_cv_environment_services" >&5 +echo "${ECHO_T}$ircdev_cv_environment_services" >&6 +echo "$as_me:$LINENO: checking whether to use Undernet Environment" >&5 +echo $ECHO_N "checking whether to use Undernet Environment... $ECHO_C" >&6 +# Check whether --with-undernet-environment or --without-undernet-environment was given. +if test "${with_undernet_environment+set}" = set; then + withval="$with_undernet_environment" + ircdev_cv_environment_undernet=$with_undernet_environment +else + if test "${ircdev_cv_environment_undernet+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ircdev_cv_environment_undernet=no +fi +fi; +echo "$as_me:$LINENO: result: $ircdev_cv_environment_undernet" >&5 +echo "${ECHO_T}$ircdev_cv_environment_undernet" >&6 +if test x"$ircdev_cv_environment_ddb" != "xno" ; then cat >>confdefs.h <<\_ACEOF #define DDB _ACEOF + ENVIRONMENT=DDB +elif test x"$ircdev_cv_environment_services" != "xno" ; then + +cat >>confdefs.h <<\_ACEOF +#define SERVICES +_ACEOF + + ENVIRONMENT=SERVICES +elif test x"$ircdev_cv_environment_undernet" != "xno" ; then + +cat >>confdefs.h <<\_ACEOF +#define UNDERNET +_ACEOF + + ENVIRONMENT=UNDERNET +fi + ac_config_files="$ac_config_files Makefile ircd/Makefile ircd/test/Makefile doc/Makefile" @@ -10871,6 +10902,7 @@ s,@IRCDOWN@,$IRCDOWN,;t t s,@IRCDGRP@,$IRCDGRP,;t t s,@DPATH@,$DPATH,;t t +s,@ENVIRONMENT@,$ENVIRONMENT,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF @@ -11535,5 +11567,3 @@ fi echo "" echo "Type \"make\" to compile IRC-Dev IRCD" - - Index: ircd-ircdev/configure.in diff -u ircd-ircdev/configure.in:1.14 ircd-ircdev/configure.in:1.15 --- ircd-ircdev/configure.in:1.14 Wed Mar 23 10:34:23 2005 +++ ircd-ircdev/configure.in Mon Apr 11 01:44:57 2005 @@ -22,7 +22,7 @@ dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl -dnl $Id: configure.in,v 1.14 2005/03/23 18:34:23 zolty Exp $ +dnl $Id: configure.in,v 1.15 2005/04/11 08:44:57 zolty Exp $ dnl dnl Make sure we are in the correct directory (someone could have run @@ -46,7 +46,7 @@ dnl Define the input and output configuration header file. AC_CONFIG_HEADER([config.h]) -dnl Demand at least version 2.50 of autoconf +dnl Demand at least version 2.59 of autoconf (for AS_HELP_STRING) AC_PREREQ(2.59) dnl Find out what type of system we are @@ -57,13 +57,17 @@ dnl ANSIfy the C compiler whenever possible. AM_PROG_CC_STDC -dnl Use -O3 instead of -O2. -if test x"$CFLAGS" != x; then - CFLAGS=`echo "$CFLAGS" | sed -e 's/-O2/-O3/'` +dnl Allow specification of optimization level. +AC_ARG_WITH([optimization], + AS_HELP_STRING([--with-optimization=[-O2]], [Explicitly set the compiler optimization flags (default: -O3)]), + [unet_cv_optimization=$withval], + [unet_cv_optimization='-O3']) +AC_CACHE_CHECK([optimization level], [unet_cv_optimization], [unet_cv_optimization='-O3']) +if test "x$unet_cv_optimization" = "xno" ; then + unet_cv_optimization="" fi -dnl Remove -pipe during configure if test x"$CFLAGS" != x; then - CFLAGS=`echo "$CFLAGS" | sed -e 's/-pipe//g'` + CFLAGS=`echo "$CFLAGS" | sed -e s/-O2/$unet_cv_optimization/` fi dnl Notice the -g flag and deal accordingly if test x"$CFLAGS" != x; then @@ -113,7 +117,7 @@ dnl Checks for header files. AC_HEADER_STDC -AC_CHECK_HEADERS(crypt.h poll.h inttypes.h stdint.h sys/devpoll.h sys/epoll.h sys/event.h sys/param.h sys/socket.h) +AC_CHECK_HEADERS(crypt.h poll.h inttypes.h stdint.h sys/devpoll.h sys/epoll.h sys/event.h sys/param.h sys/resource.h sys/socket.h) dnl Checks for typedefs, structures, and compiler characteristics dnl AC_C_CONST @@ -177,13 +181,9 @@ AC_MSG_WARN([$YACC may not work as yacc.]) fi - unet_NONBLOCKING unet_SIGNALS -dnl Add -pipe when possible -unet_PIPE_CFLAGS - dnl Check OS for os_dep files. AC_MSG_CHECKING(for OS-dependent information) case "$host" in @@ -760,43 +760,46 @@ dnl IRC Network environment dnl Default DDB -dnl ircdev_cv_environment_ddb=yes; +ircdev_cv_environment_ddb=yes; dnl --with-ddb-environment allows us to use DDB Environment -dnl AC_MSG_CHECKING([whether to use DDB Environment (Distributed DataBase)]) -dnl AC_ARG_WITH([ddb-environment], -dnl [ --with-ddb-environment Use the DDB Environment (Distributed DataBase)], -dnl [ircdev_cv_environment_ddb=$with_ddb_environment], -dnl [AC_CACHE_VAL(ircdev_cv_environment_ddb, -dnl [ircdev_cv_environment_ddb=no])]) -dnl AC_MSG_RESULT([$ircdev_cv_environment_ddb]) +AC_MSG_CHECKING([whether to use DDB Environment (Distributed DataBase)]) +AC_ARG_WITH([ddb-environment], +[ --with-ddb-environment Use the DDB Environment (Distributed DataBase)], +[ircdev_cv_environment_ddb=$with_ddb_environment], +[AC_CACHE_VAL(ircdev_cv_environment_ddb, +[ircdev_cv_environment_ddb=no])]) +AC_MSG_RESULT([$ircdev_cv_environment_ddb]) -dnl LO COMENTO PORQUE NO EXISTE AUN! dnl --with-services-environment allows us to use Services Environment -dnl AC_MSG_CHECKING([whether to use Services Environment (Ex TerraIRCU)]) -dnl AC_ARG_WITH([services-environment], -dnl [ --with-services-environment Use the Services Environment (Ex TerraIRCU)], -dnl [ircdev_cv_environment_services=$with_services_environment], -dnl [AC_CACHE_VAL(ircdev_cv_environment_services, -dnl [ircdev_cv_environment_services=no])]) -dnl AC_MSG_RESULT([$ircdev_cv_environment_services]) +AC_MSG_CHECKING([whether to use Services Environment (Ex TerraIRCU)]) +AC_ARG_WITH([services-environment], +[ --with-services-environment Use the Services Environment (Ex TerraIRCU)], +[ircdev_cv_environment_services=$with_services_environment], +[AC_CACHE_VAL(ircdev_cv_environment_services, +[ircdev_cv_environment_services=no])]) +AC_MSG_RESULT([$ircdev_cv_environment_services]) dnl --with-undernet-environment allows us to use Undernet Environment -dnl AC_MSG_CHECKING([whether to use Undernet Environment]) -dnl AC_ARG_WITH([undernet-environment], -dnl [ --with-undernet-environment Use the Undernet Environment], -dnl [ircdev_cv_environment_undernet=$with_undernet_environment], -dnl [AC_CACHE_VAL(ircdev_cv_environment_undernet, -dnl [ircdev_cv_environment_undernet=no])]) -dnl AC_MSG_RESULT([$ircdev_cv_environment_undernet]) +AC_MSG_CHECKING([whether to use Undernet Environment]) +AC_ARG_WITH([undernet-environment], +[ --with-undernet-environment Use the Undernet Environment], +[ircdev_cv_environment_undernet=$with_undernet_environment], +[AC_CACHE_VAL(ircdev_cv_environment_undernet, +[ircdev_cv_environment_undernet=no])]) +AC_MSG_RESULT([$ircdev_cv_environment_undernet]) -dnl if test x"$ircdev_cv_environment_ddb" != "xno" ; then +if test x"$ircdev_cv_environment_ddb" != "xno" ; then AC_DEFINE([DDB], , [DDB Environment (Distributed DataBase)]) -dnl else if x"$ircdev_cv_environment_services" != "xno" ; then -dnl AC_DEFINE([SERVICES], , [Services Environment (Ex-TerraIRCU)]) -dnl else if if x"$ircdev_cv_environment_undernet" != "xno" ; then -dnl AC_DEFINE([UNDERNET], , [UnderNet Environment]) -dnl fi + ENVIRONMENT=DDB +elif test x"$ircdev_cv_environment_services" != "xno" ; then + AC_DEFINE([SERVICES], , [Services Environment (Ex-TerraIRCU)]) + ENVIRONMENT=SERVICES +elif test x"$ircdev_cv_environment_undernet" != "xno" ; then + AC_DEFINE([UNDERNET], , [UnderNet Environment]) + ENVIRONMENT=UNDERNET +fi +AC_SUBST(ENVIRONMENT) dnl Finally really generate all output files: AC_CONFIG_FILES([Makefile ircd/Makefile ircd/test/Makefile doc/Makefile]) @@ -855,5 +858,3 @@ fi echo "" echo "Type \"make\" to compile IRC-Dev IRCD" - - Index: ircd-ircdev/doc/ircd.sample-en.conf diff -u ircd-ircdev/doc/ircd.sample-en.conf:1.16 ircd-ircdev/doc/ircd.sample-en.conf:1.17 --- ircd-ircdev/doc/ircd.sample-en.conf:1.16 Sat Apr 2 11:47:33 2005 +++ ircd-ircdev/doc/ircd.sample-en.conf Mon Apr 11 01:44:58 2005 @@ -428,11 +428,13 @@ # It is possible to Jupe nicks. Jupe { - nick = "EuWorld,E,StatServ,NoteServ"; - nick = "UWorld2,ChanSvr,ChanSaver,ChanServ"; - nick = "Uworld,NickSvr,NickSaver,NickServ"; - nick = "LPT1,X,login,LPT2,W,Undernet,COM1,V,protocol,COM2"; - nick = "U,pass,COM3,Y,AUX,COM4,Z,newpass"; + nick = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,{,|,},~,-,_,`"; + nick = "EuWorld,UWorld,UWorld2"; + nick = "login,undernet,protocol,pass,newpass,org"; + nick = "StatServ,NoteServ"; + nick = "ChanSvr,ChanSaver,ChanServ"; + nick = "NickSvr,NickSaver,NickServ"; + nick = "LPT1,LPT2,COM1,COM2,COM3,COM4,AUX"; }; # [Kill] Index: ircd-ircdev/doc/ircd.sample-es.conf diff -u ircd-ircdev/doc/ircd.sample-es.conf:1.12 ircd-ircdev/doc/ircd.sample-es.conf:1.13 --- ircd-ircdev/doc/ircd.sample-es.conf:1.12 Sat Apr 2 11:47:33 2005 +++ ircd-ircdev/doc/ircd.sample-es.conf Mon Apr 11 01:44:58 2005 @@ -447,11 +447,13 @@ # Esto es posible para prohibir (Jupe) nicks. Jupe { - nick = "EuWorld,E,StatServ,NoteServ"; - nick = "UWorld2,ChanSvr,ChanSaver,ChanServ"; - nick = "Uworld,NickSvr,NickSaver,NickServ"; - nick = "LPT1,X,login,LPT2,W,Undernet,COM1,V,protocol,COM2"; - nick = "U,pass,COM3,Y,AUX,COM4,Z,newpass"; + nick = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,{,|,},~,-,_,`"; + nick = "EuWorld,UWorld,UWorld2"; + nick = "login,undernet,protocol,pass,newpass,org"; + nick = "StatServ,NoteServ"; + nick = "ChanSvr,ChanSaver,ChanServ"; + nick = "NickSvr,NickSaver,NickServ"; + nick = "LPT1,LPT2,COM1,COM2,COM3,COM4,AUX"; }; # [Kill] Index: ircd-ircdev/include/capab.h diff -u ircd-ircdev/include/capab.h:1.2 ircd-ircdev/include/capab.h:1.3 --- ircd-ircdev/include/capab.h:1.2 Mon Jan 10 04:21:59 2005 +++ ircd-ircdev/include/capab.h Mon Apr 11 01:44:59 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Interface and public definitions for capabilities extension - * @version $Id: capab.h,v 1.2 2005/01/10 12:21:59 zolty Exp $ + * @version $Id: capab.h,v 1.3 2005/04/11 08:44:59 zolty Exp $ */ #ifndef INCLUDED_capab_h #define INCLUDED_capab_h @@ -33,615 +33,14 @@ #define CAPFL_HIDDEN 0x0001 /**< Do not advertize this capability */ #define CAPFL_PROHIBIT 0x0002 /**< Client may not set this capability */ #define CAPFL_PROTO 0x0004 /**< Cap must be acknowledged by client */ +#define CAPFL_STICKY 0x0008 /**< Cap may not be cleared once set */ + /* XXX You can safely ignore all of these; they're only for testing purposes, * XXX and don't result in any behavioral change. */ -#define CAPLIST \ - _CAP(USERPFX, 0, "undernet.org/userpfx"), \ - _CAP(FOO, CAPFL_HIDDEN, "x-foo"), \ - _CAP(BAR, CAPFL_PROHIBIT, "x-bar"), \ - _CAP(BINK, CAPFL_PROTO, "x-bink"), \ - _CAP(CAP000, 0, "x-cap000"), \ - _CAP(CAP001, 0, "x-cap001"), \ - _CAP(CAP002, 0, "x-cap002"), \ - _CAP(CAP003, 0, "x-cap003"), \ - _CAP(CAP004, 0, "x-cap004"), \ - _CAP(CAP005, 0, "x-cap005"), \ - _CAP(CAP006, 0, "x-cap006"), \ - _CAP(CAP007, 0, "x-cap007"), \ - _CAP(CAP008, 0, "x-cap008"), \ - _CAP(CAP009, 0, "x-cap009"), \ - _CAP(CAP010, 0, "x-cap010"), \ - _CAP(CAP011, 0, "x-cap011"), \ - _CAP(CAP012, 0, "x-cap012"), \ - _CAP(CAP013, 0, "x-cap013"), \ - _CAP(CAP014, 0, "x-cap014"), \ - _CAP(CAP015, 0, "x-cap015"), \ - _CAP(CAP016, 0, "x-cap016"), \ - _CAP(CAP017, 0, "x-cap017"), \ - _CAP(CAP018, 0, "x-cap018"), \ - _CAP(CAP019, 0, "x-cap019"), \ - _CAP(CAP020, 0, "x-cap020"), \ - _CAP(CAP021, 0, "x-cap021"), \ - _CAP(CAP022, 0, "x-cap022"), \ - _CAP(CAP023, 0, "x-cap023"), \ - _CAP(CAP024, 0, "x-cap024"), \ - _CAP(CAP025, 0, "x-cap025"), \ - _CAP(CAP026, 0, "x-cap026"), \ - _CAP(CAP027, 0, "x-cap027"), \ - _CAP(CAP028, 0, "x-cap028"), \ - _CAP(CAP029, 0, "x-cap029"), \ - _CAP(CAP030, 0, "x-cap030"), \ - _CAP(CAP031, 0, "x-cap031"), \ - _CAP(CAP032, 0, "x-cap032"), \ - _CAP(CAP033, 0, "x-cap033"), \ - _CAP(CAP034, 0, "x-cap034"), \ - _CAP(CAP035, 0, "x-cap035"), \ - _CAP(CAP036, 0, "x-cap036"), \ - _CAP(CAP037, 0, "x-cap037"), \ - _CAP(CAP038, 0, "x-cap038"), \ - _CAP(CAP039, 0, "x-cap039"), \ - _CAP(CAP040, 0, "x-cap040"), \ - _CAP(CAP041, 0, "x-cap041"), \ - _CAP(CAP042, 0, "x-cap042"), \ - _CAP(CAP043, 0, "x-cap043"), \ - _CAP(CAP044, 0, "x-cap044"), \ - _CAP(CAP045, 0, "x-cap045"), \ - _CAP(CAP046, 0, "x-cap046"), \ - _CAP(CAP047, 0, "x-cap047"), \ - _CAP(CAP048, 0, "x-cap048"), \ - _CAP(CAP049, 0, "x-cap049"), \ - _CAP(CAP050, 0, "x-cap050"), \ - _CAP(CAP051, 0, "x-cap051"), \ - _CAP(CAP052, 0, "x-cap052"), \ - _CAP(CAP053, 0, "x-cap053"), \ - _CAP(CAP054, 0, "x-cap054"), \ - _CAP(CAP055, 0, "x-cap055"), \ - _CAP(CAP056, 0, "x-cap056"), \ - _CAP(CAP057, 0, "x-cap057"), \ - _CAP(CAP058, 0, "x-cap058"), \ - _CAP(CAP059, 0, "x-cap059"), \ - _CAP(CAP060, 0, "x-cap060"), \ - _CAP(CAP061, 0, "x-cap061"), \ - _CAP(CAP062, 0, "x-cap062"), \ - _CAP(CAP063, 0, "x-cap063"), \ - _CAP(CAP064, 0, "x-cap064"), \ - _CAP(CAP065, 0, "x-cap065"), \ - _CAP(CAP066, 0, "x-cap066"), \ - _CAP(CAP067, 0, "x-cap067"), \ - _CAP(CAP068, 0, "x-cap068"), \ - _CAP(CAP069, 0, "x-cap069"), \ - _CAP(CAP070, 0, "x-cap070"), \ - _CAP(CAP071, 0, "x-cap071"), \ - _CAP(CAP072, 0, "x-cap072"), \ - _CAP(CAP073, 0, "x-cap073"), \ - _CAP(CAP074, 0, "x-cap074"), \ - _CAP(CAP075, 0, "x-cap075"), \ - _CAP(CAP076, 0, "x-cap076"), \ - _CAP(CAP077, 0, "x-cap077"), \ - _CAP(CAP078, 0, "x-cap078"), \ - _CAP(CAP079, 0, "x-cap079"), \ - _CAP(CAP080, 0, "x-cap080"), \ - _CAP(CAP081, 0, "x-cap081"), \ - _CAP(CAP082, 0, "x-cap082"), \ - _CAP(CAP083, 0, "x-cap083"), \ - _CAP(CAP084, 0, "x-cap084"), \ - _CAP(CAP085, 0, "x-cap085"), \ - _CAP(CAP086, 0, "x-cap086"), \ - _CAP(CAP087, 0, "x-cap087"), \ - _CAP(CAP088, 0, "x-cap088"), \ - _CAP(CAP089, 0, "x-cap089"), \ - _CAP(CAP090, 0, "x-cap090"), \ - _CAP(CAP091, 0, "x-cap091"), \ - _CAP(CAP092, 0, "x-cap092"), \ - _CAP(CAP093, 0, "x-cap093"), \ - _CAP(CAP094, 0, "x-cap094"), \ - _CAP(CAP095, 0, "x-cap095"), \ - _CAP(CAP096, 0, "x-cap096"), \ - _CAP(CAP097, 0, "x-cap097"), \ - _CAP(CAP098, 0, "x-cap098"), \ - _CAP(CAP099, 0, "x-cap099"), \ - _CAP(CAP100, 0, "x-cap100"), \ - _CAP(CAP101, 0, "x-cap101"), \ - _CAP(CAP102, 0, "x-cap102"), \ - _CAP(CAP103, 0, "x-cap103"), \ - _CAP(CAP104, 0, "x-cap104"), \ - _CAP(CAP105, 0, "x-cap105"), \ - _CAP(CAP106, 0, "x-cap106"), \ - _CAP(CAP107, 0, "x-cap107"), \ - _CAP(CAP108, 0, "x-cap108"), \ - _CAP(CAP109, 0, "x-cap109"), \ - _CAP(CAP110, 0, "x-cap110"), \ - _CAP(CAP111, 0, "x-cap111"), \ - _CAP(CAP112, 0, "x-cap112"), \ - _CAP(CAP113, 0, "x-cap113"), \ - _CAP(CAP114, 0, "x-cap114"), \ - _CAP(CAP115, 0, "x-cap115"), \ - _CAP(CAP116, 0, "x-cap116"), \ - _CAP(CAP117, 0, "x-cap117"), \ - _CAP(CAP118, 0, "x-cap118"), \ - _CAP(CAP119, 0, "x-cap119"), \ - _CAP(CAP120, 0, "x-cap120"), \ - _CAP(CAP121, 0, "x-cap121"), \ - _CAP(CAP122, 0, "x-cap122"), \ - _CAP(CAP123, 0, "x-cap123"), \ - _CAP(CAP124, 0, "x-cap124"), \ - _CAP(CAP125, 0, "x-cap125"), \ - _CAP(CAP126, 0, "x-cap126"), \ - _CAP(CAP127, 0, "x-cap127"), \ - _CAP(CAP128, 0, "x-cap128"), \ - _CAP(CAP129, 0, "x-cap129"), \ - _CAP(CAP130, 0, "x-cap130"), \ - _CAP(CAP131, 0, "x-cap131"), \ - _CAP(CAP132, 0, "x-cap132"), \ - _CAP(CAP133, 0, "x-cap133"), \ - _CAP(CAP134, 0, "x-cap134"), \ - _CAP(CAP135, 0, "x-cap135"), \ - _CAP(CAP136, 0, "x-cap136"), \ - _CAP(CAP137, 0, "x-cap137"), \ - _CAP(CAP138, 0, "x-cap138"), \ - _CAP(CAP139, 0, "x-cap139"), \ - _CAP(CAP140, 0, "x-cap140"), \ - _CAP(CAP141, 0, "x-cap141"), \ - _CAP(CAP142, 0, "x-cap142"), \ - _CAP(CAP143, 0, "x-cap143"), \ - _CAP(CAP144, 0, "x-cap144"), \ - _CAP(CAP145, 0, "x-cap145"), \ - _CAP(CAP146, 0, "x-cap146"), \ - _CAP(CAP147, 0, "x-cap147"), \ - _CAP(CAP148, 0, "x-cap148"), \ - _CAP(CAP149, 0, "x-cap149"), \ - _CAP(CAP150, 0, "x-cap150"), \ - _CAP(CAP151, 0, "x-cap151"), \ - _CAP(CAP152, 0, "x-cap152"), \ - _CAP(CAP153, 0, "x-cap153"), \ - _CAP(CAP154, 0, "x-cap154"), \ - _CAP(CAP155,... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-04-13 14:37:48
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-13 14:37:42 UTC Modified files: TODO.es Log message: Actualizacion TODO ---------------------- diff included ---------------------- Index: ircd-ircdev/TODO.es diff -u ircd-ircdev/TODO.es:1.16 ircd-ircdev/TODO.es:1.17 --- ircd-ircdev/TODO.es:1.16 Sat Apr 2 11:49:09 2005 +++ ircd-ircdev/TODO.es Wed Apr 13 07:37:31 2005 @@ -1,14 +1,14 @@ # # TODO para ircd-ircdev # -# $Id: TODO.es,v 1.16 2005/04/02 19:49:09 zolty Exp $ +# $Id: TODO.es,v 1.17 2005/04/13 14:37:31 zolty Exp $ # # Insertar las nuevas entradas al principio de la lista TODO. # URGENTE -------------------------------------------------------------------------------------- - - [D] Implementar el protocolo DDB. + - [D] Implementar el protocolo DDB (ddb_events y ddb_db). - [D] Implementar tabla i de Ilines - [D] Implementar tabla o de Operadores - [D] Implementar tabla p de Privilegios @@ -62,6 +62,9 @@ publicidad) - [G] Sistema de modulos dinámicos - [G] Bloque Logging en el .conf + - [G] Estudiar la remodelación del esquema de "hubs" y "leafs" a un + basandonos en el calculo de topologia que realiza OSPF solo que + en cuanto a coste, ancho de banda y retardo. BUGS CONOCIDOS -------------------------------------------------------------------------------------- ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-04-14 10:28:38
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-14 10:28:17 UTC Modified files: ChangeLog ChangeLog.es include/ddb.h include/patchlevel.h ircd/Makefile.in ircd/ddb.c Added files: ircd/ddb_events.c Log message: Author: zoltan <zo...@ir...> Log message: 2005-04-14 Toni García <zo...@ir...> 1.0.alpha26 * Eventos de DDB ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.27 ircd-ircdev/ChangeLog:1.28 --- ircd-ircdev/ChangeLog:1.27 Mon Apr 11 01:44:55 2005 +++ ircd-ircdev/ChangeLog Thu Apr 14 03:28:05 2005 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.27 2005/04/11 08:44:55 zolty Exp $ +# $Id: ChangeLog,v 1.28 2005/04/14 10:28:05 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-04-14 Toni García <zo...@ir...> 1.0.alpha26 + * DDB Events + 2005-04-11 Toni García <zo...@ir...> 1.0.alpha25 * CAPAB command * Undernet synchronization Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.27 ircd-ircdev/ChangeLog.es:1.28 --- ircd-ircdev/ChangeLog.es:1.27 Mon Apr 11 01:44:55 2005 +++ ircd-ircdev/ChangeLog.es Thu Apr 14 03:28:05 2005 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.27 2005/04/11 08:44:55 zolty Exp $ +# $Id: ChangeLog.es,v 1.28 2005/04/14 10:28:05 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-04-14 Toni García <zo...@ir...> 1.0.alpha26 + * Eventos de DDB + 2005-04-11 Toni García <zo...@ir...> 1.0.alpha25 * Comando CAPAB totalmente funcional * Sincronización Undernet Index: ircd-ircdev/include/ddb.h diff -u ircd-ircdev/include/ddb.h:1.4 ircd-ircdev/include/ddb.h:1.5 --- ircd-ircdev/include/ddb.h:1.4 Thu Mar 31 04:58:02 2005 +++ ircd-ircdev/include/ddb.h Thu Apr 14 03:28:06 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: ddb.h,v 1.4 2005/03/31 12:58:02 zolty Exp $ + * $Id: ddb.h,v 1.5 2005/04/14 10:28:06 zolty Exp $ * */ #ifndef INCLUDED_ddb_h @@ -109,6 +109,7 @@ } #endif + #define DdbMalloc(x) MyMalloc(x) #define DdbFree(x) MyFree(x) @@ -119,6 +120,8 @@ extern unsigned int ddb_resident_table[DDB_TABLE_MAX]; extern unsigned int ddb_count_table[DDB_TABLE_MAX]; extern unsigned int ddb_id_table[DDB_TABLE_MAX]; +typedef void (*ddb_events_table_t)(char *, char *, int); +extern ddb_events_table_t ddb_events_table[DDB_TABLE_MAX]; extern unsigned int ddb_hashtable_hi[DDB_TABLE_MAX]; extern unsigned int ddb_hashtable_lo[DDB_TABLE_MAX]; extern int ddb_hash_register(char *key, int hash_size); @@ -128,7 +131,7 @@ extern unsigned int ddb_count_in_table(unsigned char table); extern void ddb_init(void); - +extern void ddb_events_init(void); /* extern int ddb_read(struct ddb_memory_table *dump, char *buf); Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.26 ircd-ircdev/include/patchlevel.h:1.27 --- ircd-ircdev/include/patchlevel.h:1.26 Sat Apr 2 11:47:34 2005 +++ ircd-ircdev/include/patchlevel.h Thu Apr 14 03:28:06 2005 @@ -17,10 +17,10 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: patchlevel.h,v 1.26 2005/04/02 19:47:34 zolty Exp $ + * $Id: patchlevel.h,v 1.27 2005/04/14 10:28:06 zolty Exp $ * */ -#define PATCHLEVEL ".alpha24" +#define PATCHLEVEL ".alpha26" #define RELEASE "1.0" Index: ircd-ircdev/ircd/Makefile.in diff -u ircd-ircdev/ircd/Makefile.in:1.22 ircd-ircdev/ircd/Makefile.in:1.23 --- ircd-ircdev/ircd/Makefile.in:1.22 Mon Apr 11 01:44:59 2005 +++ ircd-ircdev/ircd/Makefile.in Thu Apr 14 03:28:06 2005 @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA -# $Id: Makefile.in,v 1.22 2005/04/11 08:44:59 zolty Exp $ +# $Id: Makefile.in,v 1.23 2005/04/14 10:28:06 zolty Exp $ #### Start of system configuration section. #### @@ -94,6 +94,7 @@ DDB_SRC = \ ddb.c \ ddb_db_template.c \ + ddb_events.c\ m_db.c \ m_dbq.c \ m_ghost.c \ Index: ircd-ircdev/ircd/ddb.c diff -u ircd-ircdev/ircd/ddb.c:1.4 ircd-ircdev/ircd/ddb.c:1.5 --- ircd-ircdev/ircd/ddb.c:1.4 Wed Mar 23 10:34:46 2005 +++ ircd-ircdev/ircd/ddb.c Thu Apr 14 03:28:06 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of Distributed DataBase. - * @version $Id: ddb.c,v 1.4 2005/03/23 18:34:46 zolty Exp $ + * @version $Id: ddb.c,v 1.5 2005/04/14 10:28:06 zolty Exp $ */ #include "config.h" @@ -67,8 +67,8 @@ static int ddb_iterator_hash_len = 0; static void ddb_table_init(unsigned char table); -static void ddb_add_key(unsigned char table, char *key, char *content); -static void ddb_del_key(unsigned char table, char *key); +static int ddb_add_key(unsigned char table, char *key, char *content); +static int ddb_del_key(unsigned char table, char *key); int ddb_table_is_resident(unsigned char table) @@ -152,7 +152,7 @@ { unsigned char table; - /* ddb_events_init(); */ + ddb_events_init(); memset(ddb_resident_table, 0, sizeof(ddb_resident_table)); @@ -215,6 +215,7 @@ if (!match(mask, cli_name(&me))) { int i = 0; + int update = 0; /* pasamos el key en minusculas */ if ((strlen(key) + 1 > key_len) || (!keytemp)) @@ -234,29 +235,29 @@ } if (content) - ddb_add_key(table, keytemp, content); + update = ddb_add_key(table, keytemp, content); else ddb_del_key(table, keytemp); -#if 0 /* Ejecutamos los eventos */ - if (!cptr && ddb_event_tables[table]) - ddb_event_parse[table](key, content); -#endif + /* if (!cptr && ddb_events_table[table]) */ + if (ddb_events_table[table]) + ddb_events_table[table](key, content, update); } } -static void +static int ddb_add_key(unsigned char table, char *key, char *content) { struct Ddb *ddb; char *k, *c; int hashi; + int delete = 0; ddb_iterator_key = NULL; - ddb_del_key(table, key); + delete = ddb_del_key(table, key); ddb = DdbMalloc(sizeof(struct Ddb) + strlen(key) + strlen(content) + 2); assert(0 != ddb); @@ -278,8 +279,6 @@ ddb->key = k; ddb->content = c; -// strcpy(ddb->key, key); -// strcpy(ddb->content, content); ddb->next = NULL; hashi = ddb_hash_register(ddb->key, ddb_resident_table[table]); @@ -290,14 +289,15 @@ ddb_data_table[table][hashi] = ddb; ddb_count_table[table]++; - /* EVENTOS DE ALTA */ + return delete; } -static void +static int ddb_del_key(unsigned char table, char *key) { struct Ddb *ddb, *ddb2, **ddb3; int hashi; + int delete = 0; ddb_iterator_key = NULL; @@ -310,13 +310,14 @@ if (!strcmp(ddb->key, key)) { *ddb3 = ddb2; - /* EVENTOS de BAJA */ + delete = 1; DdbFree(ddb); ddb_count_table[table]--; break; } ddb3 = &(ddb->next); } + return delete; } @@ -354,10 +355,10 @@ for (ddb = ddb_data_table[table][i]; ddb; ddb = ddb2) { ddb2 = ddb->next; -#if 0 - if (events && ddb_event_tables[table]) - ddb_event_parse[table](ddb->key, NULL); -#endif + + if (events && ddb_events_table[table]) + ddb_events_table[table](ddb->key, NULL, 0); + DdbFree(ddb); } } Index: ircd-ircdev/ircd/ddb_events.c diff -u /dev/null ircd-ircdev/ircd/ddb_events.c:1.1 --- /dev/null Thu Apr 14 03:28:26 2005 +++ ircd-ircdev/ircd/ddb_events.c Thu Apr 14 03:28:07 2005 @@ -0,0 +1,176 @@ +/* + * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ddb_events.c + * + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2004-2005 Toni Garcia (zoltan) <zo...@ir...> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +/** @file + * @brief Events of Distributed DataBase. + * @version $Id: ddb_events.c,v 1.1 2005/04/14 10:28:07 zolty Exp $ + */ +#include "config.h" + +#include "ddb.h" +#include "client.h" +#include "hash.h" +#include "ircd.h" +#include "ircd_tea.h" +#include "msg.h" +#include "numnicks.h" +#include "s_user.h" +#include "send.h" + +#include <stdio.h> +#include <string.h> + + +static int events_init = 0; +static void ddb_events_table_n(char *key, char *content, int update); + +ddb_events_table_t ddb_events_table[DDB_TABLE_MAX]; + + +void +ddb_events_init(void) +{ + if (events_init) + return; + + ddb_events_table[DDB_NICKDB] = ddb_events_table_n; + + events_init = 1; +} + + +static void +ddb_events_table_n(char *key, char *content, int update) +{ + struct Client *cptr; + char *botname; + int nick_renames = 0; + + /* Only my clients */ + if ((cptr = FindUser(key)) && MyConnect(cptr)) + { + botname = ddb_get_botname(DDB_NICKSERV); + /* Droping Key */ + if (!content && (IsNickRegistered(cptr) || IsNickSuspended(cptr))) + { + struct Flags oldflags; + + oldflags = cli_flags(cptr); + ClearNickRegistered(cptr); + ClearNickSuspended(cptr); + + sendcmdbotto_one(botname, CMD_NOTICE, cptr, + "%C :*** Your nick %C is droping", cptr, cptr); + + send_umode_out(cptr, cptr, &oldflags, IsRegistered(cptr)); + } + else + { + /* New Key or Update Key */ + char c = content[strlen(content) - 1]; + int nick_suspend = 0; + int nick_forbid = 0; + + if (c == '+') + nick_suspend = 1; + else if (c == '*') + nick_forbid = 1; + + if (nick_forbid) + { + sendcmdbotto_one(botname, CMD_NOTICE, cptr, + "%C :*** Your nick %C has been forbided, cannot be used", cptr, cptr); + nick_renames = 1; + } + else if (nick_suspend && update && IsNickRegistered(cptr)) + { + struct Flags oldflags; + + oldflags = cli_flags(cptr); + ClearNickRegistered(cptr); + SetNickSuspended(cptr); + + sendcmdbotto_one(botname, CMD_NOTICE, cptr, + "%C :*** Your nick %C has been suspended", cptr, cptr); + + send_umode_out(cptr, cptr, &oldflags, IsRegistered(cptr)); + } + else if (!nick_suspend && update && IsNickSuspended(cptr)) + { + struct Flags oldflags; + + oldflags = cli_flags(cptr); + ClearNickSuspended(cptr); + SetNickRegistered(cptr); + + sendcmdbotto_one(botname, CMD_NOTICE, cptr, + "%C :*** Your nick %C has been unsuspended", cptr, cptr); + + send_umode_out(cptr, cptr, &oldflags, IsRegistered(cptr)); + } + else if (!update) + { + sendcmdbotto_one(botname, CMD_NOTICE, cptr, + "%C :*** Your nick %C has been registered", cptr, cptr); + nick_renames = 1; + } + } + + if (nick_renames) + { + struct Client *acptr; + unsigned int v[2], k[2], x[2]; + char newnick[NICKLEN + 2]; + char tmp[100]; + char *parv[3]; + int flags = 0; + + k[0] = k[1] = x[0] = x[1] = 0; + + v[0] = base64toint(cli_yxx(cptr)); + v[1] = base64toint(cli_yxx(&me)); + + acptr = cptr; + + do + { + ircd_tea(v, k, x); + v[1] += 4096; + + if (x[0] >= 4294000000ul) + continue; + + sprintf(newnick, "Guest%.6d", (int)(x[0] % 1000000)); + acptr = FindUser(newnick); + } + while (acptr); + + SetRenamed(flags); + + parv[0] = cli_name(cptr); + parv[1] = newnick; + sprintf(tmp, "%lu", TStime()); + parv[2] = tmp; + + set_nick_name(cptr, cptr, newnick, 3, parv, flags); + } + } +} ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-04-14 10:48:24
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-14 10:48:16 UTC Modified files: TODO.es Log message: Actualizacion TODO ---------------------- diff included ---------------------- Index: ircd-ircdev/TODO.es diff -u ircd-ircdev/TODO.es:1.17 ircd-ircdev/TODO.es:1.18 --- ircd-ircdev/TODO.es:1.17 Wed Apr 13 07:37:31 2005 +++ ircd-ircdev/TODO.es Thu Apr 14 03:48:05 2005 @@ -1,14 +1,14 @@ # # TODO para ircd-ircdev # -# $Id: TODO.es,v 1.17 2005/04/13 14:37:31 zolty Exp $ +# $Id: TODO.es,v 1.18 2005/04/14 10:48:05 zolty Exp $ # # Insertar las nuevas entradas al principio de la lista TODO. # URGENTE -------------------------------------------------------------------------------------- - - [D] Implementar el protocolo DDB (ddb_events y ddb_db). + - [D] Implementar el protocolo DDB (ddb_db). - [D] Implementar tabla i de Ilines - [D] Implementar tabla o de Operadores - [D] Implementar tabla p de Privilegios @@ -73,7 +73,6 @@ entrar clientes al IRCD. Investigar eso. 31/Mar/2005 - [D] No se propaga el modo cuando estamos autentificando al conectar. - - [D] Dejan quitar modos -R y -S cuando los tienes. Leyenda: [G] General ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-04-17 18:35:27
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-17 18:35:17 UTC Added files: RELEASE.NOTES RELEASE.NOTES.es Log message: Agregado mas documentacion ---------------------- diff included ---------------------- Index: ircd-ircdev/RELEASE.NOTES diff -u /dev/null ircd-ircdev/RELEASE.NOTES:1.1 --- /dev/null Sun Apr 17 11:35:17 2005 +++ ircd-ircdev/RELEASE.NOTES Sun Apr 17 11:35:07 2005 @@ -0,0 +1,421 @@ +Release notes for IRC-Dev IRCD version 1.0 +Last updated: 17 Apr 2005 +Written by Toni Garcia <zo...@ir...> +Based on earlier documents by Kev <kl...@mi...>, +Braden <db...@ya...> and Michael Poole <md...@tr...> + +This document briefly describes changes in IRC-Dev ircd relative to +ircu2.10.07 (based on IRC-Hispano ircdh and Terraircu). IRC-Dev ircd +is only compatible with servers that implement the P10 protocol. It +has been tested to link against old ircds, but some features (notably +IPv6 support) are not supported by old ircds. + + +Enhancements: + +The configuration file format has changed to one that is easier to +read. It is based on the configuration parser found in ircd-hybrid. +As usual, an example configuration file can be found in the doc +subdirectory. + +IRC-Dev ircd now supports IPv6 clients. If your operating system +provides IPv6 socket support, IRC-Dev ircd can accept connections +on IPv6 addresses. Even if your operating system does not support IPv6 +sockets, you can link (using IPv4) to a server that has IPv6 clients, +and IRC-Dev ircd will treat the IPv6 clients correctly. + +The DNS resolver has been replaced with a streamlined version (also +from ircd-hybrid) that avoids some of the complications from using +the full libresolv or adns libraries. + +The server can query an IAUTH external authorization server. The +protocol is described in doc/en/iauth.txt. This allows an external +program to accept or reject any client that connects to the server +and allows that external program to assign an account stamp to the +incoming user. + +More than one hashing mechanism is now supported for oper passwords, +and a new tool (ircd/umkpasswd) is provided to generate them. + +Commands that send messages to specified services may be defined in +the configuration file by using Pseudo blocks. This lets users use +commands like /X or /CHANSERV from their client, without tying the +admin to a particular arrangement or naming of services. + +Clients may negotiate extensions and changes to the standard IRC +client protocol by using the CAP command during registration. There +does not appear to be any documentation for the protocol, which should +not matter since IRC-Dev ircd does not currently implement capabilities +that affect the protocol. + +The /stats command accepts string identifiers in addition to +single-character identifiers. For example, "/stats access" shows the +same data as "/stats i". Supported names are shown by /stats. New +/stats options are: /stats a (nameservers), to list DNS nameservers in +use; /stats L (modules), to list loaded modules; and /stats R +(mappings), to list privmsg helper commands defined by Pseudo blocks. +By default, all of these are hidden from normal users. + +Client blocks (previously I: lines), Operator blocks (previously O: +and o: lines), channel bans and silences may use CIDR notation instead +of simple wildcards. You may also have silence exceptions by putting +'-' before the mask; for example, if you wish to silence everyone +except X, you could use SILENCE *!*@*,-X!cse...@ir.... + +The server will no longer kick "net riders" in keyed (+k) channels if +both sides of the net join have the same key. + +GLINE has been extended to allow IRC operators to issue global +G-lines; see doc/en/gline.txt for more information about how to use +this feature. + +A new JUPE command has been added to permit servers to be juped in a +more reliable fashion. + +Two new channel mode manipulation commands, OPMODE and CLEARMODE, have +been added. OPMODE works exactly like MODE, except that 1) only IRC +operators can use it; 2) it ignores whether or not the operator is a +channel operator. CLEARMODE is a reliable means of eradicating +certain channel modes; it is given an argument string consisting of +the modes to clear. If that argument string is not given, it defaults +to "ovpsmikbl." + +When a channel MODE command from a remote user must be bounced, a +"MODE -o" for the user will also be sent, in order to attempt to +"heal" the desync. Also, the old anti-hack code has been removed, +since servers never send MODEs except for bounces. + +Most compile-time options have been converted to run-time options +which may be set through the configuration file or through the use of +the new commands SET, RESET, and GET; for more information about +these, please refer to doc/ircd.sample-en.conf (for configuration file +information), doc/en/features.txt (for a list and description of the +options), and doc/en/log.txt (for a description of the logging +subsystem configuration). + +A new logging subsystem has been written, making it much easier to get +ircd to write out log files, or to use syslog if that's desired. + +The old chroot() code has been removed; that should now be handled via +an external wrapper. Such a wrapper has been included in the tools +subdirectory. PLEASE READ doc/en/chroot.txt IF YOU WISH TO USE +CHROOT-STYLE JAILS WITH IRCD. + +The build system has been completely revamped; since most compile-time +options are now run-time, the few remaining ones can be placed in +./configure and set with --with-* and --enable-*. Please read INSTALL +for more information on how to compile and install the daemon. + +All of the old select()- and poll()-based event loop has been +completely ripped out and replaced, enabling ircd to use kqueue(), +epoll() and /dev/poll, on systems that support those interfaces. + +The server now uses extended numerics exclusively. + +A large number of code clean-ups, changes, and fixes have been made. +Some of these should hopefully increase performance; others will make +it easier to maintain the code. + +All server to server communications use tokenization and numeric id's, +this reduces the bandwidth requirements approximately 10-20%. + +Much of the network code has been rewritten and many old bugs relating +to the networking core of the server have been fixed. + +The port handling code has been rewritten to allow much better control +over listeners. + +The server supports extended numerics which theoretically would allow +the entire population of the planet to participate on a network without +running out of unique values. + +Added ISUPPORT messages on client connects to allow client coders to +detect network specific enhancements to the client protocol. + +Server aliasing and virtual hosting (port forwarding) are available for +larger DoS attack prone networks. + +Status messages are sent to connecting clients so connections don't +seem to hang during client registration. + +The server now uses a bit less memory and cpu under full load, we +estimate around a 10% improvement in resource usage over the previous +version. + +IRC-Dev ircd now uses 3 environment to choose; DDB Environment of +Distributed DataBases based on ESNET ircd, Undernet Environment based +on Undernet and Services Environment based on Terraircu. + + +DDB Environment: +TODO. + + +Services Environment: +TODO. + + +Undernet Environment: + +A new feature called "oplevels" has been added. It uses new channel +keys (+A for the administrator, +U for users) to grant chanop status +when you join using those keys. Part of this channel protection is +that you cannot be deopped in channel by someone who you opped. + + +Configuration Changes: + +As mentioned above, the configuration file format has changed +radically. Please consult doc/ircd.sample-en.conf for details on the +new format. Some prominent changes follow. + +The old contents of H: lines have been merged into the Connect block +that describes the peer server(s) that should be allowed to hub. + +Two default virtual host addresses may be specified, one for IPv4 +sockets and one for IPv6 sockets. + +Nickname jupes have their own blocks, and do not share structure with +UWorld server declarations. + +Operator connection classes and individual operator blocks may be +assigned privileges, rather than having them controlled globally. +Because of this, the feature settings that controlled the privileges +globally have been removed. + +The maximum number of clients allowed per IP may be set in a Client +block (the equivalent of I: lines). + +Most compile-time options are now run-time configurable features, and +can be set through the daemon configuration file. Please see +doc/ircd.sample-en.conf for an illustration of the format (search for +Features block). Documentation for the logging subsystem is in +doc/en/log.txt, and the list and description of all the features is +located in doc/en/features.txt. + + +Compile Time Options: + +A listing of supported compile-time options may be seen by running +"./configure --help". The defaults should be sane. In particular, +you should NOT compile with --enable-debug or with --disable-symbols +on a production network. + +Again, most compile-time options are now set in the configuration +file. The remaining options are set through arguments to +./configure. A list of these options is available with ./configure +--help; a more detailed description follows: + +--enable-poll + The configure script attempts to only use poll on systems where that +is a direct system call. Sometimes, however, it will not properly +detect this. This option is meant to force ircd to use poll on +systems where ./configure does not detect that it is a system call. + +--enable-debug + This option turns on DEBUGMODE, which enables code useful for +debugging the server. THIS FEATURE SHOULD NOT BE USED ON A PRODUCTION +NETWORK; it represents a severe privacy risk. + +--disable-asserts + Assertions are a means of checking that certain underlying +assumptions are met. This option disables those assertions. + +--disable-symbols + By default, the -g compiler option is used to enable symbols on the +binary. These symbols are useful when attempting to track down the +cause of a crash. Please do not use this option. + +--enable-profile + This option simply adds the -pg compiler option to enable profiling +support. + +--enable-pedantic +--enable-warnings + The Coder Committee attempts to release code that generates no +compile-time warnings or errors. These two options add gcc-specific +warning flags to the compiler flags. These options should not be used +if your compiler is not gcc. + +--disable-inlines + Some critical functions are forcefully inlined. This flag disables +that behavior. It should not be used for performance reasons. + +--disable-devpoll + On systems that have /dev/poll, the /dev/poll-based engine is +automatically enabled. This option inhibits that behavior. + +--disable-kqueue + On systems that have kqueue(), the kqueue()-based engine is +automatically enabled. This option inhibits that behavior. + +--disable-epoll + On systems that have epoll(), the epoll()-based engine is +automatically enabled. This option inhibits that behavior. + +--with-symlink=name + When "make install" is executed, the daemon is installed in such a +way that old versions are kept, and a symlink is made to the latest +installed version. This option selects the name given to that +symlink. Specify a symlink name of "no" or use "--without-symlink" to +disable this behavior. + +--with-mode=mode + The daemon binary is installed with permissions 711 by default; this +option may be used to specify a different permission set for the +binary. + +--with-owner=owner + By default, the owner of the installed binary will be the same as +the person that compiled it; this option permits a different owner to +be specified. + +--with-group=group + By default, the group owner of the installed binary will be the same +as the primary group of the person that compiled it (at the time it +was compiled); this option permits a different group owner to be +specified. + +--with-domain=domain + The daemon attempts to keep some statistics on the server's user +load, including how many local users connect to the server. A local +user is determined by comparing the user's host name to a domain +name. The domain name can be set through the feature subsystem, as +documented in doc/es/features.txt; however, it will default either to +the domain specified with this flag, or to a name extracted from +/etc/resolv.conf, if it exists. + +--with-chroot=dir + Some admins may wish to run ircd within a chroot "jail," to enhance +the security of their systems. Although the chroot() code was removed +from ircd, the build system still supports operation of this form. If +you wish to use chroot-based jails, read doc/en/chroot.txt and give +this option to ./configure. + +--with-dpath=dir + This option simply specifies the path to the data directory for the +daemon. If --with-chroot has been given, this path must be compatible +with the chroot directory. See doc/en/chroot.txt for more information +about this restriction. + +--with-cpath=file + This option simply specifies the path to the configuration file for +the daemon, and may be either a relative or absolute path name. If it +is an absolute path, and if --with-chroot has been given, this path +must be compatible with the chroot directory. See doc/en/chroot.txt +for more information about this restriction. + +--with-lpath=file + When the server is compiled in DEBUGMODE (--enable-debug), the +debugging logs will be sent to the file specified here (defaulting to +"ircd.log" in the data directory). If this is an absolute path, +--with-chroot has been given, and if that path is not compatible with +the chroot directory, then a warning will be issued and the default +will be used. See doc/en/chroot.txt for more information about this +restriction. + +--with-maxcon=maxcon + The maximum number of sockets that the server may open is normally +derived from the hard limit on the number of file descriptors. If +desired, a higher value may be used by specifying this option to +./configure. + +--with-ddb-environment + This option allows to choose DDB environment for ircd. It is the +value by default. + +--with-services-environment + This option allows to choose Services environment for ircd. If not +it especifies, will be used DDB environment. + +--with-undernet-environment + This option allows to choose Undernet environment for ircd. If not +it especifies, will be used DDB environment. + +Otherwise Undocumented Features: + +Despite our preferences to keep these undocumented, they are +occasionally useful, and are described here for users who may +need them. + +To enable these, you need to add them to CFLAGS prior to running +./configure, usually as in: CFLAGS="-O2 -D<option>" ./configure + +-DNICKLEN=20 + This allows you change the maximum nick length from 15 to 20 (or +whatever number you use at the end). It MUST be the same on all +servers on your network, or bad things will happen. You should also +use the NICKLEN feature in ircd.conf. + +-DNOTHROTTLE + This disables the throttling code. This is used for debugging +*only*. It lets you connect up to 255 clients from one host with no +time considerations. If this is enabled on a production server Kev will +personally drive your server into the ground. You have been warned. + + +Operating System and Kernel Requirements: + +If you plan allowing more than 1000 clients on your server, you may +need to adjust your kernel resource limits for networking and +I/O. There are two things you will need to pay particular attention +to, the number of file descriptors available and the number of buffers +the kernel has available to read and write data to the file +descriptors. + +To calculate kernel buffer requirements a good place to start is to +multiply the expected number connections expected on the machine by +the amount of data we buffer for each connection. Doubling the result +of the above calculation and dividing it by the size of the buffers +the kernel uses for I/O should give you a starting place. + +The server uses 2K kernel buffers for clients, and 64K kernel buffers +for servers (actual use may be somewhat higher). + +c_count - number of clients expected +c_q - number of bytes buffered for each client +s_count - number of servers expected +s_q - number of bytes buffered for each server + +buffer count = (2 * (c_count * c_q + s_count * s_q)) / kernel buffer size + +If the client count is 2000 and the server count is 1 (normal leaf) +and your server uses 2K as an I/O buffer size: + +You need (2 * (2000 * 2048 + 1 * 65536)) / 2048 or a minimum of 4064 +buffers available, if the kernel uses 512 byte buffers you will need a +minimum of 16256 kernel buffers. + +These settings may be a bit light for net-breaks under full client +load you will need to experiment a bit to find the right settings for +your server. + +FreeBSD --WildThang + +You may want to increase your kernel resources if you want to put a +lot of clients on your machine here are a few values to start with: + +CHILD_MAX=4096 +OPEN_MAX=4096 +FD_SETSIZE=4096 +NMBCLUSTERS=8096 + +If you have trouble connecting *out* from your machine try: + sysctl -w net.inet.ip.portrange.last=10000 + +Solaris 2.6 --Tar + +Increase the default hard limit for file descriptors in /etc/system: + +set rlim_fd_max = 4096 + +The server will raise the soft limit to the hard limit. + +Linux 2.2 -- [Tri]/Isomer + +The kernel has a kernel destination cache size of 4096. If the kernel +sees more than 4096 IP's in 60s it warns 'dst cache overflow'. This +limit can be changed by modifying /proc/sys/net/ipv4/route/max_size. + +A patch to select is also recommended if you have regular poll/select +errors. Index: ircd-ircdev/RELEASE.NOTES.es diff -u /dev/null ircd-ircdev/RELEASE.NOTES.es:1.1 --- /dev/null Sun Apr 17 11:35:17 2005 +++ ircd-ircdev/RELEASE.NOTES.es Sun Apr 17 11:35:07 2005 @@ -0,0 +1,431 @@ +Notas de lanzamiento para IRCD de IRC-Dev version 1.0 +Ultima actualización: 17 Abril 2005 +Escrito y traducido por Toni Garcia <zo...@ir...> +Basado en anteriores documentos por Kev <kl...@mi...>, +Braden <db...@ya...> y Michael Poole <md...@tr...> + +Este documento describe brevemente los cambios del ircd de IRC-Dev en +relación con el ircu2.10.07 (basado en el ircdh de IRC-Hispano y en +Terraircu). El ircd de IRC-Dev es compatible solamente con servidores +que tengan implementado el protocolo P10. Ha sido probado el link con +ircds antiguos, pero muchas caracteristicas (notablemente el soporte +IPv6) no están soportadas por ircds viejos. + + +Implementaciones: + +El formato del archivo de la configuración ha cambiado a uno que es +más fácil de leer. Está basado en el programa de análisis de la +configuración de ircd-hybrid. Como de costumbre, un ejemplo del +archivo de la configuración se encuentra en el subdirectorio doc. + +El ircd de IRC-Dev soporta ahora los clientes IPv6. Si tu sistema +operativo proporciona el soporte de sockets IPv6, el ircd de IRC-DEV +puede aceptar conexiones con direcciones IPv6. Incluso si su sistema +operativo no soporta los sockets IPv6, usted puede linkar (con IPv4) +a un servidor que tenga clientes IPv6, y el ircd de IRC-Dev trata +correctamente a los clientes IPv6. + +El resolvedor DNS se ha substituido por una versión "streamlined" +(también del ircd-hybrid) que evita las complicaciones de usar las +bibliotecas completas del "libresolv" o de "adns". + +El servidor puede preguntar a un servidor externo de autorización IAUTH. +El protocolo se describe en doc/es/iauth.txt. Esto permite un programa +externo para aceptar o para rechazar a cualquier cliente eso conecta con +el servidor y permite que ese programa externo asigne una cuenta de +acceso al usuario entrante. + +Más de un mecanismo del hashing está soportado ahora para las +contraseñas de operador (IRCOP), y se proporciona una herramienta nueva +(ircd/umkpasswd) para generarlas. + +Comandos que envían mensajes a los servicios especificados se pueden +definir en el archivo de la configuración usando bloques "Pseudo" Esto +deja a los usuarios utilizar los comandos como /X o /CHANSERV de su +cliente, sin atar a los cambios de nick de los servicios. + +Los clientes pueden negociar extensiones y cambios al protocolo de clientes +del IRC estándar usando el comando CAP durante el registro. Allí no hay +ninguna documentación para el protocolo, puesto que el ircd actualmente +no implementa capacidades que afectan al protocolo. + +El comando /stats acepta identificadores de texto además de indentificadores +de un solo caracter. Por ejemplo, "/stats access" muestra los mismos +datos que "/stats i". Los nombres soportados son mostrados por "/stats". +Nuevas opciones de /stats son: /stats a (nameservers), para listar los +nameservers del DNS en uso; /stats L (modules), para listar de módulos +cargados; y /stats R (mappings), para listar los comandos definidos de +privmsg de ayuda por los bloques "Pseudo". +Por defecto, todos son ocultados para usuarios normales. + +Los bloques "Client" (previamente líneas I:), bloques "Operator" +(previamente líneas O: y o:), bans de canales y los sileces pueden +utilizar la notación de CIDR en lugar de comodines simples. Puedes +también tener excepciones de silencie poniendo '-' antes de la máscara; +por ejemplo, si deseas silenciar de todo el mundo excepto X, puedes +utilizar SILENCE *!*@*,-X!cse...@bo.... + +El servidor no puede kickear por "net riders" en los canales con llave +(+k) si ambos lados de la red al unirse tienen la misma llave. + +GLINE se ha ampliado para permitir a los Operadores de IRC (IRCops) +publicar G-lines globales; vea doc/es/gline.txt para más información sobre +cómo utilizar esta característica. + +Un nuevo comando JUPE se ha agregado para permitir los servidores a ser +jupeados en una manera más confiable. + +Dos nuevos comandos de gestión de canales, OPMODE y CLEARMODE han sido +agregados. OPMODE trabaja exactamente igual que MODE, excepto esto 1) +solamente IRCops pueden utilizarlo; 2) se ignora o no si el operador es +un operador del canal. CLEARMODE es un medio confiable para la supresión +de ciertos modos del canal; si se da un argumento, consiste en los modos +para borrar. Si no se da el argumento, por defecto usa "ovpsmikbl." + +Cuando un comando MODE de canal desde un usuario remoto debe ser devuelto, +un "MODE -o" para el usuario también se envía para procurar a "curar" la +desincronización (desync). También, el viejo código anti-hack se ha +eliminado, desde que los servidores nunca envían MODEs a excepción de las +devoluciones (bounces). + +La mayoría de las opciones de en tiempo de compilación han sido convertidas +a las opciones en tiempo de ejecución, de las cuales se pueden fijar con +el archivo de configuración o con el uso de los nuevos comandos SET, RESET y +GET; para más información sobre éstos, por favor lea doc/ircd.sample-es.conf +(para información del archivo de configuración), doc/es/features.txt (para +la lista y descripción de las opciones), y doc/es/log.txt (para la descripción +de la configuración del subsistema de registro (log)). + +Se ha escrito un nuevo subsistema de registración, haciéndolo mucho más fácil +para conseguir que el ircd escriba archivos de registro, o para usar syslog si +se desea. + +Se ha quitado el viejo código del chroot(); eso ahora se debe hacerlo con un +programa externo. Dicho programa está incluido en el directorio tools. +POR FAVOR LEER doc/es/chroot.txt SI DESEAS UTILIZAR JAULAS (JAIL) DE CHROOT-STYLE +con IRCD. + +El sistema de compilación ha sido completamente mejorado; desde que la +mayoría de las opciones de en tiempo de compilación son ahora de en tiempo de +ejecución, las pocas restantes se pueden colocar dentro del ./configure y +ajustar con --with-* y -enable-*. Por favor leer INSTALL.es para más información +sobre cómo compilar y instalar el demonio (daemon). + +Todo el sistema de gestión de eventos viejo select() - y poll() ha sido eliminado y +sustituido, permitiendo al ircd utilizar kqueue(), epoll() y /dev/poll, en los +sistemas que soportan esas interfaces. + +Se haa hecho una gran cantidad de limpieza, cambios y correcciones del códig. +Algunos de éstos deben aumentar el rendimiento; otros harán más facil el +mantenimiento del código. + +El servidor utiliza ahora exclusivamente numéricos extendidos. + +Toda la comunicación servidor a servidor utiliza numéricos y tokens, esto +reduce los requisitos de ancho de banda aproximadamente 10-20%. + +Mucho código de networking se ha reescrito y muchos de los viejos bugs +relacionados con la base del networking del servidor han sido arreglados. + +Se ha reescrito el código de escucha de los puertos para permitir un control +mucho mejor de los excesivos oyentes. + +El servidor soporta los numéricos extendidos que teóricamente permitiría toda +la población entera del planeta a participar en una red sin el funcionamiento +de valores únicos. + +Los mensajes de ISUPPORT agregados en la conexión del cliente, para permitir a +los programadores de los programas clientes detectar las características +específicasde la red al protocolo del cliente. + +El Aliasing y virtual hosting (redireccionado del puerto) del servidor está +disponible para redes propensas de ataques DoS grandes. + +Los mensajes del estado se envían al conectar los clientes así que no parezcan +que las conexiones cuelgan durante el registro del cliente. + +El servidor utiliza ahora menos memoria y CPU, nosotros estimamos alrededor +de una mejora del 10% de uso de recursos sobre la anterior versión. + +El ircd IRC-Dev, ahora usa 3 entornos a elegir; Entorno DDB de Bases de Datos +Distribuidas basado en el ircd de ESNET, Entorno Undernet basado en Undernet +y Entorno Services basado en Terraircu. + + +Entorno DDB: +TODO + + +Entorno Services: +TODO + + +Entorno Undernet: + +Se ha agregado una nueva característica llamada "oplevels". Utiliza el +nuevo canal llaves de acceso "key" (+A para el administrador, +U para +usuarios) para conceder estado del auto op cuando se entra utilizando +esas llaves. Parte de esta protección del canal es que no puedes ser +deopeado en el canal por alguien que le has opeado. + + +Cambios de configuración: + +Según lo mencionado arriba, el archivo de la configuración el formato +ha cambiado radicalmente. Consulte por favor doc/ircd.sample-es.conf +para los detalles en el nuevo formato. Algunos cambios prominentes siguen. + +El viejo contenido de las líneas H: han sido combinado en el bloque "Connect" +eso describe el servidor(s) que debe ser permitido a hub. + +Dos direcciones de host virtuales (vhost) por defecto pueden ser especificado, +uno para sockets IPv4 y uno para sockets IPv6. + +Los jupes de nicks tienen sus propios bloques, y no comparte la estructura con +declaraciones de servidores de UWorld. + +Las clases de conexion de Operador y bloques de "Operator" individuales pueden +ser privilegios asignados, más bien que el tener que controlar globalmente. +Debido a esto los ajustes que controlaba los privilegios globales se han quitado. + +El número máximo de los clientes permitidos por IP se puede fijar en un bloque +"Client" (el equivalente de líneas I:). + +La mayoría de las opciones de en tiempo de compilación ahora son características +configurables en tiempo de ejecución. Por favor vea doc/ircd.sample-es.conf +para una ilustración del formato (busca por bloque Features). La documentación +para el subsistema de registro está dentro de doc/es/log.txt, y la lista y la +descripción de todas las características se encuentra en doc/es/features.txt. + + +Opciones de en tiempo de compilación: + +Un listado de opciones de en tiempo de compilación soportadas puede ser +visto ejecutando "./configure -- help ". Los valores por defecto deben +ser sanos. En particular, no debes usar con --enable-debug o con +--disable-symbols en una red en producción. + +Una vez más, la mayoría de las opciones de en tiempo de compilación ahora se +ajustan en el archivo de configuración. Las opciones restantes se fijan con +argumentos en ./configure. Una lista de estas opciones está disponible con +./configure --help; una descripción más detallada sigue: + +--enable-poll + El script de configure procura utilizar solamente poll en sistemas donde ese +es una llamada directa del sistema. A veces, sin embargo, no se detecta +correctamente. Esta opción significa para forzar al ircd para utilizar poll +en los sistemas donde ./configure no detecta que es una llamada del sistema. + +--enable-debug + Esta opción gira en el DEBUGMODE, que permite el código útil para eliminar +errores (debugging) del servidor. ESTA CARACTERÍSTICA NO DEBE SER UTILIZADO +EN UNA RED EN PRODUCCIÓN; representa un riesgo severo de privacidad. + +--disable-asserts + Las aserciones es el medio de comprobar que se encuentran ciertas incumbencias +de código. Esta opción deshabilita esas aserciones. + +--disable-symbols + Por defecto, la opción -g del compilador es usar para habilitar símbolos en +el binario. Estos símbolos son útiles cuando se trata de seguir la causa de +un desplome (crash). No utilice por favor esta opción. + +--enable-profile + Esta opción simplemente agrega la opción -pg del compilador para permitir el +soporte de profiling. + +--enable-pedantic +--enable-warnings + El comité de programadores procura lanzar código que genere sin errores o +advertencias de en tiempo de compilación. Estas dos opciones agregan flags +específicos del gcc a los flags del compilador. Estas opciones no deben ser +utilizadas si tu compilador no es gcc. + +--disable-ilines + Algunas funciones críticas están "ilined" forzosamente. Este flag +deshabilita ese comportamiento. Esto no debe ser utilizado para razones +de rendimiento. + +--disable-devpoll + En los sistemas que tienen /dev/poll, el gestionador de eventos basado +en /dev/poll es permitido automáticamente. Esta opción inhibe ese +funcionamiento. + +--disable-kqueue + E... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-04-17 18:38:20
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-17 18:38:14 UTC Modified files: TODO.es Log message: actualizacion TODO ---------------------- diff included ---------------------- Index: ircd-ircdev/TODO.es diff -u ircd-ircdev/TODO.es:1.18 ircd-ircdev/TODO.es:1.19 --- ircd-ircdev/TODO.es:1.18 Thu Apr 14 03:48:05 2005 +++ ircd-ircdev/TODO.es Sun Apr 17 11:38:04 2005 @@ -1,7 +1,7 @@ # # TODO para ircd-ircdev # -# $Id: TODO.es,v 1.18 2005/04/14 10:48:05 zolty Exp $ +# $Id: TODO.es,v 1.19 2005/04/17 18:38:04 zolty Exp $ # # Insertar las nuevas entradas al principio de la lista TODO. # @@ -65,6 +65,10 @@ - [G] Estudiar la remodelación del esquema de "hubs" y "leafs" a un basandonos en el calculo de topologia que realiza OSPF solo que en cuanto a coste, ancho de banda y retardo. + - [G] Documentar en el RELEASE.NOTES lo relacionado con DDB y Services. + - [G] Mirar el tema de control de Ilines por rangos, el tema es que con un /64 + actualmente deja X clones para cada IP de ese rango, deberia haber alguna + forma de que sea por rango. BUGS CONOCIDOS -------------------------------------------------------------------------------------- ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-04-17 22:30:55
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-17 22:30:49 UTC Added files: doc/es/asll.txt Log message: mas documentacion en espaol ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/es/asll.txt diff -u /dev/null ircd-ircdev/doc/es/asll.txt:1.1 --- /dev/null Sun Apr 17 15:30:49 2005 +++ ircd-ircdev/doc/es/asll.txt Sun Apr 17 15:30:39 2005 @@ -0,0 +1,27 @@ +$Id: asll.txt,v 1.1 2005/04/17 22:30:39 zolty Exp $ + +Documentacion preliminar de AsLL, última actualización 13 Jun 2002 + +Formato del ping de servidor-a-servidor: + +<prefijo> G !<ts-local> <target> <ts-local> + +prefijo = numérico del servidor de origen +ts-local = timestamp local, como "segundos.milisegundos" +target = númerico del servidor de destino + +El timestamp local se envía también en vez del campo de origen, +la información RTT puede ser recogida desde servidores sin AsLL, +mientras se preserva compatibilidad hacia atrás. + + +Formato del pong de servidor-a-servidor + +<prefijo> Z <origen> <target> <ts-remoto> <diff> <ts-local> + +prefijo = numérico del servidor de origen +origen = numérico del servidor de origen +target = númerico del servidor de destino +ts-remoto = timestamp remoto recibido desde un PING AsLL +diff = diferencia entre ts-local y ts-remoto en milisegundos (número entero) +ts-local = timestamp local, como "segundos.milisegundos" ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-04-20 22:10:03
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-20 22:09:56 UTC Modified files: TODO.es Log message: actualizacion TODO ---------------------- diff included ---------------------- Index: ircd-ircdev/TODO.es diff -u ircd-ircdev/TODO.es:1.19 ircd-ircdev/TODO.es:1.20 --- ircd-ircdev/TODO.es:1.19 Sun Apr 17 11:38:04 2005 +++ ircd-ircdev/TODO.es Wed Apr 20 15:09:46 2005 @@ -1,7 +1,7 @@ # # TODO para ircd-ircdev # -# $Id: TODO.es,v 1.19 2005/04/17 18:38:04 zolty Exp $ +# $Id: TODO.es,v 1.20 2005/04/20 22:09:46 zolty Exp $ # # Insertar las nuevas entradas al principio de la lista TODO. # @@ -56,7 +56,6 @@ - [G] Soporte RC4 para server<->server. - [G] Soporte SSL para client<->server. - [G] Mirar si el aviso de invites lo haga con wallchops o con raw. - - [D] Documentar para Doxygen el Watch y el DDB - [G] Soporte de +e (exceptions) de canales - [G] Modo de canal +u de esconder mensajes de quit y part (evitar publicidad) @@ -65,11 +64,37 @@ - [G] Estudiar la remodelación del esquema de "hubs" y "leafs" a un basandonos en el calculo de topologia que realiza OSPF solo que en cuanto a coste, ancho de banda y retardo. - - [G] Documentar en el RELEASE.NOTES lo relacionado con DDB y Services. - [G] Mirar el tema de control de Ilines por rangos, el tema es que con un /64 actualmente deja X clones para cada IP de ese rango, deberia haber alguna forma de que sea por rango. + +DOCUMENTACION PENDIENTE +-------------------------------------------------------------------------------------- + - [G] Documentar para Doxygen el Watch y el DDB + - [G] Traducir comentarios DDB al ingles + - [G] Documentar en el RELEASE.NOTES lo relacionado con DDB y Services. + - [G] Traducir el archivo Authors. + - [G] Traducir el archivo chroot.txt + - [G] Traducir el archivo crules.txt + - [G] Traducir el archivo cvs.txt + - [G] Traducir el archivo features.txt + - [G] Traducir el archivo freebsd.txt + - [G] Traducir el archivo gline.txt + - [G] Traducir el archivo iauth.txt + - [G] Traducir el archivo indent.txt + - [G] Traducir el archivo irc.1 + - [G] Traducir el archivo ircd.8 + - [G] Traducir el archivo jupe.txt + - [G] Traducir el archivo log.txt + - [G] Traducir el archivo rfc1413.txt + - [G] Traducir el archivo snomask.txt + - [G] Traducir el archivo string.txt + - [G] Traducir el archivo who.txt + - [G] Traducir el archivo www.txt + - [G] Traducir el directorio api + + BUGS CONOCIDOS -------------------------------------------------------------------------------------- 15/Mar/2005 @@ -77,6 +102,8 @@ entrar clientes al IRCD. Investigar eso. 31/Mar/2005 - [D] No se propaga el modo cuando estamos autentificando al conectar. +20/Abr/2005 + - [D] A veces un nick forbid puede tener +r. Leyenda: [G] General @@ -84,6 +111,7 @@ [D] DDB [S] Services + RESERVA DE MODOS: Se muestran aqui modos para evitar incompatibilidades Canal: ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-04-22 16:22:34
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-22 16:22:24 UTC Modified files: ChangeLog ChangeLog.es configure configure.in doc/ircd.sample-en.conf doc/ircd.sample-es.conf include/patchlevel.h include/s_conf.h ircd/channel.c ircd/class.c ircd/gline.c ircd/ircd.c ircd/ircd_parser.y ircd/m_kick.c ircd/m_whowas.c ircd/match.c ircd/numnicks.c ircd/s_conf.c ircd/s_err.c ircd/s_stats.c ircd/s_user.c tools/convert-conf.py tools/linesync/linesync.conf tools/linesync/linesync.sh Log message: Author: zoltan <zo...@ir...> Log message: 2005-04-22 Toni García <zo...@ir...> 1.0.alpha27 * Sincronización Undernet ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.28 ircd-ircdev/ChangeLog:1.29 --- ircd-ircdev/ChangeLog:1.28 Thu Apr 14 03:28:05 2005 +++ ircd-ircdev/ChangeLog Fri Apr 22 09:22:11 2005 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.28 2005/04/14 10:28:05 zolty Exp $ +# $Id: ChangeLog,v 1.29 2005/04/22 16:22:11 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-04-22 Toni García <zo...@ir...> 1.0.alpha27 + * Undernet synchronization + 2005-04-14 Toni García <zo...@ir...> 1.0.alpha26 * DDB Events Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.28 ircd-ircdev/ChangeLog.es:1.29 --- ircd-ircdev/ChangeLog.es:1.28 Thu Apr 14 03:28:05 2005 +++ ircd-ircdev/ChangeLog.es Fri Apr 22 09:22:11 2005 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.28 2005/04/14 10:28:05 zolty Exp $ +# $Id: ChangeLog.es,v 1.29 2005/04/22 16:22:11 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-04-22 Toni García <zo...@ir...> 1.0.alpha27 + * Sincronización Undernet + 2005-04-14 Toni García <zo...@ir...> 1.0.alpha26 * Eventos de DDB Index: ircd-ircdev/configure diff -u ircd-ircdev/configure:1.15 ircd-ircdev/configure:1.16 --- ircd-ircdev/configure:1.15 Mon Apr 11 01:44:56 2005 +++ ircd-ircdev/configure Fri Apr 22 09:22:11 2005 @@ -1,11569 +1,11 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59. -# -# Copyright (C) 2003 Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_config_libobj_dir=. -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_unique_file="ircd/ircd.c" -ac_default_prefix=$HOME -# Factoring default headers for most tests. -ac_includes_default="\ -#include <stdio.h> -#if HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif -#if HAVE_SYS_STAT_H -# include <sys/stat.h> -#endif -#if STDC_HEADERS -# include <stdlib.h> -# include <stddef.h> -#else -# if HAVE_STDLIB_H -# include <stdlib.h> -# endif -#endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include <memory.h> -# endif -# include <string.h> -#endif -#if HAVE_STRINGS_H -# include <strings.h> -#endif -#if HAVE_INTTYPES_H -# include <inttypes.h> -#else -# if HAVE_STDINT_H -# include <stdint.h> -# endif -#endif -#if HAVE_UNISTD_H -# 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 build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP AWK SET_MAKE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S RMPROG SHPROG LEX LEXLIB LEX_OUTPUT_ROOT YACC ENGINE_C INSTALL_RULE SYMLINK IRCDMODE IRCDOWN IRCDGRP DPATH ENVIRONMENT LIBOBJS LTLIBOBJS' -ac_subst_files='' - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -ac_prev= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_option in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "enable_$ac_feature='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 - { (exit 1); exit 1; }; } -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures this package to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -_ACEOF - - cat <<_ACEOF -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] -_ACEOF - - cat <<\_ACEOF - -System types: -... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-04-22 16:51:36
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-22 16:51:26 UTC Modified files: configure Log message: ups, el configure ---------------------- diff included ---------------------- Index: ircd-ircdev/configure diff -u ircd-ircdev/configure:1.16 ircd-ircdev/configure:1.17 --- ircd-ircdev/configure:1.16 Fri Apr 22 09:22:11 2005 +++ ircd-ircdev/configure Fri Apr 22 09:51:16 2005 @@ -1,11 +1,11569 @@ -./configure --prefix=/home/zoltan/ircd \ - --bindir=/home/zoltan/ircd \ - --libdir=/home/zoltan/ircd/data \ - --enable-debug \ - --enable-profile \ - --enable-pedantic \ - --enable-warnings \ - --with-symlink=ircd.zoltan \ - --with-dpath=/home/zoltan/ircd/data \ - --with-maxxcon=100 \ - --with-ddb-environment +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.59. +# +# Copyright (C) 2003 Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi +DUALCASE=1; export DUALCASE # for MKS sh + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +exec 6>&1 + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_config_libobj_dir=. +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Maximum number of lines to put in a shell here document. +# This variable seems obsolete. It should probably be removed, and +# only ac_max_sed_lines should be used. +: ${ac_max_here_lines=38} + +# Identity of this package. +PACKAGE_NAME= +PACKAGE_TARNAME= +PACKAGE_VERSION= +PACKAGE_STRING= +PACKAGE_BUGREPORT= + +ac_unique_file="ircd/ircd.c" +ac_default_prefix=$HOME +# Factoring default headers for most tests. +ac_includes_default="\ +#include <stdio.h> +#if HAVE_SYS_TYPES_H +# include <sys/types.h> +#endif +#if HAVE_SYS_STAT_H +# include <sys/stat.h> +#endif +#if STDC_HEADERS +# include <stdlib.h> +# include <stddef.h> +#else +# if HAVE_STDLIB_H +# include <stdlib.h> +# endif +#endif +#if HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H +# include <memory.h> +# endif +# include <string.h> +#endif +#if HAVE_STRINGS_H +# include <strings.h> +#endif +#if HAVE_INTTYPES_H +# include <inttypes.h> +#else +# if HAVE_STDINT_H +# include <stdint.h> +# endif +#endif +#if HAVE_UNISTD_H +# 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 build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP AWK SET_MAKE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S RMPROG SHPROG LEX LEXLIB LEX_OUTPUT_ROOT YACC ENGINE_C INSTALL_RULE SYMLINK IRCDMODE IRCDOWN IRCDGRP DPATH ENVIRONMENT LIBOBJS LTLIBOBJS' +ac_subst_files='' + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +ac_prev= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_option in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval "enable_$ac_feature=no" ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "enable_$ac_feature='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package| sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "with_$ac_package='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval "with_$ac_package=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` + eval "$ac_envvar='$ac_optarg'" + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute paths. +for ac_var in exec_prefix prefix +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* | NONE | '' ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# Be sure to have absolute paths. +for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_confdir=`(dirname "$0") 2>/dev/null || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 + { (exit 1); exit 1; }; } + else + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } + fi +fi +(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || + { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 + { (exit 1); exit 1; }; } +srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` +ac_env_build_alias_set=${build_alias+set} +ac_env_build_alias_value=$build_alias +ac_cv_env_build_alias_set=${build_alias+set} +ac_cv_env_build_alias_value=$build_alias +ac_env_host_alias_set=${host_alias+set} +ac_env_host_alias_value=$host_alias +ac_cv_env_host_alias_set=${host_alias+set} +ac_cv_env_host_alias_value=$host_alias +ac_env_target_alias_set=${target_alias+set} +ac_env_target_alias_value=$target_alias +ac_cv_env_target_alias_set=${target_alias+set} +ac_cv_env_target_alias_value=$target_alias +ac_env_CC_set=${CC+set} +ac_env_CC_value=$CC +ac_cv_env_CC_set=${CC+set} +ac_cv_env_CC_value=$CC +ac_env_CFLAGS_set=${CFLAGS+set} +ac_env_CFLAGS_value=$CFLAGS +ac_cv_env_CFLAGS_set=${CFLAGS+set} +ac_cv_env_CFLAGS_value=$CFLAGS +ac_env_LDFLAGS_set=${LDFLAGS+set} +ac_env_LDFLAGS_value=$LDFLAGS +ac_cv_env_LDFLAGS_set=${LDFLAGS+set} +ac_cv_env_LDFLAGS_value=$LDFLAGS +ac_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_env_CPPFLAGS_value=$CPPFLAGS +ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_cv_env_CPPFLAGS_value=$CPPFLAGS +ac_env_CPP_set=${CPP+set} +ac_env_CPP_value=$CPP +ac_cv_env_CPP_set=${CPP+set} +ac_cv_env_CPP_value=$CPP + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures this package to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +_ACEOF + + cat <<_ACEOF +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data [PREFIX/share] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --infodir=DIR info documentation [PREFIX/info] + --mandir=DIR man documentation [PREFIX/man] +_ACEOF + + cat <<\_ACEOF + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-poll Force poll to be used regardless of whether or not + it is a system call + --enable-debug Turn on debugging mode + --disable-asserts Disable assertion checking + --disable-symbols Disable debugging symbols (remove -g from CFLAGS) + --enable-profile Enable profiling support (add -pg to CFLAGS) + --enable-pedantic Enable pedantic warnings (add -pedantic to CFLAGS) + --enable-warnings Enable warnings (add -Wall to CFLAGS) + --disable-inlines Disable inlining for a few critical functions + --disable-devpoll Disable the /dev/poll-based engine + --disable-kqueue Disable the kqueue-based engine + --disable-epoll Disable the epoll-based engine + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-optimization=-O2 Explicitly set the compiler optimization flags + (default: -O3) + --with-leak-detect Turn on the leak detector(requires patched boehm) + --without-ipv6 d... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-04-22 16:53:33
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-22 16:53:23 UTC Removed files: doc/history/IRC-Hispano/CAMBIOS2_10_06 doc/history/IRC-Hispano/CAMBIOS2_10_07 doc/history/IRC-Hispano/CAMBIOS2_10_H_01 doc/history/IRC-Hispano/CAMBIOS2_10_H_02 doc/history/IRC-Hispano/CAMBIOS2_10_H_03 doc/history/IRC-Hispano/CAMBIOS2_10_H_04 doc/history/IRC-Hispano/CAMBIOS2_10_H_05 doc/history/IRC-Hispano/CAMBIOS2_10_H_06 Log message: Borrar lo que huele mal ;) ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/history/IRC-Hispano/CAMBIOS2_10_06 diff -u ircd-ircdev/doc/history/IRC-Hispano/CAMBIOS2_10_06:1.1.1.1 ircd-ircdev/doc/history/IRC-Hispano/CAMBIOS2_10_06:removed --- ircd-ircdev/doc/history/IRC-Hispano/CAMBIOS2_10_06:1.1.1.1 Mon Sep 8 03:34:26 2003 +++ ircd-ircdev/doc/history/IRC-Hispano/CAMBIOS2_10_06 Fri Apr 22 09:53:25 2005 @@ -1,321 +0,0 @@ -$Id: CAMBIOS2_10_06,v 1.1.1.1 2003/09/08 10:34:26 zolty Exp $ - -* 1999/11/11 sa...@ap... (patch.db51) FIX - ----------------------------------------------------------------------- - Cambiados todos los 'unsigned long' de s_bdd.c a 'unsigned int', pues - en realidad solo necesitamos u_int32_t, y usando 'unsigned long' tenwmos - problemas en arquitecturas de 64 bits. Los mismos cambios en las - funciones que llamaban a tea() en s_user.c - -* 1999/11/11 sa...@ap... (patch.vip4) FIX - ----------------------------------------------------------------------- - Segun lo decidido, se cambia el algoritmo de criptación de direcciones - al siguiente modelo: - - VIRTUAL = TEA( clave, ip<<32 + (clave>>32)&0xffff0000 + n) - - Siendo 'clave' el valor que contiene el registro '.' de la tabla de - direcciones virtuales, que se irá cambiando periodicamente. - Este fix permite que los usuarios baneados por dirección virtual no - puedan abusar, conectando de nuevo o cambiando el nick, pues hay una - relación directa entre la dir virtual y la real. - -* 1999/10/26 sa...@ap... (patch.dbh15) FEATURE - ----------------------------------------------------------------------- - Para facilitar la migración a autentificación por server, creamos una - tabla 't' (residente), que PERMITE que los usuarios se autentifiquen - de la misma forma que los de la tabla 'n'. Si ponen clave, esta ha de - ser la correcta. Si no la ponen les molesta con un par de NOTICEs. - En VERSION del server aparece como DBH15 - -* 1999/10/15 sa...@ap... (patch.p9hispano) FIX - ----------------------------------------------------------------------- - He definido los numeros de nodo P9 para los services en numnicks.c, - dado que n2k ha destruido la "autoasignación" de numeros de nodo para - los P9. - -* 1999/10/14 sa...@ap... (patch.dbh14) FIX - ----------------------------------------------------------------------- - He modificado la respuesta al /STATS B, para hacerla mas corta y le he - añadido el soporte de las nuevas BDD. - -* 1999/10/13 sa...@ap... (patch.xmode2) FIX - ----------------------------------------------------------------------- - Arreglado un pekeño bug cosmetico, que ocurria cuando mediante XMODE - intentabamos por ejemplo dar +o a alguien que ya tiene +o, quedando - visible el intento como '+x' sin parametro alguno. - -* 1999/10/13 sa...@ap... (patch.dbh13) FEATURE - ----------------------------------------------------------------------- - Implemento comando DBQ sustituyendo el DBH de usuario, con el formato: - - [<:origen>] DBQ [<server>] <tabla> <clave> - - Si <server> existe pero no somos nostros, lo rutaremos al server en - cuestión para que sea él quien contesta. Se acepta server '*' para - broacast y los tipicos comodines 'jupiter.*' - -* 1999/10/10 sa...@ap... (patch.vip3) FIX - ----------------------------------------------------------------------- - Las desconexiones (QUIT) involuntarios (Ping timeout / Read error) ya - no muestran el hostname del usuario si este tiene el modo +x activo. - El /WHO busca sobre la direccion virtual en lugar de la real en los - usuarios +x excepto si quien mira es un +X, en cuyo caso mira en ambas. - -* 1999/10/05 sa...@ap... (patch.vip2) FEATURE - ----------------------------------------------------------------------- - Se cambia el modo de trabajo de /WHOIS y /WHO para que lo hagan segun - sugerencias de jcea. El propio usuario se ve a si mismo como lo haria - un +X. Y la primera linea (311) de WHOIS da el host real y en la linea - codigo 378 informamos de la dirección virtual. - -* 1999/10/05 sa...@ap... (patch.dbh12) FIX - ----------------------------------------------------------------------- - Las nuevas funciones base64toint() que han introducido en el parche de - undernet8 necesitan tener completamente rellenado el string, antes se - conformaban con tener \0's al final. Lo correcto es tal como lo han - dejado en esta versión, pero es incompatible con lo anterior. - Solución: a las claves cortas se les añaden tantas 'A' al final como - sea preciso. - -* 1999/10/05 sa...@ap... (patch.dbh11) FIX - ----------------------------------------------------------------------- - Al introducir el parche de undernet8 y posteriores, se nos pasó cambiar - el %c%c%c por %s%s para imprimir el nick numerico extendido en el - comando BMODE. Se ha optimizado el modo de delimitar el final de de - cadenas en las modificaciones introducidas en la autenticación usuario. - Se han cambiado los %c a %s en protocolos DB y DBH para uso correcto de - la macro NumServ(). Puestos a arreglar, el make install crea con los - permisos adecuados las tablas DBH. - -* 1999/09/14 sa...@ap... (patch.vip) FEATURE - ----------------------------------------------------------------------- - Se introducen dos nuevos flags de usuario: +x y +X, el primero oculta - la dirección ip(o hostname) del usuario y el segundo (+X) permite ver - las direcciónes reales al ejecutar /WHOIS /WHO /USERIP y /USERHOST - Solo los usuarios +r acceden, automaticamente, a +x, pudiendo cambiar - a -x y +x a voluntad mientras perdure el flag +r - Solo los usuarios +o (ircops) y +h (OPERS) pueden activar el flag +X - El formato de las direcciones es @GaRaBaTo12Ch.virtual, y este valor - se calcula en todos los servers cuando el usuario activa +x, - guardandose en un campo especifico: User->virtualhost - Si los servers encuentran en la nueva tabla V un registro para el nick - en cuestión, instalan el valor del registro en User->virtualhost, - permitiendo así definir ips virtuales fijas para ciertos usuarios. - El valor del GaRaBaTo12Ch se calcula en make_virtualhost() de s_user.c - y es basicamente: - - garabato = base64(tea(tea(nick,password),ip<<32+xyz<<8)); - - haciendose imposible crear una relación de ips virtuales a reales, asi - como su desencriptación por parte de los usuarios. La unica forma de - conseguir averiguar una ip a partir de una virtual sera analizando los - logs de los distintos servidores de servicios. - - he modificado además el codigo refernete a BAN para que acepte ban por - virtual, y el ban a real afecte tambien a los +x. - - he cambiado el antiguo codigo 378 (ke ya movimos en su dia) al 380 - he ocupado el codigo 378 para que nos indique la ip/host real del user - tal como lo hacen otros daemons de irc. El 379 lo he reservado para - que muestre los modos de usn usuario, como enotras redes, pero esto es - asunto de otro parche. - - El comando /TRACE solo será accesible a Opers +o y HelpOps +h, antes - era accesible a todos. Este comando no oculta IPs. - - No puedo considerar el codigo terminado, la version queda reflejada - como VIP+, activandose en el configurador dentro de la sección HISPANO, - siendo desactivable por si nos da problemas. - -* 1999/09/14 sa...@ap... (patch.no_whois_secret) UNFEATURE - ----------------------------------------------------------------------- - Elimina completamente el parche patch.whois_secret - -* 1999/07/31 sa...@ap... (patch.dbh10) FIX - ----------------------------------------------------------------------- - Corrección del BMODE, pues se producian algunos desynch. - Lo he simplificado, y para ello he tenido que meter un parametro - adicional a set_mode(), que se usa en m_botmode (1) y m_mode (0). - Si el parametro es 1 (BMODE), se hace badop=0, bounce=0, asi no se queja - nadie. Como el arreglo es en la recepción, sera necesario que este activo - en todos los servers antes de que sea operativo. - Por error, en DBH9 deje abierto a IRCops el comando BMODE, ahora es solo - server-server. - El BURST de p10 no parsea los modos +R+A+S de canal, tb lo he arreglado. - Queda reflejado como DBH10+ - -* 1999/07/30 sa...@ap... (patch.whois_secret) FEATURE - ----------------------------------------------------------------------- - Si asi lo pedimos en la configuración (make config), - OPERS_SEE_IN_SECRET_CHANNELS, el whois les muestra a los IrcOP o +k la - lista de canales secretos (+s) donde esta el usuario - Se documenta en /VERSION como W+/W- - -* 1999/07/29 sa...@ap... (patch.dbh9) FEATURE - ----------------------------------------------------------------------- - Incorpora el comando SERVER-SERVER BMODE, con formato: - - :origen BMODE ChanServ #canal +modos :parametros - - ChanServ se busca en la tabla B, y se nos traduce a 'CHaN!^@^', y es lo - que veran los usuarios en los cambios de modos del canal realizados por - los servers (autoops, etc). Para mas info ver codigo m_botmode() en - chammel.c - - Modos de usuario: - - B -> Modo Bot, permite TODO sobre canales, sin estar dentro, - limitado a los BOTS, no se puede colocar en modo usuario. - - Se ha usado un bit de nustro campo Client->hmodes - - Modos de Canal: - - r -> Canal Registrado (existe en tabla C, no se puede poner/quitar) - R -> Canal Restringido, solo acepta users Registrados - A -> Activacion de autoop para los ke salgan en tabla C - S -> Modo Secure OP (no implementado de momento) - - Se han usado 4 bits del campo chptr->modes.modes: - #define MODE_REGCHAN 0x020000 - #define MODE_REGNICKS 0x040000 - #define MODE_AUTOOP 0x080000 - #define MODE_SECUREOP 0x100000 - -* 1999/07/29 sa...@ap... (patch.noproxy4) FIX - ----------------------------------------------------------------------- - Se corrige el tema caida por timeout si tienes el 1080 cerrado sin aviso - mediante firewall. Ahora deja al usuario enganchado 90 segundos antes de - dejarle entrar. - Queda reflejado como PX4+ o PX4- en el /VERSION - -* 1999/07/29 sa...@ap... (patch.noproxy3) FIX - ----------------------------------------------------------------------- - Se elimina el chekeo de Socks y el de Ident sobre puerto de servers - Queda reflejado como PX3+ o PX3- en el /VERSION - -* 1999/07/29 sa...@ap... (patch.dbh8) FEATURE - ----------------------------------------------------------------------- - Implementa el nuevo modo de usuario -/+h, conocido en otras redes como - HelpOperator, que vendrian a ser los Oper del irc-hispano. - Este modo (+h) se activa automaticamente si el nick esta registrado y - ademas en la tabla O (de OPERS). Los oper se lo pueden quitar o poner a - su antojo. La unica finalidad del modo +h es aparecer en el /WHOIS - indicando que el usuario es un Operador de Servicios IRC (raw 310) - Ademas mejora la implementacion de los modos automaticos al cambiar - de nick. - -* 1999/07/28 sa...@ap... (patch.noproxy2) FIX - ----------------------------------------------------------------------- - Algunos cambios cosmeticos en los textos enviados al usuario. - El patch.noproxy no compila modo DEBUG, este lo arregla. - Queda reflejado como PX2+ o PX2- en el /VERSION - -* 1999/07/28 sa...@ap... (patch.noproxy) FEATURE - ----------------------------------------------------------------------- - Implemento un checker de Socks4-Proxies (wingates incluido). - La implementación esta en s_socks.c y s_socks.h, pero ha sido necesario - tocar ligeramente s_bsd.c, ircd.c y s_res.c. En la estructura Client de - struct.h he añadido el campo socksfd en la parte extendida de clientes - locales. En s_bsd.h he creado las macros y usado un par de bits del - campo client->hmodes. - - Implementacion: - - - Llega conexion nueva - - Se lanzan en paralelo los checkers de DNS, ident y proxy - - Se atiende al user cuando los tres han finalizado - - Cuando lanzamos el cheker de proxy, este se intenta conectar al puerto - de socks4 del usuario (1080), si lo consigue, mediante protocolo socks4 - le solicita al proxy que habra una conexion a la direccion/puerto del - ircd que el usuario ha conectado. Se analiza la respuesta de socks4 y - si nos confirma la conexión, es un proxy abiero y lo desconectamos del - irc informandole de la causa. - - Mientras se hace el proceso de checking de Proxy, el server envia unos - NOTICE al usuario para que vea lo que le está haciendo. He tenido que - usar writes directos al cptr->fd, pk al no estar registrado el usuario - en el momento del cheking, no podia usar las colas de salida. - - Esta opcion se puede activar/desactivar (PROXY_PROTECTION) en el make - config, siempre que hayamos seleccionado DB_HISPANO. Queda reflejado - en el /VERSION como PX+ o PX- - -* 1999/07/21 sa...@ap... (patch.DBH6) FIX - ----------------------------------------------------------------------- - Cambia la forma de trabajo del flag +r, impidiendo que el user - se lo quite, y (des)activandose solo ante autentificacion, y no ademas - por la llegada de un registro DBH, como hasta ahora. - - Introduce algunos cambios cosmeticos en la consulta de la BD - (comando DBH en modo user). - - Como estaba mirando la causa de que los DBH2 regalen modos +k a - los users, he cambiado a logica positiva la parte del condicional que - hace que NO sea aceptado el modo +k cuando: - - - no lo tenias y no eres server y no eres ircop - y no (estas registrado y estas en la DB de OPERS) - - en lugar de la equivalente pero menos inteligible: - - - no lo tenias y no eres server y no eres ircop - y (no estas registrado o no estas en la DB de OPERS) - - Aunque el bug quedo solucionado en DBH3. - - Puestos a arreglar, añado el DBPATH de la DB10 como prefijo a los - ficheros usados por la DBH. - -* 1999/07/06 sa...@ap... (patch.whois_renumber) FIX - ----------------------------------------------------------------------- - Este patch renumera algunos codigos de respuesta del WHOIS para hacerlos - mas universales. Se activa si usamos DB_HISPANO/DB_ESNET. Los codigos - renumerados son: - - 307 (undernet) IP del usuario -> 378 el usado en otras redes - 308 (hispano) Nick Registrado -> 307 el usado en otras redes - - Esto hace ke BitchX se sienta inmensamente feliz :) - -* 1999/07/06 sa...@ap... (patch.DBH3) FEATURE - ----------------------------------------------------------------------- - En el fichero struct.h he ampliado con un nuevo campo la estructura - Client, es un unsigned int llamado hmodes. Esto nos permitira dispo- - ner de 32bits adicionales como flags de usuario. Estos nuevos flags - son propagados si se definen en la tabla user_hmodes[] de s_user.c - - En este parche se hace uso del bit de menor peso de este nuevo campo, - en el fichero s_bsd.h: - #define HMODES_NICKREGISTERED 0x00000001 - Y las macros asocicadas: - IsNickRegistered(cptr); - SetNickRegistered(cptr); - ClearNickRegistered(cptr); - - Cuando alguien se pone un nick, se hace un Clear, y si acierta la clave - se hace un SetNickRegistered. - Este flag queda reflejado con la letra 'r' en los modos de usuario, y - solo es aceptada si la envia un server (o por la autentificacion). - Si un usuario esta conectado y registra su nick en los servicios, este - flag se activara cuando llegue su registro DBH/DB. Y le sera borrado - cuando se llegue un borrado de su registro. Los cambios son informados - al usuario y propagados a la red. - - El /WHOIS ha sido ampliado (whocmds.c) para mostrar este nuevo 'flag' - y he ocupado el ERROR 308 en los fichero s_err.c y numeric.h - - He cambiado los condicionales que comprueban en tablas si nick registrado - por la nueva macro IsNickRegistered() - - Queda reflejado en el /VERSION como DBH3.Nr+...., cambiando el anterior - texto (DBH2.N+....). He decidido cambiar a DBH3, pk las macros son y - seran ampliamente usadas en futuras DBH's, y hago desaparecer la opcion - de compilacion DBH_NICK_HACK quedando integrado todo su codigo en el - que es activado por el #define DB_HISPANO - - ----------------------------------------------------------------------- - -* FINAL o INICIO de CAMBIOS, segun se mire :) Index: ircd-ircdev/doc/history/IRC-Hispano/CAMBIOS2_10_07 diff -u ircd-ircdev/doc/history/IRC-Hispano/CAMBIOS2_10_07:1.1.1.1 ircd-ircdev/doc/history/IRC-Hispano/CAMBIOS2_10_07:removed --- ircd-ircdev/doc/history/IRC-Hispano/CAMBIOS2_10_07:1.1.1.1 Mon Sep 8 03:34:26 2003 +++ ircd-ircdev/doc/history/IRC-Hispano/CAMBIOS2_10_07 Fri Apr 22 09:53:25 2005 @@ -1,793 +0,0 @@ -$Id: CAMBIOS2_10_07,v 1.1.1.1 2003/09/08 10:34:26 zolty Exp $ - -* 2000/10/10 jc...@ar... (---) FIX - ----------------------------------------------------------------------- - Un "make distclean" tambien elimina los ficheros de la "zlib". Esto - es bastante importante si cambiamos de arquitectura. - - Tambien se eliminan los ficheros de cache del "configure", por la - misma razon. - -* 2000/10/05 jc...@ar... (---) FEATURE - ----------------------------------------------------------------------- - Un "/map" muestra, adicionalmente a lo normal: - - - El "numeric" del servidor - - El lag con ese servidor (medido a partir de los "create") - - El numero de usuario conectados a ese servidor - -* 2000/10/05 jc...@ar... (---) FEATURE - ----------------------------------------------------------------------- - Cuando se echa a un usuario con una nueva GLINE, se le informa a el - y a los que tengan activada la mascara "s" correspondiente, de - la razon del GLINE. - -* 2000/10/05 jc...@ar... (DB77) FEATURE - ----------------------------------------------------------------------- - Peticion de Sisco: - el mensaje de 'class full' de cuando la clase de usuario se llene, - que diga que su clase en este server esta llena, que pruebe - /server libres.irc-hispano.org , Es muy efectivo y ya fue probado - con exito en la transicion de pulsar a pulsar2.... - -* 2000/10/05 jc...@ar... (---) FEATURE - ----------------------------------------------------------------------- - Mostrar en "/stats Y" cuantos usuarios hay conectados - en cada clase. Sino la unica opcion es hacer un - "/trace", lo que ocasiona FLOOD. - -* 2000/08/16 jc...@ar... (clones7) FEATURE - ----------------------------------------------------------------------- - Las conexiones con clones no heredan "targets", para evitar que - las sesiones se quiten targets entre si. - - -* 2000/06/20 jc...@ar... (DB76) FEATURE - ----------------------------------------------------------------------- - Hago que los usuarios locales no puedan ACTIVAR los modos "SAR", aunque - el server los acepta si llegan de un usuario remoto. - - De esta forma los usuarios no juegan con modos que no estan - desplegados aun. - -* 2000/06/13 jc...@ar... (ZLIB10) FIX - ----------------------------------------------------------------------- - Tras horas de investigacion descubro un fallo en la implementacion - de las "microrafagas": cuando trabajamos con microrafagas es - perfectamente posible que tengamos que hacer FLUSH varias veces (no - solo una), ya que ZLIB puede ir almacenando compresion de forma - interna, y no soltarla hasta el final. - - Por tanto, hay que comprobar este caso especificamente, y no confiar - en que un buffer de salida lo bastante grande sea suficiente, ya que - antes se usaba ese buffer para un unico comando, y ahora lo usamos - para todas las microrafagas que, en el caso de un NETJOIN, pueden - ser varios megabytes. - - Cuando tengo que hacer varios FLUSH, aprovecho para usar "send_queued()". - -* 2000/06/13 jc...@ar... (Undernet20) SYNC - ----------------------------------------------------------------------- - Parches Undernet hasta version 12. - - Oculto la IP de los nodos tambien en el comando "uping". - -* 2000/06/12 jc...@ar... (ZLIB9) FEATURE - ----------------------------------------------------------------------- - Para evitar la posible carga de los malloc/free durante las microrafagas, - implemente un sistema de cache, de forma que no haga falta pedir/liberar - memoria constantemente. - - La cache se va purgando poco a poco, de forma que si en un momento - dado se pidieron muchos recursos, esto se van liberando poco a poco. - -* 2000/06/12 jc...@ar... (ZLIB8) FIX - ----------------------------------------------------------------------- - Toda "microrafaga" que se abra, debe ser cerrada. Hay que tener cuidado - con posibles "return" entre la apertura y cierre, ya que impiden el - correcto cierre de la "microrafaga" si no se programa adecuadamente. - - Para curarnos en salud, an~ado una rutina nueva que fuerza una - inicializacion del modulo de "microrafagas" entre lecturas de - las conexiones server<->server. De esta forma cualquier microrafaga - "huerfana" sera clausurada correctamente. - - An~ado tambien otro comando para eliminar "cptr" que se hayan cerrado, - del sistema de "microrafagas". De esta forma no nos preocupara que - una conexion se cierre mientras esta en una "microrafaga". - - -* 2000/06/12 jc...@ar... (ZLIB7) FEATURE - ----------------------------------------------------------------------- - Intento realizar el FLUSH de compresion por grupos, no por comandos - aislados. Ello supone la deteccion y aprovechamiento de las microrafagas, - que son cuando se van a generar varios comandos de salida por una - o mas conexiones. - - El caso mas obvio es un "netjoin", cuando el servidor transfiere al otro - extremo todo el BURST. - - Otro caso bastante evidente es cuando se lee un bloque de otro nodo; - cuando ese bloque tiene varios comandos, podemos considerar que hasta - su final estamos trabajando con una "microrafaga". - - Por ultimo, tenemos el caso de la BDD. - - Cuando se cierra una microrafaga, se hace FLUSH de lo que pudiese - haber quedado. - -* 2000/06/08 jc...@ar... (ZLIB6) CLEANUP - ----------------------------------------------------------------------- - Introduzco algunos "assert()" para casos que no deberian ocurrir nunca, - y verifico todas las llamadas a la libreria ZLIB y de gestion de - memoria asociadas, por si alguna falla (no deberia). - -* 2000/06/08 jc...@ar... (indent6) CLEANUP - ----------------------------------------------------------------------- - "make indent". - -* 2000/06/06 jc...@ar... (ZLIB5) FIX - ----------------------------------------------------------------------- - El servidor no compilaba correctamente si el sistema en el que se - va a instalar NO tenia instalado ya la ZLIB (aunque use la local al - servidor, no la instalada en el sistema). - -* 2000/05/23 jc...@ar... (CONFIG5) FEATURE/FIX - ----------------------------------------------------------------------- - Corregido un bucle infinito cuando se evalua la configuracion. - - "/stats f" muestra la configuracion de las lineas "F". - - La negociacion en los enlaces se activa en el "make config". - - Cambiados los textos de los "DEFINE". - -* 2000/05/23 jc...@ar... (CONFIG4) FEATURE - ----------------------------------------------------------------------- - Cambio "NACK" por "REQ", que es mas logico. - - Hago que las negociaciones entre nodos sean configurables mediante una - nueva "F"-line. - - El primer campo indica el sentido salida, y el segundo el sentido entrada. - - Las mayusculas indican SIEMPRE, y las minusculas NUNCA. - - De momento defino "z" como ZLIB. - -* 2000/05/18 jc...@ar... (ZLIB4) FEATURE/FIX - ----------------------------------------------------------------------- - Un "stats l" muestra el trafico transferido realmente, y su nivel - de compresion. - - Solo crea las estructuras de datos de compresion cuando se ha negociado - afirmativamente la compresion (de forma independiente en cada sentido). - - Este cambio corrige tambien un grave "memory leak", debido a que se - inicializaban unos 300Kbytes por conexion de usuario, para soportar - posible compresion, pero no se liberaba si no se habia negociado - compresion. - -* 2000/05/18 jc...@ar... (ZLIB3) FEATURE - ----------------------------------------------------------------------- - Primera version que se va a probar en la red en produccion. Se ha - modificado "stats l" para que indique el porcentaje de compresion en - recepcion y en transmision, por cada enlace. - -* 2000/05/18 jc...@ar... (CONFIG3) FEATURE - ----------------------------------------------------------------------- - Lo anterior no funciona todo lo bien que debiera, por multiples motivos - explicados en mi web. - - Ahora trabajo considerando que algunas peticiones son "especulativas", - y se accede a ellas o se ignoran tras resolverse el tipo de conexion. - -* 2000/05/18 jc...@ar... (CONFIG2) FEATURE - ----------------------------------------------------------------------- - Cuando se unen dos servers, se envia un "ping" y toda la negociacion, - y solo se manda el BURST cuando llega el "pong" de respuesta. - - Ello permite negociar ANTES de transmitir el burst. - -* 2000/05/17 jc...@ar... (CONFIG1) FEATURE - ----------------------------------------------------------------------- - Primera implementacion del protocolo de negociacion entre servidores. - - Se basa en el PPP. Un servidor solicita a otro una "feature" mediante - un NAK, y este la confirma activa con un ACK. Si no reconoce la - feature, devuelve un REJ. - -* 2000/05/17 jc...@ar... (ZLIB2) FEATURE - ---------------------------------------------------------------------- - An~ado los flags "ZLIB_ESNET_IN" y "ZLIB_ESNET_OUT" a la estructura - de servidor. Tambien an~ado dos estructuras "z_stream". - - Compilo la libreria ZLIB *ANTES* de compilar el servidor, para que - no se enlace con una version anticuada o preinstalada. - - Compresion de la salida a servidor activada "a pin~on fijo", para - verificar que funciona bien. - -* 2000/05/16 jc...@ar... (ZLIB1) FEATURE - ----------------------------------------------------------------------- - An~adida la libreria ZLIB de forma interna, para no depender de que - se tenga una version instalada y actualizada en el sistema. - - Se configura y se compila correctamente. Se an~ade una opcion de - configuracion para permitir activar o desactivar la "feature" en tiempo - de compilacion. - -* 2000/05/16 jc...@ar... (Undernet19) SYNC - ----------------------------------------------------------------------- - Parches Undernet hasta version 11. - -* 2000/04/04 jc...@ar... (DB75) FIX - ----------------------------------------------------------------------- - Correccion al parche DB71. Si el HUB manda una orden de borrado, no - hace falta mandarle nada mas, ni registros ni "B", ya que la orden de - borrado sera confirmada y se pedira la base de datos de nuevo. - -* 2000/04/04 jc...@ar... (DB74) FIX - ----------------------------------------------------------------------- - El parche db52 es erroneo, porque bajo ciertas condiciones se saltaba - "hubs", y es imperativo desconectar de todos ellos. - - El sintoma es que si una tabla es muy corta, si se corrompe se genera - un bucle entre el nodo y el hub. Ver parche DB71. - -* 2000/04/04 jc...@ar... (---) FIX - ----------------------------------------------------------------------- - Compila con la opcion de DEBUG activada. - -* 2000/04/03 jc...@ar... (DB73) FIX? - ----------------------------------------------------------------------- - En algunas maquinas parece que la compactacisn da problemas, por alguna - razon desconocida. En Solaris parece que todo funciona bien, y no he - logrado reproducir el problema en mis Linux. - - He modificado la forma de realizar las compactaciones para verificar - si se trata de un bug del Kernel Linux, bajo determinadas condiciones, - o no. - -* 2000/03/28 jc...@ar... (---) FEATURE - ----------------------------------------------------------------------- - Elimino la opcion "DBH_OPER_HACK_ONLYREG" en la configuracisn, ya que - ahora mismo no tiene sentido. No obstante dejo todo el codig... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-04-22 16:55:53
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-22 16:55:46 UTC Modified files: doc/ircd.sample-en.conf Log message: Fallito ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/ircd.sample-en.conf diff -u ircd-ircdev/doc/ircd.sample-en.conf:1.18 ircd-ircdev/doc/ircd.sample-en.conf:1.19 --- ircd-ircdev/doc/ircd.sample-en.conf:1.18 Fri Apr 22 09:22:12 2005 +++ ircd-ircdev/doc/ircd.sample-en.conf Fri Apr 22 09:55:35 2005 @@ -469,7 +469,7 @@ Kill { host = "*.edu"; reason = "Please use a nearer server"; }; # You can also kill based on username. -Kill { username = "sub7"; realname = "s*7*"; reason = "You are infected with a Trojan"; +Kill { username = "sub7"; realname = "s*7*"; reason = "You are infected with a Trojan"; }; # The file can contain for example, a reason, a link to the # server rules and a contact address. Note the combination ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-04-23 15:57:31
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-23 15:57:23 UTC Modified files: RELEASE.NOTES RELEASE.NOTES.es doc/ircd.sample-en.conf doc/ircd.sample-es.conf Log message: actualizacion docs ---------------------- diff included ---------------------- Index: ircd-ircdev/RELEASE.NOTES diff -u ircd-ircdev/RELEASE.NOTES:1.1 ircd-ircdev/RELEASE.NOTES:1.2 --- ircd-ircdev/RELEASE.NOTES:1.1 Sun Apr 17 11:35:07 2005 +++ ircd-ircdev/RELEASE.NOTES Sat Apr 23 08:57:00 2005 @@ -1,5 +1,5 @@ Release notes for IRC-Dev IRCD version 1.0 -Last updated: 17 Apr 2005 +Last updated: 23 Apr 2005 Written by Toni Garcia <zo...@ir...> Based on earlier documents by Kev <kl...@mi...>, Braden <db...@ya...> and Michael Poole <md...@tr...> @@ -59,8 +59,8 @@ Client blocks (previously I: lines), Operator blocks (previously O: and o: lines), channel bans and silences may use CIDR notation instead of simple wildcards. You may also have silence exceptions by putting -'-' before the mask; for example, if you wish to silence everyone -except X, you could use SILENCE *!*@*,-X!cse...@ir.... +'~' before the mask; for example, if you wish to silence everyone +except X, you could use SILENCE *!*@*,~X!cse...@ir.... The server will no longer kick "net riders" in keyed (+k) channels if both sides of the net join have the same key. Index: ircd-ircdev/RELEASE.NOTES.es diff -u ircd-ircdev/RELEASE.NOTES.es:1.1 ircd-ircdev/RELEASE.NOTES.es:1.2 --- ircd-ircdev/RELEASE.NOTES.es:1.1 Sun Apr 17 11:35:07 2005 +++ ircd-ircdev/RELEASE.NOTES.es Sat Apr 23 08:57:02 2005 @@ -1,5 +1,5 @@ Notas de lanzamiento para IRCD de IRC-Dev version 1.0 -Ultima actualización: 17 Abril 2005 +Ultima actualización: 23 Abril 2005 Escrito y traducido por Toni Garcia <zo...@ir...> Basado en anteriores documentos por Kev <kl...@mi...>, Braden <db...@ya...> y Michael Poole <md...@tr...> @@ -62,9 +62,9 @@ Los bloques "Client" (previamente líneas I:), bloques "Operator" (previamente líneas O: y o:), bans de canales y los sileces pueden utilizar la notación de CIDR en lugar de comodines simples. Puedes -también tener excepciones de silencie poniendo '-' antes de la máscara; +también tener excepciones de silencie poniendo '~' antes de la máscara; por ejemplo, si deseas silenciar de todo el mundo excepto X, puedes -utilizar SILENCE *!*@*,-X!cse...@bo.... +utilizar SILENCE *!*@*,~X!cse...@bo.... El servidor no puede kickear por "net riders" en los canales con llave (+k) si ambos lados de la red al unirse tienen la misma llave. Index: ircd-ircdev/doc/ircd.sample-en.conf diff -u ircd-ircdev/doc/ircd.sample-en.conf:1.19 ircd-ircdev/doc/ircd.sample-en.conf:1.20 --- ircd-ircdev/doc/ircd.sample-en.conf:1.19 Fri Apr 22 09:55:35 2005 +++ ircd-ircdev/doc/ircd.sample-en.conf Sat Apr 23 08:57:02 2005 @@ -1,6 +1,6 @@ # ircd.conf - configuration file for IRC-Dev's IRCD. # -# Last Updated: 22, Apr 2005. +# Last Updated: 23, Apr 2005. # # Written by Niels <ni...@un...>, based on the original example.conf, # server code and some real-life (ahem) experience. @@ -404,6 +404,8 @@ # name = "relservername"; # }; # +# You may have have more than one name listed in each block. +# # Note: (1) These lines are agreed on by every server admin on IRC-Dev; # (2) These lines must be the same on every single server, or results # will be disasterous; (3) This is a useful feature, not something that @@ -421,8 +423,6 @@ UWorld { name = "luz.irc-dev.net"; -}; -Uworld { name = "services.irc-dev.net"; }; Index: ircd-ircdev/doc/ircd.sample-es.conf diff -u ircd-ircdev/doc/ircd.sample-es.conf:1.14 ircd-ircdev/doc/ircd.sample-es.conf:1.15 --- ircd-ircdev/doc/ircd.sample-es.conf:1.14 Fri Apr 22 09:22:13 2005 +++ ircd-ircdev/doc/ircd.sample-es.conf Sat Apr 23 08:57:13 2005 @@ -1,6 +1,6 @@ # ircd.conf - archivo de configuración para el IRCD de IRC-Dev. # -# Ultima actualización: 27, Abr 2005. +# Ultima actualización: 23, Abr 2005. # # Escrito por Niels <ni...@un...>, basado en el archivo example.conf # original, en el código del servidor y la experiencia de la vida real. @@ -419,6 +419,8 @@ # name = "relnombreservidor"; # }; # +# Puedes tener más de un nombre listado en cada bloque. +# # Nota: (1) Estas líneas son puestas por cada administrador de un servidor # en IRC-Dev; (2) Estas líneas debe ser exactamente iguales en cada # servidor, o los resultados serán impredecibles; (3) Esta es una @@ -440,8 +442,6 @@ Uworld { name = "luz.irc-dev.net"; -}; -Uworld { name = "services.irc-dev.net"; }; ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-04-24 22:18:24
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-24 22:18:16 UTC Modified files: ChangeLog ChangeLog.es include/patchlevel.h ircd/channel.c ircd/ircd_lexer.l ircd/ircd_parser.y ircd/m_silence.c ircd/m_userhost.c ircd/m_userip.c Log message: Author: zoltan <zo...@ir...> Log message: 2005-04-25 Toni García <zo...@ir...> 1.0.alpha28 * Fix de bugs ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.29 ircd-ircdev/ChangeLog:1.30 --- ircd-ircdev/ChangeLog:1.29 Fri Apr 22 09:22:11 2005 +++ ircd-ircdev/ChangeLog Sun Apr 24 15:18:05 2005 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.29 2005/04/22 16:22:11 zolty Exp $ +# $Id: ChangeLog,v 1.30 2005/04/24 22:18:05 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-04-25 Toni García <zo...@ir...> 1.0.alpha28 + * Fix bugs + 2005-04-22 Toni García <zo...@ir...> 1.0.alpha27 * Undernet synchronization Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.29 ircd-ircdev/ChangeLog.es:1.30 --- ircd-ircdev/ChangeLog.es:1.29 Fri Apr 22 09:22:11 2005 +++ ircd-ircdev/ChangeLog.es Sun Apr 24 15:18:05 2005 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.29 2005/04/22 16:22:11 zolty Exp $ +# $Id: ChangeLog.es,v 1.30 2005/04/24 22:18:05 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-04-25 Toni García <zo...@ir...> 1.0.alpha28 + * Fix de bugs + 2005-04-22 Toni García <zo...@ir...> 1.0.alpha27 * Sincronización Undernet Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.28 ircd-ircdev/include/patchlevel.h:1.29 --- ircd-ircdev/include/patchlevel.h:1.28 Fri Apr 22 09:22:13 2005 +++ ircd-ircdev/include/patchlevel.h Sun Apr 24 15:18:05 2005 @@ -17,10 +17,10 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: patchlevel.h,v 1.28 2005/04/22 16:22:13 zolty Exp $ + * $Id: patchlevel.h,v 1.29 2005/04/24 22:18:05 zolty Exp $ * */ -#define PATCHLEVEL ".alpha27" +#define PATCHLEVEL ".alpha28" #define RELEASE "1.0" Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.18 ircd-ircdev/ircd/channel.c:1.19 --- ircd-ircdev/ircd/channel.c:1.18 Fri Apr 22 09:22:13 2005 +++ ircd-ircdev/ircd/channel.c Sun Apr 24 15:18:05 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.18 2005/04/22 16:22:13 zolty Exp $ + * @version $Id: channel.c,v 1.19 2005/04/24 22:18:05 zolty Exp $ */ #include "config.h" @@ -2837,6 +2837,8 @@ if (!bmatch(ban, newban)) { if (do_free) free_ban(newban); + else + MyFree(newban); return 1; } if (!(ban->flags & (BAN_OVERLAPPED|BAN_DEL))) { @@ -2873,6 +2875,8 @@ } if (do_free) free_ban(newban); + else + MyFree(newban->banstr); return 4; } @@ -2928,7 +2932,7 @@ newban = state->banlist + (state->numbans++); newban->next = 0; newban->flags = ((state->dir == MODE_ADD) ? BAN_ADD : BAN_DEL) - | (*flag_p == 'b' ? 0 : BAN_EXCEPTION); + | (*flag_p == MODE_BAN ? 0 : BAN_EXCEPTION); newban->banstr = NULL; set_ban_mask(newban, collapse(pretty_mask(t_str))); newban->who = cli_name(state->sptr); @@ -3031,6 +3035,13 @@ prevban = ban; } /* for (prevban = 0, ban = state->chptr->banlist; ban; ban = nextban) { */ + /* Release all masks of removed bans */ + for (count = 0; count < state->numbans; ++count) { + ban = state->banlist + count; + if (ban->flags & BAN_DEL) + MyFree(ban->banstr); + } + if (changed) /* if we changed the ban list, we must invalidate the bans */ mode_ban_invalidate(state->chptr); } Index: ircd-ircdev/ircd/ircd_lexer.l diff -u ircd-ircdev/ircd/ircd_lexer.l:1.11 ircd-ircdev/ircd/ircd_lexer.l:1.12 --- ircd-ircdev/ircd/ircd_lexer.l:1.11 Sat Apr 2 11:47:35 2005 +++ ircd-ircdev/ircd/ircd_lexer.l Sun Apr 24 15:18:05 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: ircd_lexer.l,v 1.11 2005/04/02 19:47:35 zolty Exp $ + * $Id: ircd_lexer.l,v 1.12 2005/04/24 22:18:05 zolty Exp $ * */ @@ -28,6 +28,7 @@ #include <stdlib.h> #include "config.h" #include "ircd.h" +#include "ircd_alloc.h" #include "ircd_string.h" #include "s_debug.h" #include "y.tab.h" @@ -204,7 +205,7 @@ QSTRING \"[^"\n]+[\"\n] %% -{QSTRING} {yytext[yyleng-1] = 0; yylval.text = yytext+1; return QSTRING;} +{QSTRING} {yytext[yyleng-1] = 0; DupString(yylval.text, yytext+1); return QSTRING;} {NUMBER} {yylval.num = strtoul(yytext, NULL, 10); return NUMBER;} {WHITE} ; {SHCOMMENT} ; Index: ircd-ircdev/ircd/ircd_parser.y diff -u ircd-ircdev/ircd/ircd_parser.y:1.18 ircd-ircdev/ircd/ircd_parser.y:1.19 --- ircd-ircdev/ircd/ircd_parser.y:1.18 Fri Apr 22 09:22:13 2005 +++ ircd-ircdev/ircd/ircd_parser.y Sun Apr 24 15:18:05 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: ircd_parser.y,v 1.18 2005/04/22 16:22:13 zolty Exp $ + * $Id: ircd_parser.y,v 1.19 2005/04/24 22:18:05 zolty Exp $ * */ %{ @@ -93,7 +93,6 @@ %token <text> QSTRING %token <num> NUMBER -%token <text> FNAME %token GENERAL %token ADMIN @@ -262,6 +261,7 @@ jupenick: NICK '=' QSTRING { addNickJupes($3); + MyFree($3); } ';'; generalblock: GENERAL '{' generalitems '}' @@ -285,16 +285,19 @@ generalname: NAME '=' QSTRING ';' { if (localConf.name == NULL) - DupString(localConf.name, $3); - else if (strcmp(localConf.name, $3)) - parse_error("Redefinition of server name %s (%s)", $3, - localConf.name); + localConf.name = $3; + else { + if (strcmp(localConf.name, $3)) + parse_error("Redefinition of server name %s (%s)", $3, + localConf.name); + MyFree($3); + } }; generaldesc: DESCRIPTION '=' QSTRING ';' { MyFree(localConf.description); - DupString(localConf.description, $3); + localConf.description = $3; ircd_strncpy(cli_info(&me), $3, REALLEN); }; @@ -307,6 +310,7 @@ memcpy(&VirtualHost_v4.addr, &addr, sizeof(addr)); else memcpy(&VirtualHost_v6.addr, &addr, sizeof(addr)); + MyFree($3); }; adminblock: ADMIN '{' adminitems '}' @@ -322,17 +326,17 @@ adminitem: adminlocation | admincontact | error; adminlocation: LOCATION '=' QSTRING ';' { - if (localConf.location1 == NULL) - DupString(localConf.location1, $3); - else if (localConf.location2 == NULL) - DupString(localConf.location2, $3); - /* Otherwise just drop it. -A1kmm */ + if (localConf.location1 == NULL) + localConf.location1 = $3; + else if (localConf.location2 == NULL) + localConf.location2 = $3; + else /* Otherwise just drop it. -A1kmm */ + MyFree($3); }; admincontact: CONTACT '=' QSTRING ';' { - if (localConf.contact != NULL) - MyFree(localConf.contact); - DupString(localConf.contact, $3); + MyFree(localConf.contact); + localConf.contact = $3; }; classblock: CLASS { @@ -366,7 +370,7 @@ classname: NAME '=' QSTRING ';' { MyFree(name); - DupString(name, $3); + name = $3; }; classpingfreq: PINGFREQ '=' timespec ';' { @@ -387,7 +391,7 @@ classusermode: USERMODE '=' QSTRING ';' { MyFree(pass); - DupString(pass, $3); + pass = $3; }; connectblock: CONNECT @@ -395,32 +399,39 @@ maxlinks = 65535; } '{' connectitems '}' { - if (name != NULL && pass != NULL && host != NULL && c_class != NULL - && !strchr(host, '*') && !strchr(host, '?')) - { - struct ConfItem *aconf = make_conf(CONF_SERVER); - aconf->name = name; - aconf->origin_name = origin; - aconf->passwd = pass; - aconf->conn_class = c_class; - aconf->address.port = port; - aconf->host = host; - aconf->maximum = maxlinks; - aconf->hub_limit = hub_limit; - lookup_confhost(aconf); - } - else - { - MyFree(name); - MyFree(pass); - MyFree(host); - MyFree(origin); - MyFree(hub_limit); - parse_error("Bad connect block"); - } - name = pass = host = origin = hub_limit = NULL; - c_class = NULL; - port = 0; + struct ConfItem *aconf = NULL; + if (name == NULL) + parse_error("Missing name in connect block"); + else if (pass == NULL) + parse_error("Missing password in connect block"); + else if (host == NULL) + parse_error("Missing host in connect block"); + else if (strchr(host, '*') || strchr(host, '?')) + parse_error("Invalid host '%s' in connect block", host); + else if (c_class == NULL) + parse_error("Missing class in connect block"); + else { + aconf = make_conf(CONF_SERVER); + aconf->name = name; + aconf->origin_name = origin; + aconf->passwd = pass; + aconf->conn_class = c_class; + aconf->address.port = port; + aconf->host = host; + aconf->maximum = maxlinks; + aconf->hub_limit = hub_limit; + lookup_confhost(aconf); + } + if (!aconf) { + MyFree(name); + MyFree(pass); + MyFree(host); + MyFree(origin); + MyFree(hub_limit); + } + name = pass = host = origin = hub_limit = NULL; + c_class = NULL; + port = 0; }';'; connectitems: connectitem connectitems | connectitem; connectitem: connectname | connectpass | connectclass | connecthost @@ -428,78 +439,73 @@ | connecthublimit | connectmaxhops | error; connectname: NAME '=' QSTRING ';' { - MyFree(name); - DupString(name, $3); + MyFree(name); + name = $3; }; connectpass: PASS '=' QSTRING ';' { - MyFree(pass); - DupString(pass, $3); + MyFree(pass); + pass = $3; }; connectclass: CLASS '=' QSTRING ';' { - c_class = find_class($3); + c_class = find_class($3); + MyFree($3); }; connecthost: HOST '=' QSTRING ';' { - MyFree(host); - DupString(host, $3); + MyFree(host); + host = $3; }; connectport: PORT '=' NUMBER ';' { - port = $3; + port = $3; }; connectvhost: VHOST '=' QSTRING ';' { - MyFree(origin); - DupString(origin, $3); + MyFree(origin); + origin = $3; }; connectleaf: LEAF ';' { - maxlinks = 0; + maxlinks = 0; }; connecthub: HUB ';' { - MyFree(hub_limit); - DupString(hub_limit, "*"); + MyFree(hub_limit); + DupString(hub_limit, "*"); }; connecthublimit: HUB '=' QSTRING ';' { - MyFree(hub_limit); - DupString(hub_limit, $3); + MyFree(hub_limit); + hub_limit = $3; }; connectmaxhops: MAXHOPS '=' expr ';' { - maxlinks = $3; + maxlinks = $3; }; -uworldblock: UWORLD '{' uworlditems '}' ';' -{ - if (name) - { - struct ConfItem *aconf = make_conf(CONF_UWORLD); - aconf->host = name; - } - else - { - MyFree(name); - parse_error("Bad UWorld block"); - } - name = NULL; -}; +uworldblock: UWORLD '{' uworlditems '}' ';'; uworlditems: uworlditem uworlditems | uworlditem; uworlditem: uworldname | error; uworldname: NAME '=' QSTRING ';' { - MyFree(name); - DupString(name, $3); + make_conf(CONF_UWORLD)->host = $3; }; operblock: OPER '{' operitems '}' ';' { - if (name && pass && host && c_class) - { - struct ConfItem *aconf = make_conf(CONF_OPERATOR); + struct ConfItem *aconf = NULL; + if (name == NULL) + parse_error("Missing name in operator block"); + else if (pass == NULL) + parse_error("Missing password in operator block"); + else if (host == NULL) + parse_error("Missing host in operator block"); + else if (c_class == NULL) + parse_error("Missing class in operator block"); + else { + aconf = make_conf(CONF_OPERATOR); aconf->name = name; aconf->passwd = pass; conf_parse_userhost(aconf, host); @@ -510,9 +516,7 @@ && !FlagHas(&c_class->privs_dirty, PRIV_PROPAGATE)) parse_error("Operator block for %s and class %s have no LOCAL setting", name, c_class->cc_name); } - else - { - parse_error("operator blocks need a name, password, class and host."); + if (!aconf) { MyFree(name); MyFree(pass); MyFree(host); @@ -527,29 +531,30 @@ opername: NAME '=' QSTRING ';' { MyFree(name); - DupString(name, $3); + name = $3; }; operpass: PASS '=' QSTRING ';' { MyFree(pass); - DupString(pass, $3); + pass = $3; }; operhost: HOST '=' QSTRING ';' { - MyFree(host); - if (!strchr($3, '@')) - { - int uh_len; - char *b = (char*) MyMalloc((uh_len = strlen($3)+3)); - ircd_snprintf(0, b, uh_len, "*@%s", $3); - host = b; - } - else - DupString(host, $3); + MyFree(host); + if (!strchr($3, '@')) + { + int uh_len; + host = (char*) MyMalloc((uh_len = strlen($3)+3)); + ircd_snprintf(0, host, uh_len, "*@%s", $3); + MyFree($3); + } + else + host = $3; }; operclass: CLASS '=' QSTRING ';' { - c_class = find_class($3); + c_class = find_class($3); + MyFree($3); }; priv: privtype '=' yesorno ';' @@ -600,13 +605,9 @@ portblock: PORT '{' portitems '}' ';' { if (port > 0 && port <= 0xFFFF) - { add_listener(port, host, pass, tconn, tping); - } else - { - parse_error("Bad port block"); - } + parse_error("Port %d is out of range", port); MyFree(host); MyFree(pass); host = pass = NULL; @@ -622,7 +623,7 @@ portvhost: VHOST '=' QSTRING ';' { MyFree(host); - DupString(host, $3); + host = $3; }; portmask: MASK '=' QSTRING ';' @@ -657,7 +658,7 @@ unsigned char addrbits = 0; if (ip && !ipmask_parse(ip, &addr, &addrbits)) { - parse_error("Invalid IP address in block"); + parse_error("Invalid IP address %s in block", ip); MyFree(username); MyFree(host); MyFree(ip); @@ -691,38 +692,40 @@ if (sep) { *sep++ = '\0'; MyFree(username); - DupString(username, $3); DupString(host, sep); + username = $3; } else { - DupString(host, $3); + host = $3; } }; clientip: IP '=' QSTRING ';' { - char *sep = strchr($3, '@'); + char *sep; + sep = strchr($3, '@'); MyFree(ip); if (sep) { *sep++ = '\0'; MyFree(username); - DupString(username, $3); DupString(ip, sep); + username = $3; } else { - DupString(ip, $3); + ip = $3; } }; clientusername: USERNAME '=' QSTRING ';' { MyFree(username); - DupString(username, $3); + username = $3; }; clientclass: CLASS '=' QSTRING ';' { c_class = find_class($3); + MyFree($3); }; clientpass: PASS '=' QSTRING ';' { MyFree(pass); - DupString(pass, $3); + pass = $3; }; clientmaxlinks: MAXLINKS '=' expr ';' { @@ -746,7 +749,7 @@ MyFree(dconf->realmask); MyFree(dconf->message); MyFree(dconf); - parse_error("Bad kill block"); + parse_error("Kill block must match on at least one of username, host or realname"); } dconf = NULL; } ';'; @@ -754,48 +757,47 @@ killitem: killuhost | killreal | killusername | killreasonfile | killreason | error; killuhost: HOST '=' QSTRING ';' { - char *u, *h; + char *h; MyFree(dconf->hostmask); MyFree(dconf->usermask); if ((h = strchr($3, '@')) == NULL) { - u = "*"; - h = $3; + DupString(dconf->usermask, "*"); + dconf->hostmask = $3; } else { - u = $3; *h++ = '\0'; + DupString(dconf->hostmask, h); + dconf->usermask = $3; } - DupString(dconf->hostmask, h); - DupString(dconf->usermask, u); ipmask_parse(dconf->hostmask, &dconf->address, &dconf->bits); }; killusername: USERNAME '=' QSTRING ';' { MyFree(dconf->usermask); - DupString(dconf->usermask, $3); + dconf->usermask = $3; }; killreal: REAL '=' QSTRING ';' { - MyFree(dconf->realmask); - DupString(dconf->realmask, $3); + MyFree(dconf->realmask); + dconf->realmask = $3; }; killreason: REASON '=' QSTRING ';' { - dconf->flags &= ~DENY_FLAGS_FILE; - MyFree(dconf->message); - DupString(dconf->message, $3); + dconf->flags &= ~DENY_FLAGS_FILE; + MyFree(dconf->message); + dconf->message = $3; }; killreasonfile: TFILE '=' QSTRING ';' { - dconf->flags |= DENY_FLAGS_FILE; - MyFree(dconf->message); - DupString(dconf->message, $3); + dconf->flags |= DENY_FLAGS_FILE; + MyFree(dconf->message); + dconf->message = $3; }; cruleblock: CRULE @@ -803,8 +805,14 @@ tconn = CRULE_AUTO; } '{' cruleitems '}' ';' { - struct CRuleNode *node; - if (host != NULL && pass != NULL && (node=crule_parse(pass)) != NULL) + struct CRuleNode *node = NULL; + if (host == NULL) + parse_error("Missing host in crule block"); + else if (pass == NULL) + parse_error("Missing rule in crule block"); + else if ((node = crule_parse(pass)) == NULL) + parse_error("Invalid rule '%s' in crule block", pass); + else { struct CRuleConf *p = (struct CRuleConf*) MyMalloc(sizeof(*p)); p->hostmask = host; @@ -814,11 +822,10 @@ p->next = cruleConfList; cruleConfList = p; } - else + if (!node) { MyFree(host); MyFree(pass); - parse_error("Bad CRule block"); } host = pass = NULL; tconn = 0; @@ -831,13 +838,13 @@ { MyFree(host); collapse($3); - DupString(host, $3); + host = $3; }; crulerule: RULE '=' QSTRING ';' { - MyFree(pass); - DupString(pass, $3); + MyFree(pass); + pass = $3; }; cruleall: ALL '=' YES ';' @@ -861,12 +868,12 @@ motditem: motdhost | motdfile | error; motdhost: HOST '=' QSTRING ';' { - DupString(host, $3); + host = $3; }; motdfile: TFILE '=' QSTRING ';' { - DupString(pass, $3); + pass = $3; }; featuresblock: FEATURES '{' featureitems '}' ';'; @@ -884,7 +891,10 @@ stringno = 2; } posextrastrings { + unsigned int ii; feature_set(NULL, (const char * const *)stringlist, stringno); + for (ii = 0; ii < stringno; ++ii) + MyFree(stringlist[ii]); }; posextrastrings: /* empty */ | extrastrings; extrastrings: extrastrings extrastring | extrastring; @@ -892,6 +902,8 @@ { if (stringno < MAX_STRINGS) stringlist[stringno++] = $1; + else + MyFree($1); }; quarantineblock: QUARANTINE '{' quarantineitems '}' ';'; @@ -899,8 +911,8 @@ quarantineitem: QSTRING '=' QSTRING ';' { struct qline *qconf = MyCalloc(1, sizeof(*qconf)); - DupString(qconf->chname, $1); - DupString(qconf->reason, $3); + qconf->chname = $1; + qconf->reason = $3; qconf->next = GlobalQuarantineList; GlobalQuarantineList = qconf; }; @@ -908,16 +920,19 @@ pseudoblock: PSEUDO QSTRING '{' { smap = MyCalloc(1, sizeof(struct s_map)); - DupString(smap->command, $2); + smap->command = $2; } pseudoitems '}' ';' { - if (!smap->name || !smap->services) - { - parse_error("pseudo commands need a service name and list of target nicks."); - return 0; - } - if (register_mapping(smap)) + int valid = 0; + + if (!smap->name) + parse_error("Missing name in pseudo %s block", smap->command); + else if (!smap->services) + parse_error("Missing nick in pseudo %s block", smap->command); + else + valid = 1; + if (valid && register_mapping(smap)) { smap->next = GlobalServiceMapList; GlobalServiceMapList = smap; @@ -942,11 +957,13 @@ pseudoitem: pseudoname | pseudoprepend | pseudonick | pseudoflags | error; pseudoname: NAME '=' QSTRING ';' { - DupString(smap->name, $3); + MyFree(smap->name); + smap->name = $3; }; pseudoprepend: PREPEND '=' QSTRING ';' { - DupString(smap->prepend, $3); + MyFree(smap->prepend); + smap->prepend = $3; }; pseudonick: NICK '=' QSTRING ';' { @@ -960,6 +977,7 @@ nh->next = smap->services; smap->services = nh; } + MyFree($3); }; pseudoflags: FAST ';' { @@ -972,11 +990,12 @@ tping = 60; } iauthitems '}' ';' { - if (!host || !port) { - parse_error("IAuth block needs a server name and port."); - return 0; - } - iauth_connect(host, port, pass, tconn, tping); + if (!host) + parse_error("Missing host in iauth block"); + else if (!port) + parse_error("Missing port in iauth block"); + else + iauth_connect(host, port, pass, tconn, tping); MyFree(pass); MyFree(host); pass = host = NULL; @@ -988,12 +1007,12 @@ iauthpass: PASS '=' QSTRING ';' { MyFree(pass); - DupString(pass, $3); + pass = $3; }; iauthhost: HOST '=' QSTRING ';' { MyFree(host); - DupString(host, $3); + host = $3; }; iauthport: PORT '=' NUMBER ';' { Index: ircd-ircdev/ircd/m_silence.c diff -u ircd-ircdev/ircd/m_silence.c:1.6 ircd-ircdev/ircd/m_silence.c:1.7 --- ircd-ircdev/ircd/m_silence.c:1.6 Mon Feb 21 02:20:04 2005 +++ ircd-ircdev/ircd/m_silence.c Sun Apr 24 15:18:06 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for SILENCE command. - * @version $Id: m_silence.c,v 1.6 2005/02/21 10:20:04 zolty Exp $ + * @version $Id: m_silence.c,v 1.7 2005/04/24 22:18:06 zolty Exp $ */ #include "config.h" @@ -58,7 +58,7 @@ * @return The new ban entry on success, NULL on failure. */ static struct Ban * -apply_silence(struct Client *sptr, const char *mask) +apply_silence(struct Client *sptr, char *mask) { struct Ban *sile; int flags; @@ -82,7 +82,7 @@ } /* Make the silence, set flags, and apply it. */ - sile = make_ban(mask); + sile = make_ban(pretty_mask(mask)); sile->flags |= flags; return apply_ban(&cli_user(sptr)->silence, sile, 1) ? NULL : sile; } Index: ircd-ircdev/ircd/m_userhost.c diff -u ircd-ircdev/ircd/m_userhost.c:1.5 ircd-ircdev/ircd/m_userhost.c:1.6 --- ircd-ircdev/ircd/m_userhost.c:1.5 Mon Jan 10 04:23:03 2005 +++ ircd-ircdev/ircd/m_userhost.c Sun Apr 24 15:18:06 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: m_userhost.c,v 1.5 2005/01/10 12:23:03 zolty Exp $ + * $Id: m_userhost.c,v 1.6 2005/04/24 22:18:06 zolty Exp $ * */ @@ -97,6 +97,13 @@ msgq_append(0, mb, "%s%s=%c%s@%s", cli_name(cptr), SeeOper(sptr,cptr) ? "*" : "", cli_user(cptr)->away ? '-' : '+', cli_user(cptr)->username, + /* Do not *EVER* change this to give opers the real host. + * Too many scripts rely on this data and can inadvertently + * publish the user's real host, thus breaking the security + * of +x. If an oper wants the real host, he should go to + * /whois to get it. + */ + /* HasHiddenHost(cptr) && (sptr != cptr) ? */ HasHiddenHost(cptr) && !IsAnOper(sptr) && (sptr != cptr) ? cli_user(cptr)->host : cli_user(cptr)->realhost); Index: ircd-ircdev/ircd/m_userip.c diff -u ircd-ircdev/ircd/m_userip.c:1.6 ircd-ircdev/ircd/m_userip.c:1.7 --- ircd-ircdev/ircd/m_userip.c:1.6 Mon Jan 10 04:23:03 2005 +++ ircd-ircdev/ircd/m_userip.c Sun Apr 24 15:18:06 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: m_userip.c,v 1.6 2005/01/10 12:23:03 zolty Exp $ + * $Id: m_userip.c,v 1.7 2005/04/24 22:18:06 zolty Exp $ * */ @@ -98,6 +98,13 @@ msgq_append(0, mb, "%s%s=%c%s@%s", cli_name(cptr), SeeOper(sptr,cptr) ? "*" : "", cli_user(cptr)->away ? '-' : '+', cli_user(cptr)->username, + /* Do not *EVER* change this to give opers the real host. + * Too many scripts rely on this data and can inadvertently + * publish the user's real host, thus breaking the security + * of +x. If an oper wants the real host, he should go to + * /whois to get it. + */ + /* HasHiddenHost(cptr) && (sptr != cptr) ? */ HasHiddenHost(cptr) && !IsAnOper(sptr) && (sptr != cptr) ? feature_str(FEAT_HIDDEN_IP) : ircd_ntoa(&cli_ip(cptr))); ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-04-28 22:00:31
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-28 22:00:20 UTC Modified files: ChangeLog ChangeLog.es TODO.es include/ddb.h include/patchlevel.h include/s_conf.h ircd/ddb.c ircd/ddb_events.c ircd/ircd.c ircd/ircd_lexer.l ircd/ircd_parser.y ircd/m_invite.c ircd/m_map.c ircd/m_whowas.c ircd/s_conf.c ircd/s_err.c ircd/s_stats.c ircd/s_user.c tools/convert-conf.py Log message: Author: zoltan <zo...@ir...> Log message: 2005-04-29 Toni García <zo...@ir...> 1.0.alpha29 * Tabla i de ilines * Tabla z de Config * Cambios en map * Cambios en parser.y ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.30 ircd-ircdev/ChangeLog:1.31 --- ircd-ircdev/ChangeLog:1.30 Sun Apr 24 15:18:05 2005 +++ ircd-ircdev/ChangeLog Thu Apr 28 14:59:58 2005 @@ -1,10 +1,16 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.30 2005/04/24 22:18:05 zolty Exp $ +# $Id: ChangeLog,v 1.31 2005/04/28 21:59:58 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-04-29 Toni García <zo...@ir...> 1.0.alpha29 + * Table i (ilines) + * Table z (config) + * Map changes + * parser.y changes + 2005-04-25 Toni García <zo...@ir...> 1.0.alpha28 * Fix bugs Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.30 ircd-ircdev/ChangeLog.es:1.31 --- ircd-ircdev/ChangeLog.es:1.30 Sun Apr 24 15:18:05 2005 +++ ircd-ircdev/ChangeLog.es Thu Apr 28 15:00:05 2005 @@ -1,10 +1,16 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.30 2005/04/24 22:18:05 zolty Exp $ +# $Id: ChangeLog.es,v 1.31 2005/04/28 22:00:05 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-04-29 Toni García <zo...@ir...> 1.0.alpha29 + * Tabla i de ilines + * Tabla z de Config + * Cambios en map + * Cambios en parser.y + 2005-04-25 Toni García <zo...@ir...> 1.0.alpha28 * Fix de bugs Index: ircd-ircdev/TODO.es diff -u ircd-ircdev/TODO.es:1.20 ircd-ircdev/TODO.es:1.21 --- ircd-ircdev/TODO.es:1.20 Wed Apr 20 15:09:46 2005 +++ ircd-ircdev/TODO.es Thu Apr 28 15:00:05 2005 @@ -1,7 +1,7 @@ # # TODO para ircd-ircdev # -# $Id: TODO.es,v 1.20 2005/04/20 22:09:46 zolty Exp $ +# $Id: TODO.es,v 1.21 2005/04/28 22:00:05 zolty Exp $ # # Insertar las nuevas entradas al principio de la lista TODO. # @@ -68,6 +68,9 @@ actualmente deja X clones para cada IP de ese rango, deberia haber alguna forma de que sea por rango. +[18:11:32] <Tor> quote opmode torcum #opers,#lala +[18:11:38] <Tor> quote opmode #opers +nk lalala +[18:14:59] <Tor> burst de aways DOCUMENTACION PENDIENTE -------------------------------------------------------------------------------------- Index: ircd-ircdev/include/ddb.h diff -u ircd-ircdev/include/ddb.h:1.5 ircd-ircdev/include/ddb.h:1.6 --- ircd-ircdev/include/ddb.h:1.5 Thu Apr 14 03:28:06 2005 +++ ircd-ircdev/include/ddb.h Thu Apr 28 15:00:07 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: ddb.h,v 1.5 2005/04/14 10:28:06 zolty Exp $ + * $Id: ddb.h,v 1.6 2005/04/28 22:00:07 zolty Exp $ * */ #ifndef INCLUDED_ddb_h @@ -45,11 +45,15 @@ #define DDB_INIT 'a' /* First table */ #define DDB_CHANDB 'c' /* ChanDB table */ +#define DDB_ILINEDB 'i' /* IlineDB table */ #define DDB_NICKDB 'n' /* NickDB table */ - +#define DDB_CONFIGDB 'z' /* ConfigDB table */ #define DDB_END 'z' /* Last table */ +#define DDB_CONFIGDB_MAX_CLONES_PER_IP "maxclones" +#define DDB_CONFIGDB_MSG_TOO_MANY_FROM_IP "msgmanyperip" + /* * PseudoBots */ @@ -120,8 +124,8 @@ extern unsigned int ddb_resident_table[DDB_TABLE_MAX]; extern unsigned int ddb_count_table[DDB_TABLE_MAX]; extern unsigned int ddb_id_table[DDB_TABLE_MAX]; -typedef void (*ddb_events_table_t)(char *, char *, int); -extern ddb_events_table_t ddb_events_table[DDB_TABLE_MAX]; +typedef void (*ddb_events_table_td)(char *, char *, int); +extern ddb_events_table_td ddb_events_table[DDB_TABLE_MAX]; extern unsigned int ddb_hashtable_hi[DDB_TABLE_MAX]; extern unsigned int ddb_hashtable_lo[DDB_TABLE_MAX]; extern int ddb_hash_register(char *key, int hash_size); Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.29 ircd-ircdev/include/patchlevel.h:1.30 --- ircd-ircdev/include/patchlevel.h:1.29 Sun Apr 24 15:18:05 2005 +++ ircd-ircdev/include/patchlevel.h Thu Apr 28 15:00:08 2005 @@ -17,10 +17,10 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: patchlevel.h,v 1.29 2005/04/24 22:18:05 zolty Exp $ + * $Id: patchlevel.h,v 1.30 2005/04/28 22:00:08 zolty Exp $ * */ -#define PATCHLEVEL ".alpha28" +#define PATCHLEVEL ".alpha29" #define RELEASE "1.0" Index: ircd-ircdev/include/s_conf.h diff -u ircd-ircdev/include/s_conf.h:1.11 ircd-ircdev/include/s_conf.h:1.12 --- ircd-ircdev/include/s_conf.h:1.11 Fri Apr 22 09:22:13 2005 +++ ircd-ircdev/include/s_conf.h Thu Apr 28 15:00:08 2005 @@ -21,7 +21,7 @@ */ /** @file s_conf.h * @brief ircd configuration file API. - * @version $Id: s_conf.h,v 1.11 2005/04/22 16:22:13 zolty Exp $ + * @version $Id: s_conf.h,v 1.12 2005/04/28 22:00:08 zolty Exp $ */ #ifndef INCLUDED_s_conf_h #define INCLUDED_s_conf_h @@ -54,6 +54,8 @@ #define CONF_OPERATOR 0x0020 /**< ConfItem describes an Operator block */ #define CONF_UWORLD 0x8000 /**< ConfItem describes a Uworld server */ +#define CONF_AUTOCONNECT 0x0001 /**< Autoconnect to a server */ + /** Indicates ConfItem types that count associated clients. */ #define CONF_CLIENT_MASK (CONF_CLIENT | CONF_OPERATOR | CONF_SERVER) @@ -85,6 +87,7 @@ time_t hold; /**< Earliest time to attempt an outbound connect on this ConfItem. */ int dns_pending; /**< A dns request is pending. */ + int flags; /**< Additional modifiers for item. */ int addrbits; /**< Number of bits valid in ConfItem::address. */ struct Privs privs; /**< Privileges for opers. */ /** Used to detect if a privilege has been set by this ConfItem. */ Index: ircd-ircdev/ircd/ddb.c diff -u ircd-ircdev/ircd/ddb.c:1.5 ircd-ircdev/ircd/ddb.c:1.6 --- ircd-ircdev/ircd/ddb.c:1.5 Thu Apr 14 03:28:06 2005 +++ ircd-ircdev/ircd/ddb.c Thu Apr 28 15:00:08 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of Distributed DataBase. - * @version $Id: ddb.c,v 1.5 2005/04/14 10:28:06 zolty Exp $ + * @version $Id: ddb.c,v 1.6 2005/04/28 22:00:08 zolty Exp $ */ #include "config.h" @@ -161,7 +161,9 @@ * y no deben ser superiores a HASHSIZE, ya que ello * solo desperdiciaria memoria. */ + ddb_resident_table[DDB_ILINEDB] = 256; ddb_resident_table[DDB_NICKDB] = 32768; + ddb_resident_table[DDB_CONFIGDB] = 256; for (table = DDB_INIT; table <= DDB_END; table++) ddb_table_init(table); @@ -230,7 +232,7 @@ strcpy(keytemp, key); while (keytemp[i]) { -/* keytemp[i] = toLower(keytemp[i]); */ +/* keytemp[i] = ToLower(keytemp[i]); */ i++; } @@ -272,7 +274,7 @@ /* while (c[i] != 0) { - k[i] = toLower(c[i]); + k[i] = ToLower(c[i]); i++; } */ @@ -520,7 +522,10 @@ { /* if (!strcmp(ddb->key, k)) */ if (!ircd_strcmp(ddb->key, k)) + { + assert(0 != ddb->content); return ddb; + } } return NULL; } @@ -559,7 +564,13 @@ char * ddb_get_botname(char *bot) { - return cli_name(&me); + struct Ddb *ddb; + + ddb = ddb_find_key(DDB_CONFIGDB, DDB_NICKSERV); + if (ddb) + return ddb->content; + else + return cli_name(&me); } Index: ircd-ircdev/ircd/ddb_events.c diff -u ircd-ircdev/ircd/ddb_events.c:1.1 ircd-ircdev/ircd/ddb_events.c:1.2 --- ircd-ircdev/ircd/ddb_events.c:1.1 Thu Apr 14 03:28:07 2005 +++ ircd-ircdev/ircd/ddb_events.c Thu Apr 28 15:00:08 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Events of Distributed DataBase. - * @version $Id: ddb_events.c,v 1.1 2005/04/14 10:28:07 zolty Exp $ + * @version $Id: ddb_events.c,v 1.2 2005/04/28 22:00:08 zolty Exp $ */ #include "config.h" @@ -41,8 +41,9 @@ static int events_init = 0; static void ddb_events_table_n(char *key, char *content, int update); +static void ddb_events_table_z(char *key, char *content, int update); -ddb_events_table_t ddb_events_table[DDB_TABLE_MAX]; +ddb_events_table_td ddb_events_table[DDB_TABLE_MAX]; void @@ -51,7 +52,9 @@ if (events_init) return; + ddb_events_table[DDB_ILINEDB] = 0; ddb_events_table[DDB_NICKDB] = ddb_events_table_n; + ddb_events_table[DDB_CONFIGDB] = ddb_events_table_z; events_init = 1; } @@ -174,3 +177,8 @@ } } } + +static void +ddb_events_table_z(char *key, char *content, int update) +{ +} Index: ircd-ircdev/ircd/ircd.c diff -u ircd-ircdev/ircd/ircd.c:1.16 ircd-ircdev/ircd/ircd.c:1.17 --- ircd-ircdev/ircd/ircd.c:1.16 Fri Apr 22 09:22:13 2005 +++ ircd-ircdev/ircd/ircd.c Thu Apr 28 15:00:08 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Entry point and other initialization functions for the daemon. - * @version $Id: ircd.c,v 1.16 2005/04/22 16:22:13 zolty Exp $ + * @version $Id: ircd.c,v 1.17 2005/04/28 22:00:08 zolty Exp $ */ #include "config.h" @@ -268,6 +268,7 @@ */ if (!(aconf->status & CONF_SERVER) || aconf->address.port == 0 + || !(aconf->flags & CONF_AUTOCONNECT) || ((ajupe = jupe_find(aconf->name)) && JupeIsActive(ajupe))) continue; Index: ircd-ircdev/ircd/ircd_lexer.l diff -u ircd-ircdev/ircd/ircd_lexer.l:1.12 ircd-ircdev/ircd/ircd_lexer.l:1.13 --- ircd-ircdev/ircd/ircd_lexer.l:1.12 Sun Apr 24 15:18:05 2005 +++ ircd-ircdev/ircd/ircd_lexer.l Thu Apr 28 15:00:08 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: ircd_lexer.l,v 1.12 2005/04/24 22:18:05 zolty Exp $ + * $Id: ircd_lexer.l,v 1.13 2005/04/28 22:00:08 zolty Exp $ * */ @@ -26,6 +26,7 @@ #include <unistd.h> #include <stdio.h> #include <stdlib.h> +#include <string.h> #include "config.h" #include "ircd.h" #include "ircd_alloc.h" @@ -102,9 +103,11 @@ TOKEN(PREPEND), TOKEN(USERMODE), TOKEN(FAST), + TOKEN(AUTOCONNECT), #undef TOKEN { "administrator", ADMIN }, { "apass_opmode", TPRIV_APASS_OPMODE }, + { "auto", AUTOCONNECT }, { "b", BYTES }, { "badchan", TPRIV_BADCHAN }, { "chan_limit", TPRIV_CHAN_LIMIT }, Index: ircd-ircdev/ircd/ircd_parser.y diff -u ircd-ircdev/ircd/ircd_parser.y:1.19 ircd-ircdev/ircd/ircd_parser.y:1.20 --- ircd-ircdev/ircd/ircd_parser.y:1.19 Sun Apr 24 15:18:05 2005 +++ ircd-ircdev/ircd/ircd_parser.y Thu Apr 28 15:00:08 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: ircd_parser.y,v 1.19 2005/04/24 22:18:05 zolty Exp $ + * $Id: ircd_parser.y,v 1.20 2005/04/28 22:00:08 zolty Exp $ * */ %{ @@ -70,7 +70,7 @@ int yylex(void); /* Now all the globals we need :/... */ - int tping, tconn, maxlinks, sendq, port, invert, stringno; + int tping, tconn, maxlinks, sendq, port, invert, stringno, flags; char *name, *pass, *host, *ip, *username, *origin, *hub_limit; char *stringlist[MAX_STRINGS]; struct ConnectionClass *c_class; @@ -157,6 +157,7 @@ %token IAUTH %token TIMEOUT %token FAST +%token AUTOCONNECT /* and now a lot of privileges... */ %token TPRIV_CHAN_LIMIT TPRIV_MODE_LCHAN TPRIV_DEOP_LCHAN TPRIV_WALK_LCHAN %token TPRIV_LOCAL_KILL TPRIV_REHASH TPRIV_RESTART TPRIV_DIE @@ -396,7 +397,8 @@ connectblock: CONNECT { - maxlinks = 65535; + maxlinks = 65535; + flags = CONF_AUTOCONNECT; } '{' connectitems '}' { struct ConfItem *aconf = NULL; @@ -409,7 +411,7 @@ else if (strchr(host, '*') || strchr(host, '?')) parse_error("Invalid host '%s' in connect block", host); else if (c_class == NULL) - parse_error("Missing class in connect block"); + parse_error("Missing or non-existent class in connect block"); else { aconf = make_conf(CONF_SERVER); aconf->name = name; @@ -420,6 +422,7 @@ aconf->host = host; aconf->maximum = maxlinks; aconf->hub_limit = hub_limit; + aconf->flags = flags; lookup_confhost(aconf); } if (!aconf) { @@ -431,12 +434,12 @@ } name = pass = host = origin = hub_limit = NULL; c_class = NULL; - port = 0; + port = flags = 0; }';'; connectitems: connectitem connectitems | connectitem; connectitem: connectname | connectpass | connectclass | connecthost | connectport | connectvhost | connectleaf | connecthub - | connecthublimit | connectmaxhops | error; + | connecthublimit | connectmaxhops | connectauto | error; connectname: NAME '=' QSTRING ';' { MyFree(name); @@ -450,6 +453,8 @@ connectclass: CLASS '=' QSTRING ';' { c_class = find_class($3); + if (!c_class) + parse_error("No such connection class '%s' for Connect block", $3); MyFree($3); }; connecthost: HOST '=' QSTRING ';' @@ -484,6 +489,8 @@ { maxlinks = $3; }; +connectauto: AUTOCONNECT '=' YES ';' { flags |= CONF_AUTOCONNECT; } + | AUTOCONNECT '=' NO ';' { flags &= ~CONF_AUTOCONNECT; }; uworldblock: UWORLD '{' uworlditems '}' ';'; uworlditems: uworlditem uworlditems | uworlditem; @@ -503,7 +510,7 @@ else if (host == NULL) parse_error("Missing host in operator block"); else if (c_class == NULL) - parse_error("Missing class in operator block"); + parse_error("Invalid or missing class in operator block"); else { aconf = make_conf(CONF_OPERATOR); aconf->name = name; @@ -554,6 +561,8 @@ operclass: CLASS '=' QSTRING ';' { c_class = find_class($3); + if (!c_class) + parse_error("No such connection class '%s' for Operator block", $3); MyFree($3); }; @@ -654,17 +663,16 @@ } '{' clientitems '}' ';' { + struct ConfItem *aconf = 0; struct irc_in_addr addr; unsigned char addrbits = 0; - if (ip && !ipmask_parse(ip, &addr, &addrbits)) { - parse_error("Invalid IP address %s in block", ip); - MyFree(username); - MyFree(host); - MyFree(ip); - MyFree(pass); - } else { - struct ConfItem *aconf = make_conf(CONF_CLIENT); + if (!c_class) + parse_error("Invalid or missing class in Client block"); + else if (ip && !ipmask_parse(ip, &addr, &addrbits)) + parse_error("Invalid IP address %s in Client block", ip); + else { + aconf = make_conf(CONF_CLIENT); aconf->username = username; aconf->host = host; if (ip) @@ -673,10 +681,16 @@ memset(&aconf->address.addr, 0, sizeof(aconf->address.addr)); aconf->addrbits = addrbits; aconf->name = ip; - aconf->conn_class = c_class ? c_class : find_class("default"); + aconf->conn_class = c_class; aconf->maximum = maxlinks; aconf->passwd = pass; } + if (!aconf) { + MyFree(username); + MyFree(host); + MyFree(ip); + MyFree(pass); + } host = NULL; username = NULL; c_class = NULL; @@ -720,6 +734,8 @@ clientclass: CLASS '=' QSTRING ';' { c_class = find_class($3); + if (!c_class) + parse_error("No such connection class '%s' for Class block", $3); MyFree($3); }; clientpass: PASS '=' QSTRING ';' Index: ircd-ircdev/ircd/m_invite.c diff -u ircd-ircdev/ircd/m_invite.c:1.9 ircd-ircdev/ircd/m_invite.c:1.10 --- ircd-ircdev/ircd/m_invite.c:1.9 Mon Mar 21 10:39:08 2005 +++ ircd-ircdev/ircd/m_invite.c Thu Apr 28 15:00:08 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: m_invite.c,v 1.9 2005/03/21 18:39:08 zolty Exp $ + * $Id: m_invite.c,v 1.10 2005/04/28 22:00:08 zolty Exp $ * */ @@ -176,24 +176,23 @@ if (cli_user(acptr)->away) send_reply(sptr, RPL_AWAY, cli_name(acptr), cli_user(acptr)->away); - if (MyConnect(acptr)) + if (MyConnect(acptr)) { add_invite(acptr, chptr); + sendcmdto_one(sptr, CMD_INVITE, acptr, "%s %H", cli_name(acptr), chptr); + } if (!IsLocalChannel(chptr->chname) || MyConnect(acptr)) { if (feature_bool(FEAT_ANNOUNCE_INVITES)) { /* Announce to channel operators. */ sendcmdto_channel_butserv_butone(&me, get_error_numeric(RPL_ISSUEDINVITE)->str, - NULL, chptr, sptr, SKIP_NONOPS, + NULL, chptr, sptr, SKIP_NONOPS, "%H %C %C :%C has been invited by %C", chptr, acptr, sptr, acptr, sptr); - /* Announce to servers with channel operators, but skip acptr, - * since they will be notified below. */ - sendcmdto_channel_servers_butone(sptr, NULL, TOK_INVITE, chptr, acptr, SKIP_NONOPS, + /* Announce to servers with channel operators. */ + sendcmdto_channel_servers_butone(sptr, NULL, TOK_INVITE, chptr, NULL, SKIP_NONOPS, "%s %H %Tu", cli_name(acptr), chptr, chptr->creationtime); } - sendcmdto_one(sptr, CMD_INVITE, acptr, "%s %H %Tu", cli_name(acptr), - chptr, chptr->creationtime); } return 0; @@ -281,8 +280,10 @@ if (is_silenced(sptr, acptr)) return 0; - if (MyConnect(acptr)) + if (MyConnect(acptr)) { add_invite(acptr, chptr); + sendcmdto_one(sptr, CMD_INVITE, acptr, "%s %H", cli_name(acptr), chptr); + } if (feature_bool(FEAT_ANNOUNCE_INVITES)) { /* Announce to channel operators. */ @@ -290,16 +291,12 @@ NULL, chptr, sptr, SKIP_NONOPS, "%H %C %C :%C has been invited by %C", chptr, acptr, sptr, acptr, sptr); - /* Announce to servers with channel operators, but skip acptr, - * since they will be notified below. */ - sendcmdto_channel_servers_butone(sptr, NULL, TOK_INVITE, chptr, acptr, SKIP_NONOPS, + /* Announce to servers with channel operators. */ + sendcmdto_channel_servers_butone(sptr, NULL, TOK_INVITE, chptr, NULL, SKIP_NONOPS, "%s %H %Tu", cli_name(acptr), chptr, chptr->creationtime); } - sendcmdto_one(sptr, CMD_INVITE, acptr, - "%s %H %Tu", - cli_name(acptr), chptr, chptr->creationtime); return 0; } Index: ircd-ircdev/ircd/m_map.c diff -u ircd-ircdev/ircd/m_map.c:1.7 ircd-ircdev/ircd/m_map.c:1.8 --- ircd-ircdev/ircd/m_map.c:1.7 Mon Mar 21 10:39:08 2005 +++ ircd-ircdev/ircd/m_map.c Thu Apr 28 15:00:09 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: m_map.c,v 1.7 2005/03/21 18:39:08 zolty Exp $ + * $Id: m_map.c,v 1.8 2005/04/28 22:00:09 zolty Exp $ * */ @@ -115,6 +115,17 @@ else { char lag[512]; + unsigned int users; + unsigned int totalusers; + unsigned int percentage; + + totalusers = UserStats.clients; + if (!totalusers) + totalusers = 1; + + users = (IsMe(server) ? UserStats.local_clients : cli_serv(server)->clients); + percentage = (10000 * users) / totalusers; + if (cli_serv(server)->lag>10000) lag[0]=0; else if (cli_serv(server)->lag<0) @@ -128,8 +139,8 @@ else chr = ""; send_reply(cptr, RPL_MAP, prompt, chr, cli_name(server), - lag, (server == &me) ? UserStats.local_clients : - cli_serv(server)->clients); + lag, users, (users == 1) ? "" : "s", + (percentage / 100), (percentage % 100)); } if (prompt_length > 0) { Index: ircd-ircdev/ircd/m_whowas.c diff -u ircd-ircdev/ircd/m_whowas.c:1.7 ircd-ircdev/ircd/m_whowas.c:1.8 --- ircd-ircdev/ircd/m_whowas.c:1.7 Fri Apr 22 09:22:13 2005 +++ ircd-ircdev/ircd/m_whowas.c Thu Apr 28 15:00:09 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: m_whowas.c,v 1.7 2005/04/22 16:22:13 zolty Exp $ + * $Id: m_whowas.c,v 1.8 2005/04/28 22:00:09 zolty Exp $ * */ @@ -137,7 +137,7 @@ { send_reply(sptr, RPL_WHOWASUSER, temp->name, temp->username, temp->hostname, temp->realname); - if (IsAnOper(sptr) && ircd_strcmp(temp->hostname, temp->realhost)) + if (IsAnOper(sptr) && temp->realhost) send_reply(sptr, RPL_WHOISACTUALLY, temp->name, temp->username, temp->realhost); send_reply(sptr, RPL_WHOISSERVER, temp->name, feature_bool(FEAT_HIS_WHOIS_SERVERNAME) && !IsOper(sptr) ? Index: ircd-ircdev/ircd/s_conf.c diff -u ircd-ircdev/ircd/s_conf.c:1.13 ircd-ircdev/ircd/s_conf.c:1.14 --- ircd-ircdev/ircd/s_conf.c:1.13 Fri Apr 22 09:22:13 2005 +++ ircd-ircdev/ircd/s_conf.c Thu Apr 28 15:00:09 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief ircd configuration file driver - * @version $Id: s_conf.c,v 1.13 2005/04/22 16:22:13 zolty Exp $ + * @version $Id: s_conf.c,v 1.14 2005/04/28 22:00:09 zolty Exp $ */ #include "config.h" @@ -30,6 +30,7 @@ #include "class.h" #include "client.h" #include "crule.h" +#include "ddb.h" #include "ircd_features.h" #include "fileio.h" #include "gline.h" @@ -46,6 +47,7 @@ #include "listener.h" #include "match.h" #include "motd.h" +#include "msg.h" #include "numeric.h" #include "numnicks.h" #include "opercmds.h" @@ -369,8 +371,34 @@ static enum AuthorizationCheckResult check_limit_and_attach(struct Client* cptr, struct ConfItem* aconf) { +#if defined(DDB) + struct Ddb *ddb; + int clones; + int maxclones; + + ddb = ddb_find_key(DDB_ILINEDB, (char *)ircd_ntoa(&cli_ip(cptr))); + if (ddb && (clones = atoi(ddb->content))) + maxclones = clones; + else if ((ddb = ddb_find_key(DDB_CONFIGDB, (char *)DDB_CONFIGDB_MAX_CLONES_PER_IP)) + && (clones = atoi(ddb->content))) + maxclones = clones; + else + maxclones = aconf->maximum; + + if (IPcheck_nr(cptr) > maxclones) + { + ddb = ddb_find_key(DDB_CONFIGDB, (char *)DDB_CONFIGDB_MSG_TOO_MANY_FROM_IP); + + sendcmdto_one(&me, CMD_NOTICE, cptr, + "In %s IRC Network only allows %d clones for your IP (%s)%s%s", + feature_str(FEAT_NETWORK), maxclones, ircd_ntoa(&cli_ip(cptr)), + ddb ? ". " : "", ddb ? ddb->content : ""); + return ACR_TOO_MANY_FROM_IP; + } +#else if (IPcheck_nr(cptr) > aconf->maximum) return ACR_TOO_MANY_FROM_IP; +#endif return attach_conf(cptr, aconf); } Index: ircd-ircdev/ircd/s_err.c diff -u ircd-ircdev/ircd/s_err.c:1.17 ircd-ircdev/ircd/s_err.c:1.18 --- ircd-ircdev/ircd/s_err.c:1.17 Fri Apr 22 09:22:13 2005 +++ ircd-ircdev/ircd/s_err.c Thu Apr 28 15:00:09 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Error handling support. - * @version $Id: s_err.c,v 1.17 2005/04/22 16:22:13 zolty Exp $ + * @version $Id: s_err.c,v 1.18 2005/04/28 22:00:09 zolty Exp $ */ #include "config.h" @@ -65,7 +65,7 @@ /* 014 */ { 0 }, /* 015 */ - { RPL_MAP, ":%s%s%s %s [%i clients]", "015" }, + { RPL_MAP, ":%s%s%s %s [%i client%s - %i.%i%%]", "015" }, /* 016 */ { RPL_MAPMORE, ":%s%s --> *more*", "016" }, /* 017 */ Index: ircd-ircdev/ircd/s_stats.c diff -u ircd-ircdev/ircd/s_stats.c:1.12 ircd-ircdev/ircd/s_stats.c:1.13 --- ircd-ircdev/ircd/s_stats.c:1.12 Fri Apr 22 09:22:13 2005 +++ ircd-ircdev/ircd/s_stats.c Thu Apr 28 15:00:09 2005 @@ -22,7 +22,7 @@ /** @file * @brief Report configuration lines and other statistics from this * server. - * @version $Id: s_stats.c,v 1.12 2005/04/22 16:22:13 zolty Exp $ + * @version $Id: s_stats.c,v 1.13 2005/04/28 22:00:09 zolty Exp $ * * Note: The info is reported in the order the server uses * it--not reversed as in ircd.conf! @@ -415,7 +415,8 @@ nowr = CurrentTime - cli_since(&me); send_reply(to, RPL_STATSUPTIME, nowr / 86400, (nowr / 3600) % 24, (nowr / 60) % 60, nowr % 60); - send_reply(to, RPL_STATSCONN, max_connection_count, max_client_count); + send_reply(to, RPL_STATSCONN, max_connection_count, max_client_count, + ServerStats->is_cl); } /** Verbosely report on servers connected to the network. Index: ircd-ircdev/ircd/s_user.c diff -u ircd-ircdev/ircd/s_user.c:1.15 ircd-ircdev/ircd/s_user.c:1.16 --- ircd-ircdev/ircd/s_user.c:1.15 Fri Apr 22 09:22:13 2005 +++ ircd-ircdev/ircd/s_user.c Thu Apr 28 15:00:09 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Miscellaneous user-related helper functions. - * @version $Id: s_user.c,v 1.15 2005/04/22 16:22:13 zolty Exp $ + * @version $Id: s_user.c,v 1.16 2005/04/28 22:00:09 zolty Exp $ */ #include "config.h" @@ -432,7 +432,7 @@ { last_too_many1 = CurrentTime; sendto_opmask_butone(0, SNO_TOOMANY, "Too many connections in " - "class %i for %s.", get_client_class(sptr), + "class %s for %s.", get_client_class(sptr), get_client_name(sptr, SHOW_IP)); } ++ServerStats->is_ref; @@ -613,12 +613,32 @@ /* * Set user's initial modes */ - parv[0] = (char*)nick; - parv[1] = (char*)nick; - parv[2] = (char*)client_get_default_umode(sptr); - parv[3] = NULL; /* needed in case of +s */ - set_user_mode(sptr, sptr, 3, parv); - ClearHiddenHost(sptr); /* just in case somebody stuck +x in there */ + tmpstr = (char*)client_get_default_umode(sptr); + if (tmpstr) for (; *tmpstr; ++tmpstr) { + switch (*tmpstr) { + case 's': + if (!feature_bool(FEAT_HIS_SNOTICES_OPER_ONLY)) { + SetServNotice(sptr); + set_snomask(sptr, SNO_DEFAULT, SNO_SET); + } + break; + case 'w': + if (!feature_bool(FEAT_WALLOPS_OPER_ONLY)) + SetWallops(sptr); + break; + case 'i': + SetInvisible(sptr); + ++UserStats.inv_clients; + break; + case 'd': + SetDeaf(sptr); + break; + case 'g': + if (!feature_bool(FEAT_HIS_DEBUG_OPER_ONLY)) + SetDebug(sptr); + break; + } + } } else /* if (IsServer(cptr)) */ @@ -678,9 +698,14 @@ iptobase64(ip_base64, &cli_ip(sptr), sizeof(ip_base64), 0), NumNick(sptr), cli_info(sptr)); - /* Send server notice mask to client */ - if (MyUser(sptr) && (cli_snomask(sptr) != SNO_DEFAULT) && HasFlag(sptr, FLAG_SERVNOTICE)) - send_reply(sptr, RPL_SNOMASK, cli_snomask(sptr), cli_snomask(sptr)); + /* Send user mode to client */ + if (MyUser(sptr)) + { + static struct Flags flags; /* automatically initialized to zeros */ + send_umode(cptr, sptr, &flags, ALL_UMODES); + if ((cli_snomask(sptr) != SNO_DEFAULT) && HasFlag(sptr, FLAG_SERVNOTICE)) + send_reply(sptr, RPL_SNOMASK, cli_snomask(sptr), cli_snomask(sptr)); + } /* Notify new local user */ check_status_watch(sptr, RPL_LOGON); Index: ircd-ircdev/tools/convert-conf.py diff -u ircd-ircdev/tools/convert-conf.py:1.4 ircd-ircdev/tools/convert-conf.py:1.5 --- ircd-ircdev/tools/convert-conf.py:1.4 Fri Apr 22 09:22:13 2005 +++ ircd-ircdev/tools/convert-conf.py Thu Apr 28 15:00:09 2005 @@ -19,7 +19,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: convert-conf.py,v 1.4 2005/04/22 16:22:13 zolty Exp $ +# $Id: convert-conf.py,v 1.5 2005/04/28 22:00:09 zolty Exp $ # # Configuration file converter from 2.10.11 to 2.10.12 format @@ -70,6 +70,10 @@ "HIS_SERVERINFO", "HIS_URLSERVERS" ] +deprecated_features = [ + "VIRTUAL_HOST", + ] + # [ "old feature" => ( local oper priv, global oper priv ) ] # None means don't add this feature_to_priv = { @@ -209,7 +213,7 @@ opers.append(parts) cvtmap = { - 'M': ('General', ('name', 'vhost', 'description', '', '!numeric'), ''), + 'M': ('General', ('name', 'vhost', 'description', '-', '!numeric'), ''), 'A': ('Admin', ('location', 'contact', 'contact'), ''), 'Y': ('Class', ('name', '!pingfreq', '!connectfreq', '!maxlinks', '!sendq'), ''), 'I': do_iline, @@ -283,6 +287,11 @@ for item in items: if idx >= len(parts): break + # This field is ignored + if parts[idx]=="-": + continue + if len(parts[idx]) and not len(item): + sys.stderr.write("WARNING: Unknown field %i on line %i\n" % (idx,lno)) if len(parts[idx]) and len(item): if item[0] == '!': print "\t%s = %s;" % (item[1:], istr(parts[idx])) @@ -344,13 +353,18 @@ print "\tname = \"%s\";" % qstr(connects[i]["name"]) print "\thost = \"%s\";" % qstr(connects[i]["host"]) print "\tpassword = \"%s\";" % qstr(connects[i]["password"]) - if connects[i]["port"]: + if connects[i].has_key("port"): print "\tport = %s;" % connects[i]["port"] print "\tclass = \"%s\";" % qstr(connects[i]["class"]) if connects[i].has_key("hub"): print "\thub = \"%s\";" % qstr(connects[i]["hub"]) else: print "\tleaf;" + if not connects[i].has_key("port"): + print "# You can now specify ports without implying autoconnect" + print "#\tport = 4400;" + print "\tautoconnect = no;" + sys.stderr.write("NOTE: You should add a port for \"%s\", autoconnect is now specified seperately\n" % qstr(connects[i]["name"])) print "};" print @@ -367,8 +381,10 @@ print "# Option converted to locop privilege" elif name.startswith("OPER_"): print "# Option converted to oper privilege" + elif name in deprecated_features: + print "# Option is deprecated" else: - print "# Option no longer exists in 2.10.12" + print "# Unknown option" print "#\t\"%s\" = \"%s\";" % (qstr(name), qstr(val... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-04-28 22:02:54
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-28 22:02:47 UTC Modified files: TODO.es Log message: Actualizacion TODO ---------------------- diff included ---------------------- Index: ircd-ircdev/TODO.es diff -u ircd-ircdev/TODO.es:1.21 ircd-ircdev/TODO.es:1.22 --- ircd-ircdev/TODO.es:1.21 Thu Apr 28 15:00:05 2005 +++ ircd-ircdev/TODO.es Thu Apr 28 15:02:37 2005 @@ -1,7 +1,7 @@ # # TODO para ircd-ircdev # -# $Id: TODO.es,v 1.21 2005/04/28 22:00:05 zolty Exp $ +# $Id: TODO.es,v 1.22 2005/04/28 22:02:37 zolty Exp $ # # Insertar las nuevas entradas al principio de la lista TODO. # @@ -9,11 +9,9 @@ URGENTE -------------------------------------------------------------------------------------- - [D] Implementar el protocolo DDB (ddb_db). - - [D] Implementar tabla i de Ilines - [D] Implementar tabla o de Operadores - [D] Implementar tabla p de Privilegios - [D] Implementar tabla f de Features - - [D] Implementar tabla (a definir) de diversas configuraciones ALTA PRIORIDAD -------------------------------------------------------------------------------------- @@ -23,7 +21,6 @@ - [G] ¿Modo +M de canales?. - [G] Poner uuna Feature para elegir entre salir o no el nombre del servidor en los notices de auth y dnslookup al conectar. - - [G] Completar el MAP, salir numeric, nº de usuarios, porcentajes. - [D] Virtualhost personalizado a traves de la DDB. - [D] U-lines a traves de la DDB. ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-05-01 12:59:58
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-05-01 12:59:50 UTC Modified files: ChangeLog ChangeLog.es include/patchlevel.h ircd/Makefile.in ircd/s_conf.c Added files: ircd/ddb_db_native.c Log message: Author: zoltan <zo...@ir...> Log message: 2005-05-01 Toni García <zo...@ir...> 1.0.alpha30 * DB nativo: Lectura y escritura de hashes ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.31 ircd-ircdev/ChangeLog:1.32 --- ircd-ircdev/ChangeLog:1.31 Thu Apr 28 14:59:58 2005 +++ ircd-ircdev/ChangeLog Sun May 1 05:59:37 2005 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.31 2005/04/28 21:59:58 zolty Exp $ +# $Id: ChangeLog,v 1.32 2005/05/01 12:59:37 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-05-01 Toni García <zo...@ir...> 1.0.alpha30 + * Native DB: Hashes read and save + 2005-04-29 Toni García <zo...@ir...> 1.0.alpha29 * Table i (ilines) * Table z (config) Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.31 ircd-ircdev/ChangeLog.es:1.32 --- ircd-ircdev/ChangeLog.es:1.31 Thu Apr 28 15:00:05 2005 +++ ircd-ircdev/ChangeLog.es Sun May 1 05:59:39 2005 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.31 2005/04/28 22:00:05 zolty Exp $ +# $Id: ChangeLog.es,v 1.32 2005/05/01 12:59:39 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-05-01 Toni García <zo...@ir...> 1.0.alpha30 + * DB nativo: Lectura y escritura de hashes + 2005-04-29 Toni García <zo...@ir...> 1.0.alpha29 * Tabla i de ilines * Tabla z de Config Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.30 ircd-ircdev/include/patchlevel.h:1.31 --- ircd-ircdev/include/patchlevel.h:1.30 Thu Apr 28 15:00:08 2005 +++ ircd-ircdev/include/patchlevel.h Sun May 1 05:59:39 2005 @@ -17,10 +17,10 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: patchlevel.h,v 1.30 2005/04/28 22:00:08 zolty Exp $ + * $Id: patchlevel.h,v 1.31 2005/05/01 12:59:39 zolty Exp $ * */ -#define PATCHLEVEL ".alpha29" +#define PATCHLEVEL ".alpha30" #define RELEASE "1.0" Index: ircd-ircdev/ircd/Makefile.in diff -u ircd-ircdev/ircd/Makefile.in:1.23 ircd-ircdev/ircd/Makefile.in:1.24 --- ircd-ircdev/ircd/Makefile.in:1.23 Thu Apr 14 03:28:06 2005 +++ ircd-ircdev/ircd/Makefile.in Sun May 1 05:59:39 2005 @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA -# $Id: Makefile.in,v 1.23 2005/04/14 10:28:06 zolty Exp $ +# $Id: Makefile.in,v 1.24 2005/05/01 12:59:39 zolty Exp $ #### Start of system configuration section. #### @@ -93,7 +93,7 @@ DDB_SRC = \ ddb.c \ - ddb_db_template.c \ + ddb_db_native.c \ ddb_events.c\ m_db.c \ m_dbq.c \ Index: ircd-ircdev/ircd/ddb_db_native.c diff -u /dev/null ircd-ircdev/ircd/ddb_db_native.c:1.1 --- /dev/null Sun May 1 05:59:50 2005 +++ ircd-ircdev/ircd/ddb_db_native.c Sun May 1 05:59:40 2005 @@ -0,0 +1,142 @@ +/* + * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ddb_db_native.c + * + * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2004-2005 Toni Garcia (zoltan) <zo...@ir...> + * Copyright (C) 1999-2003 Jesus Cea Avion <jc...@ar...> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +/** @file + * @brief Native DataBase implementation of Distributed DataBase. + * @version $Id: ddb_db_native.c,v 1.1 2005/05/01 12:59:40 zolty Exp $ + */ +#include "config.h" + +#include "ddb.h" +#include "ircd_features.h" +#include "numnicks.h" + +#include <fcntl.h> +#include <stdio.h> +#include <string.h> +#include <unistd.h> +/* +#include <stdlib.h> +#include <sys/mman.h> +#include <sys/stat.h> +*/ + + +int +ddb_db_open(unsigned char table, unsigned int id, struct ddb_memory_table *mt) +{ + return 1; +} + + +void ddb_db_close(struct ddb_memory_table *mt) +{ +} + +int ddb_db_read(struct ddb_memory_table *mt, char *mask, char *id, char *key, char *content) +{ + return 1; +} + +void ddb_db_write(unsigned char table, char *mask, unsigned int id, char *key, char *content) +{ +} + +void ddb_db_drop(unsigned char table) +{ +} + +void +ddb_db_compact(unsigned char table, char *mask, unsigned int id, char *comment) +{ + +} + + + +void +ddb_hash_read(unsigned char table, unsigned int *hi, unsigned int *lo) +{ + char path[1024]; + char c; + int handle; + + sprintf(path, "%s/hashes", feature_str(FEAT_DDBPATH)); + + handle = open(path, O_RDONLY, S_IRUSR | S_IWUSR); + if (handle == -1) + { + *hi = *lo = 0; + return; + } + + if (lseek(handle, (15 * (table - DDB_INIT)) + 2, SEEK_SET) == -1) + ddb_die("Error when reading table %c hashes (LSEEK)", table); + + read(handle, path, 12); + close(handle); + alarm(0); + + path[12] = '\0'; + c = path[6]; + path[6] = '\0'; + *hi = base64toint(path); + path[6] = c; + *lo = base64toint(path + 6); +} + +void +ddb_hash_write(unsigned char table) +{ + char path[1024]; + char hash[20]; + int handle; + + sprintf(path, "%s/hashes", feature_str(FEAT_DDBPATH)); + alarm(3); + handle = open(path, O_WRONLY, S_IRUSR | S_IWUSR); + if (handle == -1) + { + unsigned char tabletemp; + handle = open(path, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR); + if (handle == -1) + ddb_die("Error when saving table %c hashes (OPEN)", table); + + for (tabletemp = DDB_INIT; tabletemp <= DDB_END; tabletemp++) + { + sprintf(hash, "%c AAAAAAAAAAAA\n", tabletemp); + write(handle, hash, 15); + } + } + + if (lseek(handle, (15 * (table - DDB_INIT)), SEEK_SET) == -1) + ddb_die("Error when saving table %c hashes (LSEEK)", table); + + inttobase64(hash, ddb_hashtable_hi[table], 6); + inttobase64(hash + 6, ddb_hashtable_lo[table], 6); + sprintf(path, "%c %s\n", table, hash); + if (write(handle, path, strlen(path)) == -1) + ddb_die("Error when saving table %c hashes (WRITE)", table); + close(handle); + alarm(0); +} + Index: ircd-ircdev/ircd/s_conf.c diff -u ircd-ircdev/ircd/s_conf.c:1.14 ircd-ircdev/ircd/s_conf.c:1.15 --- ircd-ircdev/ircd/s_conf.c:1.14 Thu Apr 28 15:00:09 2005 +++ ircd-ircdev/ircd/s_conf.c Sun May 1 05:59:40 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief ircd configuration file driver - * @version $Id: s_conf.c,v 1.14 2005/04/28 22:00:09 zolty Exp $ + * @version $Id: s_conf.c,v 1.15 2005/05/01 12:59:40 zolty Exp $ */ #include "config.h" @@ -390,8 +390,8 @@ ddb = ddb_find_key(DDB_CONFIGDB, (char *)DDB_CONFIGDB_MSG_TOO_MANY_FROM_IP); sendcmdto_one(&me, CMD_NOTICE, cptr, - "In %s IRC Network only allows %d clones for your IP (%s)%s%s", - feature_str(FEAT_NETWORK), maxclones, ircd_ntoa(&cli_ip(cptr)), + "%C :In the %s IRC Network only allows %d clones for your IP (%s)%s%s", + cptr, feature_str(FEAT_NETWORK), maxclones, ircd_ntoa(&cli_ip(cptr)), ddb ? ". " : "", ddb ? ddb->content : ""); return ACR_TOO_MANY_FROM_IP; } ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-05-07 12:43:48
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-05-07 12:43:39 UTC Modified files: ChangeLog ChangeLog.es include/ddb.h include/patchlevel.h ircd/Makefile.in ircd/ddb.c ircd/ddb_db_native.c ircd/ircd.c ircd/m_db.c Log message: Author: zoltan <zo...@ir...> Log message: 2005-05-07 Toni García <zo...@ir...> 1.0.alpha31 * DB nativo: Lectura y escritura de tablas * DB Burst ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.32 ircd-ircdev/ChangeLog:1.33 --- ircd-ircdev/ChangeLog:1.32 Sun May 1 05:59:37 2005 +++ ircd-ircdev/ChangeLog Sat May 7 05:43:28 2005 @@ -1,10 +1,14 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.32 2005/05/01 12:59:37 zolty Exp $ +# $Id: ChangeLog,v 1.33 2005/05/07 12:43:28 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-05-07 Toni García <zo...@ir...> 1.0.alpha31 + * Native DB: Tables read and save + * Burst DB + 2005-05-01 Toni García <zo...@ir...> 1.0.alpha30 * Native DB: Hashes read and save Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.32 ircd-ircdev/ChangeLog.es:1.33 --- ircd-ircdev/ChangeLog.es:1.32 Sun May 1 05:59:39 2005 +++ ircd-ircdev/ChangeLog.es Sat May 7 05:43:28 2005 @@ -1,10 +1,14 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.32 2005/05/01 12:59:39 zolty Exp $ +# $Id: ChangeLog.es,v 1.33 2005/05/07 12:43:28 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-05-07 Toni García <zo...@ir...> 1.0.alpha31 + * DB nativo: Lectura y escritura de tablas + * DB Burst + 2005-05-01 Toni García <zo...@ir...> 1.0.alpha30 * DB nativo: Lectura y escritura de hashes Index: ircd-ircdev/include/ddb.h diff -u ircd-ircdev/include/ddb.h:1.6 ircd-ircdev/include/ddb.h:1.7 --- ircd-ircdev/include/ddb.h:1.6 Thu Apr 28 15:00:07 2005 +++ ircd-ircdev/include/ddb.h Sat May 7 05:43:28 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: ddb.h,v 1.6 2005/04/28 22:00:07 zolty Exp $ + * $Id: ddb.h,v 1.7 2005/05/07 12:43:28 zolty Exp $ * */ #ifndef INCLUDED_ddb_h @@ -69,19 +69,18 @@ struct Ddb *next; }; -#if 0 -struct portable_stat -{ +struct ddb_stat { dev_t dev; /* ID of device containing a directory entry for this file */ ino_t ino; /* Inode number */ off_t size; /* File size in bytes */ time_t mtime; /* Time of last data modification */ -} -#endif - +}; +/* + * ddb_db_native + */ struct ddb_memory_table { - struct stat status; + struct ddb_stat file_stat; char *position; /* Posicion */ char *point_r; /* Lectura */ #if 0 @@ -89,30 +88,6 @@ #endif }; -#if 0 -struct db_file__ { - char *map_p; lo mismo que position - struct stat estado; - char *read_p; -}; -estado.st_size - -struct stat -{ - st_size - st_mtime -} - -struct portable_stat -{ - dev_t dev; /* ID of device containing a directory -entry for this file */ - ino_t ino; /* Inode number */ - off_t size; /* File size in bytes */ - time_t mtime; /* Time of last data modification */ -} -#endif - #define DdbMalloc(x) MyMalloc(x) #define DdbFree(x) MyFree(x) @@ -121,6 +96,7 @@ * Prototypes */ extern struct Ddb **ddb_data_table[DDB_TABLE_MAX]; +extern struct ddb_stat ddb_stats_table[DDB_TABLE_MAX]; extern unsigned int ddb_resident_table[DDB_TABLE_MAX]; extern unsigned int ddb_count_table[DDB_TABLE_MAX]; extern unsigned int ddb_id_table[DDB_TABLE_MAX]; @@ -136,10 +112,8 @@ extern void ddb_init(void); extern void ddb_events_init(void); +extern void ddb_end(void); -/* -extern int ddb_read(struct ddb_memory_table *dump, char *buf); -*/ extern void ddb_new_register(struct Client *cptr, unsigned char table, char *mask, unsigned int id, char *key, char *content); extern void ddb_drop(unsigned char table); extern void ddb_drop_memory(unsigned char table, int events); @@ -157,15 +131,15 @@ extern void ddb_report_stats(struct Client* to, const struct StatDesc* sd, char* param); /* Externs de ddb_db_*.c */ -extern int ddb_db_open(unsigned char table, unsigned int id, struct ddb_memory_table *mt); -extern void ddb_db_close(struct ddb_memory_table *mt); +extern void ddb_db_init(void); +extern int ddb_db_read(struct Client *cptr, unsigned char table, unsigned int id, int count); extern void ddb_db_write(unsigned char table, char *mask, unsigned int id, char *key, char *content); extern void ddb_db_drop(unsigned char table); extern void ddb_compact(unsigned char table, char *mask, unsigned int id, char *comment); extern void ddb_hash_read(unsigned char table, unsigned int *hi, unsigned int *lo); extern void ddb_hash_write(unsigned char table); +extern void ddb_db_end(void); #endif /* defined(DDB) */ #endif /* INCLUDED_ddb_h */ - Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.31 ircd-ircdev/include/patchlevel.h:1.32 --- ircd-ircdev/include/patchlevel.h:1.31 Sun May 1 05:59:39 2005 +++ ircd-ircdev/include/patchlevel.h Sat May 7 05:43:28 2005 @@ -17,10 +17,10 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: patchlevel.h,v 1.31 2005/05/01 12:59:39 zolty Exp $ + * $Id: patchlevel.h,v 1.32 2005/05/07 12:43:28 zolty Exp $ * */ -#define PATCHLEVEL ".alpha30" +#define PATCHLEVEL ".alpha31" #define RELEASE "1.0" Index: ircd-ircdev/ircd/Makefile.in diff -u ircd-ircdev/ircd/Makefile.in:1.24 ircd-ircdev/ircd/Makefile.in:1.25 --- ircd-ircdev/ircd/Makefile.in:1.24 Sun May 1 05:59:39 2005 +++ ircd-ircdev/ircd/Makefile.in Sat May 7 05:43:29 2005 @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA -# $Id: Makefile.in,v 1.24 2005/05/01 12:59:39 zolty Exp $ +# $Id: Makefile.in,v 1.25 2005/05/07 12:43:29 zolty Exp $ #### Start of system configuration section. #### @@ -394,60 +394,71 @@ # DO NOT DELETE THIS LINE (or the blank line after it) -- make depend depends on them. +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" IPcheck.o: IPcheck.c ../config.h ../include/IPcheck.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ ../include/capab.h ../include/ircd.h ../include/struct.h \ ../include/match.h ../include/msg.h ../include/numnicks.h \ - ../include/ircd_alloc.h ../include/ircd_features.h \ - ../include/ircd_log.h ../include/s_debug.h ../include/s_user.h \ - ../include/send.h + ../include/ircd_alloc.h ../include/ircd_events.h \ + ../include/ircd_features.h ../include/ircd_log.h ../include/s_debug.h \ + ../include/s_user.h ../include/send.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" channel.o: channel.c ../config.h ../include/channel.h \ ../include/ircd_defs.h ../include/res.h ../include/client.h \ ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ ../include/ircd_handler.h ../include/capab.h \ ../include/destruct_event.h ../include/hash.h ../include/ircd.h \ ../include/struct.h ../include/ircd_alloc.h ../include/ircd_chattr.h \ - ../include/ircd_features.h ../include/ircd_log.h \ + ../include/ircd_defs.h ../include/ircd_features.h ../include/ircd_log.h \ ../include/ircd_reply.h ../include/ircd_snprintf.h \ ../include/ircd_string.h ../include/list.h ../include/match.h \ - ../include/msg.h ../include/numeric.h ../include/numnicks.h \ - ../include/querycmds.h ../include/s_bsd.h ../include/s_conf.h \ + ../include/msg.h ../include/msgq.h ../include/numeric.h \ + ../include/numnicks.h ../include/querycmds.h ../include/ircd_features.h \ + ../include/s_bsd.h ../include/s_conf.h ../include/client.h \ ../include/s_debug.h ../include/s_misc.h ../include/s_user.h \ - ../include/send.h ../include/sys.h ../include/whowas.h + ../include/send.h ../include/struct.h ../include/sys.h \ + ../include/whowas.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" class.o: class.c ../config.h ../include/class.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ - ../include/capab.h ../include/ircd.h ../include/struct.h \ - ../include/ircd_alloc.h ../include/ircd_features.h \ + ../include/capab.h ../include/client.h ../include/ircd.h \ + ../include/struct.h ../include/ircd_alloc.h ../include/ircd_features.h \ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/list.h ../include/numeric.h \ ../include/s_conf.h ../include/s_debug.h ../include/send.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" client.o: client.c ../config.h ../include/client.h ../include/ircd_defs.h \ ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ ../include/ircd_handler.h ../include/res.h ../include/capab.h \ - ../include/class.h ../include/ircd.h ../include/struct.h \ - ../include/ircd_features.h ../include/ircd_log.h \ - ../include/ircd_reply.h ../include/list.h ../include/numeric.h \ - ../include/s_conf.h ../include/s_debug.h ../include/send.h + ../include/class.h ../include/client.h ../include/ircd.h \ + ../include/struct.h ../include/ircd_features.h ../include/ircd_log.h \ + ../include/ircd_reply.h ../include/list.h ../include/msgq.h \ + ../include/numeric.h ../include/s_conf.h ../include/s_debug.h \ + ../include/send.h ../include/struct.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" crule.o: crule.c ../config.h ../include/crule.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ ../include/capab.h ../include/ircd.h ../include/struct.h \ ../include/ircd_alloc.h ../include/ircd_chattr.h \ ../include/ircd_string.h ../include/match.h ../include/s_bsd.h \ - ../include/s_debug.h + ../include/s_debug.h ../include/struct.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" dbuf.o: dbuf.c ../config.h ../include/dbuf.h ../include/ircd_alloc.h \ ../include/ircd_chattr.h ../include/ircd_features.h \ ../include/ircd_log.h ../include/send.h ../include/sys.h -ddb.o: ddb.c ../config.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" destruct_event.o: destruct_event.c ../config.h ../include/channel.h \ ../include/ircd_defs.h ../include/res.h ../include/s_debug.h \ ../include/ircd_alloc.h ../include/ircd.h ../include/struct.h \ ../include/ircd_events.h ../include/ircd_log.h ../include/send.h \ ../include/msg.h ../include/ircd_handler.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" fileio.o: fileio.c ../config.h ../include/fileio.h \ ../include/ircd_alloc.h ../include/ircd_log.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" gline.o: gline.c ../config.h ../include/gline.h ../include/res.h \ ../include/client.h ../include/ircd_defs.h ../include/dbuf.h \ ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ @@ -457,67 +468,79 @@ ../include/ircd_snprintf.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/match.h ../include/numeric.h \ ../include/s_bsd.h ../include/s_debug.h ../include/s_misc.h \ - ../include/s_stats.h ../include/send.h ../include/msg.h \ - ../include/numnicks.h ../include/whocmds.h + ../include/s_stats.h ../include/send.h ../include/struct.h \ + ../include/msg.h ../include/numnicks.h ../include/whocmds.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" hash.o: hash.c ../config.h ../include/hash.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ - ../include/capab.h ../include/channel.h ../include/ircd_alloc.h \ - ../include/ircd_chattr.h ../include/ircd_log.h ../include/ircd_reply.h \ - ../include/ircd_string.h ../include/ircd.h ../include/struct.h \ - ../include/msg.h ../include/numeric.h ../include/random.h \ - ../include/send.h ../include/sys.h ../include/watch.h + ../include/capab.h ../include/channel.h ../include/ddb.h ../config.h \ + ../include/client.h ../include/ircd_alloc.h ../include/ircd_chattr.h \ + ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ + ../include/ircd.h ../include/struct.h ../include/msg.h \ + ../include/numeric.h ../include/random.h ../include/send.h \ + ../include/struct.h ../include/sys.h ../include/watch.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ircd.o: ircd.c ../config.h ../include/ircd.h ../include/struct.h \ ../include/ircd_defs.h ../include/IPcheck.h ../include/class.h \ ../include/client.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ - ../include/capab.h ../include/crule.h ../include/destruct_event.h \ + ../include/capab.h ../include/client.h ../include/crule.h \ + ../include/ddb.h ../config.h ../include/destruct_event.h \ ../include/channel.h ../include/hash.h ../include/ircd_alloc.h \ - ../include/ircd_crypt.h ../include/ircd_features.h \ - ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_signal.h \ + ../include/ircd_crypt.h ../include/ircd_events.h \ + ../include/ircd_features.h ../include/ircd_log.h \ + ../include/ircd_reply.h ../include/ircd_signal.h \ ../include/ircd_string.h ../include/ircd_chattr.h ../include/jupe.h \ ../include/list.h ../include/match.h ../include/motd.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/opercmds.h \ - ../include/parse.h ../include/s_auth.h ../include/s_bsd.h \ - ../include/s_conf.h ../include/s_debug.h ../include/s_misc.h \ - ../include/s_stats.h ../include/send.h ../include/sys.h \ - ../include/uping.h ../include/userload.h ../include/version.h \ - ../include/whowas.h + ../include/parse.h ../include/res.h ../include/s_auth.h \ + ../include/s_bsd.h ../include/s_conf.h ../include/s_debug.h \ + ../include/s_misc.h ../include/s_stats.h ../include/send.h \ + ../include/sys.h ../include/uping.h ../include/userload.h \ + ../include/version.h ../include/whowas.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ircd_alloc.o: ircd_alloc.c ../config.h ../include/ircd_alloc.h \ ../include/ircd_log.h ../include/ircd_string.h ../include/ircd_chattr.h \ ../include/s_debug.h ../include/ircd_defs.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ircd_auth.o: ircd_auth.c ../config.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ ../include/capab.h ../include/ircd_alloc.h ../include/ircd_auth.h \ - ../include/ircd_features.h ../include/ircd_log.h \ - ../include/ircd_osdep.h ../include/ircd_snprintf.h \ - ../include/ircd_string.h ../include/ircd_chattr.h ../include/ircd.h \ - ../include/struct.h ../include/msg.h ../include/s_bsd.h \ + ../include/ircd_events.h ../include/ircd_features.h \ + ../include/ircd_log.h ../include/ircd_osdep.h \ + ../include/ircd_snprintf.h ../include/ircd_string.h \ + ../include/ircd_chattr.h ../include/ircd.h ../include/struct.h \ + ../include/msg.h ../include/msgq.h ../include/res.h ../include/s_bsd.h \ ../include/s_debug.h ../include/s_misc.h ../include/s_user.h \ ../include/send.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ircd_crypt.o: ircd_crypt.c ../config.h ../include/ircd_crypt.h \ ../include/ircd_alloc.h ../include/ircd_features.h \ ../include/ircd_log.h ../include/ircd_string.h ../include/ircd_chattr.h \ ../include/s_debug.h ../include/ircd_defs.h \ ../include/ircd_crypt_native.h ../include/ircd_crypt_plain.h \ ../include/ircd_crypt_smd5.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ircd_events.o: ircd_events.c ../config.h ../include/ircd_events.h \ ../include/ircd.h ../include/struct.h ../include/ircd_defs.h \ ../include/ircd_alloc.h ../include/ircd_log.h \ ../include/ircd_snprintf.h ../include/s_debug.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ircd_features.o: ircd_features.c ../config.h ../include/ircd_features.h \ ../include/channel.h ../include/ircd_defs.h ../include/res.h \ ../include/class.h ../include/client.h ../include/dbuf.h \ ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ - ../include/capab.h ../include/hash.h ../include/ircd.h \ - ../include/struct.h ../include/ircd_alloc.h ../include/ircd_log.h \ - ../include/ircd_reply.h ../include/ircd_string.h \ + ../include/capab.h ../include/client.h ../include/hash.h \ + ../include/ircd.h ../include/struct.h ../include/ircd_alloc.h \ + ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/match.h ../include/motd.h \ ../include/msg.h ../include/numeric.h ../include/numnicks.h \ ../include/random.h ../include/s_bsd.h ../include/s_debug.h \ ../include/s_misc.h ../include/s_stats.h ../include/send.h \ - ../include/sys.h ../include/whowas.h + ../include/struct.h ../include/sys.h ../include/whowas.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ircd_log.o: ircd_log.c ../config.h ../include/ircd_log.h \ ../include/client.h ../include/ircd_defs.h ../include/dbuf.h \ ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ @@ -525,7 +548,8 @@ ../include/ircd_reply.h ../include/ircd_snprintf.h \ ../include/ircd_string.h ../include/ircd_chattr.h ../include/ircd.h \ ../include/struct.h ../include/numeric.h ../include/s_debug.h \ - ../include/send.h + ../include/send.h ../include/struct.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ircd_relay.o: ircd_relay.c ../config.h ../include/ircd_relay.h \ ../include/channel.h ../include/ircd_defs.h ../include/res.h \ ../include/client.h ../include/dbuf.h ../include/msgq.h \ @@ -536,13 +560,16 @@ ../include/match.h ../include/msg.h ../include/numeric.h \ ../include/numnicks.h ../include/s_debug.h ../include/s_misc.h \ ../include/s_user.h ../include/send.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ircd_reply.o: ircd_reply.c ../config.h ../include/ircd_reply.h \ ../include/client.h ../include/ircd_defs.h ../include/dbuf.h \ ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ ../include/res.h ../include/capab.h ../include/ircd.h \ ../include/struct.h ../include/ircd_log.h ../include/ircd_snprintf.h \ - ../include/msg.h ../include/numeric.h ../include/s_conf.h \ - ../include/s_debug.h ../include/send.h + ../include/msg.h ../include/msgq.h ../include/numeric.h \ + ../include/s_conf.h ../include/client.h ../include/s_debug.h \ + ../include/send.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ircd_res.o: ircd_res.c ../include/client.h ../include/ircd_defs.h \ ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ ../config.h ../include/ircd_handler.h ../include/res.h \ @@ -553,25 +580,32 @@ ../include/numeric.h ../include/fileio.h ../include/random.h \ ../include/s_bsd.h ../include/s_debug.h ../include/s_stats.h \ ../include/ircd_features.h ../include/send.h ../include/sys.h \ - ../include/ircd_reslib.h + ../include/res.h ../include/ircd_reslib.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ircd_reslib.o: ircd_reslib.c ../include/ircd.h ../include/struct.h \ ../include/ircd_defs.h ../include/res.h ../config.h \ - ../include/ircd_reslib.h ../include/fileio.h ../include/ircd_string.h \ - ../include/ircd_chattr.h + ../include/ircd_reslib.h ../include/ircd_defs.h ../include/fileio.h \ + ../include/ircd_string.h ../include/ircd_chattr.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ircd_signal.o: ircd_signal.c ../config.h ../include/ircd.h \ ../include/struct.h ../include/ircd_defs.h ../include/ircd_events.h \ ../include/ircd_log.h ../include/ircd_signal.h ../include/s_conf.h \ ../include/client.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_handler.h ../include/res.h ../include/capab.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ircd_snprintf.o: ircd_snprintf.c ../config.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ ../include/capab.h ../include/channel.h ../include/ircd_log.h \ ../include/ircd_snprintf.h ../include/struct.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ircd_string.o: ircd_string.c ../config.h ../include/ircd_string.h \ - ../include/ircd_chattr.h ../include/ircd_defs.h ../include/ircd_log.h \ - ../include/res.h chattr.tab.c + ../include/ircd_chattr.h ../include/ircd_defs.h \ + ../include/ircd_chattr.h ../include/ircd_log.h ../include/res.h \ + chattr.tab.c +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ircd_tea.o: ircd_tea.c ../config.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" jupe.o: jupe.c ../config.h ../include/jupe.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ @@ -580,44 +614,47 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/match.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/s_bsd.h \ - ../include/s_misc.h ../include/send.h ../include/sys.h + ../include/s_misc.h ../include/send.h ../include/struct.h \ + ../include/sys.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" lex.yy.o: lex.yy.c ../config.h ../include/ircd.h ../include/struct.h \ - ../include/ircd_defs.h ../include/ircd_string.h \ + ../include/ircd_defs.h ../include/ircd_alloc.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/s_debug.h y.tab.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" list.o: list.c ../config.h ../include/list.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ ../include/capab.h ../include/ircd.h ../include/struct.h \ - ../include/ircd_alloc.h ../include/ircd_log.h ../include/ircd_reply.h \ - ../include/ircd_string.h ../include/ircd_chattr.h ../include/listener.h \ - ../include/match.h ../include/numeric.h ../include/s_auth.h \ - ../include/s_bsd.h ../include/s_conf.h ../include/s_debug.h \ - ../include/s_misc.h ../include/s_user.h ../include/send.h \ - ../include/whowas.h + ../include/ircd_alloc.h ../include/ircd_events.h ../include/ircd_log.h \ + ../include/ircd_reply.h ../include/ircd_string.h \ + ../include/ircd_chattr.h ../include/listener.h ../include/match.h \ + ../include/numeric.h ../include/res.h ../include/s_auth.h \ + ../include/s_bsd.h ../include/s_conf.h ../include/client.h \ + ../include/s_debug.h ../include/s_misc.h ../include/s_user.h \ + ../include/send.h ../include/struct.h ../include/whowas.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" listener.o: listener.c ../config.h ../include/listener.h \ ../include/ircd_defs.h ../include/ircd_events.h ../include/res.h \ ../include/client.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_handler.h ../include/capab.h ../include/ircd.h \ - ../include/struct.h ../include/ircd_alloc.h ../include/ircd_features.h \ - ../include/ircd_log.h ../include/ircd_osdep.h ../include/ircd_reply.h \ + ../include/struct.h ../include/ircd_alloc.h ../include/ircd_events.h \ + ../include/ircd_features.h ../include/ircd_log.h \ + ../include/ircd_osdep.h ../include/ircd_reply.h \ ../include/ircd_snprintf.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/match.h ../include/numeric.h \ - ../include/s_bsd.h ../include/s_conf.h ../include/s_misc.h \ - ../include/s_stats.h ../include/send.h ../include/sys.h -m_account.o: m_account.c ../config.h ../include/client.h \ - ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ - ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ - ../include/capab.h ../include/ircd.h ../include/struct.h \ - ../include/ircd_reply.h ../include/ircd_string.h \ - ../include/ircd_chattr.h ../include/msg.h ../include/numnicks.h \ - ../include/s_debug.h ../include/s_user.h ../include/send.h + ../include/s_bsd.h ../include/s_conf.h ../include/client.h \ + ../include/s_misc.h ../include/s_stats.h ../include/send.h \ + ../include/sys.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_admin.o: m_admin.c ../config.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ ../include/capab.h ../include/hash.h ../include/ircd.h \ ../include/struct.h ../include/ircd_features.h ../include/ircd_log.h \ ../include/ircd_reply.h ../include/msg.h ../include/numeric.h \ - ../include/numnicks.h ../include/s_conf.h ../include/s_user.h + ../include/numnicks.h ../include/s_conf.h ../include/client.h \ + ../include/s_user.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_asll.o: m_asll.c ../config.h ../include/client.h ../include/ircd_defs.h \ ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ ../include/ircd_handler.h ../include/res.h ../include/capab.h \ @@ -626,6 +663,7 @@ ../include/ircd_chattr.h ../include/numeric.h ../include/numnicks.h \ ../include/match.h ../include/msg.h ../include/send.h \ ../include/s_bsd.h ../include/s_user.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_away.o: m_away.c ../config.h ../include/client.h ../include/ircd_defs.h \ ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ ../include/ircd_handler.h ../include/res.h ../include/capab.h \ @@ -633,6 +671,7 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/msg.h ../include/numeric.h \ ../include/numnicks.h ../include/s_user.h ../include/send.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_burst.o: m_burst.c ../config.h ../include/channel.h \ ../include/ircd_defs.h ../include/res.h ../include/client.h \ ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ @@ -642,8 +681,9 @@ ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/ircd_snprintf.h ../include/list.h \ ../include/match.h ../include/msg.h ../include/numeric.h \ - ../include/numnicks.h ../include/s_conf.h ../include/s_misc.h \ - ../include/send.h + ../include/numnicks.h ../include/s_conf.h ../include/client.h \ + ../include/s_misc.h ../include/send.h ../include/struct.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_cap.o: m_cap.c ../config.h ../include/client.h ../include/ircd_defs.h \ ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ ../include/ircd_handler.h ../include/res.h ../include/capab.h \ @@ -651,6 +691,7 @@ ../include/ircd_log.h ../include/ircd_reply.h \ ../include/ircd_snprintf.h ../include/ircd_string.h ../include/msg.h \ ../include/numeric.h ../include/send.h ../include/s_user.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_clearmode.o: m_clearmode.c ../config.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ @@ -660,13 +701,15 @@ ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/list.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/s_conf.h \ - ../include/send.h + ../include/client.h ../include/send.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_close.o: m_close.c ../config.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ ../include/capab.h ../include/ircd.h ../include/struct.h \ ../include/ircd_log.h ../include/ircd_reply.h ../include/numeric.h \ ../include/s_bsd.h ../include/send.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_connect.o: m_connect.c ../config.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ @@ -675,13 +718,15 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/jupe.h ../include/match.h \ ../include/msg.h ../include/numeric.h ../include/numnicks.h \ - ../include/s_bsd.h ../include/s_conf.h ../include/s_user.h \ - ../include/send.h + ../include/s_bsd.h ../include/s_conf.h ../include/client.h \ + ../include/s_user.h ../include/send.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_cprivmsg.o: m_cprivmsg.c ../config.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ ../include/capab.h ../include/ircd_log.h ../include/ircd_reply.h \ ../include/ircd_string.h ../include/ircd_chattr.h ../include/s_user.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_create.o: m_create.c ../config.h ../include/channel.h \ ../include/ircd_defs.h ../include/res.h ../include/client.h \ ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ @@ -691,8 +736,7 @@ ../include/ircd_chattr.h ../include/msg.h ../include/numeric.h \ ../include/numnicks.h ../include/s_debug.h ../include/s_misc.h \ ../include/s_user.h ../include/send.h -m_db.o: m_db.c ../config.h -m_dbq.o: m_dbq.c ../config.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_defaults.o: m_defaults.c ../config.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ @@ -700,6 +744,7 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/numeric.h \ ../include/numnicks.h ../include/send.h ../include/supported.h \ ../include/channel.h ../include/version.h +# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_destruct.o: m_destruct.c ../config.h ../include/channel.h \ .... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-05-07 12:44:54
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-05-07 12:44:47 UTC Modified files: TODO.es Log message: actualizacion TODO ---------------------- diff included ---------------------- Index: ircd-ircdev/TODO.es diff -u ircd-ircdev/TODO.es:1.22 ircd-ircdev/TODO.es:1.23 --- ircd-ircdev/TODO.es:1.22 Thu Apr 28 15:02:37 2005 +++ ircd-ircdev/TODO.es Sat May 7 05:44:36 2005 @@ -1,14 +1,14 @@ # # TODO para ircd-ircdev # -# $Id: TODO.es,v 1.22 2005/04/28 22:02:37 zolty Exp $ +# $Id: TODO.es,v 1.23 2005/05/07 12:44:36 zolty Exp $ # # Insertar las nuevas entradas al principio de la lista TODO. # URGENTE -------------------------------------------------------------------------------------- - - [D] Implementar el protocolo DDB (ddb_db). + - [D] DDB: compactado, hashes, seguridad y documentacion. - [D] Implementar tabla o de Operadores - [D] Implementar tabla p de Privilegios - [D] Implementar tabla f de Features ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-05-07 22:24:03
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-05-07 22:23:50 UTC Modified files: ChangeLog ChangeLog.es Doxyfile doc/en/log.txt include/ircd_log.h include/numeric.h include/patchlevel.h ircd/channel.c ircd/ddb.c ircd/ddb_db_native.c ircd/ddb_events.c ircd/engine_epoll.c ircd/ircd_auth.c ircd/ircd_log.c ircd/m_db.c ircd/m_invite.c ircd/m_join.c ircd/m_svsnick.c ircd/numnicks.c ircd/s_err.c ircd/s_misc.c ircd/s_stats.c ircd/s_user.c Log message: Author: zoltan <zo...@ir...> Log message: 2005-05-08 Toni García <zo...@ir...> 1.0.alpha32 * Fix de bugs ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.33 ircd-ircdev/ChangeLog:1.34 --- ircd-ircdev/ChangeLog:1.33 Sat May 7 05:43:28 2005 +++ ircd-ircdev/ChangeLog Sat May 7 15:23:39 2005 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.33 2005/05/07 12:43:28 zolty Exp $ +# $Id: ChangeLog,v 1.34 2005/05/07 22:23:39 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-05-08 Toni García <zo...@ir...> 1.0.alpha32 + * Fix bugs + 2005-05-07 Toni García <zo...@ir...> 1.0.alpha31 * Native DB: Tables read and save * Burst DB Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.33 ircd-ircdev/ChangeLog.es:1.34 --- ircd-ircdev/ChangeLog.es:1.33 Sat May 7 05:43:28 2005 +++ ircd-ircdev/ChangeLog.es Sat May 7 15:23:39 2005 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.33 2005/05/07 12:43:28 zolty Exp $ +# $Id: ChangeLog.es,v 1.34 2005/05/07 22:23:39 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-05-08 Toni García <zo...@ir...> 1.0.alpha32 + * Fix de bugs + 2005-05-07 Toni García <zo...@ir...> 1.0.alpha31 * DB nativo: Lectura y escritura de tablas * DB Burst Index: ircd-ircdev/Doxyfile diff -u ircd-ircdev/Doxyfile:1.3 ircd-ircdev/Doxyfile:1.4 --- ircd-ircdev/Doxyfile:1.3 Mon Mar 21 10:38:47 2005 +++ ircd-ircdev/Doxyfile Sat May 7 15:23:39 2005 @@ -41,7 +41,8 @@ # (Japanese with English messages), Korean, Norwegian, Polish, Portuguese, # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. -OUTPUT_LANGUAGE = English +#OUTPUT_LANGUAGE = English +OUTPUT_LANGUAGE = Spanish # This tag can be used to specify the encoding used in the generated output. # The encoding is not always determined by the language that is chosen, @@ -691,7 +692,7 @@ # The RTF output is optimised for Word 97 and may not look very pretty with # other RTF readers or editors. -GENERATE_RTF = NO +GENERATE_RTF = YES # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be Index: ircd-ircdev/doc/en/log.txt diff -u ircd-ircdev/doc/en/log.txt:1.1 ircd-ircdev/doc/en/log.txt:1.2 --- ircd-ircdev/doc/en/log.txt:1.1 Wed Jan 5 10:00:34 2005 +++ ircd-ircdev/doc/en/log.txt Sat May 7 15:23:39 2005 @@ -1,4 +1,4 @@ -$Id: log.txt,v 1.1 2005/01/05 18:00:34 zolty Exp $ +$Id: log.txt,v 1.2 2005/05/07 22:23:39 zolty Exp $ Older versions of ircd had no consistent way of logging various actions. Some things, such as G-lines, were written out to log files @@ -109,15 +109,15 @@ * SOCKET - Used to report problems with sockets. By default, log messages to this subsystem go nowhere. + * IAUTH - Used to report connects, disconnects and errors for the + IAuth authorization mechanism. By default, log messages to this + subsystem go to the "NETWORK" server notice mask. + * DEBUG - Used only when debugging is enabled. All log messages to this subsystem go either to the console or to the debug log file compiled into the server, as well as to the "DEBUG" server notice mask. This is the only subsystem with a default log file. - * OLDLOG - Not used anywhere. This is a left-over from when the - logging subsystem was first created. Log messages to this - subsystem go nowhere. - Configuration The true power of the logging subsystem comes from its extremely Index: ircd-ircdev/include/ircd_log.h diff -u ircd-ircdev/include/ircd_log.h:1.6 ircd-ircdev/include/ircd_log.h:1.7 --- ircd-ircdev/include/ircd_log.h:1.6 Wed Mar 23 10:34:25 2005 +++ ircd-ircdev/include/ircd_log.h Sat May 7 15:23:39 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief IRC logging interface. - * @version $Id: ircd_log.h,v 1.6 2005/03/23 18:34:25 zolty Exp $ + * @version $Id: ircd_log.h,v 1.7 2005/05/07 22:23:39 zolty Exp $ */ #ifndef INCLUDED_ircd_log_h #define INCLUDED_ircd_log_h @@ -70,8 +70,8 @@ LS_OPER, /**< Users becoming operators. */ LS_RESOLVER, /**< DNS resolver errors. */ LS_SOCKET, /**< Unexpected socket operation errors. */ + LS_IAUTH, /**< IAuth status. */ LS_DEBUG, /**< Debug messages. */ - LS_OLDLOG, /**< Old logging messages (no longer used). */ LS_LAST_SYSTEM /**< Count of valid LogSys values. */ }; Index: ircd-ircdev/include/numeric.h diff -u ircd-ircdev/include/numeric.h:1.12 ircd-ircdev/include/numeric.h:1.13 --- ircd-ircdev/include/numeric.h:1.12 Mon Apr 11 01:44:59 2005 +++ ircd-ircdev/include/numeric.h Sat May 7 15:23:39 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Declarations of numeric replies and supporting functions. - * @version $Id: numeric.h,v 1.12 2005/04/11 08:44:59 zolty Exp $ + * @version $Id: numeric.h,v 1.13 2005/05/07 22:23:39 zolty Exp $ */ #ifndef INCLUDED_numeric_h #define INCLUDED_numeric_h @@ -462,13 +462,14 @@ ERR_WHOLIMEXCEED 523 dalnet */ #define ERR_QUARANTINED 524 /* Undernet extension -Vampire */ -#define ERR_NOTLOWEROPLEVEL 550 /* Undernet extension */ -#define ERR_NOTMANAGER 551 /* Undernet extension */ -#define ERR_CHANSECURED 552 /* Undernet extension */ -#define ERR_UPASSSET 553 /* Undernet extension */ -#define ERR_UPASSNOTSET 554 /* Undernet extension */ -#define ERR_NOMANAGER_LONG 555 /* Undernet extension */ -#define ERR_NOMANAGER_SHORT 556 /* Undernet extension */ +#define ERR_NOTLOWEROPLEVEL 560 /* Undernet extension */ +#define ERR_NOTMANAGER 561 /* Undernet extension */ +#define ERR_CHANSECURED 562 /* Undernet extension */ +#define ERR_UPASSSET 563 /* Undernet extension */ +#define ERR_UPASSNOTSET 564 /* Undernet extension */ +#define ERR_NOMANAGER_LONG 565 /* Undernet extension */ +#define ERR_NOMANAGER_SHORT 566 /* Undernet extension */ +#define ERR_UPASS_SAME_APASS 567 /* Undernet extension */ #define RPL_LOGON 600 /* Dalnet extension */ #define RPL_LOGOFF 601 /* Dalnet extension */ Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.32 ircd-ircdev/include/patchlevel.h:1.33 --- ircd-ircdev/include/patchlevel.h:1.32 Sat May 7 05:43:28 2005 +++ ircd-ircdev/include/patchlevel.h Sat May 7 15:23:40 2005 @@ -17,10 +17,10 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: patchlevel.h,v 1.32 2005/05/07 12:43:28 zolty Exp $ + * $Id: patchlevel.h,v 1.33 2005/05/07 22:23:40 zolty Exp $ * */ -#define PATCHLEVEL ".alpha31" +#define PATCHLEVEL ".alpha32" #define RELEASE "1.0" Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.19 ircd-ircdev/ircd/channel.c:1.20 --- ircd-ircdev/ircd/channel.c:1.19 Sun Apr 24 15:18:05 2005 +++ ircd-ircdev/ircd/channel.c Sat May 7 15:23:40 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.19 2005/04/24 22:18:05 zolty Exp $ + * @version $Id: channel.c,v 1.20 2005/05/07 22:23:40 zolty Exp $ */ #include "config.h" @@ -2624,6 +2624,11 @@ send_reply(state->sptr, ERR_UPASSNOTSET, state->chptr->chname, state->chptr->chname); return; } + /* cannot set a +U password that is the same as +A */ + if (state->dir == MODE_ADD && !ircd_strcmp(state->chptr->mode.apass, t_str)) { + send_reply(state->sptr, ERR_UPASS_SAME_APASS, state->chptr->chname); + return; + } /* can't add a upass if one is set, nor can one remove the wrong upass */ if ((state->dir == MODE_ADD && *state->chptr->mode.upass) || (state->dir == MODE_DEL && @@ -3535,7 +3540,9 @@ remove_user_from_channel(jbuf->jb_source, chan); } else { #if defined(UNDERNET) - int oplevel = chan->mode.apass[0] ? 0 : MAXOPLEVEL; + int oplevel = !chan->mode.apass[0] ? MAXOPLEVEL + : (flags & CHFL_CHANNEL_MANAGER) ? 0 + : 1; /* Add user to channel */ if ((chan->mode.mode & MODE_DELJOINS) && !(flags & CHFL_VOICED_OR_OPPED)) add_user_to_channel(chan, jbuf->jb_source, flags | CHFL_DELAYED, oplevel); @@ -3551,16 +3558,24 @@ /* send notification to all servers */ if (jbuf->jb_type != JOINBUF_TYPE_CREATE && !IsLocalChannel(chan->chname)) - sendcmdto_serv_butone(jbuf->jb_source, CMD_JOIN, jbuf->jb_connect, - "%H %Tu", chan, chan->creationtime); + { +#if defined(UNDERNET) + if (flags & CHFL_CHANOP) + sendcmdto_serv_butone(jbuf->jb_source, CMD_JOIN, jbuf->jb_connect, + "%u:%H %Tu", oplevel, chan, chan->creationtime); + else +#endif + sendcmdto_serv_butone(jbuf->jb_source, CMD_JOIN, jbuf->jb_connect, + "%H %Tu", chan, chan->creationtime); + } if (!((chan->mode.mode & MODE_DELJOINS) && !(flags & CHFL_VOICED_OR_OPPED))) { /* Send the notification to the channel */ sendcmdto_channel_butserv_butone(jbuf->jb_source, CMD_JOIN, chan, NULL, 0, "%H", chan); /* send an op, too, if needed */ - if (!MyUser(jbuf->jb_source) && jbuf->jb_type == JOINBUF_TYPE_CREATE) - sendcmdto_channel_butserv_butone(jbuf->jb_source, CMD_MODE, chan, NULL, 0, "%H +o %C", + if (flags & CHFL_CHANOP) + sendcmdto_channel_butserv_butone(&me, CMD_MODE, chan, NULL, 0, "%H +o %C", chan, jbuf->jb_source); } else if (MyUser(jbuf->jb_source)) sendcmdto_one(jbuf->jb_source, CMD_JOIN, jbuf->jb_source, ":%H", chan); Index: ircd-ircdev/ircd/ddb.c diff -u ircd-ircdev/ircd/ddb.c:1.7 ircd-ircdev/ircd/ddb.c:1.8 --- ircd-ircdev/ircd/ddb.c:1.7 Sat May 7 05:43:29 2005 +++ ircd-ircdev/ircd/ddb.c Sat May 7 15:23:40 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of Distributed DataBase. - * @version $Id: ddb.c,v 1.7 2005/05/07 12:43:29 zolty Exp $ + * @version $Id: ddb.c,v 1.8 2005/05/07 22:23:40 zolty Exp $ */ #include "config.h" @@ -31,6 +31,7 @@ #include "ircd_chattr.h" #include "ircd_log.h" #include "ircd_reply.h" +#include "ircd_snprintf.h" #include "ircd_string.h" #include "ircd_tea.h" #include "list.h" @@ -124,9 +125,11 @@ /* ID Mask Key Content */ if (content) - sprintf(buf, "%u %s %s %s", id, mask, key, content); + ircd_snprintf(0, buf, sizeof(buf), "%u %s %s %s", + id, mask, key, content); else - sprintf(buf, "%u %s %s", id, mask, key); + ircd_snprintf(0, buf, sizeof(buf), "%u %s %s", + id, mask, key); memset(buffer, 0, sizeof(buffer)); strncpy((char *)buffer, buf, sizeof(buffer) - 1); @@ -623,7 +626,7 @@ vsprintf(exitmsg2, pattern, vl); va_end(vl); - sprintf(exitmsg, "DDB Error: %s", exitmsg2); + ircd_snprintf(0, exitmsg, sizeof(exitmsg), "DDB Error: %s", exitmsg2); for (i = 0; i <= HighestFd; i++) { Index: ircd-ircdev/ircd/ddb_db_native.c diff -u ircd-ircdev/ircd/ddb_db_native.c:1.2 ircd-ircdev/ircd/ddb_db_native.c:1.3 --- ircd-ircdev/ircd/ddb_db_native.c:1.2 Sat May 7 05:43:29 2005 +++ ircd-ircdev/ircd/ddb_db_native.c Sat May 7 15:23:40 2005 @@ -22,7 +22,7 @@ */ /** @file * @brief Native DataBase implementation of Distributed DataBase. - * @version $Id: ddb_db_native.c,v 1.2 2005/05/07 12:43:29 zolty Exp $ + * @version $Id: ddb_db_native.c,v 1.3 2005/05/07 22:23:40 zolty Exp $ */ #include "config.h" @@ -321,7 +321,7 @@ inttobase64(hash, ddb_hashtable_hi[table], 6); inttobase64(hash + 6, ddb_hashtable_lo[table], 6); - sprintf(path, "%c %s\n", table, hash); + ircd_snprintf(0, path, sizeof(path), "%c %s\n", table, hash); if (write(fd, path, strlen(path)) == -1) ddb_die("Error when saving table '%c' hashes (WRITE)", table); close(fd); Index: ircd-ircdev/ircd/ddb_events.c diff -u ircd-ircdev/ircd/ddb_events.c:1.2 ircd-ircdev/ircd/ddb_events.c:1.3 --- ircd-ircdev/ircd/ddb_events.c:1.2 Thu Apr 28 15:00:08 2005 +++ ircd-ircdev/ircd/ddb_events.c Sat May 7 15:23:40 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Events of Distributed DataBase. - * @version $Id: ddb_events.c,v 1.2 2005/04/28 22:00:08 zolty Exp $ + * @version $Id: ddb_events.c,v 1.3 2005/05/07 22:23:40 zolty Exp $ */ #include "config.h" @@ -29,6 +29,7 @@ #include "client.h" #include "hash.h" #include "ircd.h" +#include "ircd_snprintf.h" #include "ircd_tea.h" #include "msg.h" #include "numnicks.h" @@ -161,7 +162,8 @@ if (x[0] >= 4294000000ul) continue; - sprintf(newnick, "Guest%.6d", (int)(x[0] % 1000000)); + ircd_snprintf(0, newnick, sizeof(newnick), "Guest%.6d", + (int)(x[0] % 1000000)); acptr = FindUser(newnick); } while (acptr); @@ -170,7 +172,7 @@ parv[0] = cli_name(cptr); parv[1] = newnick; - sprintf(tmp, "%lu", TStime()); + ircd_snprintf(0, tmp, sizeof(tmp), "%T", TStime()); parv[2] = tmp; set_nick_name(cptr, cptr, newnick, 3, parv, flags); Index: ircd-ircdev/ircd/engine_epoll.c diff -u ircd-ircdev/ircd/engine_epoll.c:1.9 ircd-ircdev/ircd/engine_epoll.c:1.10 --- ircd-ircdev/ircd/engine_epoll.c:1.9 Mon Mar 21 10:39:06 2005 +++ ircd-ircdev/ircd/engine_epoll.c Sat May 7 15:23:40 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Linux epoll_*() event engine. - * @version $Id: engine_epoll.c,v 1.9 2005/03/21 18:39:06 zolty Exp $ + * @version $Id: engine_epoll.c,v 1.10 2005/05/07 22:23:40 zolty Exp $ */ #include "config.h" @@ -279,9 +279,9 @@ gen_ref_dec(sock); continue; } - } - - switch (s_state(sock)) { + } else if (events[i].events & EPOLLHUP) { + event_generate(ET_EOF, sock, 0); + } else switch (s_state(sock)) { case SS_CONNECTING: if (events[i].events & EPOLLOUT) /* connection completed */ event_generate(ET_CONNECT, sock, 0); @@ -294,12 +294,6 @@ case SS_NOTSOCK: case SS_CONNECTED: - if (events[i].events & EPOLLIN) - event_generate((events[i].events & EPOLLHUP) ? ET_EOF : ET_READ, sock, 0); - if (events[i].events & EPOLLOUT) - event_generate(ET_WRITE, sock, 0); - break; - case SS_DATAGRAM: case SS_CONNECTDG: if (events[i].events & EPOLLIN) Index: ircd-ircdev/ircd/ircd_auth.c diff -u ircd-ircdev/ircd/ircd_auth.c:1.5 ircd-ircdev/ircd/ircd_auth.c:1.6 --- ircd-ircdev/ircd/ircd_auth.c:1.5 Mon Mar 21 10:39:07 2005 +++ ircd-ircdev/ircd/ircd_auth.c Sat May 7 15:23:40 2005 @@ -22,7 +22,7 @@ */ /** @file * @brief IAuth client implementation for an IRC server. - * @version $Id: ircd_auth.c,v 1.5 2005/03/21 18:39:07 zolty Exp $ + * @version $Id: ircd_auth.c,v 1.6 2005/05/07 22:23:40 zolty Exp $ */ #include "config.h" #include "client.h" @@ -245,6 +245,7 @@ memset(&i_addr(iauth), 0, sizeof(i_addr(iauth))); i_port(iauth) = port; iauth_active = iauth; + timer_init(&i_reconn_timer(iauth)); i_reconnect(iauth) = reconnect; iauth_reconnect(iauth); } @@ -313,7 +314,7 @@ if (t_active(&i_request_timer(iauth))) timer_del(&i_request_timer(iauth)); /* Disconnect from the server. */ - if (s_fd(&i_socket(iauth)) != -1) + if (i_GetConnected(iauth)) iauth_disconnect(iauth); /* Free memory. */ MyFree(iauth); @@ -400,7 +401,7 @@ { close(s_fd(&i_socket(iauth))); socket_del(&i_socket(iauth)); - s_fd(&i_socket(iauth)) = -1; + i_ClrConnected(iauth); } /** DNS completion callback for an %IAuth connection. @@ -411,11 +412,11 @@ { struct IAuth *iauth = vptr; if (!he) { - sendto_opmask_butone(0, SNO_OLDSNO, "IAuth connection to %s failed: host lookup failed", i_host(iauth)); + log_write(LS_IAUTH, L_NOTICE, 0, "IAuth connection to %s failed: host lookup failed", i_host(iauth)); } else { memcpy(&i_addr(iauth).addr, &he->addr, sizeof(i_addr(iauth).addr)); if (!irc_in_addr_valid(&i_addr(iauth).addr)) { - sendto_opmask_butone(0, SNO_OLDSNO, "IAuth connection to %s failed: host came back as unresolved", i_host(iauth)); + log_write(LS_IAUTH, L_NOTICE, 0, "IAuth connection to %s failed: host came back as unresolved", i_host(iauth)); return; } iauth_reconnect(iauth); @@ -437,9 +438,12 @@ static void iauth_schedule_reconnect(struct IAuth *iauth) { struct Timer *timer; - assert(!t_active(&i_reconn_timer(iauth))); - timer = timer_init(&i_reconn_timer(iauth)); - timer_add(timer, iauth_reconnect_ev, iauth, TT_RELATIVE, i_reconnect(iauth)); + timer = &i_reconn_timer(iauth); + if (t_onqueue(timer)) + timer_chg(timer, TT_RELATIVE, i_reconnect(iauth)); + else + timer_add(&i_reconn_timer(iauth), iauth_reconnect_ev, + iauth, TT_RELATIVE, i_reconnect(iauth)); } /** Initiate a (re-)connection to \a iauth. @@ -451,7 +455,12 @@ IOResult result; int fd; - Debug((DEBUG_INFO, "IAuth attempt connection to %s port %p.", i_host(iauth), i_port(iauth))); + if (i_GetConnected(iauth)) { + iauth_disconnect(iauth); + iauth_schedule_reconnect(iauth); + return; + } + log_write(LS_IAUTH, L_DEBUG, 0, "IAuth attempt connection to %s port %p.", i_host(iauth), i_port(iauth)); if (!irc_in_addr_valid(&i_addr(iauth).addr) && !ircd_aton(&i_addr(iauth).addr, i_host(iauth))) { i_query(iauth).vptr = iauth; @@ -461,26 +470,32 @@ } local = irc_in_addr_is_ipv4(&i_addr(iauth).addr) ? &VirtualHost_v4 : &VirtualHost_v6; fd = os_socket(local, SOCK_STREAM, "IAuth"); - if (fd < 0) + if (fd < 0) { + iauth_schedule_reconnect(iauth); return; + } if (!os_set_sockbufs(fd, SERVER_TCP_WINDOW, SERVER_TCP_WINDOW)) { - close(fd); - sendto_opmask_butone(0, SNO_OLDSNO, "IAuth reconnect unable to set socket buffers: %s", strerror(errno)); - return; + log_write(LS_IAUTH, L_WARNING, 0, "IAuth reconnect unable to set socket buffers: %s", strerror(errno)); + goto failure; } + s_fd(&i_socket(iauth)) = fd; result = os_connect_nonb(fd, &i_addr(iauth)); if (result == IO_FAILURE) { - close(fd); - sendto_opmask_butone(0, SNO_OLDSNO, "IAuth reconnect unable to initiate connection: %s", strerror(errno)); - return; + log_write(LS_IAUTH, L_NOTICE, 0, "IAuth reconnect unable to initiate connection: %s", strerror(errno)); + goto failure; } if (!socket_add(&i_socket(iauth), iauth_sock_callback, iauth, (result == IO_SUCCESS) ? SS_CONNECTED : SS_CONNECTING, SOCK_EVENT_READABLE | SOCK_EVENT_WRITABLE, fd)) { - close(fd); - sendto_opmask_butone(0, SNO_OLDSNO, "IAuth reconnect unable to add socket: %s", strerror(errno)); - return; + log_write(LS_IAUTH, L_WARNING, 0, "IAuth reconnect unable to add socket: %s", strerror(errno)); + goto failure; } + return; +failure: + close(fd); + i_ClrConnected(iauth); + iauth_schedule_reconnect(iauth); + return; } /** Read input from \a iauth. @@ -494,8 +509,11 @@ char readbuf[SERVER_TCP_WINDOW]; length = 0; - if (IO_FAILURE == os_recv_nonb(s_fd(&i_socket(iauth)), readbuf, sizeof(readbuf), &length)) - return; + if (IO_FAILURE == os_recv_nonb(s_fd(&i_socket(iauth)), readbuf, sizeof(readbuf), &length) + || length == 0) { + iauth_reconnect(iauth); + return; + } i_recvB(iauth) += length; if (i_recvB(iauth) > 1023) { i_recvK(iauth) += i_recvB(iauth) >> 10; @@ -609,13 +627,12 @@ i_ClrBlocked(iauth); iauth_write(iauth); break; - case ET_EOF: - iauth_disconnect(iauth); - break; case ET_ERROR: - sendto_opmask_butone(0, SNO_OLDSNO, "IAuth socket error: %s", strerror(ev_data(ev))); - log_write(LS_SOCKET, L_ERROR, 0, "IAuth socket error: %s", strerror(ev_data(ev))); + log_write(LS_IAUTH, L_ERROR, 0, "IAuth socket error: %s", strerror(ev_data(ev))); + /* and fall through to the ET_EOF case */ + case ET_EOF: iauth_disconnect(iauth); + iauth_schedule_reconnect(iauth); break; default: assert(0 && "Unrecognized event type"); @@ -632,7 +649,7 @@ { /* TODO: this could probably be more intelligent */ if (ev_type(ev) == ET_EXPIRE) { - sendto_opmask_butone(0, SNO_OLDSNO, "IAuth request timed out; reconnecting"); + log_write(LS_IAUTH, L_NOTICE, 0, "IAuth request timed out; reconnecting"); iauth_reconnect(t_data(ev_timer(ev))); } } @@ -683,6 +700,7 @@ /* Allocate and initialize IAuthRequest struct. */ if (!(iar = MyCalloc(1, sizeof(*iar)))) return exit_client(cptr, cptr, &me, "IAuth memory allocation failed"); + cli_iauth(cptr) = iar; iar->iar_next = &i_list_head(iauth); iar->iar_prev = i_list_head(iauth).iar_prev; iar->iar_client = cptr; @@ -704,8 +722,10 @@ if (cli_iauth(cptr)) { iauth_dispose_request(iauth_active, cli_iauth(cptr)); cli_iauth(cptr) = NULL; - } else if (IsIAuthed(cptr) && i_GetIClass(iauth_active)) { - /* TODO: report quit to iauth */ + } + if (iauth_active && i_GetConnected(iauth_active)) { + iauth_send(iauth_active, "ExitUser %x", cptr); + iauth_write(iauth_active); } } @@ -736,7 +756,7 @@ static void iauth_dispose_request(struct IAuth *iauth, struct IAuthRequest *iar) { assert(iar->iar_client != NULL); - if (iar->iar_timed) + if (iar->iar_timed && t_active(&i_request_timer(iauth))) timer_del(&i_request_timer(iauth)); cli_iauth(iar->iar_client) = NULL; iar->iar_prev->iar_next = iar->iar_next; Index: ircd-ircdev/ircd/ircd_log.c diff -u ircd-ircdev/ircd/ircd_log.c:1.9 ircd-ircdev/ircd/ircd_log.c:1.10 --- ircd-ircdev/ircd/ircd_log.c:1.9 Wed Mar 23 10:34:48 2005 +++ ircd-ircdev/ircd/ircd_log.c Sat May 7 15:23:40 2005 @@ -22,7 +22,7 @@ */ /** @file * @brief IRC logging implementation. - * @version $Id: ircd_log.c,v 1.9 2005/03/23 18:34:48 zolty Exp $ + * @version $Id: ircd_log.c,v 1.10 2005/05/07 22:23:40 zolty Exp $ */ #include "config.h" @@ -165,8 +165,8 @@ S(OPER, -1, SNO_OLDREALOP), S(RESOLVER, -1, 0), S(SOCKET, -1, 0), + S(IAUTH, -1, SNO_NETWORK), S(DEBUG, -1, SNO_DEBUG), - S(OLDLOG, -1, 0), #undef S { LS_LAST_SYSTEM, 0, 0, -1, 0, -1, 0 } }; Index: ircd-ircdev/ircd/m_db.c diff -u ircd-ircdev/ircd/m_db.c:1.4 ircd-ircdev/ircd/m_db.c:1.5 --- ircd-ircdev/ircd/m_db.c:1.4 Sat May 7 05:43:29 2005 +++ ircd-ircdev/ircd/m_db.c Sat May 7 15:23:40 2005 @@ -22,7 +22,7 @@ */ /** @file * @brief Handlers for DB command. - * @version $Id: m_db.c,v 1.4 2005/05/07 12:43:29 zolty Exp $ + * @version $Id: m_db.c,v 1.5 2005/05/07 22:23:40 zolty Exp $ */ /* TODO-ZOLTAN * Traducidr los comentarios al ingles */ @@ -149,14 +149,15 @@ /* Desconectamos con todos los hubs menos el que nos envia la orden */ log_write(LS_DDB, L_INFO, 0, "DB Drop Table %c from %#C", table, cptr); - sprintf(ddb_buf, "DB DROP Table %c from %s", table, cli_name(cptr)); + ircd_snprintf(0, ddb_buf, sizeof(ddb_buf), "DB DROP Table %c from %s", + table, cli_name(cptr)); ddb_splithubs_butone(cptr, ddb_buf); /* Mandamos la respuesta de conformidad */ sendcmdto_one(&me, CMD_DB, cptr, "%s 0 E %s %c", cli_name(cptr), parv[4], table); - /* TODO-ZOLTAN: Cosa de ryden. Creo que hay que mandar a todos */ + /* TODO-ZOLTAN: Creo que hay que mandar a todos */ cli_serv(cptr)->ddb_open &= ~ddb_mask; /* Solicitamos de nuevo la tabla */ @@ -368,10 +369,10 @@ (cli_serv(lp->value.cptr)->ddb_open & ddb_mask)) { if (!delete) - sendcmdto_one(&me, CMD_DB, lp->value.cptr, "%s %u %c %s %s :%s", + sendcmdto_one(&me, CMD_DB, lp->value.cptr, "%s %u %c %s :%s", parv[1], id, table, parv[4], parv[5]); else - sendcmdto_one(&me, CMD_DB, lp->value.cptr, "%s %u %c %s %s", + sendcmdto_one(&me, CMD_DB, lp->value.cptr, "%s %u %c %s", parv[1], id, table, parv[4]); } } Index: ircd-ircdev/ircd/m_invite.c diff -u ircd-ircdev/ircd/m_invite.c:1.10 ircd-ircdev/ircd/m_invite.c:1.11 --- ircd-ircdev/ircd/m_invite.c:1.10 Thu Apr 28 15:00:08 2005 +++ ircd-ircdev/ircd/m_invite.c Sat May 7 15:23:40 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: m_invite.c,v 1.10 2005/04/28 22:00:08 zolty Exp $ + * $Id: m_invite.c,v 1.11 2005/05/07 22:23:40 zolty Exp $ * */ @@ -179,6 +179,9 @@ if (MyConnect(acptr)) { add_invite(acptr, chptr); sendcmdto_one(sptr, CMD_INVITE, acptr, "%s %H", cli_name(acptr), chptr); + } else { + sendcmdto_one(sptr, CMD_INVITE, acptr, "%s %H %Tu", cli_name(acptr), chptr, + chptr->creationtime); } if (!IsLocalChannel(chptr->chname) || MyConnect(acptr)) { @@ -189,7 +192,7 @@ "%H %C %C :%C has been invited by %C", chptr, acptr, sptr, acptr, sptr); /* Announce to servers with channel operators. */ - sendcmdto_channel_servers_butone(sptr, NULL, TOK_INVITE, chptr, NULL, SKIP_NONOPS, + sendcmdto_channel_servers_butone(sptr, NULL, TOK_INVITE, chptr, acptr, SKIP_NONOPS, "%s %H %Tu", cli_name(acptr), chptr, chptr->creationtime); } @@ -281,8 +284,11 @@ return 0; if (MyConnect(acptr)) { - add_invite(acptr, chptr); - sendcmdto_one(sptr, CMD_INVITE, acptr, "%s %H", cli_name(acptr), chptr); + add_invite(acptr, chptr); + sendcmdto_one(sptr, CMD_INVITE, acptr, "%s %H", cli_name(acptr), chptr); + } else { + sendcmdto_one(sptr, CMD_INVITE, acptr, "%s %H %Tu", cli_name(acptr), chptr, + chptr->creationtime); } if (feature_bool(FEAT_ANNOUNCE_INVITES)) { @@ -292,11 +298,10 @@ "%H %C %C :%C has been invited by %C", chptr, acptr, sptr, acptr, sptr); /* Announce to servers with channel operators. */ - sendcmdto_channel_servers_butone(sptr, NULL, TOK_INVITE, chptr, NULL, SKIP_NONOPS, + sendcmdto_channel_servers_butone(sptr, NULL, TOK_INVITE, chptr, acptr, SKIP_NONOPS, "%s %H %Tu", cli_name(acptr), chptr, chptr->creationtime); } return 0; } - Index: ircd-ircdev/ircd/m_join.c diff -u ircd-ircdev/ircd/m_join.c:1.10 ircd-ircdev/ircd/m_join.c:1.11 --- ircd-ircdev/ircd/m_join.c:1.10 Mon Mar 21 10:39:08 2005 +++ ircd-ircdev/ircd/m_join.c Sat May 7 15:23:40 2005 @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: m_join.c,v 1.10 2005/03/21 18:39:08 zolty Exp $ + * $Id: m_join.c,v 1.11 2005/05/07 22:23:40 zolty Exp $ * */ @@ -169,9 +169,6 @@ struct Channel *chptr; struct JoinBuf join; struct JoinBuf create; -#if defined(UNDERNET) - struct ModeBuf mbuf; -#endif struct Gline *gline; unsigned int flags = 0; int i, j, k = 0; @@ -249,8 +246,7 @@ #if defined(UNDERNET) int is_level0_op = 0; if (!BadPtr(keys) && *chptr->mode.apass) { - /* Don't use compall for the apass, only a single key is allowed. - Test Apass first in case someone set Apass and upass equal. */ + /* Don't use compall for the apass, only a single key is allowed. */ if (strcmp(chptr->mode.apass, keys) == 0) { is_level0_op = 1; flags &= ~CHFL_DEOPPED; @@ -307,18 +303,6 @@ } /* else if ((i = can_join(sptr, chptr, keys))) */ joinbuf_join(&join, chptr, flags); -#if defined(UNDERNET) - if (is_level0_op) - { - joinbuf_flush(&join); - modebuf_init(&mbuf, &me, cptr, chptr, - MODEBUF_DEST_CHANNEL | /* Send mode to channel */ - MODEBUF_DEST_SERVER); /* And send it to the other servers */ - modebuf_mode_client(&mbuf, - MODE_ADD | MODE_CHANOP, sptr); /* Give ops to the level0 op */ - modebuf_flush(&mbuf); - } -#endif } else if (!(chptr = get_channel(sptr, name, CGT_CREATE))) continue; /* couldn't get channel */ else if (check_target_limit(sptr, chptr, chptr->chname, 1)) @@ -365,7 +349,7 @@ struct Membership *member; struct Channel *chptr; struct JoinBuf join; - unsigned int flags = 0; + unsigned int flags; time_t creation = 0; char *p = 0; char *chanlist; @@ -398,6 +382,21 @@ if (join0(&join, cptr, sptr, name)) /* did client do a JOIN 0? */ continue; +#if defined(UNDERNET) + if (name[0] == '0' && name[1] == ':') + { + flags = CHFL_CHANOP | CHFL_CHANNEL_MANAGER; + name += 2; + } + else if (name[0] == '1' && name[1] == ':') + { + flags = CHFL_CHANOP; + name += 2; + } + else + flags = CHFL_DEOPPED; +#endif + if (IsLocalChannel(name) || !IsChannelName(name)) { protocol_violation(cptr, "%s tried to join %s", cli_name(sptr), name); @@ -413,9 +412,9 @@ name,cli_name(sptr)); continue; } - flags = CHFL_DEOPPED | (HasFlag(sptr, FLAG_TS8) ? CHFL_SERVOPOK : 0); + flags |= HasFlag(sptr, FLAG_TS8) ? CHFL_SERVOPOK : 0; - /* when the network is 2.10.11+ then remove MAGIC_REMOTE_JOIN_TS */ + /* when the network is 2.10.11+ then remove MAGIC_REMOTE_JOIN_TS */ chptr->creationtime = creation ? creation : MAGIC_REMOTE_JOIN_TS; } else { /* We have a valid channel? */ @@ -430,12 +429,12 @@ chpt... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-05-07 22:32:45
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-05-07 22:32:30 UTC Modified files: doc/ircd.sample-en.conf doc/ircd.sample-es.conf Log message: Actualizacion .confs ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/ircd.sample-en.conf diff -u ircd-ircdev/doc/ircd.sample-en.conf:1.20 ircd-ircdev/doc/ircd.sample-en.conf:1.21 --- ircd-ircdev/doc/ircd.sample-en.conf:1.20 Sat Apr 23 08:57:02 2005 +++ ircd-ircdev/doc/ircd.sample-en.conf Sat May 7 15:32:20 2005 @@ -1,6 +1,6 @@ # ircd.conf - configuration file for IRC-Dev's IRCD. # -# Last Updated: 23, Apr 2005. +# Last Updated: 8, May 2005. # # Written by Niels <ni...@un...>, based on the original example.conf, # server code and some real-life (ahem) experience. @@ -519,12 +519,15 @@ # class = "classname"; # maxhops = 2; # hub = "*.eu.irc-dev.net"; +# autoconnect = no; # }; # # The "port" field defines the default port the server tries to connect # to if an operator uses /connect without specifying a port. This is also # the port used when the server attempts to auto-connect to the remote # server. (See "Class" blocks for more informationa about auto-connects). +# You may tell ircu to not automatically connect to a server by adding +# "autoconnect = no;"; the default is to autoconnect. # # The "maxhops" field causes an SQUIT if a hub tries to introduce # servers farther away than that; the element "leaf," is an alias for Index: ircd-ircdev/doc/ircd.sample-es.conf diff -u ircd-ircdev/doc/ircd.sample-es.conf:1.15 ircd-ircdev/doc/ircd.sample-es.conf:1.16 --- ircd-ircdev/doc/ircd.sample-es.conf:1.15 Sat Apr 23 08:57:13 2005 +++ ircd-ircdev/doc/ircd.sample-es.conf Sat May 7 15:32:20 2005 @@ -1,6 +1,6 @@ # ircd.conf - archivo de configuración para el IRCD de IRC-Dev. # -# Ultima actualización: 23, Abr 2005. +# Ultima actualización: 8, May 2005. # # Escrito por Niels <ni...@un...>, basado en el archivo example.conf # original, en el código del servidor y la experiencia de la vida real. @@ -544,6 +544,7 @@ # class = "nombreclase"; # maxhops = 2; # hub = "*.eu.irc-dev.net"; +# autoconnect = no; # }; # # El campo "port" define el puerto por defecto que el servidor intentará @@ -551,6 +552,8 @@ # un puerto. Este también es el puerto usado para los intentos del servidor # de autoconectar con el servidor remoto. (Véase los bloques "Class" para # más informacion sobre "auto-connects"). +# Puedes hacer que el ircd no se conecte automáticamente con un servidor +# añadiendo "autoconnect = no"; por defecto está la autoconexión. # # El campo "maxhops" causa un SQUIT si un hub intenta introducir servidores # más lejos que eso, el elemento "leaf"; es un alias para "maxhops = 0;". ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-05-16 19:51:49
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-05-16 11:31:30 UTC Modified files: ChangeLog ChangeLog.es include/patchlevel.h Added files: ircd/test/channel-1.cmd ircd/test/client-1.cmd ircd/test/die.cmd ircd/test/gline-1.cmd ircd/test/ircd-t1.conf ircd/test/run-tests.sh ircd/test/stats-1.cmd ircd/test/test-driver.pl Log message: Author: zoltan <zo...@ir...> Log message: 2005-05-16 Toni García <zo...@ir...> 1.0.alpha35 * Utilidades de Testing ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.36 ircd-ircdev/ChangeLog:1.37 --- ircd-ircdev/ChangeLog:1.36 Mon May 16 04:22:48 2005 +++ ircd-ircdev/ChangeLog Mon May 16 04:31:19 2005 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.36 2005/05/16 11:22:48 zolty Exp $ +# $Id: ChangeLog,v 1.37 2005/05/16 11:31:19 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-05-16 Toni García <zo...@ir...> 1.0.alpha35 + * Testing tools + 2005-05-16 Toni García <zo...@ir...> 1.0.alpha34 * Undernet synchronization Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.36 ircd-ircdev/ChangeLog.es:1.37 --- ircd-ircdev/ChangeLog.es:1.36 Mon May 16 04:22:48 2005 +++ ircd-ircdev/ChangeLog.es Mon May 16 04:31:19 2005 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.36 2005/05/16 11:22:48 zolty Exp $ +# $Id: ChangeLog.es,v 1.37 2005/05/16 11:31:19 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-05-16 Toni García <zo...@ir...> 1.0.alpha35 + * Utilidades de Testing + 2005-05-16 Toni García <zo...@ir...> 1.0.alpha34 * Sincronización Undernet Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.35 ircd-ircdev/include/patchlevel.h:1.36 --- ircd-ircdev/include/patchlevel.h:1.35 Mon May 16 04:22:50 2005 +++ ircd-ircdev/include/patchlevel.h Mon May 16 04:31:20 2005 @@ -17,10 +17,10 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: patchlevel.h,v 1.35 2005/05/16 11:22:50 zolty Exp $ + * $Id: patchlevel.h,v 1.36 2005/05/16 11:31:20 zolty Exp $ * */ -#define PATCHLEVEL ".alpha34" +#define PATCHLEVEL ".alpha35" #define RELEASE "1.0" Index: ircd-ircdev/ircd/test/channel-1.cmd diff -u /dev/null ircd-ircdev/ircd/test/channel-1.cmd:1.1 --- /dev/null Mon May 16 04:31:30 2005 +++ ircd-ircdev/ircd/test/channel-1.cmd Mon May 16 04:31:20 2005 @@ -0,0 +1,48 @@ +define srv localhost:7701 + +connect cl1 Alex alex %srv% :Test client 1 +connect cl2 Bubb bubb %srv% :Test client 2 +:cl1 join #test +:cl1 join #test2 +:cl1 mode #test +bb *!*@127.0.0.1 *!*@127.0.0.2 +:cl2 wait cl1 +:cl2 join #test +:cl1 wait cl2 +:cl1 invite Bubb #test +:cl2 expect *cl1 invite #test +:cl2 join #test +:cl2 privmsg #test :Hello, *cl1. +:cl2 nick Buba +:cl2 mode #test +l 15 +:cl1 wait cl2 +:cl1 privmsg #test :Hello, *cl2. +:cl1 mode #test -b+kv *!*@127.0.0.1 secret Bubb +:cl1 mode #test +b foo!bar@baz +:cl1 mode #test +b +:cl1 mode #test : +:cl1 mode #test +:cl1 raw who #test %lfuh +:cl2 wait cl1 +:cl2 part #test +:cl1 wait cl2 +:cl2 join #test public +:cl2 join #test secret +:cl1 join 0 +:cl1 join #test2 +:cl2 wait cl1 +:cl2 join #test2 +:cl1 wait cl2 +:cl1 mode #test2 +smtinrDlAU 15 apples oranges +:cl1 mode #test2 +:cl2 wait cl1 +:cl2 join #test2 apples +:cl2 privmsg #test2 :Hello, oplevels. +:cl2 mode #test2 +:cl2 mode #test2 -io+v Alex Alex +:cl1 wait cl2 +:cl1 part #test2 +:cl1 join #test2 +:cl2 wait cl1 +:cl2 mode #test2 -D +:cl2 mode #test +v Alex +:cl1 wait cl2 Index: ircd-ircdev/ircd/test/client-1.cmd diff -u /dev/null ircd-ircdev/ircd/test/client-1.cmd:1.1 --- /dev/null Mon May 16 04:31:30 2005 +++ ircd-ircdev/ircd/test/client-1.cmd Mon May 16 04:31:20 2005 @@ -0,0 +1,15 @@ +define srv localhost:7701 + +connect cl1 Alex alex %srv% :Test client 1 +:cl1 oper oper1 oper1 +connect cl2 Bubb bubb %srv% :Test client 2 +:cl2 oper oper3 oper4 +:cl2 oper oldoper wrongpass +:cl2 oper md5oper wrongpass +:cl2 oper cryptoper wrongpass +:cl2 oper oper2 oper2 +:cl2 raw :privs Alex Alex +:cl1 wait cl2 +:cl1 raw :privs Bubb +:cl1 nick A +:cl1 nick Alexey Index: ircd-ircdev/ircd/test/die.cmd diff -u /dev/null ircd-ircdev/ircd/test/die.cmd:1.1 --- /dev/null Mon May 16 04:31:30 2005 +++ ircd-ircdev/ircd/test/die.cmd Mon May 16 04:31:20 2005 @@ -0,0 +1,5 @@ +connect cl1 Alex alex localhost:7701 :Test client 1 +:cl1 oper oper1 oper1 +:cl1 raw :restart brb +:cl1 oper oper1 oper1 +:cl1 raw :die :testing over Index: ircd-ircdev/ircd/test/gline-1.cmd diff -u /dev/null ircd-ircdev/ircd/test/gline-1.cmd:1.1 --- /dev/null Mon May 16 04:31:30 2005 +++ ircd-ircdev/ircd/test/gline-1.cmd Mon May 16 04:31:20 2005 @@ -0,0 +1,26 @@ +define srv localhost:7701 + +connect cl1 Alex alex %srv% :Test client 1 +:cl1 oper oper1 oper1 +:cl1 raw :gline !+$Rbubb 30 :Bubb is not welcome here +:cl1 sleep 35 +:cl1 raw :gline !+127.2.* 3600 :Localclone? +:cl1 sleep 5 +:cl1 raw :gline !+127.2.* 3600 :Localclone? +connect cl2 Bubb bubb %srv% :Test client 2 +:cl1 raw :gline +:cl1 raw :gline $Rbubb +:cl1 raw :gline -$Rbubb +:cl1 wait cl2 +:cl1 raw :gline !+$Rbubb * 3600 :Bubb is not welcome here +:cl1 sleep 5 +:cl1 raw :gline -$Rbubb +:cl1 raw :gline +#warez 30 :Warez r bad mmkay +:cl2 wait cl1 +:cl2 join #warez +:cl1 sleep 35 +:cl1 raw :stats glines +:cl1 raw :gline !+*@127.0.0.2 3600 :Localclone? +:cl1 raw :gline !+127.1.* 3600 :Localclone? +:cl1 raw :stats memory +:cl2 raw :gline Index: ircd-ircdev/ircd/test/ircd-t1.conf diff -u /dev/null ircd-ircdev/ircd/test/ircd-t1.conf:1.1 --- /dev/null Mon May 16 04:31:30 2005 +++ ircd-ircdev/ircd/test/ircd-t1.conf Mon May 16 04:31:20 2005 @@ -0,0 +1,97 @@ +General { + name = "test-1.example.net"; + vhost = "127.0.0.1"; + vhost = "::1"; + description = "Test Server 1"; + numeric = 1; +}; + +Admin { + location = "Somewhere"; + contact = "Someone"; +}; + +Class { + name = "Server"; + pingfreq = 180 seconds; + connectfreq = 300 seconds; + maxlinks = 1; + sendq = 9000000; +}; + +Class { + name = "others"; + pingfreq = 180 seconds; + sendq = 160000; + maxlinks = 100; + usermode = "+oiwx"; +}; + +Class { + name = "Opers"; + pingfreq = 180 seconds; + sendq = 160000; + maxlinks = 10; + local = no; +}; + +Connect { + name = "bogus.example.net"; + host = "example.net"; + password = "bogus_example"; + port = 7700; + class = "Server"; + maxhops = 2; + hub = "*.example.net"; + autoconnect = yes; # forces a DNS resolution attempt +}; + +CRule { + server = "bogus.example.net"; + all = yes; + rule = "connected(*)"; +}; + +CRule { + server = "bogus.example.net"; + all = no; + rule = "directcon(*)"; +}; + +UWorld { + name = "uworld.example.net"; + name = "uworld2.example.net"; +}; + +Jupe { + nick = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q"; + nick = "R,S,T,U,V,W,X,Y,Z,{,|,},~,-,_,`"; +}; + +Operator { name = "oper1"; host = "*@*"; password = "$PLAIN$oper1"; class = "Opers"; }; +Operator { name = "oper2"; host = "*@*"; password = "$PLAIN$oper2"; class = "Opers"; local = yes; }; +Operator { name = "oldoper"; host = "*@*"; password = "Xlfc26b4eYGWs"; class = "Opers"; }; +Operator { name = "md5oper"; host = "*@*"; password = "$SMD5$2O$4O.rSAmhE4Fg05MmG.047/"; class = "Opers"; }; +Operator { name = "cryptoper"; host = "*@*"; password = "$CRYPT$41ndrxPQu3B66"; class = "Opers"; }; + +Kill { username = "sub7"; realname = "s*7*"; reason = "You are infected with a Trojan"; }; +Kill { realname = "Chloe"; reason = "drones"; }; +Kill { username = "sub7"; reason = "You are infected with a Trojan"; }; + +Client { class = "others"; ip = "*"; }; + +Port { server = yes; port = 7700; }; +Port { server = no; port = 7701; }; + +Quarantine { + "#shells" = "Thou shalt not support the h4><0rz"; +}; + +Pseudo "X" { + name = "X"; + nick = "X...@ch..."; +}; + +Features { + "HIS_STATS_k" = "FALSE"; +}; Index: ircd-ircdev/ircd/test/run-tests.sh diff -u /dev/null ircd-ircdev/ircd/test/run-tests.sh:1.1 --- /dev/null Mon May 16 04:31:30 2005 +++ ircd-ircdev/ircd/test/run-tests.sh Mon May 16 04:31:20 2005 @@ -0,0 +1,12 @@ +#! /bin/sh +set -e +srcdir=$1 +for script in channel-1 client-1 stats-1 gline-1 ; do + echo "Running test $script." + ${srcdir}/test-driver.pl ${srcdir}/${script}.cmd +done +echo "Terminating server." +${srcdir}/test-driver.pl ${srcdir}/die.cmd +../ircd -? +../ircd -v +../ircd -x 6 -k -d ${srcdir} -f ircd-t1.conf -c user@127.0.0.1 Index: ircd-ircdev/ircd/test/stats-1.cmd diff -u /dev/null ircd-ircdev/ircd/test/stats-1.cmd:1.1 --- /dev/null Mon May 16 04:31:30 2005 +++ ircd-ircdev/ircd/test/stats-1.cmd Mon May 16 04:31:20 2005 @@ -0,0 +1,91 @@ +# Connect to server +connect cl1 Alex alex localhost:7701 :Test client 1 +:cl1 oper oper1 oper1 + +# Single letter stats commands +:cl1 raw :stats a +:cl1 raw :stats c +:cl1 raw :stats d +:cl1 raw :stats D +:cl1 raw :stats e +:cl1 raw :stats f +:cl1 raw :stats g +:cl1 raw :stats i +:cl1 raw :stats j +:cl1 raw :stats J +:cl1 raw :stats k +:cl1 raw :stats l +:cl1 raw :stats L +:cl1 raw :stats m +:cl1 raw :stats o +:cl1 raw :stats p +:cl1 raw :stats q +:cl1 raw :stats r +:cl1 raw :stats R +:cl1 raw :stats t +:cl1 raw :stats T +:cl1 raw :stats u +:cl1 raw :stats U +:cl1 raw :stats v +:cl1 raw :stats V +:cl1 raw :stats w +:cl1 raw :stats x +:cl1 raw :stats z +:cl1 raw :stats * + +# Named stats commands +:cl1 raw :stats nameservers +:cl1 raw :stats connect +:cl1 raw :stats maskrules +:cl1 raw :stats crules +:cl1 raw :stats engine +:cl1 raw :stats features +:cl1 raw :stats glines +:cl1 raw :stats access +:cl1 raw :stats histogram +:cl1 raw :stats jupes +:cl1 raw :stats klines +:cl1 raw :stats links +:cl1 raw :stats modules +:cl1 raw :stats commands +:cl1 raw :stats operators +:cl1 raw :stats ports +:cl1 raw :stats quarantines +:cl1 raw :stats mappings +:cl1 raw :stats usage +:cl1 raw :stats motds +:cl1 raw :stats locals +:cl1 raw :stats uworld +:cl1 raw :stats uptime +:cl1 raw :stats vservers +:cl1 raw :stats vserversmach +:cl1 raw :stats userload +:cl1 raw :stats memusage +:cl1 raw :stats classes +:cl1 raw :stats memory +:cl1 raw :stats help +:cl1 raw :hash +:cl1 raw :rehash +:cl1 nick Alexey + +# Varparam stats +:cl1 raw :stats access * 127.0.0.1 +:cl1 raw :stats access * * +:cl1 raw :stats klines * * +:cl1 raw :stats klines * *@* +:cl1 raw :stats links * * +:cl1 raw :stats ports * 7700 +:cl1 raw :stats quarantines * #frou-frou +:cl1 raw :stats vservers * *.example.net + +# Invalid or nonexistent stats requests +:cl1 raw :stats y +:cl1 raw :stats ÿ +:cl1 raw :stats mºDãç +:cl1 raw :stats long_garbage_here_to_hopefully_trigger_the_core_reported_by_dan + +# Drop oper status and try a few others +:cl1 mode Alex -o +:cl1 raw :stats k +:cl1 raw :stats k * * +:cl1 raw :stats k * *@* Index: ircd-ircdev/ircd/test/test-driver.pl diff -u /dev/null ircd-ircdev/ircd/test/test-driver.pl:1.1 --- /dev/null Mon May 16 04:31:30 2005 +++ ircd-ircdev/ircd/test/test-driver.pl Mon May 16 04:31:20 2005 @@ -0,0 +1,541 @@ +#! /usr/bin/perl -wT + +# If you edit this file, please check carefully that the garbage +# collection isn't broken. POE is sometimes too clever for our good +# in finding references to sessions, and keeps running even after we +# want to stop. +# $Id: test-driver.pl,v 1.1 2005/05/16 11:31:20 zolty Exp $ + +# This interprets a simple scripting language. Lines starting with a +# hash mark (#, aka octothorpe, pound sign, etc) are ignored. The +# special commands look like this, where angle brackets indicate a +# metavariable: +# define <macro> <value> +# undef <macro> +# connect <name> <nick> <ident> <server> :<userinfo> +# sync <name1>,<name2>[,<name3>]* +# :<name> <command>[ <args]* +# For the last line syntax, <command> may be an IRC or IRC-like +# command. Supported non-IRC commands are: +# :<name> expect <source|*name2> [...] +# :<name> raw <text> +# :<name> sleep <seconds> +# :<name> wait <name2> + +require 5.006; + +use bytes; +use warnings; +use strict; +use vars; +use constant DELAY => 2; +use constant EXPECT_TIMEOUT => 15; +use constant RECONNECT_TIMEOUT => 5; +use constant THROTTLED_TIMEOUT => 90; + +use FileHandle; +use POE; +use POE::Component::IRC; + +# this defines commands that take "zero time" to execute +# (specifically, those which do not send commands from the issuing +# client to the server) +our $zero_time = { + expect => 1, + sleep => 1, + wait => 1, + }; + +# Create the main session and start POE. +# All the empty anonymous subs are just to make POE:Session::ASSERT_STATES happy. +POE::Session->create(inline_states => + { + # POE kernel interaction + _start => \&drv_start, + _child => sub {}, + _stop => sub { + my $heap = $_[HEAP]; + print "\nThat's all, folks!"; + print "(exiting at line $heap->{lineno}: $heap->{line})" + if $heap->{line}; + print "\n"; + }, + _default => \&drv_default, + # generic utilities or miscellaneous functions + heartbeat => \&drv_heartbeat, + timeout_expect => \&drv_timeout_expect, + reconnect => \&drv_reconnect, + enable_client => sub { $_[ARG0]->{ready} = 1; }, + disable_client => sub { $_[ARG0]->{ready} = 0; }, + die => sub { $_[KERNEL]->signal($_[SESSION], 'TERM'); }, + # client-based command issuers + cmd_die => \&cmd_generic, + cmd_expect => \&cmd_expect, + cmd_invite => \&cmd_generic, + cmd_join => \&cmd_generic, + cmd_mode => \&cmd_generic, + cmd_nick => \&cmd_generic, + cmd_notice => \&cmd_message, + cmd_oper => \&cmd_generic, + cmd_part => \&cmd_generic, + cmd_privmsg => \&cmd_message, + cmd_quit => \&cmd_generic, + cmd_raw => \&cmd_raw, + cmd_sleep => \&cmd_sleep, + cmd_wait => \&cmd_wait, + # handlers for messages from IRC + irc_001 => \&irc_connected, # Welcome to ... + irc_snotice => sub {}, # notice from a server (anonymous/our uplink) + irc_notice => \&irc_notice, # NOTICE to self or channel + irc_msg => \&irc_msg, # PRIVMSG to self + irc_public => \&irc_public, # PRIVMSG to channel + irc_connected => sub {}, + irc_ctcp_action => sub {}, + irc_ctcp_ping => sub {}, + irc_ctcp_time => sub {}, + irc_ctcpreply_ping => sub {}, + irc_ctcpreply_time => sub {}, + irc_invite => \&irc_invite, # INVITE to channel + irc_join => sub {}, + irc_kick => sub {}, + irc_kill => sub {}, + irc_mode => sub {}, + irc_nick => sub {}, + irc_part => sub {}, + irc_ping => sub {}, + irc_quit => sub {}, + irc_topic => sub {}, + irc_error => \&irc_error, + irc_disconnected => \&irc_disconnected, + irc_socketerr => \&irc_socketerr, + }, + args => [@ARGV]); + +$| = 1; +$poe_kernel->run(); +exit; + +# Core/bookkeeping test driver functions + +sub drv_start { + my ($kernel, $session, $heap) = @_[KERNEL, SESSION, HEAP]; + + # initialize heap + $heap->{clients} = {}; # session details, indexed by (short) session name + $heap->{sessions} = {}; # session details, indexed by session ref + $heap->{servers} = {}; # server addresses, indexed by short names + $heap->{macros} = {}; # macros + + # Parse arguments + foreach my $arg (@_[ARG0..$#_]) { + if ($arg =~ /^-D$/) { + $heap->{irc_debug} = 1; + } elsif ($arg =~ /^-V$/) { + $heap->{verbose} = 1; + } elsif ($arg =~ /^-vhost=(.*)$/) { + $heap->{vhost} = $1; + } else { + die "Extra command-line argument $arg\n" if $heap->{script}; + $heap->{script} = new FileHandle($arg, 'r') + or die "Unable to open $arg for reading: $!\n"; + } + } + die "No test name specified\n" unless $heap->{script}; + + # hook in to POE + $kernel->alias_set('control'); + $kernel->yield('heartbeat'); +} + +sub drv_heartbeat { + my ($kernel, $session, $heap) = @_[KERNEL, SESSION, HEAP]; + my $script = $heap->{script}; + my $used = {}; + my $delay = DELAY; + + while (1) { + my ($line, $lineno); + if ($heap->{line}) { + $line = delete $heap->{line}; + } elsif (defined($line = <$script>)) { + $heap->{lineno} = $.; + print "." unless $heap->{irc_debug}; + } else { + # close all connections + foreach my $client (values %{$heap->{clients}}) { + $kernel->call($client->{irc}, 'quit', "I fell off the end of my script"); + $client->{quitting} = 1; + } + # unalias the control session + $kernel->alias_remove('control'); + # die in a few seconds + $kernel->delay_set('die', 5); + return; + } + + chomp $line; + # ignore comments and blank lines + next if $line =~ /^\#/ or $line !~ /\S/; + + # expand any macros in the line + $line =~ s/(?<=[^\\])%(\S+?)%/$heap->{macros}->{$1} + or die "Use of undefined macro $1 at $heap->{lineno}\n"/eg; + # remove any \-escapes + $line =~ s/\\(.)/$1/g; + # figure out the type of line + if ($line =~ /^#/) { + # comment, silently ignore it + } elsif ($line =~ /^define (\S+) (.+)$/i) { + # define a new macro + $heap->{macros}->{$1} = $2; + } elsif ($line =~ /^undef (\S+)$/i) { + # remove the macro + delete $heap->{macros}->{$1}; + } elsif ($line =~ /^connect (\S+) (\S+) (\S+) (\S+) :(.+)$/i) { + # connect a new session (named $1) to server $4 + my ($name, $nick, $ident, $server, $userinfo, $port) = ($1, $2, $3, $4, $5, 6667); + $server = $heap->{servers}->{$server} || $server; + if ($server =~ /(.+):(\d+)/) { + $server = $1; + $port = $2; + } + die "Client with nick $nick already exists (line $heap->{lineno})" if $heap->{clients}->{$nick}; + my $alias = "client_$name"; + POE::Component::IRC->new($alias) + or die "Unable to create new user $nick (line $heap->{lineno}): $!"; + my $client = { name => $name, + nick => $nick, + ready => 0, + expect => [], + expect_alarms => [], + irc => $kernel->alias_resolve($alias), + params => { Nick => $nick, + Server => $server, + Port => $port, + Username => $ident, + Ircname => $userinfo, + Debug => $heap->{irc_debug}, + } + }; + $client->params->{LocalAddr} = $heap->{vhost} + if $heap->{vhost}; + $heap->{clients}->{$client->{name}} = $client; + $heap->{sessions}->{$client->{irc}} = $client; + $kernel->call($client->{irc}, 'register', 'all'); + $kernel->call($client->{irc}, 'connect', $client->{params}); + $used->{$name} = 1; + } elsif ($line =~ /^sync (.+)$/i) { + # do multi-way synchronization between every session named in $1 + my @synced = split(/,|\s/, $1); + # first, check that they exist and are ready + foreach my $clnt (@synced) { + die "Unknown session name $clnt (line $heap->{lineno})" unless $heap->{clients}->{$clnt}; + goto REDO unless $heap->{clients}->{$clnt}->{ready}; + } + # next we actually send the synchronization signals + foreach my $clnt (@synced) { + my $client = $heap->{clients}->{$clnt}; + $client->{sync_wait} = [map { $_ eq $clnt ? () : $heap->{clients}->{$_}->{nick} } @synced]; + $kernel->call($client->{irc}, 'notice', $client->{sync_wait}, 'SYNC'); + $kernel->call($session, 'disable_client', $client); + } + } elsif ($line =~ /^:(\S+) (\S+)(.*)$/i) { + # generic command handler + my ($names, $cmd, $args) = ($1, lc($2), $3); + my (@avail, @unavail); + # figure out whether each listed client is available or not + foreach my $c (split ',', $names) { + my $client = $heap->{clients}->{$c}; + if (not $client) { + print "ERROR: Unknown session name $c (line $heap->{lineno}; ignoring)\n"; + } elsif (($used->{$c} and not $zero_time->{$cmd}) or not $client->{ready}) { + push @unavail, $c; + } else { + push @avail, $c; + } + } + # redo command with unavailable clients + if (@unavail) { + # This will break if the command can cause a redo for + # available clients.. this should be fixed sometime + $line = ':'.join(',', @unavail).' '.$cmd.$args; + $heap->{redo} = 1; + } + # do command with available clients + if (@avail) { + # split up the argument part of the line + $args =~ /^((?:(?: [^:])|[^ ])+)?(?: :(.+))?$/; + $args = [($1 ? split(' ', $1) : ()), ($2 ? $2 : ())]; + # find the client and figure out if we need to wait + foreach my $c (@avail) { + my $client = $heap->{clients}->{$c}; + die "Client $c used twice as source (line $heap->{lineno})" if $used->{c} and not $zero_time->{$cmd}; + $kernel->call($session, 'cmd_'.$cmd, $client, $args); + $used->{$c} = 1 unless $zero_time->{$cmd}; + } + } + } else { + die "Unrecognized input line $heap->{lineno}: $line"; + } + if ($heap->{redo}) { + REDO: + delete $heap->{redo}; + $heap->{line} = $line; + last; + } + } + # issue new heartbeat with appropriate delay + $kernel->delay_set('heartbeat', $delay); +} + +sub drv_timeout_expect { + my ($kernel, $session, $client) = @_[KERNEL, SESSION, ARG0]; + print "ERROR: Dropping timed-out expectation by $client->{name}: ".join(',', @{$client->{expect}->[0]})."\n"; + $client->{expect_alarms}->[0] = undef; + unexpect($kernel, $session, $client); +} + +sub drv_reconnect { + my ($kernel, $session, $client) = @_[KERNEL, SESSION, ARG0]; + $kernel->call($client->{irc}, 'connect', $client->{params}); +} + +sub drv_default { + my ($kernel, $heap, $sender, $session, $state, $args) = @_[KERNEL, HEAP, SENDER, SESSION, ARG0, ARG1]; + if ($state =~ /^irc_(\d\d\d)$/) { + my $client = $heap->{sessions}->{$sender}; + if (@{$client->{expect}} + and $args->[0] eq $client->{expect}->[0]->[0] + and $client->{expect}->[0]->[1] eq "$1") { + my $expect = $client->{expect}->[0]; + my $mismatch; + for (my $x=2; ($x<=$#$expect) and ($x<=$#$args) and not $mismatch; $x++) { + $mismatch = 1 unless $args->[$x] =~ /$expect->[$x]/i; + } + unexpect($kernel, $session, $client) unless $mismatch; + } + return undef; + } + print "ERROR: Unexpected event $state to test driver (from ".$sender->ID.")\n"; + return undef; +} + +# client-based command issuers + +sub cmd_message { + my ($kernel, $heap, $event, $client, $args) = @_[KERNEL, HEAP, STATE, ARG0, ARG1]; + die "Missing arguments" unless $#$args >= 1; + # translate each target as appropriate (e.g. *sessionname) + my @targets = split(/,/, $args->[0]); + foreach my $target (@targets) { + if ($target =~ /^\*(.+)$/) { + my $other = $heap->{clients}->{$1} or die "Unknown session name $1 (line $heap->{lineno})\n"; + $target = $other->{nick}; + } + } + $kernel->call($client->{irc}, substr($event, 4), \@targets, $args->[1]); +} + +sub cmd_generic { + my ($kernel, $heap, $event, $client, $args) = @_[KERNEL, HEAP, STATE, ARG0, ARG1]; + $event =~ s/^cmd_//; + $kernel->call($client->{irc}, $event, @$args); +} + +sub cmd_raw { + my ($kernel, $heap, $client, $args) = @_[KERNEL, HEAP, ARG0, ARG1]; + die "Missing argument" unless $#$args >= 0; + $kernel->call($client->{irc}, 'sl', $args->[0]); +} + +sub cmd_sleep { + my ($kernel, $session, $heap, $client, $args) = @_[KERNEL, SESSION, HEAP, ARG0, ARG1]; + die "Missing argument" unless $#$args >= 0; + $kernel->call($session, 'disable_client', $client); + $kernel->delay_set('enable_client', $args->[0], $client); +} + +sub cmd_wait { + my ($kernel, $session, $heap, $client, $args) = @_[KERNEL, SESSION, HEAP, ARG0, ARG1]; + die "Missing argument" unless $#$args >= 0; + # if argument was comma-delimited, split it up (space-delimited is split by generic parser) + $args = [split(/,/, $args->[0])] if $args->[0] =~ /,/; + # make sure we only wait if all the other clients are ready + foreach my $other (@$args) { + if (not $heap->{clients}->{$other}->{ready}) { + $heap->{redo} = 1; + return; + } + } + # disable this client, make the others send SYNC to it + $kernel->call($session, 'disable_client', $client); + $client->{sync_wait} = [map { $heap->{clients}->{$_}->{nick} } @$args]; + foreach my $other (@$args) { + die "Cannot wait on self" if $other eq $client->{name}; + $kernel->call($heap->{clients}->{$other}->{irc}, 'notice', $client->{nick}, 'SYNC'); + } +} + +sub cmd_expect { + my ($kernel, $session, $heap, $client, $args) = @_[KERNEL, SESSION, HEAP, ARG0, ARG1]; + die "Missing argument" unless $#$args >= 0; + push @{$client->{expect}}, $args; + push @{$client->{expect_alarms}}, $kernel->delay_set('timeout_expect', EXPECT_TIMEOUT, $client); + $kernel->call($session, 'disable_client', $client); +} + +# handlers for messages from IRC + +sub unexpect { + my ($kernel, $session, $client) = @_; + shift @{$client->{expect}}; + my $alarm_id = shift @{$client->{expect_alarms}}; + $kernel->alarm_remove($alarm_id) if $alarm_id; + $kernel->call($session, 'enable_client', $client) unless @{$client->{expect}}; +} + +sub check_expect { + my ($kernel, $session, $heap, $poe_sender, $sender, $text) = @_[KERNEL, SESSION, HEAP, SENDER, ARG0, ARG1]; + my $client = $heap->{sessions}->{$poe_sender}; + my $expected = $client->{expect}->[0]; + + # check sender + if ($expected->[0] =~ /\*(.+)/) { + # we expect *sessionname, so look up session's current nick + my $exp = $1; + $sender =~ /^(.+)!/; + return 0 if lc($heap->{clients}->{$exp}->{nick}) ne lc($1); + } elsif ($expected->[0] =~ /^:?(.+!.+)/) { + # expect :nick!user@host, so compare whole thing + return 0 if lc($1) ne lc($sender); + } else { + # we only expect :nick, so compare that part + $sender =~ /^:?(.+)!/; + return 0 if lc($expected->[0]) ne lc($1); + } + + # compare text + return 0 if lc($text) !~ /$expected->[2]/i; + + # drop expectation of event + unexpect($kernel, $session, $client); +} + +sub irc_connected { + my ($kernel, $session, $heap, $sender) = @_[KERNEL, SESSION, HEAP, SENDER]; + my $client = $heap->{sessions}->{$sender}; + print "Client $client->{name} connected to server $_[ARG0]\n" if $heap->{verbose}; + $kernel->call($session, 'enable_client', $client); +} + +sub irc_disconnected { + my ($kernel, $session, $heap, $sender, $server) = @_[KERNEL, SESSION, HEAP, SENDER, ARG0]; + my $client = $heap->{sessions}->{$sender}; + print "Client $client->{name} disconnected from server $_[ARG0]\n" if $heap->{verbose}; + if ($client->{quitting}) { + $kernel->call($sender, 'unregister', 'all'); + delete $heap->{sessions}->{$sender}; + delete $heap->{clients}->{$client->{name}}; + } else { + if ($client->{disconnect_expected}) { + delete $client->{disconnect_expected}; + } else { + print "Got unexpected disconnect for $client->{name} (nick $client->{nick})\n"; + } + $kernel->call($session, 'disable_client', $client); + $kernel->delay_set('reconnect', $client->{throttled} ? THROTTLED_TIMEOUT : RECONNECT_TIMEOUT, $client); + delete $client->{throttled}; + } +} + +sub irc_socketerr { + my ($kernel, $session, $heap, $sender, $msg) = @_[KERNEL, SESSION, HEAP, SENDER, ARG0]; + my $client = $heap->{sessions}->{$sender}; + print "Client $client->{name} (re-)connect error: $_[ARG0]\n"; + if ($client->{quitting}) { + $kernel->call($sender, 'unregister', 'all'); + delete $heap->{sessions}->{$sender}; + delete $heap->{clients}->{$client->{name}}; + } else { + if ($client->{disconnect_expected}) { + delete $client->{disconnect_expected}; + } else { + print "Got unexpected disconnect for $client->{name} (nick $client->{nick})\n"; + } + $kernel->call($session, 'disable_client', $client); + $kernel->delay_set('reconnect', $client->{throttled} ? THROTTLED_TIMEOUT : RECONNECT_TIMEOUT, $client); + delete $client->{throttled}; + } +} + +sub irc_notice { + my ($kernel, $session, $heap, $sender, $from, $to, $text) = @_[KERNEL, SESSION, HEAP, SENDER, ARG0, ARG1, ARG2]; + my $client = $heap->{sessions}->{$sender}; + if ($client->{sync_wait} and $text eq 'SYNC') { + $from =~ s/!.+$//; + my $x; + # find who sent it.. + for ($x=0; $x<=$#{$client->{sync_wait}}; $x++) { + last if $from eq $client->{sync_wait}->[$x]; + } + # exit if we don't expect them + if ($x>$#{$client->{sync_wait}})... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-05-16 22:50:36
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-05-16 10:17:37 UTC Modified files: ChangeLog ChangeLog.es include/ddb.h include/patchlevel.h ircd/Makefile.in ircd/ddb.c ircd/ddb_db_native.c ircd/ddb_db_template.c ircd/ddb_events.c ircd/ircd_log.c ircd/m_db.c ircd/m_dbq.c ircd/m_ghost.c ircd/m_nick.c ircd/m_svsnick.c ircd/s_bsd.c ircd/s_conf.c ircd/s_serv.c ircd/s_user.c Log message: Author: zoltan <zo...@ir...> Log message: 2005-05-16 Toni García <zo...@ir...> 1.0.alpha33 * Fix de bugs * Documentación Doxygen ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.34 ircd-ircdev/ChangeLog:1.35 --- ircd-ircdev/ChangeLog:1.34 Sat May 7 15:23:39 2005 +++ ircd-ircdev/ChangeLog Mon May 16 03:17:26 2005 @@ -1,10 +1,14 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.34 2005/05/07 22:23:39 zolty Exp $ +# $Id: ChangeLog,v 1.35 2005/05/16 10:17:26 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-05-16 Toni García <zo...@ir...> 1.0.alpha33 + * Fix bugs + * Doxygen documentation + 2005-05-08 Toni García <zo...@ir...> 1.0.alpha32 * Fix bugs Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.34 ircd-ircdev/ChangeLog.es:1.35 --- ircd-ircdev/ChangeLog.es:1.34 Sat May 7 15:23:39 2005 +++ ircd-ircdev/ChangeLog.es Mon May 16 03:17:26 2005 @@ -1,10 +1,14 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.34 2005/05/07 22:23:39 zolty Exp $ +# $Id: ChangeLog.es,v 1.35 2005/05/16 10:17:26 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-05-16 Toni García <zo...@ir...> 1.0.alpha33 + * Fix de bugs + * Documentación Doxygen + 2005-05-08 Toni García <zo...@ir...> 1.0.alpha32 * Fix de bugs Index: ircd-ircdev/include/ddb.h diff -u ircd-ircdev/include/ddb.h:1.7 ircd-ircdev/include/ddb.h:1.8 --- ircd-ircdev/include/ddb.h:1.7 Sat May 7 05:43:28 2005 +++ ircd-ircdev/include/ddb.h Mon May 16 03:17:26 2005 @@ -18,8 +18,10 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: ddb.h,v 1.7 2005/05/07 12:43:28 zolty Exp $ - * + */ +/** @file + * @brief Distributed DataBases structures, macros and functions. + * @version $Id: ddb.h,v 1.8 2005/05/16 10:17:26 zolty Exp $ */ #ifndef INCLUDED_ddb_h #define INCLUDED_ddb_h @@ -34,64 +36,77 @@ /* * General defines */ -/* Las tablas con los registros, serie, version */ +/** Maxium number of tables */ #define DDB_TABLE_MAX 256 -/*Numero de peticiones de registros antes de que haya que empezar a reciclar */ +/** Number of keys is caching */ #define DDB_BUF_CACHE 32 + /* - * Distributed DataBase Tables + * Distributed DataBases Tables */ -#define DDB_INIT 'a' /* First table */ - -#define DDB_CHANDB 'c' /* ChanDB table */ -#define DDB_ILINEDB 'i' /* IlineDB table */ -#define DDB_NICKDB 'n' /* NickDB table */ -#define DDB_CONFIGDB 'z' /* ConfigDB table */ -#define DDB_END 'z' /* Last table */ +/** First table of %DDB Distributed Databases. */ +#define DDB_INIT 'a' +/** Channels table of %DDB Distributed Databases. */ +#define DDB_CHANDB 'c' +/** Ilines table of %DDB Distributed Databases. */ +#define DDB_ILINEDB 'i' +/** Nicks table of %DDB Distributed Databases. */ +#define DDB_NICKDB 'n' +/** Config table of %DDB Distributed Databases. */ +#define DDB_CONFIGDB 'z' +/** Last table of %DDB Distributed Databases. */ +#define DDB_END 'z' +/* + * Config keys of config table 'z' + */ +/** Number of max clones per ip */ #define DDB_CONFIGDB_MAX_CLONES_PER_IP "maxclones" +/** Message to clients with too many clones from your ip */ #define DDB_CONFIGDB_MSG_TOO_MANY_FROM_IP "msgmanyperip" + /* * PseudoBots */ +/** Nickname of virtual bot for nicks registers */ #define DDB_NICKSERV "NickServ" -/* - * Structures +/** Describes a key on one table. */ struct Ddb { - char *key; - char *content; - struct Ddb *next; + char* ddb_key; /**< Key of the register */ + char* ddb_content; /**< Content of the key */ + struct Ddb* ddb_next; /**< Next key on the table */ }; -struct ddb_stat { - dev_t dev; /* ID of device containing a directory entry for this file */ - ino_t ino; /* Inode number */ - off_t size; /* File size in bytes */ - time_t mtime; /* Time of last data modification */ -}; +/** Get key of the register. */ +#define ddb_key(ddb) ((ddb)->ddb_key) +/** Get content of the key. */ +#define ddb_content(ddb) ((ddb)->ddb_content) +/** Get next key on the table. */ +#define ddb_next(ddb) ((ddb)->ddb_next) -/* - * ddb_db_native + +/** An copy of kernel structure stat. */ -struct ddb_memory_table { - struct ddb_stat file_stat; - char *position; /* Posicion */ - char *point_r; /* Lectura */ -#if 0 - char *point_w; /* Escritura */ -#endif +struct ddb_stat { + dev_t dev; /**< ID of device containing a directory entry for this file */ + ino_t ino; /**< Inode number */ + off_t size; /**< File size in bytes */ + time_t mtime; /**< Time of last data modification */ }; +/** DDB Macro for allocations. */ #define DdbMalloc(x) MyMalloc(x) +/** DDB Macro for freeing memory. */ #define DdbFree(x) MyFree(x) + /* * Prototypes */ @@ -114,9 +129,10 @@ extern void ddb_events_init(void); extern void ddb_end(void); -extern void ddb_new_register(struct Client *cptr, unsigned char table, char *mask, unsigned int id, char *key, char *content); +extern void ddb_new_register(struct Client *cptr, unsigned char table, unsigned int id, char *mask, char *key, char *content); extern void ddb_drop(unsigned char table); extern void ddb_drop_memory(unsigned char table, int events); +extern void ddb_compact(unsigned char table, unsigned int id, char *content); extern void ddb_burst(struct Client *cptr); extern int ddb_table_burst(struct Client *cptr, unsigned char table, unsigned int id); @@ -130,14 +146,14 @@ extern void ddb_die(const char *pattern, ...); extern void ddb_report_stats(struct Client* to, const struct StatDesc* sd, char* param); -/* Externs de ddb_db_*.c */ +/* ddb_db_*.c externs */ extern void ddb_db_init(void); extern int ddb_db_read(struct Client *cptr, unsigned char table, unsigned int id, int count); -extern void ddb_db_write(unsigned char table, char *mask, unsigned int id, char *key, char *content); +extern void ddb_db_write(unsigned char table, unsigned int id, char *mask, char *key, char *content); extern void ddb_db_drop(unsigned char table); -extern void ddb_compact(unsigned char table, char *mask, unsigned int id, char *comment); -extern void ddb_hash_read(unsigned char table, unsigned int *hi, unsigned int *lo); -extern void ddb_hash_write(unsigned char table); +extern void ddb_db_compact(unsigned char table); +extern void ddb_db_hash_read(unsigned char table, unsigned int *hi, unsigned int *lo); +extern void ddb_db_hash_write(unsigned char table); extern void ddb_db_end(void); #endif /* defined(DDB) */ Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.33 ircd-ircdev/include/patchlevel.h:1.34 --- ircd-ircdev/include/patchlevel.h:1.33 Sat May 7 15:23:40 2005 +++ ircd-ircdev/include/patchlevel.h Mon May 16 03:17:26 2005 @@ -17,10 +17,10 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: patchlevel.h,v 1.33 2005/05/07 22:23:40 zolty Exp $ + * $Id: patchlevel.h,v 1.34 2005/05/16 10:17:26 zolty Exp $ * */ -#define PATCHLEVEL ".alpha32" +#define PATCHLEVEL ".alpha33" #define RELEASE "1.0" Index: ircd-ircdev/ircd/Makefile.in diff -u ircd-ircdev/ircd/Makefile.in:1.25 ircd-ircdev/ircd/Makefile.in:1.26 --- ircd-ircdev/ircd/Makefile.in:1.25 Sat May 7 05:43:29 2005 +++ ircd-ircdev/ircd/Makefile.in Mon May 16 03:17:26 2005 @@ -18,7 +18,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA -# $Id: Makefile.in,v 1.25 2005/05/07 12:43:29 zolty Exp $ +# $Id: Makefile.in,v 1.26 2005/05/16 10:17:26 zolty Exp $ #### Start of system configuration section. #### @@ -1649,31 +1649,36 @@ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ ../include/capab.h ../include/ircd.h ../include/struct.h \ ../include/ircd_alloc.h ../include/ircd_chattr.h ../include/ircd_log.h \ - ../include/ircd_reply.h ../include/ircd_string.h ../include/ircd_tea.h \ - ../include/list.h ../include/match.h ../include/msg.h \ - ../include/numeric.h ../include/s_bsd.h ../include/s_debug.h \ - ../include/s_misc.h ../include/send.h + ../include/ircd_reply.h ../include/ircd_snprintf.h \ + ../include/ircd_string.h ../include/ircd_tea.h ../include/list.h \ + ../include/match.h ../include/msg.h ../include/numeric.h \ + ../include/s_bsd.h ../include/s_debug.h ../include/s_misc.h \ + ../include/send.h # 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ddb_db_native.o: ddb_db_native.c ../config.h ../include/ddb.h ../config.h \ ../include/client.h ../include/ircd_defs.h ../include/dbuf.h \ ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ - ../include/res.h ../include/capab.h ../include/ircd_features.h \ - ../include/ircd_log.h ../include/ircd_snprintf.h ../include/numnicks.h + ../include/res.h ../include/capab.h ../include/client.h \ + ../include/ircd.h ../include/struct.h ../include/ircd_features.h \ + ../include/ircd_log.h ../include/ircd_snprintf.h \ + ../include/ircd_string.h ../include/ircd_chattr.h ../include/msg.h \ + ../include/numnicks.h ../include/s_debug.h ../include/send.h # 1 "/usr/home/zoltan/ircd-ircdev/ircd//" ddb_events.o: ddb_events.c ../config.h ../include/ddb.h ../config.h \ ../include/client.h ../include/ircd_defs.h ../include/dbuf.h \ ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ ../include/res.h ../include/capab.h ../include/client.h \ ../include/hash.h ../include/ircd.h ../include/struct.h \ - ../include/ircd_tea.h ../include/msg.h ../include/numnicks.h \ - ../include/s_user.h ../include/send.h + ../include/ircd_snprintf.h ../include/ircd_tea.h ../include/msg.h \ + ../include/numnicks.h ../include/s_user.h ../include/send.h # 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_db.o: m_db.c ../config.h ../include/ddb.h ../config.h \ ../include/client.h ../include/ircd_defs.h ../include/dbuf.h \ ../include/msgq.h ../include/ircd_events.h ../include/ircd_handler.h \ ../include/res.h ../include/capab.h ../include/client.h \ - ../include/ircd.h ../include/struct.h ../include/ircd_log.h \ - ../include/ircd_reply.h ../include/list.h ../include/match.h \ + ../include/ircd.h ../include/struct.h ../include/ircd_features.h \ + ../include/ircd_log.h ../include/ircd_reply.h \ + ../include/ircd_snprintf.h ../include/list.h ../include/match.h \ ../include/msg.h ../include/numnicks.h ../include/send.h \ ../include/s_debug.h # 1 "/usr/home/zoltan/ircd-ircdev/ircd//" @@ -1700,9 +1705,10 @@ ../include/capab.h ../include/ddb.h ../config.h ../include/client.h \ ../include/hash.h ../include/ircd.h ../include/struct.h \ ../include/ircd_features.h ../include/ircd_log.h \ - ../include/ircd_string.h ../include/ircd_chattr.h ../include/ircd_tea.h \ - ../include/msg.h ../include/numnicks.h ../include/s_conf.h \ - ../include/s_user.h ../include/send.h ../include/sys.h + ../include/ircd_snprintf.h ../include/ircd_string.h \ + ../include/ircd_chattr.h ../include/ircd_tea.h ../include/msg.h \ + ../include/numnicks.h ../include/s_conf.h ../include/s_user.h \ + ../include/send.h ../include/sys.h # 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_svsnick.o: m_svsnick.c ../config.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ @@ -1710,9 +1716,10 @@ ../include/capab.h ../include/ddb.h ../config.h ../include/client.h \ ../include/hash.h ../include/ircd.h ../include/struct.h \ ../include/ircd_features.h ../include/ircd_log.h \ - ../include/ircd_string.h ../include/ircd_chattr.h ../include/ircd_tea.h \ - ../include/msg.h ../include/numnicks.h ../include/s_conf.h \ - ../include/s_user.h ../include/send.h ../include/sys.h + ../include/ircd_snprintf.h ../include/ircd_string.h \ + ../include/ircd_chattr.h ../include/ircd_tea.h ../include/msg.h \ + ../include/numnicks.h ../include/s_conf.h ../include/s_user.h \ + ../include/send.h ../include/sys.h # 1 "/usr/home/zoltan/ircd-ircdev/ircd//" # 1 "/usr/home/zoltan/ircd-ircdev/ircd//" # 1 "/usr/home/zoltan/ircd-ircdev/ircd//" Index: ircd-ircdev/ircd/ddb.c diff -u ircd-ircdev/ircd/ddb.c:1.8 ircd-ircdev/ircd/ddb.c:1.9 --- ircd-ircdev/ircd/ddb.c:1.8 Sat May 7 15:23:40 2005 +++ ircd-ircdev/ircd/ddb.c Mon May 16 03:17:26 2005 @@ -2,7 +2,8 @@ * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ddb.c * * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> - * Copyright (C) 2004 Toni Garcia (zoltan) <zo...@ir...> + * Copyright (C) 2004-2005 Toni Garcia (zoltan) <zo...@ir...> + * Copyright (C) 1999-2003 Jesus Cea Avion <jc...@ar...> Esnet IRC Network * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +22,7 @@ */ /** @file * @brief Implementation of Distributed DataBase. - * @version $Id: ddb.c,v 1.8 2005/05/07 22:23:40 zolty Exp $ + * @version $Id: ddb.c,v 1.9 2005/05/16 10:17:26 zolty Exp $ */ #include "config.h" @@ -46,31 +47,53 @@ /* #include <assert.h> -- Now using assert in ircd_log.h */ #include <stdarg.h> #include <stdio.h> -/*#include <stdlib.h> */ #include <string.h> #include <time.h> +/** @page ddb Distributed DataBase + * + * + * TODO, explicacion del sistema + */ + +/** DDB registers cache. */ static struct Ddb ddb_buf_cache[DDB_BUF_CACHE]; +/** Buffer cache. */ static int ddb_buf_cache_i = 0; +/** Tables of %DDB. */ struct Ddb **ddb_data_table[DDB_TABLE_MAX]; -short ddb_corrupt_table[DDB_TABLE_MAX]; +/** Residents tables of %DDB. */ unsigned int ddb_resident_table[DDB_TABLE_MAX]; +/** Registers count of %DDB tables. */ unsigned int ddb_count_table[DDB_TABLE_MAX]; +/** ID number of %DDB tables. */ unsigned int ddb_id_table[DDB_TABLE_MAX]; +/** Hi hash table. */ unsigned int ddb_hashtable_hi[DDB_TABLE_MAX]; +/** Lo hash table. */ unsigned int ddb_hashtable_lo[DDB_TABLE_MAX]; +/** File or DB stats of %DDB tables.*/ struct ddb_stat ddb_stats_table[DDB_TABLE_MAX]; +/** Last key on iterator. */ static struct Ddb *ddb_iterator_key = NULL; +/** Last content on iterator. */ static struct Ddb **ddb_iterator_content = NULL; +/** Position of hash on iterator. */ static int ddb_iterator_hash_pos = 0; +/** Length of hash on iterator. */ static int ddb_iterator_hash_len = 0; +static void ddb_table_init(unsigned char table); static int ddb_add_key(unsigned char table, char *key, char *content); static int ddb_del_key(unsigned char table, char *key); +/** Verify if a table is resident. + * @param[in] table Table of the %DDB Distributed DataBase. + * @return Non-zero if a table is resident; zero is not resident. + */ int ddb_table_is_resident(unsigned char table) { return ddb_resident_table[table] ? 1 : 0; @@ -88,8 +111,10 @@ } */ -/** - * +/** Copy a malloc in the memory. + * @param[in] buf Buffer + * @param[in] len Length + * @param[in] p Pointer */ static void DdbCopyMalloc(char *buf, int len, char **p) @@ -104,15 +129,19 @@ } if (!p2) { - p2 = MyMalloc(len + 1); /* El '\0' final */ + p2 = MyMalloc(len + 1); /* The '\0' */ *p = p2; } memcpy(p2, buf, len); p2[len] = '\0'; } -/** - * +/** Calculates the hash. + * @param[in] table Table of the %DDB Distributed DataBase. + * @param[in] id ID number in the table. + * @param[in] mask Mask of the server. + * @param[in] key Key of the registry. + * @param[in] content Content of the registry. */ static void ddb_hash_calculate(unsigned char table, unsigned int id, char *mask, char *key, char *content) @@ -134,11 +163,14 @@ strncpy((char *)buffer, buf, sizeof(buffer) - 1); + /* TODO */ +#if 0 /* Parece que no es necesario, comprobarlo */ while ((p2 = strchr((char *)buffer, '\n'))) *p2 = '\0'; while ((p2 = strchr((char *)buffer, '\r'))) *p2 = '\0'; +#endif k[0] = k[1] = 0; x[0] = ddb_hashtable_hi[table]; @@ -154,8 +186,7 @@ ddb_hashtable_lo[table] = x[1]; } -/** initialize Distributed DataBase - * +/** Initialize %DDB Distributed DataBases. */ void ddb_init(void) @@ -168,33 +199,92 @@ memset(ddb_resident_table, 0, sizeof(ddb_resident_table)); /* - * Las longitudes DEBEN ser potencias de 2, - * y no deben ser superiores a HASHSIZE, ya que ello - * solo desperdiciaria memoria. + * The lengths MUST be powers of 2 and do not have + * to be superior to HASHSIZE. */ ddb_resident_table[DDB_ILINEDB] = 256; ddb_resident_table[DDB_NICKDB] = 32768; ddb_resident_table[DDB_CONFIGDB] = 256; for (table = DDB_INIT; table <= DDB_END; table++) - { - ddb_drop_memory(table, 0); - ddb_db_read(NULL, table, 0, 0); -/* ddb_hash_read(table); */ - } + ddb_table_init(table); /* - * La operacion anterior puede ser una operacion larga. - * Resincronizamos tiempo. + * The previous operation it can be a long operation. + * Updates time. */ CurrentTime = time(NULL); } -/** - * +/** Initialize a table of %DDB. + * @param[in] table + */ +static void ddb_table_init(unsigned char table) +{ + unsigned int hi, lo; + + /* First drop table */ + ddb_drop_memory(table, 0); + + /* Read the table on file or database */ + ddb_db_read(NULL, table, 0, 0); + + /* Read hashes */ + ddb_db_hash_read(table, &hi, &lo); + + /* Compare memory hashes with local hashes */ + sendto_opmask_butone(0, SNO_OLDSNO, "Lo: %d Hashtable_Lo: %d Hi: %d Hashtable_Hi %d", + lo, ddb_hashtable_lo[table], hi, ddb_hashtable_hi[table]); + +#if 0 + if ((ddb_hashtable_hi[table] != hi) || (ddb_hashtable_lo[table] != lo)) + { + struct DLink *lp; + char buf[1024]; + + log_write(LS_DDB, L_INFO, 0, "WARNING - Table '%c' is corrupt. Droping table...", table); + ddb_db_drop(table); + + ircd_snprintf(0, buf, sizeof(buf), "Table '%c' is corrupt. Reloading via remote burst...", table); + ddb_splithubs_butone(NULL, buf); + + log_write(LS_DDB, L_INFO, 0, "Solicit a copy of table '%s' to neighboring nodes", table); + + /* Solicit a copy to only hubs*/ + for (lp = cli_serv(&me)->down; lp; lp = lp->next) + { + if (IsHub(lp->value.cptr)) + sendcmdto_one(&me, CMD_DB, lp->value.cptr, "%C 0 J %u %c", + lp->value.cptr, ddb_id_table[table], table); + } + } + else +#endif + { + ddb_db_hash_write(table); + + if (ddb_resident_table[table]) + { + ddb_del_key(table, "*"); + log_write(LS_DDB, L_INFO, 0, "Loading Table '%c' finished: S=%u R=%u", + table, ddb_id_table[table], ddb_count_table[table]); + } + else if (ddb_count_table[table]) + log_write(LS_DDB, L_INFO, 0, "Loading Table '%c' finished: S=%u NoResident", + table, ddb_id_table[table]); + } +} + +/** Add a new register from the network or reading when ircd is starting. + * @param[in] cptr %Server sending a new register. If is NULL, it is own server during ircd start. + * @param[in] table Table of the %DDB Distributed DataBases. + * @param[in] id Identify number of the register. + * @param[in] mask Servermask of the register. + * @param[in] key Key of the register. + * @param[in] content Content of the key. */ void -ddb_new_register(struct Client *cptr, unsigned char table, char *mask, unsigned int id, char *key, char *content) +ddb_new_register(struct Client *cptr, unsigned char table, unsigned int id, char *mask, char *key, char *content) { static char *keytemp = NULL; static int key_len = 0; @@ -204,30 +294,27 @@ ddb_hash_calculate(table, id, mask, key, content); - /* Al iniciar, cptr no existe y por lo tanto no se escribe */ + /* In the ircd starting, cptr is NULL and it not writing on file or database */ if (cptr) { - ddb_db_write(table, mask, id, key, content); - ddb_hash_write(table); + ddb_db_write(table, id, mask, key, content); + ddb_db_hash_write(table); } ddb_id_table[table] = id; - /* Solo ponemos en memoria registros cuya mascara - * concuerda con el servidor. - * Y por supuesto, que sean residentes - */ + /* If the table is not resident, do not save in memory */ if (!ddb_resident_table[table]) return; - /* Usamos collapse+match por un bug en lastNNServer del find_match_server */ + /* If a mask is not concerned with me, do not save in memory */ + /* For lastNNServer bug (find_match_server) it use collapse + match */ collapse(mask); if (!match(mask, cli_name(&me))) { - int i = 0; +/* int i = 0; */ int update = 0; - /* pasamos el key en minusculas */ if ((strlen(key) + 1 > key_len) || (!keytemp)) { key_len = strlen(key) + 1; @@ -238,17 +325,21 @@ assert(0 != keytemp); } strcpy(keytemp, key); + +/* while (keytemp[i]) { -/* keytemp[i] = ToLower(keytemp[i]); */ + keytemp[i] = ToLower(keytemp[i]); i++; } +*/ if (content) update = ddb_add_key(table, keytemp, content); else ddb_del_key(table, keytemp); + /* TODO */ /* Ejecutamos los eventos */ /* if (!cptr && ddb_events_table[table]) */ if (ddb_events_table[table]) @@ -257,8 +348,11 @@ } -/** - * +/** Add or update an register on the memory. + * @param[in] table Table of the %DDB Distributed DataBases. + * @param[in] key Key of the register. + * @param[in] content Content of the key. + * @return 1 is an update, 0 is a new register. */ static int ddb_add_key(unsigned char table, char *key, char *content) @@ -281,7 +375,6 @@ strcpy(k, key); strcpy(c, content); - /* paso a minusculas */ /* while (c[i] != 0) { @@ -290,23 +383,25 @@ } */ - ddb->key = k; - ddb->content = c; - ddb->next = NULL; + ddb_key(ddb) = k; + ddb_content(ddb) = c; + ddb_next(ddb) = NULL; - hashi = ddb_hash_register(ddb->key, ddb_resident_table[table]); + hashi = ddb_hash_register(ddb_key(ddb), ddb_resident_table[table]); - Debug((DEBUG_INFO, "Inserto T='%c' K='%s' C='%s' H=%u",table, ddb->key, ddb->content, hashi)); + Debug((DEBUG_INFO, "Add DDB: T='%c' K='%s' C='%s' H=%u", table, ddb_key(ddb), ddb_content(ddb), hashi)); - ddb->next = ddb_data_table[table][hashi]; + ddb_next(ddb) = ddb_data_table[table][hashi]; ddb_data_table[table][hashi] = ddb; ddb_count_table[table]++; - return delete; + return delete; } -/** - * +/** Delete an register from memory. + * @param[in] table Table of the %DDB Distributed DataBases. + * @param[in] key Key of the register. + * @return 1 on success; 0 do not delete. */ static int ddb_del_key(unsigned char table, char *key) @@ -322,8 +417,8 @@ for (ddb = *ddb3; ddb; ddb = ddb2) { - ddb2 = ddb->next; - if (!strcmp(ddb->key, key)) + ddb2 = ddb_next(ddb); + if (!strcmp(ddb_key(ddb), key)) { *ddb3 = ddb2; delete = 1; @@ -331,30 +426,31 @@ ddb_count_table[table]--; break; } - ddb3 = &(ddb->next); + ddb3 = &(ddb_next(ddb)); } return delete; } -/** - * +/** Deletes a table. + * @param[in] table Table of the %DDB Distributed DataBases. */ void ddb_drop(unsigned char table) { - /* Borramos el fichero de la tabla */ + /* Delete file or database of the table */ ddb_db_drop(table); - /* Borramos la tabla en la memoria */ + /* Delete table from memory */ ddb_drop_memory(table, 0); - - ddb_hash_write(table); - ddb_corrupt_table[table] = 0; + + /* Write hash on file or database */ + ddb_db_hash_write(table); } -/** - * +/** Deletes a table from memory. + * @param[in] table Table of the %DDB Distributed DataBases. + * @param[in] events Non-zero impliques events. */ void ddb_drop_memory(unsigned char table, int events) @@ -371,10 +467,10 @@ { for (ddb = ddb_data_table[table][i]; ddb; ddb = ddb2) { - ddb2 = ddb->next; + ddb2 = ddb_next(ddb); if (events && ddb_events_table[table]) - ddb_events_table[table](ddb->key, NULL, 0); + ddb_events_table[table](ddb_key(ddb), NULL, 0); DdbFree(ddb); } @@ -395,19 +491,35 @@ ddb_id_table[table] = 0; ddb_hashtable_hi[table] = 0; ddb_hashtable_lo[table] = 0; -/* - tabla_corrupta[tabla] = 0; -*/ } -/** - * +/** Packing the table. + * @param[in] table Table of the %DDB Distributed DataBases. + * @param[in] id Identify number of the register. + * @param[in] content Content of the key. + */ +void +ddb_compact(unsigned char table, unsigned int id, char *content) +{ + log_write(LS_DDB, L_INFO, 0, "Packing table '%c'", table); + ddb_id_table[table] = id; + ddb_db_compact(table); + + ddb_hash_calculate(table, id, "*", "*", content); + ddb_db_write(table, id, "*", "*", content); + ddb_db_hash_write(table); +} + +/** Sending the %DDB burst tables. + * @param[in] cptr %Server sending the petition. */ void ddb_burst(struct Client *cptr) { int i; + sendto_opmask_butone(0, SNO_NETWORK, "Bursting DDB tables"); + sendcmdto_one(&me, CMD_DB, cptr, "* 0 J %u n", ddb_id_table[DDB_NICKDB]); @@ -419,8 +531,8 @@ } } -/** - * +/** Initializes %DDB iterator. + * @return ddb_iterator_key pointer. */ static struct Ddb * ddb_iterator_init(void) @@ -429,16 +541,13 @@ if (ddb_iterator_key) { - ddb_iterator_key = ddb_iterator_key->next; + ddb_iterator_key = ddb_next(ddb_iterator_key); if (ddb_iterator_key) { return ddb_iterator_key; } } - /* - * Indica el PROXIMO valor a utilizar. - */ while (ddb_iterator_hash_pos < ddb_iterator_hash_len) { ddb = ddb_iterator_content[ddb_iterator_hash_pos++]; @@ -456,8 +565,9 @@ return NULL; } -/** - * +/** Initializes iterator for a table. + * @param[in] table Table of the %DDB Distributed DataBase. + * @return First active register on a table. */ struct Ddb * ddb_iterator_first(unsigned char table) @@ -473,9 +583,9 @@ return ddb_iterator_init(); } - -/** - * + +/** Next iterator. + * @return Next active register on a table. */ struct Ddb * ddb_iterator_next(void) @@ -487,15 +597,17 @@ return ddb_iterator_init(); } -/** - * +/** Find a register by the key (internal). + * @param[in] table Table of the %DDB Distributed DataBases. + * @param[in] key Key of the register. + * @return Pointer of the register. */ static struct Ddb *ddb_find_registry_table(unsigned char table, char *key) { struct Ddb *ddb; static char *k = 0; static int k_len = 0; - int i, hashi; + int i = 0, hashi; if ((strlen(key) + 1 > k_len) || (!k)) { @@ -507,30 +619,33 @@ return 0; } strcpy(k, key); - /* paso a minusculas */ - i = 0; + +/* while (k[i]) { -/* k[i] = ToLower(k[i]); */ + k[i] = ToLower(k[i]); i++; } +*/ hashi = ddb_hash_register(k, ddb_resident_table[table]); - for (ddb = ddb_data_table[table][hashi]; ddb; ddb = ddb->next) + for (ddb = ddb_data_table[table][hashi]; ddb; ddb = ddb_next(ddb)) { -/* if (!strcmp(ddb->key, k)) */ - if (!ircd_strcmp(ddb->key, k)) +/* if (!strcmp(ddb_key(ddb), k)) */ + if (!ircd_strcmp(ddb_key(ddb), k)) { - assert(0 != ddb->content); + assert(0 != ddb_content(ddb)); return ddb; } } return NULL; } -/** - * +/** Find a register by the key. + * @param[in] table Table of the %DDB Distributed DataBases. + * @param[in] key Key of the register. + * @return Pointer of the register. */ struct Ddb *ddb_find_key(unsigned char table, char *key) { @@ -547,24 +662,25 @@ if (!ddb) return NULL; - /* Lo que sigue lo sustituye */ - key_init = ddb->key; + key_init = ddb_key(ddb); key_end = key_init + strlen(key_init); - content_init = ddb->content; + content_init = ddb_content(ddb); content_end = content_init + strlen(content_init); DdbCopyMalloc(key_init, key_end - key_init, - &ddb_buf_cache[ddb_buf_cache_i].key); + &ddb_buf_cache[ddb_buf_cache_i].ddb_key); DdbCopyMalloc(content_init, content_end - content_init, - &ddb_buf_cache[ddb_buf_cache_i].content); + &ddb_buf_cache[ddb_buf_cache_i].ddb_content); if (++ddb_buf_cache_i >= DDB_BUF_CACHE) ddb_buf_cache_i = 0; return ddb; } -/** - * +/** Get nick!user@host of the virtual bot. + * @param[in] bot Key of the register. + * @return nick!user@host of the virtual bot if exists and + * if not exists, return my servername. */ char * ddb_get_botname(char *bot) @@ -573,21 +689,19 @@ ddb = ddb_find_key(DDB_CONFIGDB, DDB_NICKSERV); if (ddb) - return ddb->content; + return ddb_content(ddb); else return cli_name(&me); } -/** - * +/** When IRCD is reloading, it is executing. */ void ddb_reload(void) { - sendto_opmask_butone(0, SNO_OLDSNO, "Reload Distributed DataBase..."); log_write(LS_DDB, L_INFO, 0, "Reload Distributed DataBase..."); - ddb_init(); + /* ddb_init(); */ } @@ -641,6 +755,8 @@ server_die(exitmsg); } +/** Finalizes the %DDB subsystem. + */ void ddb_end(void) { Index: ircd-ircdev/ircd/ddb_db_native.c diff -u ircd-ircdev/ircd/ddb_db_native.c:1.3 ircd-ircdev/ircd/ddb_db_native.c:1.4 --- ircd-ircdev/ircd/ddb_db_native.c:1.3 Sat May 7 15:23:40 2005 +++ ircd-ircdev/ircd/ddb_db_native.c Mon May 16 03:17:27 2005 @@ -3,7 +3,7 @@ * * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> * Copyright (C) 2004-2005 Toni Garcia (zoltan) <zo...@ir...> - * Copyright (C) 1999-2003 Jesus Cea Avion <jc...@ar...> + * Copyright (C) 1... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-05-17 00:59:02
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-05-16 11:23:00 UTC Modified files: ChangeLog ChangeLog.es configure configure.in include/patchlevel.h ircd/channel.c ircd/ircd.c ircd/ircd_crypt_native.c ircd/ircd_parser.y ircd/m_trace.c ircd/motd.c ircd/msgq.c ircd/numnicks.c ircd/os_generic.c ircd/s_stats.c ircd/umkpasswd.c ircd/test/ircd_in_addr_t.c Log message: Author: zoltan <zo...@ir...> Log message: 2005-05-16 Toni García <zo...@ir...> 1.0.alpha34 * Sincronización Undernet ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.35 ircd-ircdev/ChangeLog:1.36 --- ircd-ircdev/ChangeLog:1.35 Mon May 16 03:17:26 2005 +++ ircd-ircdev/ChangeLog Mon May 16 04:22:48 2005 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.35 2005/05/16 10:17:26 zolty Exp $ +# $Id: ChangeLog,v 1.36 2005/05/16 11:22:48 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-05-16 Toni García <zo...@ir...> 1.0.alpha34 + * Undernet synchronization + 2005-05-16 Toni García <zo...@ir...> 1.0.alpha33 * Fix bugs * Doxygen documentation Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.35 ircd-ircdev/ChangeLog.es:1.36 --- ircd-ircdev/ChangeLog.es:1.35 Mon May 16 03:17:26 2005 +++ ircd-ircdev/ChangeLog.es Mon May 16 04:22:48 2005 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.35 2005/05/16 10:17:26 zolty Exp $ +# $Id: ChangeLog.es,v 1.36 2005/05/16 11:22:48 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-05-16 Toni García <zo...@ir...> 1.0.alpha34 + * Sincronización Undernet + 2005-05-16 Toni García <zo...@ir...> 1.0.alpha33 * Fix de bugs * Documentación Doxygen Index: ircd-ircdev/configure diff -u ircd-ircdev/configure:1.17 ircd-ircdev/configure:1.18 --- ircd-ircdev/configure:1.17 Fri Apr 22 09:51:16 2005 +++ ircd-ircdev/configure Mon May 16 04:22:48 2005 @@ -849,8 +849,7 @@ it is a system call --enable-debug Turn on debugging mode --disable-asserts Disable assertion checking - --disable-symbols Disable debugging symbols (remove -g from CFLAGS) - --enable-profile Enable profiling support (add -pg to CFLAGS) + --enable-profile Enable profiling support (add -pg to CFLAGS and LDFLAGS) --enable-pedantic Enable pedantic warnings (add -pedantic to CFLAGS) --enable-warnings Enable warnings (add -Wall to CFLAGS) --disable-inlines Disable inlining for a few critical functions @@ -861,8 +860,6 @@ Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-optimization=-O2 Explicitly set the compiler optimization flags - (default: -O3) --with-leak-detect Turn on the leak detector(requires patched boehm) --without-ipv6 disable IPv6 support (default is autodetect) --with-symlink=name Name to give the symlink; if name is "no," no @@ -982,7 +979,7 @@ else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi - cd "$ac_popdir" + cd $ac_popdir done fi @@ -2000,7 +1997,8 @@ 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' + { 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=$? @@ -2058,7 +2056,8 @@ 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' + { 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=$? @@ -2174,7 +2173,8 @@ 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' + { 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=$? @@ -2228,7 +2228,8 @@ 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' + { 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=$? @@ -2273,7 +2274,8 @@ 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' + { 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=$? @@ -2317,7 +2319,8 @@ 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' + { 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=$? @@ -2431,7 +2434,8 @@ 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' + { 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=$? @@ -2468,61 +2472,6 @@ esac -# Check whether --with-optimization or --without-optimization was given. -if test "${with_optimization+set}" = set; then - withval="$with_optimization" - unet_cv_optimization=$withval -else - unet_cv_optimization='-O3' -fi; -echo "$as_me:$LINENO: checking optimization level" >&5 -echo $ECHO_N "checking optimization level... $ECHO_C" >&6 -if test "${unet_cv_optimization+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - unet_cv_optimization='-O3' -fi -echo "$as_me:$LINENO: result: $unet_cv_optimization" >&5 -echo "${ECHO_T}$unet_cv_optimization" >&6 -if test "x$unet_cv_optimization" = "xno" ; then - unet_cv_optimization="" -fi -if test x"$CFLAGS" != x; then - CFLAGS=`echo "$CFLAGS" | sed -e s/-O2/$unet_cv_optimization/` -fi -if test x"$CFLAGS" != x; then - unet_old_cflags=$CFLAGS - CFLAGS=`echo "$CFLAGS" | sed -e 's/-g//g'` -fi -if test x"$CFLAGS" != x"$unet_old_cflags"; then - # If -g was already there, force symbols to be enabled - unet_cv_enable_symbols=yes -fi -if test x"$CFLAGS" != x; then - unet_old_cflags=$CFLAGS - CFLAGS=`echo "$CFLAGS" | sed -e 's/-pg//g'` -fi -if test x"$CFLAGS" != x"$unet_old_cflags"; then - # If -pg was already there, force profiling to be enabled - unet_cv_enable_profile=yes -fi -if test x"$CFLAGS" != x; then - unet_old_cflags=$CFLAGS - CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wall//g'` -fi -if test x"$CFLAGS" != x"$unet_old_cflags"; then - # If -Wall was already there, force warnings to be enabled - unet_cv_enable_warnings=yes -fi -if test x"$CFLAGS" != x; then - unet_old_cflags=$CFLAGS - CFLAGS=`echo "$CFLAGS" | sed -e 's/-pedantic//g'` -fi -if test x"$CFLAGS" != x"$unet_old_cflags"; then - # If -pedantic was already there, force pedatic to be enabled - unet_cv_enable_pedantic=yes -fi - echo "$as_me:$LINENO: checking for library containing crypt" >&5 echo $ECHO_N "checking for library containing crypt... $ECHO_C" >&6 @@ -2562,7 +2511,8 @@ 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' + { 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=$? @@ -2616,7 +2566,8 @@ 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' + { 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=$? @@ -2721,7 +2672,8 @@ 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' + { 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=$? @@ -2788,7 +2740,8 @@ 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' + { 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=$? @@ -2861,7 +2814,8 @@ 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' + { 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=$? @@ -2935,7 +2889,8 @@ 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' + { 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=$? @@ -3002,7 +2957,8 @@ 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' + { 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=$? @@ -3112,7 +3068,8 @@ 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' + { 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=$? @@ -3178,7 +3135,8 @@ 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' + { 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=$? @@ -3249,7 +3207,8 @@ 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' + { 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=$? @@ -3567,7 +3526,8 @@ 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' + { 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=$? @@ -3737,7 +3697,8 @@ 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' + { 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=$? @@ -3813,7 +3774,8 @@ 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' + { 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=$? @@ -3964,7 +3926,8 @@ 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' + { 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=$? @@ -4006,7 +3969,8 @@ 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' + { 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=$? @@ -4063,7 +4027,8 @@ 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' + { 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=$? @@ -4188,7 +4153,8 @@ 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' + { 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=$? @@ -4254,7 +4220,8 @@ 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' + { 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=$? @@ -4316,7 +4283,8 @@ 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' + { 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=$? @@ -4417,7 +4385,8 @@ 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' + { 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=$? @@ -4479,7 +4448,8 @@ 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' + { 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=$? @@ -4519,7 +4489,8 @@ 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' + { 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=$? @@ -4575,7 +4546,8 @@ 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' + { 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=$? @@ -4615,7 +4587,8 @@ 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' + { 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=$? @@ -4679,7 +4652,8 @@ 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' + { 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=$? @@ -4710,8 +4684,10 @@ esac else if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 -echo "$as_me: error: internal error: not reached in cross-compile" >&2;} + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF @@ -4823,7 +4799,8 @@ 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' + { 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=$? @@ -4885,7 +4862,8 @@ 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' + { 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=$? @@ -4925,7 +4903,8 @@ 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' + { 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=$? @@ -4981,7 +4960,8 @@ 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' + { 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=$? @@ -5021,7 +5001,8 @@ 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' + { 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=$? @@ -5085,7 +5066,8 @@ 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' + { 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=$? @@ -5116,8 +5098,10 @@ esac else if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 -echo "$as_me: error: internal error: not reached in cross-compile" >&2;} + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF @@ -5229,7 +5213,8 @@ 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' + { 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=$? @@ -5291,7 +5276,8 @@ 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' + { 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=$? @@ -5331,7 +5317,8 @@ 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' + { 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=$? @@ -5387,7 +5374,8 @@ 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' + { 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=$? @@ -5427,7 +5415,8 @@ 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' + { 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=$? @@ -5491,7 +5480,8 @@ 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' + { 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=$? @@ -5522,8 +5512,10 @@ esac else if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 -echo "$as_me: error: internal error: not reached in cross-compile" >&2;} + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF @@ -5635,7 +5627,8 @@ 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' + { 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=$? @@ -5697,7 +5690,8 @@ 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' + { 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=$? @@ -5737,7 +5731,8 @@ 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' + { 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=$? @@ -5793,7 +5788,8 @@ 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' + { 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=$? @@ -5833,7 +5829,8 @@ 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' + { 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=$? @@ -5897,7 +5894,8 @@ 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' + { 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=$? @@ -5928,8 +5926,10 @@ esac else if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 -echo "$as_me: error: internal error: not reached in cross-compile" >&2;} + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF @@ -6041,7 +6041,8 @@ 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' + { 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=$? @@ -6103,7 +6104,8 @@ 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' + { 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=$? @@ -6143,7 +6145,8 @@ 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' + { 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=$? @@ -6199,7 +6202,8 @@ 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' + { 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=$? @@ -6239,7 +6243,8 @@ 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' + { 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=$? @@ -6303,7 +6308,8 @@ 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' + { 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=$? @@ -6334,8 +6340,10 @@ esac else if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 -echo "$as_me: error: internal error: not reached in cross-compile" >&2;} + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF @@ -6447,7 +6455,8 @@ 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' + { 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=$? @@ -6509,7 +6518,8 @@ 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' + { 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=$? @@ -6549,7 +6559,8 @@ 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' + { 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=$? @@ -6605,7 +6616,8 @@ 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' + { 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=$? @@ -6645,7 +6657,8 @@ 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' + { 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=$? @@ -6709,7 +6722,8 @@ 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' + { 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=$? @@ -6740,8 +6754,10 @@ esac else if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 -echo "$as_me: error: internal error: not reached in cross-compile" >&2;} + { { echo "$as_me:$LINENO: error: cannot run ... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-05-17 02:12:20
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-05-16 10:19:07 UTC Modified files: TODO.es Log message: Actualizacion TODO ---------------------- diff included ---------------------- Index: ircd-ircdev/TODO.es diff -u ircd-ircdev/TODO.es:1.23 ircd-ircdev/TODO.es:1.24 --- ircd-ircdev/TODO.es:1.23 Sat May 7 05:44:36 2005 +++ ircd-ircdev/TODO.es Mon May 16 03:18:57 2005 @@ -1,14 +1,13 @@ # # TODO para ircd-ircdev # -# $Id: TODO.es,v 1.23 2005/05/07 12:44:36 zolty Exp $ +# $Id: TODO.es,v 1.24 2005/05/16 10:18:57 zolty Exp $ # # Insertar las nuevas entradas al principio de la lista TODO. # URGENTE -------------------------------------------------------------------------------------- - - [D] DDB: compactado, hashes, seguridad y documentacion. - [D] Implementar tabla o de Operadores - [D] Implementar tabla p de Privilegios - [D] Implementar tabla f de Features @@ -27,6 +26,7 @@ PRIORIDAD MEDIA -------------------------------------------------------------------------------------- + - [D] DDB: compactado. - [G] Caracter '~' en los nicks. - [G] Los clientes con +k han de poder "hablar" en canales. - [G] Mostrar tiempo en formato humano en las G-lines. @@ -71,8 +71,7 @@ DOCUMENTACION PENDIENTE -------------------------------------------------------------------------------------- - - [G] Documentar para Doxygen el Watch y el DDB - - [G] Traducir comentarios DDB al ingles + - [G] Documentar para Doxygen el Watch - [G] Documentar en el RELEASE.NOTES lo relacionado con DDB y Services. - [G] Traducir el archivo Authors. - [G] Traducir el archivo chroot.txt @@ -100,10 +99,6 @@ 15/Mar/2005 - [G] Bajo en ciertas circunstancias desconocidas del ircd.conf no pueden entrar clientes al IRCD. Investigar eso. -31/Mar/2005 - - [D] No se propaga el modo cuando estamos autentificando al conectar. -20/Abr/2005 - - [D] A veces un nick forbid puede tener +r. Leyenda: [G] General ----------------------- End of diff ----------------------- |