irc-dev-cvs Mailing List for IRC-Dev ircd development (Page 3)
Brought to you by:
zolty
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(22) |
Sep
|
Oct
(2) |
Nov
|
Dec
(2) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(30) |
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(27) |
Dec
(17) |
2004 |
Jan
|
Feb
(4) |
Mar
|
Apr
(4) |
May
(8) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(14) |
Dec
(2) |
2005 |
Jan
(18) |
Feb
(2) |
Mar
(12) |
Apr
(18) |
May
(16) |
Jun
(3) |
Jul
(2) |
Aug
|
Sep
(3) |
Oct
(9) |
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
(8) |
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
(5) |
Oct
|
Nov
(3) |
Dec
(2) |
2008 |
Jan
(6) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(4) |
Jul
(8) |
Aug
(14) |
Sep
(4) |
Oct
(11) |
Nov
(1) |
Dec
|
From: Toni G. <zo...@us...> - 2007-11-11 21:53:25
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-11-11 21:53:19 UTC Modified files: ChangeLog ChangeLog.es Makefile.in TODO.es config.h.in configure configure.ac include/client.h include/ircd_events.h include/ircd_features.h include/listener.h include/numeric.h include/patchlevel.h include/s_bsd.h ircd/Makefile.am ircd/Makefile.in ircd/ircd.c ircd/ircd_features.c ircd/ircd_lexer.l ircd/ircd_parser.y ircd/listener.c ircd/m_rehash.c ircd/m_whois.c ircd/s_auth.c ircd/s_bsd.c ircd/s_debug.c ircd/s_err.c ircd/s_user.c ircd/test/Makefile.in Added files: include/ssl.h ircd/ssl.c tools/ssl/makepem Log message: Author: zoltan <zo...@ir...> Log message: 2007-11-11 Toni Garc�a <zo...@ir...> 1.0.beta9 * Soporte SSL ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.57 ircd-ircdev/ChangeLog:1.58 --- ircd-ircdev/ChangeLog:1.57 Thu Sep 20 14:00:31 2007 +++ ircd-ircdev/ChangeLog Sun Nov 11 13:53:01 2007 @@ -1,10 +1,12 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.57 2007/09/20 21:00:31 zolty Exp $ +# $Id: ChangeLog,v 1.58 2007/11/11 21:53:01 zolty Exp $ # # Insert new changes at beginning of the change list. # +2007-11-11 Toni Garc�a <zo...@ir...> 1.0.beta9 + * SSL Support 2007-09-20 Toni Garc�a <zo...@ir...> 1.0.beta8 * Cleanup Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.57 ircd-ircdev/ChangeLog.es:1.58 --- ircd-ircdev/ChangeLog.es:1.57 Thu Sep 20 14:00:31 2007 +++ ircd-ircdev/ChangeLog.es Sun Nov 11 13:53:02 2007 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.57 2007/09/20 21:00:31 zolty Exp $ +# $Id: ChangeLog.es,v 1.58 2007/11/11 21:53:02 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-11-11 Toni Garc�a <zo...@ir...> 1.0.beta9 + * Soporte SSL + 2007-09-20 Toni Garc�a <zo...@ir...> 1.0.beta8 * Cleanup Index: ircd-ircdev/Makefile.in diff -u ircd-ircdev/Makefile.in:1.13 ircd-ircdev/Makefile.in:1.14 --- ircd-ircdev/Makefile.in:1.13 Fri Sep 21 01:03:09 2007 +++ ircd-ircdev/Makefile.in Sun Nov 11 13:53:02 2007 @@ -129,6 +129,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ +SSL_C = @SSL_C@ STRIP = @STRIP@ VERSION = @VERSION@ YACC = @YACC@ Index: ircd-ircdev/TODO.es diff -u ircd-ircdev/TODO.es:1.31 ircd-ircdev/TODO.es:1.32 --- ircd-ircdev/TODO.es:1.31 Tue Oct 25 02:47:29 2005 +++ ircd-ircdev/TODO.es Sun Nov 11 13:53:02 2007 @@ -1,14 +1,10 @@ # # TODO para ircd-ircdev # -# $Id: TODO.es,v 1.31 2005/10/25 09:47:29 zolty Exp $ +# $Id: TODO.es,v 1.32 2007/11/11 21:53:02 zolty Exp $ # # Insertar las nuevas entradas al principio de la lista TODO. # -URGENTISIMO - - Pasar el codigo de alpha a BETA. Hay que revisar codigo por .c por -.c. Esto es debido a que la base del ircd ya se utiliza en producción. - URGENTE -------------------------------------------------------------------------------------- @@ -54,7 +50,6 @@ - [G] Soporte Zlib para server<->server y client<->server (requiere negociado). - [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. - [G] Soporte de +e (exceptions) de canales - [G] Modo de canal +u de esconder mensajes de quit y part (evitar Index: ircd-ircdev/config.h.in diff -u ircd-ircdev/config.h.in:1.13 ircd-ircdev/config.h.in:1.14 --- ircd-ircdev/config.h.in:1.13 Fri Sep 21 01:03:09 2007 +++ ircd-ircdev/config.h.in Sun Nov 11 13:53:02 2007 @@ -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.13 2007/09/21 08:03:09 zolty Exp $ + * $Id: config.h.in,v 1.14 2007/11/11 21:53:02 zolty Exp $ * */ #ifndef INCLUDED_config_h @@ -240,6 +240,12 @@ /* The size of `void *', as computed by sizeof. */ #undef SIZEOF_VOID_P +/* Path name used as a base for the ssl include files. */ +#undef SSL_INCLUDES_PATH + +/* Path name used as a base for the ssl lib files. */ +#undef SSL_LIBS_PATH + /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS @@ -264,6 +270,9 @@ /* Specify whether or not to use poll() */ #undef USE_POLL +/* Enable SSL support */ +#undef USE_SSL + /* Version number of package */ #undef VERSION Index: ircd-ircdev/configure diff -u ircd-ircdev/configure:1.23 ircd-ircdev/configure:1.24 --- ircd-ircdev/configure:1.23 Thu Sep 20 23:59:26 2007 +++ ircd-ircdev/configure Sun Nov 11 13:53:02 2007 @@ -730,6 +730,7 @@ ENGINE_KQUEUE_FALSE ENGINE_EPOLL_TRUE ENGINE_EPOLL_FALSE +SSL_C ENVIRONMENT_DDB_TRUE ENVIRONMENT_DDB_FALSE LIBOBJS @@ -1335,11 +1336,15 @@ --enable-debug Enable debugging mode --disable-asserts Disable assertion checking --disable-ipv6 Disable IPv6 support + --disable-ssl Disable SSL support --disable-inlines Disable inlining for a few critical functions Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-openssl-includes Specify location of OpenSSL header files (default /usr/include) + --with-openssl-libs Specify location of OpenSSL libs (default /usr/lib) + --with-kerb-includes Specify location of Kerberos includes (default /usr/kerberos/include) --with-domain Domain name to use for local statistics --with-maxcon Maximum number of connections server will accept --with-ddb-environment Use the DDB Environment (Distributed DataBase) @@ -9171,6 +9176,66 @@ unet_have_sockaddr_in6=no fi +{ echo "$as_me:$LINENO: checking for struct ssl_st" >&5 +echo $ECHO_N "checking for struct ssl_st... $ECHO_C" >&6; } +if test "${ac_cv_type_struct_ssl_st+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <openssl/ssl.h> + +typedef struct ssl_st ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_struct_ssl_st=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_struct_ssl_st=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_struct_ssl_st" >&5 +echo "${ECHO_T}$ac_cv_type_struct_ssl_st" >&6; } +if test $ac_cv_type_struct_ssl_st = yes; then + unet_have_ssl=yes +else + unet_have_ssl=no +fi + { echo "$as_me:$LINENO: checking for socklen_t" >&5 echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6; } @@ -10074,6 +10139,382 @@ fi +{ echo "$as_me:$LINENO: checking whether to enable SSL" >&5 +echo $ECHO_N "checking whether to enable SSL... $ECHO_C" >&6; } +# Check whether --enable-ssl was given. +if test "${enable_ssl+set}" = set; then + enableval=$enable_ssl; unet_cv_enable_ssl=$enableval +else + if test "${unet_cv_enable_ssl+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + unet_cv_enable_ssl=$unet_have_ssl +fi + +fi + + +# Prohibit SSL support if ssl doesn't exist +if test x"$unet_have_ssl" = xno; then + unet_cv_enable_ssl=no +fi +{ echo "$as_me:$LINENO: result: $unet_cv_enable_ssl" >&5 +echo "${ECHO_T}$unet_cv_enable_ssl" >&6; } + +# Set the preprocessor symbol +if test x"$unet_cv_enable_ssl" = xyes; then + { echo "$as_me:$LINENO: checking for OpenSSL includes" >&5 +echo $ECHO_N "checking for OpenSSL includes... $ECHO_C" >&6; } + +# Check whether --with-openssl-includes was given. +if test "${with_openssl_includes+set}" = set; then + withval=$with_openssl_includes; base_ssl_inc=$withval +else + base_ssl_inc=/usr/include +fi + + unet_cv_with_openssl_inc_prefix=$base_ssl_inc + { echo "$as_me:$LINENO: result: $unet_cv_with_openssl_inc_prefix" >&5 +echo "${ECHO_T}$unet_cv_with_openssl_inc_prefix" >&6; } + +cat >>confdefs.h <<_ACEOF +#define SSL_INCLUDES_PATH "$base_ssl_inc" +_ACEOF + + + { echo "$as_me:$LINENO: checking for OpenSSL libraries" >&5 +echo $ECHO_N "checking for OpenSSL libraries... $ECHO_C" >&6; } + +# Check whether --with-openssl-libs was given. +if test "${with_openssl_libs+set}" = set; then + withval=$with_openssl_libs; unet_cv_with_openssl_prefix=$withval +else + unet_cv_with_openssl_prefix=/usr/lib +fi + + { echo "$as_me:$LINENO: result: $unet_cv_with_openssl_prefix" >&5 +echo "${ECHO_T}$unet_cv_with_openssl_prefix" >&6; } + +cat >>confdefs.h <<_ACEOF +#define SSL_LIBS_PATH "$unet_cv_with_openssl_prefix" +_ACEOF + + + { echo "$as_me:$LINENO: checking for Kerberos includes" >&5 +echo $ECHO_N "checking for Kerberos includes... $ECHO_C" >&6; } + +# Check whether --with-kerberos-includes was given. +if test "${with_kerberos_includes+set}" = set; then + withval=$with_kerberos_includes; unet_cv_with_kerberos_prefix=$withval +else + unet_cv_with_kerberos_prefix=/usr/kerberos/include +fi + + { echo "$as_me:$LINENO: result: $unet_cv_with_kerberos_prefix" >&5 +echo "${ECHO_T}$unet_cv_with_kerberos_prefix" >&6; } + + save_CFLAGS=$CFLAGS; + CFLAGS="-lcrypto"; + + unet_cv_enable_ssl="no"; + OPENSSL_LDFLAGS=""; + { echo "$as_me:$LINENO: checking for SSL_read in -lssl" >&5 +echo $ECHO_N "checking for SSL_read in -lssl... $ECHO_C" >&6; } +if test "${ac_cv_lib_ssl_SSL_read+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lssl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char SSL_read (); +int +main () +{ +return SSL_read (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_ssl_SSL_read=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_ssl_SSL_read=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_read" >&5 +echo "${ECHO_T}$ac_cv_lib_ssl_SSL_read" >&6; } +if test $ac_cv_lib_ssl_SSL_read = yes; then + + { echo "$as_me:$LINENO: checking for X509_new in -lcrypto" >&5 +echo $ECHO_N "checking for X509_new in -lcrypto... $ECHO_C" >&6; } +if test "${ac_cv_lib_crypto_X509_new+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcrypto $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char X509_new (); +int +main () +{ +return X509_new (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_crypto_X509_new=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_crypto_X509_new=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_X509_new" >&5 +echo "${ECHO_T}$ac_cv_lib_crypto_X509_new" >&6; } +if test $ac_cv_lib_crypto_X509_new = yes; then + + + +for ac_header in $base_ssl_inc/openssl/ssl.h $base_ssl_inc/openssl/err.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## -------------------------------- ## +## Report this to de...@ir... ## +## -------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + + unet_cv_enable_ssl="yes"; + OPENSSL_LDFLAGS="-lcrypto -lssl" + SSL_C=ssl.c + + +fi + +done + + +fi + + +fi + + CFLAGS=$save_CFLAGS + + if test "x$unet_cv_enable_ssl" = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define USE_SSL 1 +_ACEOF + + + LIBS="$LIBS -L$unet_cv_with_openssl_prefix $OPENSSL_LDFLAGS" + CFLAGS="$CFLAGS -I$unet_cv_with_openssl_inc_prefix -I$unet_cv_with_kerberos_prefix" + fi +fi + { echo "$as_me:$LINENO: checking whether to enable inlining for a few critical functions" >&5 echo $ECHO_N "checking whether to enable inlining for a few critical functions... $ECHO_C" >&6; } # Check whether --enable-inlines was given. @@ -11192,13 +11633,14 @@ cat >conf$$subs.sed <<_ACEOF ENGINE_EPOLL_TRUE!$ENGINE_EPOLL_TRUE$ac_delim ENGINE_EPOLL_FALSE!$ENGINE_EPOLL_FALSE$ac_delim +SSL_C!$SSL_C$ac_delim ENVIRONMENT_DDB_TRUE!$ENVIRONMENT_DDB_TRUE$ac_delim ENVIRONMENT_DDB_FALSE!$ENVIRONMENT_DDB_FALSE$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 6; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 7; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 @@ -11817,6 +12259,7 @@ echo " Asserts: $unet_cv_enable_asserts" echo " Debug: $unet_cv_enable_debug" echo " IPv6: $unet_cv_enable_ipv6" +echo " SSL: $unet_cv_enable_ssl" echo " Inlines: $unet_cv_enable_inlines" echo "" echo " Prefix: $prefix" Index: ircd-ircdev/configure.ac diff -u ircd-ircdev/configure.ac:1.2 ircd-ircdev/configure.ac:1.3 --- ircd-ircdev/configure.ac:1.2 Thu Sep 20 14:00:31 2007 +++ ircd-ircdev/configure.ac Sun Nov 11 13:53:03 2007 @@ -23,7 +23,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.ac,v 1.2 2007/09/20 21:00:31 zolty Exp $ +dnl @(#)$Id: configure.ac,v 1.3 2007/11/11 21:53:03 zolty Exp $ dnl AC_INIT([IRC-Dev IRC Daemon],[1.0.beta],[de...@ir...],[ircd-ircdev]) @@ -44,7 +44,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA]) -AC_REVISION($Revision: 1.2 $) +AC_REVISION($Revision: 1.3 $) AC_CONFIG_SRCDIR([ircd/ircd.c]) AM_INIT_AUTOMAKE([foreign]) @@ -104,6 +104,10 @@ [unet_have_sockaddr_in6=no], [#include <sys/types.h> #include <netinet/in.h>]) +AC_CHECK_TYPE([struct ssl_st], + [unet_have_ssl=yes], + [unet_have_ssl=no], +[#include <openssl/ssl.h>]) dnl Check for socklen_t. In traditional BSD this is an int, but some dnl OSes use a different type. Test until we find something that will @@ -290,6 +294,67 @@ AC_DEFINE([IPV6], 1, [Enable IPv6 support]) fi +dnl how about SSL support? +unet_TOGGLE([ssl], $unet_have_ssl, [Disable SSL support], + [whether to enable SSL], +[# Prohibit SSL support if ssl doesn't exist +if test x"$unet_have_ssl" = xno; then + unet_cv_enable_ssl=no +fi]) + +# Set the preprocessor symbol +if test x"$unet_cv_enable_ssl" = xyes; then + AC_MSG_CHECKING([for OpenSSL includes]) + AC_ARG_WITH(openssl-includes, + [ --with-openssl-includes Specify location of OpenSSL header files (default /usr/include)], + [base_ssl_inc=$withval], + [base_ssl_inc=/usr/include]) + [unet_cv_with_openssl_inc_prefix=$base_ssl_inc] + AC_MSG_RESULT([$unet_cv_with_openssl_inc_prefix]) + AC_DEFINE_UNQUOTED(SSL_INCLUDES_PATH, "$base_ssl_inc", + [Path name used as a base for the ssl include files.]) + + AC_MSG_CHECKING([for OpenSSL libraries]) + AC_ARG_WITH(openssl-libs, + [ --with-openssl-libs Specify location of OpenSSL libs (default /usr/lib)], + [unet_cv_with_openssl_prefix=$withval], + [unet_cv_with_openssl_prefix=/usr/lib]) + AC_MSG_RESULT([$unet_cv_with_openssl_prefix]) + AC_DEFINE_UNQUOTED(SSL_LIBS_PATH, "$unet_cv_with_openssl_prefix", + [Path name used as a base for the ssl lib files.]) + + AC_MSG_CHECKING([for Kerberos includes]) + AC_ARG_WITH(kerberos-includes, + [ --with-kerb-includes Specify location of Kerberos includes (default /usr/kerberos/include)], + [unet_cv_with_kerberos_prefix=$withval], + [unet_cv_with_kerberos_prefix=/usr/kerberos/include]) + AC_MSG_RESULT([$unet_cv_with_kerberos_prefix]) + + save_CFLAGS=$CFLAGS; + CFLAGS="-lcrypto"; + + unet_cv_enable_ssl="no"; + OPENSSL_LDFLAGS=""; + AC_CHECK_LIB(ssl, SSL_read, [ + AC_CHECK_LIB(crypto, X509_new, [ + AC_CHECK_HEADERS($base_ssl_inc/openssl/ssl.h $base_ssl_inc/openssl/err.h, [ + unet_cv_enable_ssl="yes"; + OPENSSL_LDFLAGS="-lcrypto -lssl" + SSL_C=ssl.c + AC_SUBST(SSL_C) + ]) + ]) + ]) + CFLAGS=$save_CFLAGS + + if test "x$unet_cv_enable_ssl" = xyes; then + AC_DEFINE([USE_SSL], 1, [Enable SSL support]) + + LIBS="$LIBS -L$unet_cv_with_openssl_prefix $OPENSSL_LDFLAGS" + CFLAGS="$CFLAGS -I$unet_cv_with_openssl_inc_prefix -I$unet_cv_with_kerberos_prefix" + fi +fi + dnl Should we force inlines? unet_TOGGLE([inlines], yes, [Disable inlining for a few critical functions], [whether to enable inlining for a few critical functions]) @@ -448,6 +513,7 @@ echo " Debug: $unet_cv_enable_debug" dnl echo " Leak Detect: $unet_cv_with_leak_detect" echo " IPv6: $unet_cv_enable_ipv6" +echo " SSL: $unet_cv_enable_ssl" dnl echo " Profile: $unet_cv_enable_profile" dnl echo " Pedantic: $unet_cv_enable_pedantic" echo " Inlines: $unet_cv_enable_inlines" Index: ircd-ircdev/include/client.h diff -u ircd-ircdev/include/client.h:1.22 ircd-ircdev/include/client.h:1.23 --- ircd-ircdev/include/client.h:1.22 Thu Sep 20 14:00:31 2007 +++ ircd-ircdev/include/client.h Sun Nov 11 13:53:04 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Structures and functions for handling local clients. - * @version $Id: client.h,v 1.22 2007/09/20 21:00:31 zolty Exp $ + * @version $Id: client.h,v 1.23 2007/11/11 21:53:04 zolty Exp $ */ #ifndef INCLUDED_client_h #define INCLUDED_client_h @@ -73,9 +73,9 @@ /** String containing valid user modes, in no particular order. */ #if defined(DDB) || defined(SERVICES) -#define infousermodes "dioswkgxrS" +#define infousermodes "dioswkgxrSZ" #else -#define infousermodes "dioswkgx" +#define infousermodes "dioswkgxZ" #endif /** Operator privileges. */ @@ -159,6 +159,9 @@ FLAG_NICKSUSPEND, /**< nick suspended */ #endif FLAG_HIDDENHOST, /**< user's host is hidden */ +#ifdef USE_SSL + FLAG_SSL, /**< is a user with secure connection */ +#endif FLAG_LAST_FLAG, /**< number of flags */ FLAG_LOCAL_UMODES = FLAG_LOCOP, /**< First local mode flag */ FLAG_GLOBAL_UMODES = FLAG_OPER /**< First global mode flag */ @@ -590,6 +593,10 @@ #define IsHiddenHost(x) HasFlag(x, FLAG_HIDDENHOST) /** Return non-zero if the client has an active PING request. */ #define IsPingSent(x) HasFlag(x, FLAG_PINGSENT) +#ifdef USE_SSL +/** Return non-zero if the client has a secure connection. */ +#define IsSSL(x) HasFlag(x, FLAG_SSL) +#endif #if defined(DDB) || defined(SERVICES) /** Return non-zero if the client has set mode +r (nick registered) */ #define IsNickRegistered(x) HasFlag(x, FLAG_NICKREG) @@ -648,6 +655,10 @@ #define SetHiddenHost(x) SetFlag(x, FLAG_HIDDENHOST) /** Mark a client as having a pending PING. */ #define SetPingSent(x) SetFlag(x, FLAG_PINGSENT) +#ifdef USE_SSL +/** Mark a client as secure connection .*/ +#define SetSSL(x) SetFlag(x, FLAG_SSL) +#endif #if defined(DDB) || defined(SERVICES) /** Mark a client as having mode +r (nick registered) */ #define SetNickRegistered(x) SetFlag(x, FLAG_NICKREG) @@ -687,6 +698,10 @@ #define ClearHiddenHost(x) ClrFlag(x, FLAG_HIDDENHOST) /** Clear the client's pending PING flag. */ #define ClearPingSent(x) ClrFlag(x, FLAG_PINGSENT) +#ifdef USE_SSL +/** Clear the client's secure connection. */ +#define ClearSSL(x) ClrFlag(x, FLAG_SSL) +#endif #if defined(DDB) || defined(SERVICES) /** Remove mode +r (nick registered) from the client */ #define ClearNickRegistered(x) ClrFlag(x, FLAG_NICKREG) Index: ircd-ircdev/include/ircd_events.h diff -u ircd-ircdev/include/ircd_events.h:1.5 ircd-ircdev/include/ircd_events.h:1.6 --- ircd-ircdev/include/ircd_events.h:1.5 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/ircd_events.h Sun Nov 11 13:53:05 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Interface and public definitions for event loop. - * @version $Id: ircd_events.h,v 1.5 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: ircd_events.h,v 1.6 2007/11/11 21:53:05 zolty Exp $ */ #ifndef INCLUDED_ircd_events_h #define INCLUDED_ircd_events_h @@ -33,6 +33,11 @@ #include <sys/types.h> /* time_t */ #define INCLUDED_sys_types_h #endif +#ifdef USE_SSL +#ifndef INCLUDED_ssl_h +#include "ssl.h" +#endif +#endif struct Event; @@ -107,6 +112,9 @@ enum SocketState s_state; /**< state socket's in */ unsigned int s_events; /**< events socket is interested in */ int s_fd; /**< file descriptor for socket */ +#ifdef USE_SSL + SSL* ssl; /* if not NULL, use SSL routines on socket */ +#endif }; #define SOCK_EVENT_READABLE 0x0001 /**< interested in readable */ Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.20 ircd-ircdev/include/ircd_features.h:1.21 --- ircd-ircdev/include/ircd_features.h:1.20 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/include/ircd_features.h Sun Nov 11 13:53:05 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Public interfaces and declarations for dealing with configurable features. - * @version $Id: ircd_features.h,v 1.20 2007/07/21 23:51:39 zolty Exp $ + * @version $Id: ircd_features.h,v 1.21 2007/11/11 21:53:05 zolty Exp $ */ #ifndef INCLUDED_features_h #define INCLUDED_features_h @@ -92,6 +92,9 @@ FEAT_MPATH, FEAT_RPATH, FEAT_PPATH, +#ifdef USE_SSL + FEAT_SSL_PEM_PATH, +#endif #if defined(DDB) FEAT_DDBPATH, #endif Index: ircd-ircdev/include/listener.h diff -u ircd-ircdev/include/listener.h:1.6 ircd-ircdev/include/listener.h:1.7 --- ircd-ircdev/include/listener.h:1.6 Sun Apr 22 06:56:19 2007 +++ ircd-ircdev/include/listener.h Sun Nov 11 13:53:05 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Interface and declarations for handling listening sockets. - * @version $Id: listener.h,v 1.6 2007/04/22 13:56:19 zolty Exp $ + * @version $Id: listener.h,v 1.7 2007/11/11 21:53:05 zolty Exp $ */ #ifndef INCLUDED_listener_h #define INCLUDED_listener_h @@ -57,6 +57,10 @@ LISTEN_IPV4, /** Port listens for IPv6 connections. */ LISTEN_IPV6, +#ifdef USE_SSL + /** Port listens for SSL connections. */ + LISTEN_SSL, +#endif /** Sentinel for counting listener flags. */ LISTEN_LAST_FLAG }; @@ -81,6 +85,9 @@ #define listener_server(LISTENER) FlagHas(&(LISTENER)->flags, LISTEN_SERVER) #define listener_active(LISTENER) FlagHas(&(LISTENER)->flags, LISTEN_ACTIVE) +#ifdef USE_SSL +#define listener_ssl(LISTENER) FlagHas(&(LISTENER)->flags, LISTEN_SSL) +#endif extern void add_listener(int port, const char* vaddr_ip, const char* mask, Index: ircd-ircdev/include/numeric.h diff -u ircd-ircdev/include/numeric.h:1.17 ircd-ircdev/include/numeric.h:1.18 --- ircd-ircdev/include/numeric.h:1.17 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/numeric.h Sun Nov 11 13:53:05 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Declarations of numeric replies and supporting functions. - * @version $Id: numeric.h,v 1.17 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: numeric.h,v 1.18 2007/11/11 21:53:05 zolty Exp $ */ #ifndef INCLUDED_numeric_h #define INCLUDED_numeric_h @@ -256,6 +256,7 @@ #define RPL_LISTUSAGE 334 /* Undernet extension */ /* RPL_COMMANDSYNTAX 334 Dalnet */ /* RPL_LISTSYNTAX 334 unreal */ +#define RPL_WHOISSSL 337 /* SSL */ /* RPL_CHANPASSOK 338 IRCnet extension (?)*/ #define RPL_WHOISACTUALLY 338 /* Undernet extension, dalnet */ /* RPL_BADCHANPASS 339 IRCnet extension (?) */ Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.56 ircd-ircdev/include/patchlevel.h:1.57 --- ircd-ircdev/include/patchlevel.h:1.56 Thu Sep 20 14:00:31 2007 +++ ircd-ircdev/include/patchlevel.h Sun Nov 11 13:53:05 2007 @@ -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.56 2007/09/20 21:00:31 zolty Exp $ + * $Id: patchlevel.h,v 1.57 2007/11/11 21:53:05 zolty Exp $ * */ -#define PATCHLEVEL "8" +#define PATCHLEVEL "9" #define RELEASE "1.0.beta" Index: ircd-ircdev/include/s_bsd.h diff -u ircd-ircdev/include/s_bsd.h:1.11 ircd-ircdev/include/s_bsd.h:1.12 --- ircd-ircdev/include/s_bsd.h:1.11 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/include/s_bsd.h Sun Nov 11 13:53:06 2007 @@ -21,7 +21,7 @@ */ /** @file s_bsd.h * @brief Wrapper functions to avoid direct use of BSD APIs. - * @version $Id: s_bsd.h,v 1.11 2007/04/26 21:17:11 zolty Exp $ + * @version $Id: s_bsd.h,v 1.12 2007/11/11 21:53:06 zolty Exp $ */ #ifndef INCLUDED_s_bsd_h #define INCLUDED_s_bsd_h @@ -79,7 +79,11 @@ extern int connect_server(struct ConfItem* aconf, struct Client* by); extern int net_close_unregistered_connections(struct Client* source); extern void close_connection(struct Client *cptr); +#ifdef USE_SSL +extern void add_connection(struct Listener* listener, int fd, void *ssl); +#else extern void add_connection(struct Listener* listener, int fd); +#endif extern int read_message(time_t delay); extern void init_server_identity(void); extern void close_connections(int close_stderr); Index: ircd-ircdev/include/ssl.h diff -u /dev/null ircd-ircdev/include/ssl.h:1.1 --- /dev/null Sun Nov 11 13:53:21 2007 +++ ircd-ircdev/include/ssl.h Sun Nov 11 13:53:06 2007 @@ -0,0 +1,55 @@ +/* + * IRC - Internet Relay Chat (SSL), include/ssl.h + * Copyright (C) 2002 Alex Badea <va...@go...> + * + * 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, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * $Id: ssl.h,v 1.1 2007/11/11 21:53:06 zolty Exp $ + */ +#ifndef INCLUDED_ssl_h +#define INCLUDED_ssl_h + +#include "config.h" +#include "ircd_osdep.h" + +#ifdef USE_SSL + +#include <openssl/crypto.h> +#include <openssl/ssl.h> +#include <openssl/err.h> +#include <openssl/rand.h> + +#ifndef IOV_MAX +#define IOV_MAX 1024 +#endif /* IOV_MAX */ + +struct Socket; +struct Listener; +char *my_itoa(int i); +extern IOResult ssl_recv(struct Socket *socket, char* buf, unsigned int length, unsigned int* count_out); +extern IOResult ssl_sendv(struct Socket *socket, struct MsgQ* buf, unsigned int* count_in, unsigned int* count_out); + +extern char *ssl_get_cipher(SSL *ssl); + +extern int ssl_send(struct Client *cptr, const char *buf, unsigned int len); +extern int ssl_murder(void *ssl, int fd, const char *buf); +extern int ssl_count(void); + +extern void ssl_add_connection(struct Listener *listener, int fd); +extern void ssl_free(struct Socket *socket); +extern void ssl_init(void); + +#endif /* USE_SSL */ +#endif /* INCLUDED_ssl_h */ Index: ircd-ircdev/ircd/Makefile.am diff -u ircd-ircdev/ircd/Makefile.am:1.1 ircd-ircdev/ircd/Makefile.am:1.2 --- ircd-ircdev/ircd/Makefile.am:1.1 Sun Apr 22 06:56:20 2007 +++ ircd-ircdev/ircd/Makefile.am Sun Nov 11 13:53:06 2007 @@ -17,7 +17,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.am,v 1.1 2007/04/22 13:56:20 zolty Exp $ +## @(#)$Id: Makefile.am,v 1.2 2007/11/11 21:53:06 zolty Exp $ SUBDIRS = test noinst_PROGRAMS = table_gen @@ -174,6 +174,7 @@ s_stats.c \ s_user.c \ send.c \ + ssl.c \ uping.c \ userload.c \ watch.c \ Index: ircd-ircdev/ircd/Makefile.in diff -u ircd-ircdev/ircd/Makefile.in:1.35 ircd-ircdev/ircd/Makefile.in:1.36 --- ircd-ircdev/ircd/Makefile.in:1.35 Fri Sep 21 01:03:09 2007 +++ ircd-ircdev/ircd/Makefile.in Sun Nov 11 13:53:06 2007 @@ -100,8 +100,8 @@ motd.c msgq.c numnicks.c opercmds.c os_generic.c packet.c \ parse.c querycmds.c random.c s_auth.c s_bsd.c s_conf.c \ s_debug.c s_err.c s_misc.c s_numeric.c s_serv.c s_stats.c \ - s_user.c send.c uping.c userload.c watch.c whowas.c ddb.c \ - ddb_db_native.c ddb_events.c ircd_tea.c m_bmode.c m_db.c \ + s_user.c send.c ssl.c uping.c userload.c watch.c whowas.c \ + ddb.c ddb_db_native.c ddb_events.c ircd_tea.c m_bmode.c m_db.c \ m_dbq.c m_ghost.c m_svsnick.c engine_poll.c engine_select.c \ engine_devpoll.c engine_epoll.c engine_kqueue.c @ENVIRONMENT_DDB_TRUE@am__objects_1 = ddb.$(OBJEXT) \ @@ -159,10 +159,10 @@ s_bsd.$(OBJEXT) s_conf.$(OBJEXT) s_debug.$(OBJEXT) \ s_err.$(OBJEXT) s_misc.$(OBJEXT) s_numeric.$(OBJEXT) \ s_serv.$(OBJEXT) s_stats.$(OBJEXT) s_user.$(OBJEXT) \ - send.$(OBJEXT) uping.$(OBJEXT) userload.$(OBJEXT) \ - watch.$(OBJEXT) whowas.$(OBJEXT) $(am__objects_1) \ - $(am__objects_2) $(am__objects_3) $(am__objects_4) \ - $(am__objects_5) $(am__objects_6) + send.$(OBJEXT) ssl.$(OBJEXT) uping.$(OBJEXT) \ + userload.$(OBJEXT) watch.$(OBJEXT) whowas.$(OBJEXT) \ + $(am__objects_1) $(am__objects_2) $(am__objects_3) \ + $(am__objects_4) $(am__objects_5) $(am__objects_6) nodist_ircd_OBJECTS = version.$(OBJEXT) ircd_OBJECTS = $(am_ircd_OBJECTS) $(nodist_ircd_OBJECTS) am__DEPENDENCIES_1 = @@ -247,6 +247,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ +SSL_C = @SSL_C@ STRIP = @STRIP@ VERSION = @VERSION@ YACC = @YACC@ @@ -343,7 +344,7 @@ motd.c msgq.c numnicks.c opercmds.c os_generic.c packet.c \ parse.c querycmds.c random.c s_auth.c s_bsd.c s_conf.c \ s_debug.c s_err.c s_misc.c s_numeric.c s_serv.c s_stats.c \ - s_user.c send.c uping.c userload.c watch.c whowas.c \ + s_user.c send.c ssl.c uping.c userload.c watch.c whowas.c \ $(am__append_1) $(am__append_2) $(am__append_3) \ $(am__append_4) $(am__append_5) $(am__append_6) ircd_LDADD = $(LEXLIB) @@ -574,6 +575,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s_stats.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s_user.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/send.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ssl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/table_gen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umkpasswd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uping.Po@am__quote@ Index: ircd-ircdev/ircd/ircd.c diff -u ircd-ircdev/ircd/ircd.c:1.29 ircd-ircdev/ircd/ircd.c:1.30 --- ircd-ircdev/ircd/ircd.c:1.29 Thu Sep 20 14:00:31 2007 +++ ircd-ircdev/ircd/ircd.c Sun Nov 11 13:53:07 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Entry point and other initialization functions for the daemon. - * @version $Id: ircd.c,v 1.29 2007/09/20 21:00:31 zolty Exp $ + * @version $Id: ircd.c,v 1.30 2007/11/11 21:53:07 zolty Exp $ */ #include "config.h" @@ -57,6 +57,7 @@ #include "s_misc.h" #include "s_stats.h" #include "send.h" +#include "ssl.h" #include "uping.h" #include "userload.h" #include "version.h" @@ -755,6 +756,10 @@ uping_init(); +#ifdef USE_SSL + ssl_init(); +#endif + stats_init(); IPcheck_init(); Index: ircd-ircdev/ircd/ircd_features.c diff -u ircd-ircdev/ircd/ircd_features.c:1.21 ircd-ircdev/ircd/ircd_features.c:1.22 --- ircd-ircdev/ircd/ircd_features.c:1.21 Thu Sep 20 14:00:31 2007 +++ ircd-ircdev/ircd/ircd_features.c Sun Nov 11 13:53:07 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of configurable feature support. - * @version $Id: ircd_features.c,v 1.21 2007/09/20 21:00:31 zolty Exp $ + * @version $Id: ircd_features.c,v 1.22 2007/11/11 21:53:07 zolty Exp $ */ #include "config.h" @@ -416,6 +416,9 @@ F_S(MPATH, FEAT_CASE | FEAT_MYOPER, "ircd.motd", motd_init_local), F_S(RPATH, FEAT_CASE | FEAT_MYOPER, "remote.motd", motd_init_remote), F_S(PPATH, FEAT_CASE | FEAT_MYOPER | FEAT_READ, "ircd.pid", 0), +#ifdef USE_SSL + F_S(SSL_PEM_PATH, FEAT_CASE | FEAT_MYOPER | FEAT_READ, "ircd.pem", 0), +#endif #if defined(DDB) F_S(DDBPATH, FEAT_CASE | FEAT_MYOPER, "database", 0), #endif Index: ircd-ircdev/ircd/ircd_lexer.l diff -u ircd-ircdev/ircd/ircd_lexer.l:1.15 ircd-ircdev/ircd/ircd_lexer.l:1.16 --- ircd-ircdev/ircd/ircd_lexer.l:1.15 Sun Apr 22 06:56:20 2007 +++ ircd-ircdev/ircd/ircd_lexer.l Sun Nov 11 13:53:07 2007 @@ -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: ircd_lexer.l,v 1.15 2007/04/22 13:56:20 zolty Exp $ + * $Id: ircd_lexer.l,v 1.16 2007/11/11 21:53:07 zolty Exp $ * */ @@ -177,6 +177,7 @@ SET return TPRIV_SET; SHOW_ALL_INVIS return TPRIV_SHOW_ALL_INVIS; SHOW_INVIS return TPRIV_SHOW_INVIS; +SSL return SSLPORT; TB return TBYTES; TBYTES return TBYTES; TERABYTES return TBYTES; Index: ircd-ircdev/ircd/ircd_parser.y diff -u ircd-ircdev/ircd/ircd_parser.y:1.28 ircd-ircdev/ircd/ircd_parser.y:1.29 --- ircd-ircdev/ircd/ircd_parser.y:1.28 Thu Sep 20 14:00:31 2007 +++ ircd-ircdev/ircd/ircd_parser.y Sun Nov 11 13:53:07 2007 @@ -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.28 2007/09/20 21:00:31 zolty Exp $ + * $Id: ircd_parser.y,v 1.29 2007/11/11 21:53:07 zolty Exp $ * */ %{ @@ -199,6 +199,7 @@ %token OPER %token VHOST %token HIDDEN +%token SSLPORT %token MOTD %token JUPE %token NICK @@ -833,7 +834,7 @@ port = 0; }; portitems: portitem portitems | portitem; -portitem: portnumber | portvhost | portvhostnumber | portmask | portserver | porthidden; +portitem: portnumber | portvhost | portvhostnumber | portmask | portserver | porthidden | portssl; portnumber: PORT '=' address_family NUMBER ';' { if ($4 < 1 || $4 > 65535) { @@ -891,6 +892,16 @@ FlagClr(&listen_flags, LISTEN_HIDDEN); }; +portssl: SSLPORT '=' YES ';' +{ +#ifdef USE_SSL + FlagSet(&listen_flags, LISTEN_SSL); +} | SSLPORT '=' NO ';' +{ + FlagClr(&listen_flags, LISTEN_SSL); +#endif +}; + clientblock: CLIENT { maxlinks = 65535; Index: ircd-ircdev/ircd/listener.c diff -u ircd-ircdev/ircd/listener.c:1.13 ircd-ircdev/ircd/listener.c:1.14 --- ircd-ircdev/ircd/listener.c:1.13 Thu Sep 20 14:00:31 2007 +++ ircd-ircdev/ircd/listener.c Sun Nov 11 13:53:07 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation for handling listening sockets. - * @version $Id: listener.c,v 1.13 2007/09/20 21:00:31 zolty Exp $ + * @version $Id: listener.c,v 1.14 2007/11/11 21:53:07 zolty Exp $ */ #include "config.h" @@ -43,6 +43,7 @@ #include "s_misc.h" #include "s_stats.h" #include "send.h" +#include "ssl.h" /* #include <assert.h> -- Now using assert in ircd_log.h */ #include <stdio.h> @@ -149,7 +150,11 @@ if (port && port != listener->addr.port) continue; len = 0; +#ifdef USE_SSL + flags[len++] = listener_server(listener) ? 'S' : (listener_ssl(listener) ? 'E' : 'C'); +#else flags[len++] = listener_server(listener) ? 'S' : 'C'; +#endif if (show_hidden && FlagHas(&listener->flags, LISTEN_HIDDEN)) flags[len++] = 'H'; if (FlagHas(&listener->flags, LISTEN_IPV4)) @@ -520,7 +525,14 @@ } ++ServerStats->is_ac; /* nextping = CurrentTime; */ +#ifdef USE_SSL + if (listener_ssl(listener)) + ssl_add_connection(listener, fd); + else + add_connection(listener, fd, NULL); +#else add_connection(listener, fd); +#endif } } } Index: ircd-ircdev/ircd/m_rehash.c diff -u ircd-ircdev/ircd/m_rehash.c:1.7 ircd-ircdev/ircd/m_rehash.c:1.8 --- ircd-ircdev/ircd/m_rehash.c:1.7 Thu Sep 20 14:00:32 2007 +++ ircd-ircdev/ircd/m_rehash.c Sun Nov 11 13:53:08 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for REHASH command. - * @version $Id: m_rehash.c,v 1.7 2007/09/20 21:00:32 zolty Exp $ + * @version $Id: m_rehash.c,v 1.8 2007/11/11 21:53:08 zolty Exp $ */ #include "config.h" @@ -34,6 +34,7 @@ #include "numeric.h" #include "s_conf.h" #include "send.h" +#include "ssl.h" /* #include <assert.h> -- Now using assert in ircd_log.h */ @@ -45,6 +46,7 @@ * The following flags are recognized: * \li 'm' flushes the MOTD cache * \li 'l' reopens the log files + * \li 's' reopens SSL pem file * \li 'q' reloads the configuration file but does not rehash the DNS * resolver * \li the default is to reload the configuration file and restart the @@ -72,6 +74,12 @@ send_reply(sptr, SND_EXPLICIT | RPL_REHASHING, ":Reopening log files"); log_reopen(); /* reopen log files */ return 0; +#ifdef USE_SSL + } else if (*parv[1] == 's') { + send_reply(sptr, SND_EXPLICIT | RPL_REHASHING, ":Reopening SSL pem file"); + ssl_init(); + return 0; +#endif } else if (*parv[1] == 'q') flag = 2; } Index: ircd-ircdev/ircd/m_whois.c diff -u ircd-ircdev/ircd/m_whois.c:1.19 ircd-ircdev/ircd/m_whois.c:1.20 --- ircd-ircdev/ircd/m_whois.c:1.19 Thu Sep 20 14:00:32 2007 +++ ircd-ircdev/ircd/m_whois.c Sun Nov 11 13:53:08 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for WHOIS command. - * @version $Id: m_whois.c,v 1.19 2007/09/20 21:00:32 zolty Exp $ + * @version $Id: m_whois.c,v 1.20 2007/11/11 21:53:08 zolty Exp $ */ #include "config.h" @@ -182,6 +182,12 @@ send_reply(sptr, RPL_WHOISMODES, name, *modes ? modes : ""); } +#ifdef USE_SSL + if (MyConnect(acptr) && IsSSL(acptr) && ((parc >= 3) || + (acptr == sptr) || IsAnOper(sptr))) + send_reply(sptr, RPL_WHOISSSL, name); +#endif + /* Hint: if your looking to add more flags to a user, eg +h, here's * probably a good place to add them :) */ Index: ircd-ircdev/ircd/s_auth.c diff -u ircd-ircdev/ircd/s_auth.c:1.18 ircd-ircdev/ircd/s_auth.c:1.19 --- ircd-ircdev/ircd/s_auth.c:1.18 Thu Sep 20 14:00:32 2007 +++ ircd-ircdev/ircd/s_auth.c Sun Nov 11 13:53:08 2007 @@ -36,7 +36,7 @@ */ /** @file * @brief Implementation of DNS and ident lookups. - * @version $Id: s_auth.c,v 1.18 2007/09/20 21:00:32 zolty Exp $ + * @version $Id: s_auth.c,v 1.19 2007/11/11 21:53:08 zolty Exp $ */ #include "config.h" @@ -66,6 +66,7 @@ #include "s_misc.h" #include "s_user.h" #include "send.h" +#include "ssl.h" #include <errno.h> #include <string.h> @@ -143,8 +144,13 @@ } ReportType; /** Sends response \a r (from #ReportType) to client \a c. */ +#ifdef USE_SSL +#define sendheader(c, r) \ + ssl_send(c, HeaderMessages[(r)].message, HeaderMessages[(r)].length) +#else #define sendheader(c, r) \ send(cli_fd(c), HeaderMessages[(r)].message, HeaderMessages[(r)].length, 0) +#endif /** Enumeration of IAuth connection flags. */ enum IAuthFlag Index: ircd-ircdev/ircd/s_bsd.c diff -u ircd-ircdev/ircd/s_bsd.c:1.23 ircd-ircdev/ircd/s_bsd.c:1.24 --- ircd-ircdev/ircd/s_bsd.c:1.23 Thu Sep 20 14:00:32 2007 +++ ircd-ircdev/ircd/s_bsd.c Sun Nov 11 13:53:08 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Functions that now (or in the past) relied on BSD APIs. - * @version $Id: s_bsd.c,v 1.23 2007/09/20 21:00:32 zolty Exp $ + * @version $Id: s_bsd.c,v 1.24 2007/11/11 21:53:08 zolty Exp $ */ #include "config.h" @@ -57,6 +57,7 @@ #include "s_user.h" #include "send.h" #include "struct.h" +#include "ssl.h" #include "uping.h" #include "version.h" @@ -121,6 +122,26 @@ static void client_timer_callback(struct Event* ev); +#ifdef USE_SSL +/* Helper routines */ +static IOResult client_recv(struct Client *cptr, char *buf, unsigned int length, unsigned int* count_out) +{ + if (cli_socket(cptr).ssl) + return ssl_recv(&cli_socket(cptr), buf, length, count_out); + else + return os_recv_nonb(cli_fd(cptr), buf, length, count_out); +} + +static IOResult client_sendv(struct Client *cptr, struct MsgQ *buf, unsigned int *count_in, unsigned int *count_out) +{ + if (cli_socket(cptr).ssl) + return ssl_sendv(&cli_socket(cptr), buf, count_in, count_out); + else + return os_sendv_nonb(cli_fd(cptr), buf, count_in, count_out); +} +#endif + + /* * Cannot use perror() within daemon. stderr is closed in * ircd and cannot be used. And, worse yet, it might have @@ -490,7 +511,11 @@ * @param listener Listening socket that received the connection. * @param fd File descriptor of new connection. */ +#ifdef USE_SSL +void add_connection(struct Listener* listener, int fd, void *ssl) { +#else void add_connection(struct Listener* listener, int fd) { +#endif struct irc_sockaddr addr; struct Client *new_client; time_t next_target = 0; @@ -510,7 +535,11 @@ */ if (!os_get_peername(fd, &addr) || !os_set_nonblocking(fd)) { ++ServerStats->is_ref; +#ifdef USE_SSL + ssl_murder(ssl, fd, NULL); +#else close(fd); +#endif return; } /* @@ -538,8 +567,12 @@ if (!IPcheck_local_connect(&addr.addr, &next_target)) { ++ServerStats->is_ref; +#ifdef USE_SSL + ssl_murder(ssl, fd, throttle_message); +#else write(fd, throttle_message, strlen(throttle_message)); close(fd); +#endif return; } new_client = make_client(0, STAT_UNKNOWN_USER); @@ -561,11 +594,19 @@ if (!socket_add(&(cli_socket(new_client)), client_sock_callback, (void*) cli_connect(new_client), SS_CONNECTED, 0, fd)) { ++ServerStats->is_ref; +#ifdef USE_SSL + ssl_murder(ssl, fd, register_message); +#else write(fd, register_message, strlen(register_message)); close(fd); +#endif cli_fd(new_client) = -1; return; } +#ifdef USE_SSL + if (ssl) + cli_socket(new_client).ssl = ssl; +#endif cli_freeflag(new_client) |= FREEFLAG_SOCKET; cli_listener(new_client) = listener; ++listener->ref_count; Index: ircd-ircdev/ircd/s_debug.c diff -u ircd-ircdev/ircd/s_debug.c:1.14 ircd-ircdev/ircd/s_debug.c:1.15 --- ircd-ircdev/ircd/s_debug.c:1.14 Thu Sep 20 14:00:32 2007 +++ ircd-ircdev/ircd/s_debug.c Sun Nov 11 13:53:08 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Debug support for the ircd. - * @version $Id: s_debug.c,v 1.14 2007/09/20 21:00:32 zolty Exp $ + * @version $Id: s_debug.c,v 1.15 2007/11/11 21:53:08 zolty Exp $ */ #include "config.h" @@ -52,6 +52,7 @@ #include "s_user.h" #include "send.h" #include "struct.h" +#include "ssl.h" #include "watch.h" #include "whowas.h" @@ -118,6 +119,13 @@ AddC('6'); #endif +#ifdef USE_SSL + AddC('+'); + AddC('S'); + AddC('S'); + AddC('L'); +#endif + #if defined(UNDERNET) AddC('+'); AddC('U'); AddC('N'); AddC('E'); AddC('T'); #endif @@ -326,8 +334,13 @@ for (cltmp = get_class_list(); cltmp; cltmp = cltmp->next) cl++; +#ifdef USE_SSL + send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG, + ":Clients %d(%zu) Connections %d(%zu) SSL %d", c, cm, cn, cnm, ssl_count()); +#else send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG, ":Clients %d(%zu) Connections %d(%zu)", c, cm, cn, cnm); +#endif send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG, ":Users %zu(%zu) Accounts %d(%zu) Invites %d(%zu)", us, usm, acc, acc * (ACCOUNTLEN + 1), Index: ircd-ircdev/ircd/s_err.c diff -u ircd-ircdev/ircd/s_err.c:1.25 ircd-ircdev/ircd/s_err.c:1.26 --- ircd-ircdev/ircd/s_err.c:1.25 Thu Sep 20 14:00:32 2007 +++ ircd-ircdev/ircd/s_err.c Sun Nov 11 13:53:08 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Error handling support. - * @version $Id: s_err.c,v 1.25 2007/09/20 21:00:32 zolty Exp $ + * @version $Id: s_err.c,v 1.26 2007/11/11 21:53:08 zolty Exp $ */ #include "config.h" @@ -724,7 +724,7 @@ /* 336 */ { 0 }, /* 337 */ - { 0 }, + { RPL_WHOISSSL, "%s :is connected via SSL", "337" }, /* 338 */ { RPL_WHOISACTUALLY, "%s %s@%s %s :Actual user@host, Actual IP", "338" }, /* 339 */ Index: ircd-ircdev/ircd/s_user.c diff -u ircd-ircdev/ircd/s_user.c:1.32 ircd-ircdev/ircd/s_user.c:1.33 --- ircd-ircdev/ircd/s_user.c:1.32 Thu Sep 20 14:00:32 2007 +++ ircd-ircdev/ircd/s_user.c Sun Nov 11 13:53:08 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Miscellaneous user-related helper functions. - * @version $Id: s_user.c,v 1.32 2007/09/20 21:00:32 zolty Exp $ + * @version $Id: s_user.c,v 1.33 2007/11/11 21:53:08 zolty Exp $ */ #include "config.h" @@ -59,6 +59,7 @@ #include "s_serv.h" /* max_client_count */ #include "send.h" #include "struct.h" +#include "ssl.h" #include "userload.h" #include "version.h" #include "watch.h" @@ -360,6 +361,10 @@ Count_unknownbecomesclient(sptr, UserStats); +#ifdef USE_SSL + SetSSL(sptr); +#endif + SetUser(sptr); cli_handler(sptr) = CLIENT_HANDLER; SetLocalNumNick(sptr); @@ -376,6 +381,13 @@ send_reply(sptr, RPL_CREATED, creation); send_reply(sptr, RPL_MYINFO, cli_name(&me), version, infousermodes, infochanmodes, infochanmodeswithparams); + +#ifdef USE_SSL + if (IsSSL(sptr)) + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :You are connected to %s with %s", sptr, + cli_name(&me), ssl_get_cipher(cli_socket(sptr).ssl)); +#endif + send_supported(sptr); m_lusers(sptr, sptr, 1, parv); update_load(); @@ -520,6 +532,9 @@ { FLAG_DEAF, 'd' }, { FLAG_CHSERV, 'k' }, { FLAG_DEBUG, 'g' }, +#ifdef USE_SSL + { FLAG_SSL, 'Z' }, +#endif #if defined(UNDERNET) { FLAG_ACCOUNT, 'r' }, #elif defined(DDB) || defined(SERVICES) @@ -1515,6 +1530,14 @@ if (what == MODE_ADD) do_host_hiding = 1; break; +#ifdef USE_SSL + case 'Z': + if (what == MODE_ADD) + SetSSL(sptr); + else + ClearSSL(sptr); + break; +#endif #if defined(DDB) || defined(SERVICES) case 'r': if (what == MODE_ADD) @@ -1570,6 +1593,10 @@ if (feature_bool(FEAT_HIS_DEBUG_OPER_ONLY) && !IsAnOper(sptr) && !FlagHas(&setflags, FLAG_DEBUG)) ClearDebug(sptr); +#ifdef USE_SSL + if (!FlagHas(&setflags, FLAG_SSL) && IsSSL(sptr)) + ClearSSL(sptr); +#endif #if defined(DDB) || defined(SERVICES) if (!FlagHas(&setflags, FLAG_NICKREG) && IsNickRegistered(sptr)) ClearNickRegistered(sptr); Index: ircd-ircdev/ircd/ssl.c diff -u /dev/null ircd-ircdev/ircd/ssl.c:1.1 --- /dev/null Sun Nov 11 13:53:26 2007 +++ ircd-ircdev/ircd/ssl.c Sun Nov 11 13:53:08 2007 @@ -0,0 +1,375 @@ +/* + * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/watch.c + * + * Copyright (C) 2002-2007 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2007 Toni Garcia (zoltan) <zo...@ir...> + * Copyright (C) 2002 Alex Badea <va...@go...> + * + * 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 + * + * $Id: ssl.c,v 1.1 2007/11/11 21:53:08 zolty Exp $ + * + */ +/** @file + * @brief Implementation of SSL. + * @version $Id: ssl.c,v 1.1 2007/11/11 21:53:08 zolty Exp $ + */ +#include "config.h" + +#ifdef USE_SSL +#include "ircd.h" +#include "ircd_defs.h" +#include "ircd_events.h" +#include "ircd_snprintf.h" +#include "ircd_alloc.h" +#include "s_debug.h" +#include "s_bsd.h" +#include "client.h" +#include "listener.h" +#include "send.h" +#include "ssl.h" + +#define _XOPEN_SOURCE +#include <limits.h> +#include <sys/uio.h> +#include <assert.h> +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +SSL_CTX *ctx; +static int ssl_inuse = 0; + +struct ssl_data { + struct Socket socket; + struct Listener *listener; + int fd; +}; + +static void abort_ssl(struct ssl_data *data) +{ + Debug((DEBUG_DEBUG, "SSL: aborted")); + SSL_free(data->socket.ssl); + --ssl_inuse; + close(data->fd); + socket_del(&data->socket); +} + +static void accept_ssl(struct ssl_data *data) +{ + if (SSL_accept(data->socket.ssl) <= 0) { + unsigned long err = ERR_get_error(); + char string[120]; + + if (err) { + ERR_error_string(err, string); + Debug((DEBUG_ERROR, "SSL_accept: %s", string)); + abort_ssl(data); + } + return; + } + if (SSL_is_init_finished(data->socket.ssl)) { + add_connection(data->listener, data->fd, data->socket.ssl); + socket_del(&data->socket); + } +} + +static void ssl_sock_callback(struct Event* ev) +{ + struct ssl_data *data; + + assert(0 != ev_socket(ev)); + assert(0 != s_data(ev_socket(ev))); + + data = s_data(ev_socket(ev)); + assert(0 != data); + + switch (ev_type(ev)) { + case ET_DESTROY: + --data->listener->ref_count; + MyFree(data); + return; + case ET_ERROR: + case ET_EOF: + abort_ssl(data); + break; + case ET_READ: + case ET_WRITE: + accept_ssl(data); + break; + default: + break; + } +} + +void ssl_add_connection(struct Listener *listener, int fd) +{ + struct ssl_data *data; + + assert(0 != listener); + + if (!os_set_nonblocking(fd)) { + close(fd); + return; + } + os_disable_options(fd); + + data = (struct ssl_data *) MyMalloc(sizeof(struct ssl_data)); + data->listener = listener; + data->fd = fd; + if (!socket_add(&data->socket, ssl_sock_callback, (void *) data, SS_CONNECTED, SOCK_EVENT_READABLE, fd)) { + close(fd); + return; + } + if (!(data->socket.ssl = SSL_new(ctx))) { + Debug((DEBUG_DEBUG, "SSL_new failed")); + close(fd); + return; + } + SSL_set_fd(data->socket.ssl, fd); + ++ssl_inuse; + ++listener->ref_count; +} + +/* + * ssl_recv - non blocking read of a connection + * returns: + * 1 if data was read or socket is blocked (recoverable error) + * count_out > 0 if data was read + * + * 0 if socket closed from other end + * -1 if an unrecoverable error occurred + */ +IOResult ssl_recv(struct Socket *socket, char* buf, + unsigned int length, unsigned int* count_out) +{ + int res; + + assert(0 != socket); + assert(0 != buf); + assert(0 != count_out); + + *count_out = 0; + errno = 0; + + res = SSL_read(socket->ssl, buf, length); + switch (SSL_get_error(socket->ssl, res)) { + case SSL_ERROR_NONE: + *count_out = (unsigned) res; + return IO_SUCCESS; + case SSL_ERROR_WANT_WRITE: + case SSL_ERROR_WANT_READ: + case SSL_ERROR_WANT_X509_LOOKUP: + Debug((DEBUG_DEBUG, "SSL_read returned WANT_ - retrying")); + return IO_BLOCKED; + case SSL_ERROR_SYSCALL: + if (res < 0 && errno == EINTR) + return IO_BLOCKED; /* ??? */ + break; + case SSL_ERROR_ZERO_RETURN: /* close_notify received */ + SSL_shutdown(socket->ssl); /* Send close_notify back */ + break; + } + return IO_FAILURE; +} + +/* + * ssl_sendv - non blocking writev to a connection + * returns: + * 1 if data was written + * count_out contains amount written + * + * 0 if write call blocked, recoverable error + * -1 if an unrecoverable error occurred + */ +IOResult ssl_sendv(struct Socket *socket, struct MsgQ* buf, + unsigned int* count_in, unsigned int* count_out) +{ + int res; + int count; + int k; + struct iovec iov[IOV_MAX]; + IOResult retval = IO_BLOCKED; + + assert(0 != socket); + assert(0 != buf); + assert(0 != count_in); + assert(0 != count_out); + + *count_in = 0; + *count_out = 0; + errno = 0; + + count = msgq_mapiov(buf, iov, IOV_MAX, count_in); + for (k = 0; k < count; k++) { + res = SSL_write(socket->ssl, iov[k].iov_base, iov[k].iov_len); + switch (SSL_get_error(socket->ssl, res)) { + case SSL_ERROR_NONE: + *count_out += (unsigned) res; + retval = IO_SUCCESS; + break; + case SSL_ERROR_WANT_WRITE: + case SSL_ERROR_WANT_READ: + case SSL_ERROR_WANT_X509_LOOKUP: + Debug((DEBUG_DEBUG, "SSL_write returned WANT_ - retrying")); + return retval; + case SSL_ERROR_SYSCALL: + return (res < 0 && errno == EINTR) ? retval : IO_FAILURE; + case SSL_ERROR_ZERO_RETURN: + SSL_shutdown(socket->ssl); + return IO_FAILURE; + default: + return IO_FAILURE; + } + } + return retval; +} + +int ssl_send(struct Client *cptr, const char *buf, unsigned int len) +{ + char fmt[16]; + + if (!cli_socket(cptr).ssl) + ... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-11-11 20:37:51
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-11-11 20:37:52 UTC Modified files: ircd/ddb_db_native.c Log message: Por un bug, impide arrancar el ircd, comento el codigo. ---------------------- diff included ---------------------- Index: ircd-ircdev/ircd/ddb_db_native.c diff -u ircd-ircdev/ircd/ddb_db_native.c:1.6 ircd-ircdev/ircd/ddb_db_native.c:1.7 --- ircd-ircdev/ircd/ddb_db_native.c:1.6 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/ircd/ddb_db_native.c Sun Nov 11 12:37:41 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Native DataBase implementation of Distributed DataBases. - * @version $Id: ddb_db_native.c,v 1.6 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: ddb_db_native.c,v 1.7 2007/11/11 20:37:41 zolty Exp $ */ #include "config.h" @@ -71,12 +71,13 @@ unsigned char table; int fd; +/* Lo comentamos porque peta if ((stat(feature_str(FEAT_DDBPATH), sStat) == 0)) { if (0 != mkdir(feature_str(FEAT_DDBPATH), 0775)) ddb_die("Error when creating %s directory", feature_str(FEAT_DDBPATH)); } - +*/ /* Verify if hashes file is exist. */ ircd_snprintf(0, path, sizeof(path), "%s/hashes", feature_str(FEAT_DDBPATH)); alarm(3); ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2007-11-11 19:11:22
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-11-11 19:10:51 UTC Log message: Directory /cvsroot/irc-dev/ircd-ircdev/tools/ssl added to the repository |
From: Toni G. <zo...@us...> - 2007-09-21 11:30:44
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-09-21 11:30:37 UTC Modified files: doc/en/crules.txt doc/en/cvs.txt doc/en/iauth.txt doc/en/who.txt Log message: Actualizacion de documentacion en ingles ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/en/crules.txt diff -u ircd-ircdev/doc/en/crules.txt:1.1 ircd-ircdev/doc/en/crules.txt:1.2 --- ircd-ircdev/doc/en/crules.txt:1.1 Wed Jan 5 10:00:33 2005 +++ ircd-ircdev/doc/en/crules.txt Fri Sep 21 04:30:27 2007 @@ -1,4 +1,4 @@ -$Id: crules.txt,v 1.1 2005/01/05 18:00:33 zolty Exp $ +$Id: crules.txt,v 1.2 2007/09/21 11:30:27 zolty Exp $ SmartRoute Rule based connects @@ -89,23 +89,24 @@ ircd.conf entries ----------------- -A rule is listed in the ircd.conf file using a D or d line (which can -be thought of as a "disallow" line). D lines will apply to all oper -and server originated connects, while d lines will apply only to -autoconnects (ie: they are overrideable by opers). The formats are: - -D:targetmask::rule -d:targetmask::rule - -Remember that newlines are not allowed in conf lines. Two examples -(from above) are: - -D:*eu.irc-dev*::connected(*eu.irc-dev*) -d:*eu.irc-dev*::connected(*eu.irc-dev*) || directop() - -Connects originating from other servers will be checked against and -matching D lines, while matching d lines will be ignored as it will not -be clear whether or not the connection attempt is oper initiated. +A rule is listed in the ircd.conf file using a CRule line (which can +be thought of as a "disallow" line). You may specify "ALL" either +before or after the target mask to make the rule apply to all +connections (inbound, automatic outbound and oper-initiated outbound); +without the "ALL" modifier, the rule will apply only to automatic +outbound connections. The formats are: + +CRule "targetmask" rule; +CRule "targetmask" all rule; + +Two examples (from above) are: + +CRule "*.eu.irc-dev*" all connected("*eu.irc-dev*"); +CRule "*.eu.irc-dev*" connected("*eu.irc-dev*") || directop(); + +Connects originating from other servers will be checked against any +matching ALL CRules, while matching non-ALL CRules will be ignored as +it will not be clear whether the connection attempt is oper-initiated. Checking and viewing rules -------------------------- Index: ircd-ircdev/doc/en/cvs.txt diff -u ircd-ircdev/doc/en/cvs.txt:1.1 ircd-ircdev/doc/en/cvs.txt:1.2 --- ircd-ircdev/doc/en/cvs.txt:1.1 Wed Jan 5 10:00:34 2005 +++ ircd-ircdev/doc/en/cvs.txt Fri Sep 21 04:30:27 2007 @@ -1,89 +1,44 @@ -$Id: cvs.txt,v 1.1 2005/01/05 18:00:34 zolty Exp $ +$Id: cvs.txt,v 1.2 2007/09/21 11:30:27 zolty Exp $ -Notes on checking out from the IRC-DevCVS archive and maintenance. +Notes on checking out from the IRC-Dev CVS archive and maintenance. -General Strategy: -The main trunk of the tree will be used for ongoing development only -(alpha) this code is not intended to be used on the production network. -When development has reached a point of relative stability a tag will be -applied to the development branch and a beta tag will be applied to that -branch. For beta test servers only the tagged branches will be used. -When a tag is applied we will also produce a snapshot tarball of the -tag. Once a beta tagged release has been proven stable any fixes will be -merged into the main tagged version and the code will be voted on for -release. Fixes after release will be tagged with a patchlevel tag. - -You check out a tagged release by specifying the -r tag option to cvs. -This is the command to check out the most recent tagged version of -IRC-Dev1.0.1: -cvs -d :pserver:ano...@cv...:/cvsroot/irc-dev co -r 1_0_1 -P ircd-ircdev - -Developers doing maintenance and bug fixes should only check out the -current tagged patchlevel for the affected version. Once the fix has -proven stable, it will be merged into the tree the fix is relative to. - -We will not merge the changes that have been made to IRC-Dev1.0 since -it's release into the development branch, the IRC-Dev1.0 branch is a -maintenance only branch. - -If you have any questions on how to check out tagged versions check out -the IRC-Dev web page http://www.irc-dev.net or the cvs -manual page. If you're really stumped feel free to ask in #irc-dev. - -We will put out new tarballs for every tagged release which will be -available on the IRC-Dev web page. - -Naming Conventions: - -Tag Names: -Major release - 1 -Beta release - 1_0_0 -Production patch - 1_0_0 - -The tree currently looks like this: - -Trunk: development only ------------------------------------------------- - \ \ - \----- u2_10_07 \---- u2_10_10 --- release --------- - \ \ \ - \--- u2_10_07_pl9 \--- u2_10_10_beta06 \ u2_10_10_pl01 - -Patches will be rolled into the tagged branch and eventually rolled into -the development branch. All new development should be relative to the -trunk, only bugfixes and maintenance coding should be applied to any -tagged version. Developers doing maintenance should only check out the -latest pl or beta tag and apply the changes relative to that tag. These -changes will be committed to the tag they were checked out from and once -proven stable they will be merged into the main tagged trunk by the -maintainer. - -Where to get CVS: -http://www.cvshome.org - -Checking out: -First you need to login to cvs: -cvs -d :pserver:ano...@cv...:/cvsroot/irc-dev login - -It will prompt you for a password. There is no password so hit enter. - -To check out the recommended patchlevel for ircu2.10.07 use: -cvs -d :pserver:ano...@cv...:/cvsroot/irc-dev co -r u2_10_07_pl6 -P ircd-ircdev - -For the ircu2.10.10 beta archive use: -cvs -d :pserver:ano...@cv...:/cvsroot/irc-dev co -r u2_10_10_beta06 -P ircd-ircdev - -To check out the current development archive use: -cvs -d :pserver:ano...@cv...:/cvsroot/irc-dev co -P ircd-ircdev - -When you want to update your source tree later to the latest version, use -cvs update -P - -inside ircd-ircdev/, the directory ircd-ircdev was checked out to. - -How to find the most current available release: -We will announce the most current release tag when we make it available, in general -you will check out the main branch of any given tree, if you want the current production -release use the "u2_10_07" tag, for patched versions use a patchlevel tag "u2_10_07_pl6". -You can always find the most recent tag for any version by looking at the IRC-Dev CVS -archive: http://cvs.irc-dev.net/viewcvs.py/irc-dev/ +The main trunk of the tree (HEAD) will be used for development only. +When the maintainers believe the code is stable enough to prepare for +a release, they will make a branch for that release series. + +Each branch will have a base name, which is the name of the release +series where dots are replaced with underscores. The branch name will +be the base name with the suffix "_branch". Once an official release +is made, each release branch will have one or more fixed tags and one +moving tag. The fixed tags will indicate specific patchlevels, and +have the base name with a suffix giving the zero-based patchlevel. +The moving tag's name will be the base name, and will always point to +the same state as some fixed tag on the branch. + +This allows developers to easily track the most recent version of any +branch (by checking out using the branch's name), and allows server +admins to easily track the most recent release on the branch (by +checking out using the branch's base name). + +For example, for the ircu2.10.12 release series, the branch's base +name is u2_10_12. The branch's name is u2_10_12_branch. The first +release (ircu2.10.12) would be permanently tagged as u2_10_12_0, and +until an update is released, it would also have the tag u2_10_12. +When the first update is released, it would be permanently tagged as +u2_10_12_01, and the tag u2_10_12 would be changed to point to it. + +If the current stable series is 2.10.12, server admins should check +out the code using the command: + cvs -d :pserver:ano...@cv...:/cvsroot/undernet-ircu co -r u2_10_12 -P ircu2.10 +Admins may only run unreleased code on Undernet with coder-com +approval. The command above will retrieve the most recent release. + +Developers should check out the release branch using the command: + cvs -d :pserver:ano...@cv...:/cvsroot/undernet-ircu co -r u2_10_12_branch -P ircu2.10 + +http://sourceforge.net/cvs/?group_id=63470 gives more information on +using CVS to access the ircu code; http://www.nongnu.org/cvs/ gives +more information on using CVS in general. + +NOTE: Release before ircu2.10.12 used a different branching scheme. +Older revisions of this readme.cvs explain that system. Index: ircd-ircdev/doc/en/iauth.txt diff -u ircd-ircdev/doc/en/iauth.txt:1.1 ircd-ircdev/doc/en/iauth.txt:1.2 --- ircd-ircdev/doc/en/iauth.txt:1.1 Wed Jan 5 10:00:34 2005 +++ ircd-ircdev/doc/en/iauth.txt Fri Sep 21 04:30:27 2007 @@ -1,84 +1,434 @@ -$Id: iauth.txt,v 1.1 2005/01/05 18:00:34 zolty Exp $ +$Id: iauth.txt,v 1.2 2007/09/21 11:30:27 zolty Exp $ OVERVIEW ======== -The IAUTH protocol used here is based on the one in ircd-hybrid 7.0, -with minor changes to support login-on-connect and true IAUTH-side -connection classes. (Several networks use central authorities to vary -per-netblock connection limits; for example, users from one ISP may -only be allowed one connection per IP, or one shell provider's -netblock may be limited to 50 total connections.) IAUTH-side -connection classes are controlled by a configuration option; if that -is enabled, this document will say ICLASS is enabled. - -As in IRC, lines sent between the IRC and IAUTH servers are limited to -512 characters, including the terminating <CR> <LF> sequence. As in -IRC, the final argument on a line may be prefixed with :, and must be -prefixed with : if it contains a space (decimal 32) character. Tokens -are separated by single space characters, and each line is a separate -command. The first token on a line is a case-insensitive command -name; unrecognized commands must be ignored. +The iauth protocol used here is based on the one in irc2.11.1, with +minor changes to support challenge-response protocols and +login-on-connect. Reference to that version's iauth-internals.txt and +source code may be useful. For clarity, this document uses "server" +to refer to any IRC server implementing this protocol, "ircu" to refer +to Undernet ircd, and "ircd" to refer to IRCnet ircd. + +Certain messages are relayed to interested operators. ircu implements +this by using the 131072 (SNO_AUTH) server notice mask. ircd +implements this by using the &AUTH local channel. -GREETING -======== +STARTING IAUTH +============== -The IRC server connects and sends the Server greeting: - Server <servername> [password] -If ICLASS is enabled, it sends a list of currently connected users: - MyUsers <uid>:<username>@<hostname>:<ip> ... -The IRC server may send several MyUsers lines. When it has sent all -MyUsers lines, it sends an EndUsers line: - EndUsers -If ICLASS is disabled, EndUsers is sent immediately after Server. +The path to the iauth program is specified in the server configuration +file. The server spawns that program when reading the configuration +file or when the previous iauth instance terminates. To protect +against a series of crashes, the server will refuse to restart an +iauth instance that it spawned in the last five seconds. A rehash +operation will clear this behavior. The server and iauth instance +communicate over the iauth instance's stdin and stdout. + +Every message from the server to the iauth instance is a single line. +The line starts with an integer client identifier. This may be -1 to +indicate no particular client or a non-negative number to indicate a +client connected to the server. + +When the server starts the iauth instance, it sends a line formatted +like "-1 M irc.example.org 20000" to indicate its name and an +exclusive upper bound on valid client identifiers. In that example, +possible client identifiers would be from 0 through 19999 inclusive. +This upper bound is called MAXCONNECTIONS in the server code. + +When the iauth instance starts, it sends a V message to indicate its +version. + +The server should provide /stats subcommands that report the iauth +instance's version, configuration and statistics. + +Line formats in both direction are IRC-like in format: space +characters separate arguments and a colon at the start of an argument +indicates that the remainder of the line is one argument. To avoid +problems, IPv6 address arguments with a leading colon may have to be +prefixed with a 0 -- for example, ::1 sent as 0::1. + +When the iauth instance sends messages that relate to a particular +client, that client is identified by three parameters from the +server's Client Introduction message (<id>, <remoteip> and +<remoteport>). If any of these disagree with the server's current +user tables, it is an error. + +CLIENT STATES +============= + +Each client is conceptually in one of four states: GONE, REGISTER, +HURRY or NORMAL. Each client starts in the GONE state. Certain +messages from the server signal a client's transition from one state +to another, and certain messages from the iauth instance cause a state +transition. + +To be pedantic, the REGISTER state is a collection of sub-states since +certain commands must occur at most and/or at least one time during +the REGISTER state. The distinctions between these sub-states are +distracting and not important, so they are described as one state and +the repetition limitations are described for each command. + +The rationale for the HURRY state is to give explicit input to the +iauth instance as to when the server believes it has sent the complete +set of data for the client. Rather than defining the complete set of +information in this protocol document, that is left to the server. +ircd does not indicate this state. + +POLICIES AND USE CASES +====================== + +The historical application of iauth has been to block users that +appear to be drones early, before they have a chance to disrupt the +network, and without affecting other users on the same host (which +K-lines do). This protocol extends that application by adding the n +server message and by allowing challenge-response exchanges with the +client. + +Eventually it would be nice to move the DNS and ident lookups into +iauth, and remove that code from the IRC server. ircd already does +this; since ircu does not, it adds the u server message. + +For trusted proxies, this protocol gives the capability for clients +connecting through those proxies to be displayed with their actual +username, IP address and hostname. The same functions allow other +clients to use iauth-assigned spoofs, for example to hide the IP +addresses used by operators. + +This protocol allows login-on-connect, for example by clients that +send their account name and password in PASS, through the R iauth +message. + +This protocol allows iauth to assign a client to a particular class by +specifying a class name in the D or R iauth message. + +SERVER MESSAGES +=============== + +X - Example Message Description +Syntax: <id> X <several> <arguments> +Example: 5 X arguments vary +States: REGISTER(1), HURRY, NORMAL +Next State: - +Comments: This is an example message description. Each message is a + single character. The States field indicates which states the + message may occur in and any restrictions on how many times the + message may be sent during those states (restrictions only make + sense when Next State is -). The Next State field indicates which + new state is implied by the message; a hyphen indicates no state + change is implied. The X (Example) message is not a real message + type. +Compatibility: If we believe ircu behavior is different than ircd's, + this describes ircd's behavior or expectations. + +C - Client Introduction +Syntax: <id> C <remoteip> <remoteport> <localip> <localport> +Example: 5 C 192.168.1.10 23367 192.168.0.1 6667 +States: GONE +Next State: REGISTER +Comments: Indicates that <localport> on <localip> accepted a client + connection from <remoteport> on <remoteip>. + +D - Client Disconnect +Syntax: <id> D +Example: 5 D +States: REGISTER, HURRY, NORMAL +Next State: GONE +Comments: Indicates that a client is disconnecting from the server. + +N - Hostname Received +Syntax: <id> N <hostname> +Example: 5 N host-1-10.example.org +States: REGISTER(1) +Next State: - +Comments: Indicates that the server received hostname information for + a client. Only one of 'N' and 'd' is sent. + +d - Hostname Timeout +Syntax: <id> d +Example: 5 d +States: REGISTER(1) +Next State: - +Comments: Indicates that the server did not receive hostname + information for a client in a timely fashion. Only one of 'N' and + 'd' is sent. + +P - Client Password +Syntax: <id> P :<password ...> +Example: 5 P :buddha n1rvan4 +States: REGISTER +Next State: - +Comments: Indicates the client's password information. This may be a + traditional client password, an account and pass phrase pair, or the + response to a challenge (see the iauth C message). This message is + enabled by requesting the A policy. + +U - Client Username +Syntax: <id> U <username> <hostname> <servername> :<userinfo ...> +Example: 5 U buddha bodhisattva.example.com irc.undernet.org :Gautama Siddhartha +States: REGISTER(1+) +Next State: - +Comments: Indicates the client's claimed username and "GECOS" + information, along with client hostname and server name. This + information is not reliable. This message is enabled by requesting + the A policy. +Compatibility: ircd only sends the <username> parameter. + +u - Client Username +Syntax: <id> u <username> +Example: 5 u notbuddha +States: REGISTER(1) +Next State: - +Comments: Indicates a more reliable username for the client. +Compatibility: This is an Undernet extension and ircd does not send + it. It is enabled by the iauth instance requesting the U policy. + +n - Client Nickname +Syntax: <id> n <nickname> +Example: 5 n Buddha +States: REGISTER(1+), HURRY +Next State: - +Comments: Indicates the client's requested nickname. +Compatibility: This is an Undernet extension and ircd does not send + it. It is enabled by the iauth instance requesting the U policy. + +H - Hurry Up +Syntax: <id> H <class> +Example: 5 H Others +States: REGISTER +Next State: HURRY +Comments: Indicates that the server is ready to register the client + except for needing a response from the iauth server. <class> is + a tentative connection class for the user, which will be used unless + iauth overrides it in a D or R message. +Compatibility: This is an Undernet extension and ircd does not send + it. It is enabled by the iauth instance requesting the U policy. + +T - Client Registered +Syntax: <id> T +Example: 5 T +States: HURRY +Next State: NORMAL +Comments: Indicates the server got tired of waiting for iauth to + finish and the client is being accepted. This message should + never be sent when the R policy is in effect. +Compatibility: ircd allows this message for clients in the REGISTER + state. + +E - Error +Syntax: <id> E <type> :<additional text> +Example: 5 E Gone +States: N/A +Next State: - +Comments: Indicates that a message received from the iauth instance + could not be rationally interpreted. This may be because the client + could not be found, the client was in an inappropriate state for the + message, or for other reasons. The <type> argument specifies the + general type of error and <additional text> provides details. <id> + may be -1. + +M - Server Name and Capacity +Syntax: <id> M <servername> <capacity> +Example: -1 M irc.example.org 20000 +States: GONE(1) +Next State: - +Comments: Indicates the server's name and upper bound on client + identifiers. +Compatibility: ircd does not include the <capacity> information. + The <id> should be ignored: ircd sends 0 and ircu sends -1. -LOGIN REQUESTS +IAUTH MESSAGES ============== -When users connect, the IRC server sends a DoAuth request: - FullAuth <uid> <nickname> <username> <hostname> <ip> <account> <password> <realname> -<uid> is a text string up to 20 characters long that identifies the -client, and is unique a BadAuth response is received or until an -ExitUser command is sent with the same uid (see below for details on -those messages). <uid> may not contain a colon character. <nickname> -is the client's initially requested nickname. <username> is the -username returned by the ident server (RFC 1413), or a tilde-prefixed -username supplied by the user. <hostname> is a text hostname, -possibly in the form of a dotted quad or IPv6 address, or the -character '?'. <ip> is a dotted quad IPv4 address or an IPv6 hex -address. <account> and <password> are optional, and are used when the -client attempts login-on-connect. <realname> is the realname -specified by the client's USER message, and may contain spaces. - -If the client is accepted, the IAUTH server responds: - DoneAuth <uid> <username> <hostname> <class> [account] -<username> is a replacement username, and <hostname> is a replacement -hostname. If the <hostname> from DoAuth was ?, <hostname> is the -result of a DNS lookup for the client. <class> is the name of a -connection class for the client. <account> is optional and is -provided if the user's login was successful. - -If the client is rejected, the IAUTH server responds: - BadAuth <uid> :<reason> -<reason> may include spaces, and should have a leading ':' sentinel. - -DISCONNECTS -=========== - -If ICLASS is enabled, the IRC server sends ExitUser when a client -disconnects: - ExitUser <uid> - -DIFFERENCES FROM IRCD-HYBRID -============================ - -The ircd-hybrid IAUTH code is slightly bitrotted and disabled in 7.0 -(through at least 7.0.1). This code added the following items: - MyUsers, EndUsers and ExitUser commands - Server passwords may contain whitespace and be prefixed by : - DoneAuth may include an account name - FullAuth command replaces DoAuth command and adds account, password, - realname parameters -The Class command is present in ircd-hybrid's code but not used here. -IP addresses in ircd-hybrid are "in unsigned int format," which is -limited to IPv4, and so it is not used here. +X - Example Message Description +Syntax: X <arguments> +Example: X something +Notify: yes +States: N/A +Next State: N/A +Comments: This is an example message description. Each message is a + single character. If the Notify field is present and says yes, + interested operators (with SNO_AUTH set) should be notified of the + message. The States field, where present, indicate which states + accept this message. Clients in other states should ignore the + message or treat it as an error. The Next State field, where + present, indicates what the next state should be for the client. +Compatibility: If we believe ircu behavior is different than ircd's, + this describes ircd's behavior or expectations. + +> - Operator Notification +Syntax: > :<message text> +Example: > :Hello Operators! +Notify: yes +Comments: Contains a message that the iauth instance wants to send to + interested operators. + +G - Set Debug Level +Syntax: G <level> +Example: G 1 +Notify: yes +Comments: Sets a debug level for the server's end of the iauth + conversation. When enabled, debug messages should be sent to the + same channel (group, mask, etc) as other iauth notifications. + Debug level 0 suppresses iauth-related debug output, and positive + integers enable iauth debugging messages. + +O - Set Policy Options +Syntax: O <options> +Example: O RTAWU +Notify: yes +Comments: Sets policy options for the iauth conversation. Old policy + options should be forgotten. Valid policy options are: + A - Send username and password information. + This causes the server to send the U and P messages. + R - Require clients to be approved before registering them. + When this policy is in effect, it affects the behavior + of a registration timeout; for details, see the documentation + for the T server message. + T - When the R policy is in effect and the iauth service does not + respond for a client, this causes the server to count the number + of clients refused, to send a warning message to interested + operators periodically, and to send the count of rejected users + to interested operators when the iauth instance responds again. + U - Send nickname, confirmed username and hurry information. + This causes the server to send the n, u and H messages. + W - Allow extra time for iauth to respond based on hostname. + When this policy is in effect and a DNS message (N or d) is + sent for a client, that client's registration timeout is + extended or reset. +Compatibility: The U policy is an Undernet extension and is not + recognized by ircd. + +V - iauth Program Version +Syntax: V :<version string> +Example: V :Undernet-iauthu v1.0 +Notify: yes +Comments: Indicates the iauth program version. This should only be + used in diagnostic messages, and must not change protocol behavior. + +a - Start of new configuration +Syntax: a +Example: a +Notify: yes +Comments: Indicates that a new configuration is being loaded by the + iauth instance. Any cached configuration records should be cleared. + +A - Configuration Information +Syntax: A <hosts?> <module> :<options> +Example: A * rfc931 +Notify: yes +Comments: Indicates new configuration information. + +s - Start of new statistics +Syntax: s +Example: s +Notify: yes +Comments: Indicates a new set of statistics will be sent. Any cached + statistics records should be cleared. + +S - Statistics Information +Syntax: S <module> :<module information> +Example: S rfc931 connected 0 unix 0 other 0 bad 0 out of 0 +Notify: yes +Comments: Indicates new or additional statistics information. + +o - Forced Username +Syntax: o <id> <remoteip> <remoteport> <username> +Example: o 5 192.168.1.10 23367 bubba +States: REGISTER, HURRY +Next State: - +Comments: Indicates that the username should be used for the specified + client even if the normal sanity-checking would prohibit the + username. + +U - Trusted Username +Syntax: U <id> <remoteip> <remoteport> <username> +Example: U 5 192.168.1.10 23367 buddha +States: REGISTER, HURRY +Next State: - +Comments: Indicates that the iauth instance believes <username> is + accurate for the specified client. + +u - Untrusted Username +Syntax: u <id> <remoteip> <remoteport> <username> +Example: u 5 192.168.1.10 23367 enlightened_one +States: REGISTER, HURRY +Next State: - +Comments: Indicates that the iauth instance does not strongly trust + <username> to be accurate, but has no more trusted username. + +N - Client Hostname +Syntax: N <id> <remoteip> <remoteport> <hostname> +Example: N 5 192.168.1.10 23367 buddha.example.org +States: REGISTER, HURRY +Next State: - +Comments: Indicates that the iauth instance believes the specified + client should use the hostname given. +Compatibility: This is an Undernet extension and ircd does not support + this message. + +I - Client IP Address +Syntax: N <id> <currentip> <remoteport> <newip> +Example: N 5 192.168.1.10 23367 127.128.129.130 +States: REGISTER, HURRY +Next State: - +Comments: Indicates that the iauth instance wants the server to + present and treat the client as using <newip>. This means that + future iauth messages relating to the client must use <newip> + as the <remoteip> parameter. +Compatibility: This is an Undernet extension and ircd does not support + this message. + +C - Challenge User +Syntax: C <id> <remoteip> <remoteport> :<challenge string> +Example: C 5 192.168.1.10 23367 :In which year did Columbus sail the ocean blue? +States: REGISTER, HURRY +Next State: - +Comments: Indicates that the challenge string should be sent to the + specified user, for example via NOTICE AUTH :*** <challenge string>. + The client responds by sending PASS :<response>, which should be + relayed via the P server message. This requires that the A policy + be in effect. +Compatibility: This is an Undernet extension and ircd does not support + this message. + +k - Quietly Kill Client +Syntax: k <id> <remoteip> <remoteport> :<reason> +Example: k 5 192.168.1.10 23367 :Open proxy found. +States: REGISTER, HURRY, NORMAL +Next State: GONE +Comments: Indicates that the specified client should be disconnected + for the reason given without notifying operators. +Compatibility: ircu does not use the same notification mechanism as + ircd, so operators are notified using SNO_CONNEXIT anyway. + +K - Kill Client +Syntax: K <id> <remoteip> <remoteport> :<reason> +Example: K 5 192.168.1.10 23367 :We don't like you. +States: REGISTER, HURRY, NORMAL +Next State: GONE +Comments: Indicates that the specified client should be disconnected + for the reason given. Operators should be notified. + +D - Done Checking +Syntax: D <id> <remoteip> <remoteport> [class] +Example: D 5 192.168.1.10 23367 +States: REGISTER, HURRY +Next State: NORMAL +Comments: Indicates that the iauth instance believes the specified + client should be allowed onto the network. If a class parameter is + given, the client should be assigned to that class. +Compatibility: Specifying the class is an Undernet extension and ircd + does not support that parameter. + +R - Registered User +Syntax: R <id> <remoteip> <remoteport> <account> [class] +Example: R 5 192.168.1.10 23367 Buddha +States: REGISTER, HURRY +Next State: NORMAL +Comments: Indicates that the iauth instance believes the specified + client should be allowed onto the network, pre-authenticated to + the account listed. If a class parameter is given, the client + should be assigned to that class. +Compatibility: This is an Undernet extension and ircd does not support + this message. Index: ircd-ircdev/doc/en/who.txt diff -u ircd-ircdev/doc/en/who.txt:1.1 ircd-ircdev/doc/en/who.txt:1.2 --- ircd-ircdev/doc/en/who.txt:1.1 Wed Jan 5 10:00:34 2005 +++ ircd-ircdev/doc/en/who.txt Fri Sep 21 04:30:27 2007 @@ -1,4 +1,4 @@ -$Id: who.txt,v 1.1 2005/01/05 18:00:34 zolty Exp $ +$Id: who.txt,v 1.2 2007/09/21 11:30:27 zolty Exp $ WHO documentation, updated on 02 Jan 1999. @@ -43,7 +43,7 @@ For both the masks and the options (and thus for all flags) case is NOT significative (so "/who <any> o" is exactly the same as "/who <ANY> O". -The "options2" part can be as follows: +The "options" part can be as follows: [<flags>][%[<fields>[,<querytype>]]] @@ -101,6 +101,7 @@ t : Include the querytype in the reply u : Include userID with eventual ~ a : Include account name + o : Include oplevel (shows 999 to users without ops in the channel) And the ,<querytype> final option can be used to specify what you want the server to say in the querytype field of the output, useful to filter the ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2007-09-21 11:10:42
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-09-21 11:10:41 UTC Modified files: doc/en/features.txt doc/ircd.sample-en.conf Log message: Actualizacion de archivos de configuracion en ingles ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/en/features.txt diff -u ircd-ircdev/doc/en/features.txt:1.4 ircd-ircdev/doc/en/features.txt:1.5 --- ircd-ircdev/doc/en/features.txt:1.4 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/doc/en/features.txt Fri Sep 21 04:10:30 2007 @@ -1,4 +1,4 @@ -$Id: features.txt,v 1.4 2005/10/25 09:52:43 zolty Exp $ +$Id: features.txt,v 1.5 2007/09/21 11:10:30 zolty Exp $ Many of the old compile-time options are now configured through the server configuration file, ircd.conf. This file is intended to @@ -7,6 +7,7 @@ NOTE THAT THESE NAMES ARE CASE SENSITIVE! Values are not case sensitive unless stated otherwise in the documentation for that feature. + DOMAINNAME * Type: string * Default: picked by ./configure from /etc/resolv.conf @@ -206,6 +207,14 @@ connections. +NOIDENT + * Type: boolean + * Default: FALSE + +NOIDENT disables RFC 1413 (ident protocol) lookups of clients' +usernames. + + RANDOM_SEED * Type: string * Default: none @@ -285,25 +294,47 @@ * Type: boolean * Default: TRUE -Bla. +This allows local users to set the +A and +U modes (admin and user +passwords, respectively) on channels where they are marked as channel +managers. This feature must be disabled until all servers on the +network are able to interpret and handle these modes correctly. + + +ZANNELS + * Type: boolean + * Default: TRUE + +This preserves empty channels with no admin password so that it is +impractical to become the channel manager by clearing out the channel. +It must be set to FALSE if there are both 2.10.11.x servers and +2.10.12.y servers on the network where y < 4. It should be set to +TRUE whenever the OPLEVELS features is TRUE. LOCAL_CHANNELS - * Type: boolean - * Default: TRUE + * Type: boolean + * Default: TRUE If set, allow users to create local channels. TOPIC_BURST - * Type: boolean - * Default: FALSE + * Type: boolean + * Default: FALSE If set, send the current topic value and timestamp for channels during -burst. This generally only makes sense for hubs to use, and it causes +burst. This generally only makes sense for hubs to use, and it causes a large increase in net.burst size. +USER_GLIST +* Type: boolean +* Default: FALSE + +Optionally removes the ability to list glines by users +(ie /GLINE id...@ho..., shows reason, expiry time etc) + + KILLCHASETIMELIMIT * Type: integer * Default: 30 @@ -335,7 +366,7 @@ NICKLEN * Type: integer - * Default: 12 + * Default: 15 This is the allowed length of the nickname length. It may not be larger than the NICKLEN #define, and should usually be the same @@ -343,21 +374,6 @@ in nickname length for a network. -CHANNELLEN - * Type: integer - * Default: 200 - -This is the allowed length of locally created channels. It may not be -larger than the CHANNELLEN #define. Like the NICKLEN feature, this is -intended to ease changes in channel name length across a network. - -USER_GLIST -* Type: boolean -* Default: FALSE - -Optionally removes the ability to list glines by users -(ie /GLINE id...@ho..., shows reason, expiry time etc) - AVBANLEN * Type: integer * Default: 40 @@ -521,6 +537,15 @@ considered an attack. +CHANNELLEN + * Type: integer + * Default: 200 + +This is the allowed length of locally created channels. It may not be +larger than the CHANNELLEN #define. Like the NICKLEN feature, this is +intended to ease changes in channel name length across a network. + + MPATH * Type: string * Default: "ircd.motd" @@ -550,6 +575,13 @@ ps(1) isn't necessary. +DDBPATH + * Type: string + * Default: "database" + +DDBPATH is the directory for Distributed DataBases. + + TOS_SERVER * Type: integer * Default: 0x08 @@ -674,207 +706,205 @@ This removes /TRACE from users. -HIS_STATS_a +HIS_STATS_NAMESERVERS * Type: boolean * Default: TRUE This removes /STATS a from users. -HIS_STATS_c +HIS_STATS_DDB + * Type: boolean + * Default: TRUE + +This removes /STATS b from users. + + +HIS_STATS_CONNECT * Type: boolean * Default: TRUE This removes /STATS c from users. -HIS_STATS_d +HIS_STATS_CRULES * Type: boolean * Default: TRUE This removes /STATS d from users. -HIS_STATS_e +HIS_STATS_ENGINE * Type: boolean * Default: TRUE This removes /STATS e from users. -HIS_STATS_f +HIS_STATS_FEATURES * Type: boolean * Default: TRUE This removes /STATS f from users. -HIS_STATS_g +HIS_STATS_GLINES * Type: boolean * Default: TRUE This removes /STATS g from users. -HIS_STATS_h +HIS_STATS_HISTOGRAM * Type: boolean * Default: TRUE This removes /STATS h from users. -HIS_STATS_i +HIS_STATS_ACCESS * Type: boolean * Default: TRUE This removes /STATS i from users. -HIS_STATS_j +HIS_STATS_JUPES * Type: boolean * Default: TRUE This removes /STATS j from users. -HIS_STATS_k +HIS_STATS_KLINES * Type: boolean * Default: TRUE This removes /STATS k from users. -HIS_STATS_k - * Type: boolean - * Default: TRUE - -This removes /STATS k from users. - - -HIS_STATS_l +HIS_STATS_LINKS * Type: boolean * Default: TRUE This removes /STATS l from users. -HIS_STATS_L +HIS_STATS_MODULES * Type: boolean * Default: TRUE This removes /STATS L from users. -HIS_STATS_m +HIS_STATS_COMMANDS * Type: boolean * Default: TRUE This removes /STATS m from users. -HIS_STATS_M - * Type: boolean - * Default: TRUE - -This removes /STATS M from users. - - -HIS_STATS_o +HIS_STATS_OPERATORS * Type: boolean * Default: TRUE This removes /STATS o from users. -HIS_STATS_p +HIS_STATS_PORTS * Type: boolean * Default: TRUE This removes /STATS p from users. -HIS_STATS_q +HIS_STATS_QUARANTINES * Type: boolean * Default: TRUE This removes /STATS q from users. -HIS_STATS_r +HIS_STATS_USAGE * Type: boolean * Default: TRUE This removes /STATS r from users. -HIS_STATS_R +HIS_STATS_MAPPINGS * Type: boolean * Default: TRUE This removes /STATS R from users. -HIS_STATS_t +HIS_STATS_LOCALS * Type: boolean * Default: TRUE This removes /STATS t from users. -HIS_STATS_T +HIS_STATS_MOTDS * Type: boolean * Default: TRUE This removes /STATS T from users. -HIS_STATS_u +HIS_STATS_UPTIME * Type: boolean * Default: FALSE This removes /STATS u from users. -HIS_STATS_U +HIS_STATS_UWORLD * Type: boolean * Default: TRUE This removes /STATS U from users. -HIS_STATS_v +HIS_STATS_VSERVERS * Type: boolean * Default: TRUE This removes /STATS v from users. -HIS_STATS_w +HIS_STATS_USERLOAD * Type: boolean * Default: FALSE This removes /STATS w from users. -HIS_STATS_x +HIS_STATS_MEMUSAGE * Type: boolean * Default: TRUE This removes /STATS x from users. -HIS_STATS_y +HIS_STATS_CLASSES * Type: boolean * Default: TRUE This removes /STATS y from users. -HIS_STATS_z +HIS_STATS_MEMORY * Type: boolean * Default: TRUE This removes /STATS z from users. +HIS_STATS_IAUTH + * Type: boolean + * Default: TRUE + +This disables /STATS IAUTH and /STATS IAUTHCONF from users. HIS_WHOIS_SERVERNAME @@ -912,6 +942,13 @@ This replaces hopcount to a static 3 in replies to /WHO. +HIS_MODEWHO + * Type: boolean + * Default: TRUE + +This doesn't show which server performed a channel mode change. + + HIS_BANWHO * Type: boolean * Default: TRUE @@ -947,13 +984,6 @@ This removes server names in net break sign-offs. -HIS_WHOIS_LOCALCHAN - * Type: boolean - * Default: TRUE - -This removes local channels in replies to /WHOIS. - - HIS_SERVERNAME * Type: string * Default: "*.irc-dev.net" @@ -988,3 +1018,45 @@ * Default: "ftp://ftp.irc.org/pub/irc/clients" This defines a URL that users may visit to find compatible IRC clients. + + +URLREG + * Type: string + * Default: "http://cservice.undernet.org/live/" + +This defines a URL that is used in server response 477 (ERR_NEEDREGGEDNICK) to +let users know which website they must visit to obtain a proper account for +authentication. + + +SPAM_OPER_COUNTDOWN + * Type: integer + * Default: 5 + +Number of times a user may continue to join in a spambot-like fashion +between snotices. + + +SPAM_EXPIRE_TIME + * Type: integer + * Default: 120 + +Number of seconds before a spambot-like join is "forgotten". + + +SPAM_JOINED_TIME + * Type: integer + * Default: 60 + +Number of seconds a client must stay in channels before a join/part +sequence is not considered spambot-like. This can be set to zero to +disable spambot warnings. + + +SPAM_FJP_COUNT + * Type: integer + * Default: 5 + +Number of fast join-part sequences before a client is judged to look +like a spambot. + Index: ircd-ircdev/doc/ircd.sample-en.conf diff -u ircd-ircdev/doc/ircd.sample-en.conf:1.24 ircd-ircdev/doc/ircd.sample-en.conf:1.25 --- ircd-ircdev/doc/ircd.sample-en.conf:1.24 Wed Oct 26 08:13:27 2005 +++ ircd-ircdev/doc/ircd.sample-en.conf Fri Sep 21 04:10:30 2007 @@ -1,6 +1,6 @@ # ircd.conf - configuration file for IRC-Dev's IRCD. # -# Last Updated: 25, October 2005. +# Last Updated: 21, September 2007. # # Written by Niels <ni...@un...>, based on the original example.conf, # server code and some real-life (ahem) experience. @@ -57,6 +57,10 @@ # vhost = "ipv6vhost"; # description = "description"; # numeric = numericnumber; +# dns vhost = "ipv4vhost"; +# dns vhost = "ipv6vhost"; +# dns server = "ipaddress"; +# dns server = "ipaddress2"; # }; # # If present, "vhost" must contain a valid address in dotted @@ -72,6 +76,15 @@ # # Note that "numeric" field has to be unique on the network your server # is running on, must be between 0 and 4095, and is not updated on a rehash. +# +# The two DNS lines allow you to specify the local IP address to use +# for DNS lookups "dns vhost" and one or more DNS server addresses +# to use. If the "vhost" is ambiguous for some reason, you may list +# IPV4 and/or IPV6 between the equals sign and the address string. +# The default DNS vhost is to let the operating system assign the +# address, and the default DNS servers are read from /etc/resolv.conf. +# In most cases, you do not need to specify either the dns vhost or +# the dns server. General { name = "gmsis.irc-dev.net"; description = "IRC-Dev.Net devel server."; @@ -93,10 +106,8 @@ # # All connections to the server are associated with a certain "connection # class", be they incoming or outgoing (initiated by the server), be they -# clients, servers or Martians. (Note that ircd doesn't have direct support -# Recommended client classes: -# for Martians (yet?); they will have to register as normal users. ;-) -# Take the following class blocks only as a guide. +# clients or servers. +# # Class { # name = "<class>"; # pingfreq = time; @@ -106,8 +117,12 @@ # usermode = "+i"; # }; # -# The "maxlinks" field should be set at either 0 or 1. -# +# For connection classes used on server links, "maxlinks" should be set +# to either 0 (for hubs) or 1 (for leaf servers). Client connection +# classes may use "maxlinks" between 0 and approximately 4,000,000,000. +# maxlinks = 0 means there is no limit on the number of connections +# using the class. +# # The "connectfreq" field applies only to servers, and specifies the # frequency that the server tries to autoconnect. setting this to 0 will # cause the server to attempt to connect repeatedly with no delay until the @@ -150,9 +165,7 @@ # limits the number of matching clients allowed from a particular IP # address. # -# Recommended client classes: -# Client classes. 10 = locals; 2 = for all .net and .com that are not -# in Europe; 1 = for everybody. +# Take the following class blocks only as a guide. Class { name = "Local"; pingfreq = 1 minutes 30 seconds; @@ -166,11 +179,6 @@ sendq = 160000; maxlinks = 400; }; -Client -{ - class = "Other"; - username = "*"; -}; Class { name = "Telefonica"; pingfreq = 1 minutes 30 seconds; @@ -209,6 +217,7 @@ # local_gline (can set a G-line for this server only) # local_badchan (can set a Gchan for this server only) # see_chan (can see users in +s channels in /WHO) + # list_chan (can see +s channels with /LIST S) # wide_gline (can use ! to force a wide G-line) # see_opers (can see opers without DISPLAY privilege) # local_opmode (can use OPMODE/CLEARMODE on local channels) @@ -223,8 +232,9 @@ # # For global opers (with propagate = yes or local = no), the default # is to grant all of the above privileges EXCEPT walk_lchan, - # unlimit_query, set, badchan, local_badchan and apass_opmode. For. - # local opers, the default is to grant ONLY the following privileges: + # unlimit_query, set, badchan, local_badchan and apass_opmode. + # For local opers, the default is to grant ONLY the following + # privileges: # chan_limit, mode_lchan, show_invis, show_all_invis, local_kill, # rehash, local_gline, local_jupe, local_opmode, whox, display, # force_local_opmode @@ -241,8 +251,8 @@ # other domains in the same toplevel, thus setting up some sort of "reverse # Kill block". # Client { -# host = "host"; -# ip = "ip"; +# host = "user@host"; +# ip = "user@ip"; # password = "password"; # class = "classname"; # }; @@ -250,22 +260,22 @@ # Technical description (for examples, see below): # For every connecting client, the IP address is known. A reverse lookup # on this IP-number is done to get the (/all) hostname(s). -# Each hostname that belongs to this IP-number is matched to "host" field, +# Each hostname that belongs to this IP-number is matched to "hostmask" field, # and the "Client" block is used when any matches; the client will then show # with this particular hostname. If none of the hostnames match, then -# the IP-number is matched against the "ip" field, if this matches then the +# the IP-number is matched against the "ipmask" field, if this matches then the # "Client" block is used nevertheless and the client will show with the # first (main) hostname if any; if the IP-number did not resolve then the # client will show with the dot notation of the IP-number. # There is a special case for the UNIX domain sockets and localhost connections -# though; in this case the "ip" field is compared with the name of the server +# though; in this case the "ip mask" field is compared with the name of the server # (thus not with any IP-number representation). The name of the server is the # one returned in the numeric 002 reply, for example: # 002 Your host is 2.irc-dev.net[jolan.ppro], running version ... # Then the "jolan.ppro" is the name used for matching. # Therefore, unix domain sockets, and connections to localhost would # match this block: -# host = "jolan.ppro"; +# host = "*@jolan.ppro"; # # This is the "fallback" entry. All .uk, .nl, and all unresolved are # in these two lines. @@ -275,14 +285,14 @@ Client { class = "Other"; - ip = "*"; + ip = "*@*"; }; Client { class = "Other"; - host = "*"; + host = "*@*"; }; # If you don't want unresolved dudes to be able to connect to your # server, do not specify any "ip = " settings. @@ -290,7 +300,7 @@ # Here, take care of all Spain's Telefonica users. Client { - host = "*.pooles.rima-tde.net"; + host = "*.rima-tde.net"; class = "Telefonica"; }; @@ -311,13 +321,13 @@ # way around - K-lining every single ISP in the US. # I wish people in Holland just got a .nl domain, and not try to be # cool and use .com... -Client { host = "*.wirehub.net"; class = "Other";}; -Client { host = "*.planete.net"; class = "Other";}; -Client { host = "*.ivg.com"; class = "Other";}; -Client { host = "*.ib.com"; class = "Other";}; -Client { host = "*.ibm.net"; class = "Other";}; -Client { host = "*.hydro.com"; class = "Other";}; -Client { host = "*.nl.net"; class = "Local";}; +Client { host = "*@*.wirehub.net"; class = "Other";}; +Client { host = "*@*.planete.net"; class = "Other";}; +Client { host = "*@*.ivg.com"; class = "Other";}; +Client { host = "*@*.ib.com"; class = "Other";}; +Client { host = "*@*.ibm.net"; class = "Other";}; +Client { host = "*@*.hydro.com"; class = "Other";}; +Client { host = "*@*.nl.net"; class = "Local";}; # You can request a more complete listing, including the "list of standard # Kill blocks" from the Routing Committee; it will also be sent to you if @@ -327,33 +337,33 @@ # the server is (hopefully). Client { - host = "*.pooles.rima-tde.net"; - ip = "80.59.0.0/16"; + host = "*.rima-tde.net"; + ip = "*@80.59.0.0/16"; class = "Local"; }; -# You can put an expression in the maxlinks, which will make ircd +# You can put an expression in the "maxlinks" value, which will make ircd # only accept a client when the total number of connections to the network # from the same IP number doesn't exceed this number. # The following example would accept at most one connection per IP number # from "*.ono.com" and at most two connections from dial up accounts # that have "dial??.*" as host mask: # Client { -# host = "*.ono.com"; -# maxlinks = "1"; +# host = "*@*.ono.com"; +# maxlinks = 1; # class = "Other"; # }; # Client { -# host = "dial??.*"; -# maxlinks = "2"; +# host = "*@dial??.*"; +# maxlinks = 2; # class = "Other"; # }; # # If you are not worried about who connects, this line will allow everyone # to connect. Client { - host = "*"; - ip = "*"; + host = "*@*"; + ip = "*@*"; class = "Other"; }; @@ -368,6 +378,10 @@ # file = "path/to/motd/file"; # }; # +# More than one host = "mask"; entry may be present in one block; this +# has the same effect as one "Motd" block for each host entry, but makes +# it easier to update the messages's filename. +# # DPATH/net_com.motd contains a special MOTD where users are encouraged # to register their domains and get their own "Client" blocks if they're in # Europe, or move to US.irc-dev.net if they're in the USA. @@ -414,7 +428,7 @@ # If you're on IRC-Dev, you MUST have these lines. I cannnot stress # this enough. If all of the servers don't have the same lines, the # servers will try to undo the mode hacks that Uworld does. Make SURE that -# all of the servers have the EXACT same Uworld blocks. +# all of the servers have the EXACT same "UWorld" blocks. # # If your server starts on a bit larger network, you'll probably get # assigned one or two uplinks to which your server can connect. @@ -423,7 +437,7 @@ # See the Connect block documentation for details on how to do that. UWorld { - name = "luz.irc-dev.net"; + name = "gmsis.irc-dev.net"; name = "services.irc-dev.net"; }; @@ -515,6 +529,7 @@ # Connect { # name = "servername"; # host = "hostnameORip"; +# vhost = "localIP"; # password = "passwd"; # port = portno; # class = "classname"; @@ -525,16 +540,20 @@ # # 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 +# 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. # +# If the "vhost" field is present, the server will use that IP as the +# local end of connections that it initiates to this server. This +# overrides the vhost value from the General block. +# # The "maxhops" field causes an SQUIT if a hub tries to introduce -# servers farther away than that; the element "leaf," is an alias for -# "maxhops = 0,". The "hub" field limits the names of servers that may -# be introduced by a hub; the element "hub;" is an alias for -# "hub = "*";". +# servers farther away than that; the element 'leaf;' is an alias for +# 'maxhops = 0;'. The "hub" field limits the names of servers that may +# be introduced by a hub; the element 'hub;' is an alias for +# 'hub = "*";'. # # Our primary uplink. Connect { @@ -546,36 +565,20 @@ hub; }; - # [Crule] # # For an advanced, real-time rule-based routing decision making system # you can use "Crule" blocks. For more information, see doc/en/crules.txt. -# Crule -# { -# server = "servermask"; -# rule = "connectrule"; -# # Setting all to yes makes the rule always apply. Otherwise it only -# # applies to autoconnects. -# all = yes; -# }; -Crule -{ - server = "*.US.irc-dev.net"; - rule = "connected(*.US.irc-dev.net)"; -}; -Crule -{ - server = "*.EU.irc-dev.net"; - rule = "connected(Vigo.ES.EU.*)"; -}; +# Including the "all" modifier makes the rule always apply. Otherwise +# it only applies to outbound autoconnects. +# +# CRule "servermask" all connectrule; +# CRule "servermask" connectrule; +CRule "*.US.irc-dev.net" connected("*.US.irc-dev.net"); +CRule "*.EU.irc-dev.net" connected("Vigo.ES.EU.*"); -# The following block is recommended for leaf servers: -Crule -{ - server = "*"; - rule = "directcon(*)"; -}; +# The following CRule is recommended for leaf servers: +CRule "*" directcon("*"); # [Operator] # @@ -593,6 +596,11 @@ # is not not passed along to other servers. On IRC-Dev, this prevents # them from using Uworld as well. # +# More than one host = "mask"; entry may be present in one block; this +# has the same effect as one "Operator" block for each host entry, but +# makes it easier to update operator nicks, passwords, classes, and +# privileges. +# # Operator { # host = "host/IP mask"; # name = "opername"; @@ -607,7 +615,8 @@ # By default, the password is hashed using the system's native crypt() # function. Other password mechanisms are available; the umkpasswd # utility from the ircd directory can hash passwords using those -# mechanisms. +# mechanisms. If you use a password format that is NOT generated by +# umkpasswd, ircu will not recognize the oper's password. # # All privileges are shown with their default values; if you wish to # override defaults, you should set only those privileges for the @@ -615,13 +624,13 @@ # find. Operator { local = no; - host = "*@*.pooles.rima-tde.net"; + host = "*@*.rima-tde.net"; password = "$CRYPT$KI88nphRm0UPw"; name = "zoltan"; class = "Local"; }; -Operator { - host = "*@*.ttd.es"; +Operator { + host = "*@*.rima-tde.net"; password = "$PLAIN$notencryptedpass"; name = "zolty"; class = "Opers"; @@ -648,17 +657,24 @@ # IANA says we should use port 194, but that requires us to run as root, # so we don't do that. # +# # Port { -# port = number; +# port = [ipv4] [ipv6] number; # mask = "ipmask"; # # Use this to control the interface you bind to. -# vhost = "virtualhostip"; +# vhost = [ipv4] [ipv6] "virtualhostip"; +# # You can specify both virtual host and port number in one entry. +# vhost = [ipv4] [ipv6] "virtualhostip" number; # # Setting to yes makes this server only. # server = yes; # # Setting to yes makes the port "hidden" from stats. # hidden = yes; # }; # +# The port and vhost lines allow you to specify one or both of "ipv4" +# and "ipv6" as address families to use for the port. The default is +# to listen on both IPv4 and IPv6. +# # The mask setting allows you to specify a range of IP addresses that # you will allow connections from. This should only contain IP addresses # and '*' if used. This field only uses IP addresses. This does not use @@ -678,11 +694,11 @@ port = 4400; }; -# This is a Server port that is Hidden +# This is an IPv4-only Server port that is Hidden Port { server = yes; hidden = yes; - port = 4401; + port = ipv4 4401; }; # The following are normal client ports @@ -701,6 +717,14 @@ port = 7000; }; +# More than one vhost may be present in a single Port block; in this case, +# we recommend listing the port number on the vhost line for clarity. +Port { + vhost = "172.16.0.1" 6667; + vhost = "172.16.3.1" 6668; + hidden = no; +}; + # Quarantine blocks disallow operators from using OPMODE and CLEARMODE # on certain channels. Opers with the force_opmode (for local # channels, force_local_opmode) privilege may override the quarantine @@ -728,13 +752,34 @@ }; # You can ask a separate server whether to allow users to connect. -IAuth { - pass = "ircd-iauth"; - host = "127.0.0.1"; - port = 7700; - connectfreq = 30; - timeout = 60; -}; +# Uncomment this ONLY if you have an iauth helper program. +# IAuth { +# program = "../path/to/iauth" "-n" "options go here"; +# }; + +# [Include] +# You can include certain kinds of configuration snippets from other +# files. The basic directive, which allows any kind of block or +# recursive include, is: +# +# Include "filename"; +# +# You can limit the file to certain types of configuration blocks by +# using the block name(s), optionally separated by commas. For +# example: +# +# Include uworld, jupe, quarantine, kill from "linesync.conf"; +# Include operator from "opers.conf"; +# Include include from "include.conf"; +# +# The restrictions are transitive across includes. This means that +# the last example is not very useful: the only thing include.conf may +# do is include other include files, and none of them may have any +# other kind of block! +# +# Well-formed but disallowed configuration blocks generate a warning +# but do not break the file. The other syntax rules must still be +# followed, because a syntax error will break the file. # [Features] # IRC servers have a large number of options and features. Most of these @@ -773,6 +818,7 @@ # "HUB" = "FALSE"; # "WALLOPS_OPER_ONLY" = "FALSE"; # "NODNS" = "FALSE"; +# "NOIDENT" = "FALSE"; # "RANDOM_SEED" = "<you should set one explicitly>"; # "DEFAULT_LIST_PARAM" = "TRUE"; # "NICKNAMEHISTORYLENGTH" = "800"; @@ -781,12 +827,13 @@ # "HIDDEN_IP" = "127.0.0.1"; # "CONNEXIT_NOTICES" = "FALSE"; # "OPLEVELS" = "TRUE"; +# "ZANNELS" = "TRUE"; # "LOCAL_CHANNELS" = "TRUE"; # "TOPIC_BURST" = "FALSE"; +# "USER_GLINE" = "TRUE"; # "KILLCHASETIMELIMIT" = "30"; # "MAXCHANNELSPERUSER" = "10"; -# "NICKLEN" = "12"; -# "CHANNELLEN" = "200"; +# "NICKLEN" = "15"; # "AVBANLEN" = "40"; # "MAXBANS" = "45"; # "MAXSILES" = "15"; @@ -804,9 +851,11 @@ # "IPCHECK_CLONE_LIMIT = "24"; # "IPCHECK_CLONE_PERIOD = "40"; # "IPCHECK_CLONE_DELAY = "600"; +# "CHANNELLEN" = "200"; # "MPATH" = "ircd.motd"; # "RPATH" = "remote.motd"; # "PPATH" = "ircd.pid"; +# "BDDPATH" = "database"; # "TOS_SERVER" = "0x08"; # "TOS_CLIENT" = "0x08"; # "POLLS_PER_LOOP" = "200"; @@ -822,56 +871,60 @@ # "HIS_MAP" = "TRUE"; # "HIS_LINKS" = "TRUE"; # "HIS_TRACE" = "TRUE"; -# "HIS_STATS_a" = "TRUE"; -# "HIS_STATS_b" = "TRUE"; -# "HIS_STATS_c" = "TRUE"; -# "HIS_STATS_d" = "TRUE"; -# "HIS_STATS_e" = "TRUE"; -# "HIS_STATS_f" = "TRUE"; -# "HIS_STATS_g" = "TRUE"; -# "HIS_STATS_i" = "TRUE"; -# "HIS_STATS_j" = "TRUE"; -# "HIS_STATS_J" = "TRUE"; -# "HIS_STATS_k" = "TRUE"; -# "HIS_STATS_l" = "TRUE"; -# "HIS_STATS_L" = "TRUE"; -# "HIS_STATS_m" = "TRUE"; -# "HIS_STATS_M" = "TRUE"; -# "HIS_STATS_o" = "TRUE"; -# "HIS_STATS_p" = "TRUE"; -# "HIS_STATS_q" = "TRUE"; -# "HIS_STATS_r" = "TRUE"; -# "HIS_STATS_R" = "TRUE"; -# "HIS_STATS_t" = "TRUE"; -# "HIS_STATS_T" = "TRUE"; -# "HIS_STATS_u" = "FALSE"; -# "HIS_STATS_U" = "TRUE"; -# "HIS_STATS_v" = "TRUE"; -# "HIS_STATS_w" = "TRUE"; -# "HIS_STATS_x" = "TRUE"; -# "HIS_STATS_y" = "TRUE"; -# "HIS_STATS_z" = "TRUE"; +# "HIS_STATS_NAMESERVERS" = "TRUE"; +# "HIS_STATS_BDD" = "TRUE"; +# "HIS_STATS_CONNECT" = "TRUE"; +# "HIS_STATS_CRULES" = "TRUE"; +# "HIS_STATS_ENGINE" = "TRUE"; +# "HIS_STATS_FEATURES" = "TRUE"; +# "HIS_STATS_GLINES" = "TRUE"; +# "HIS_STATS_ACCESS" = "TRUE"; +# "HIS_STATS_HISTOGRAM" = "TRUE"; +# "HIS_STATS_JUPES" = "TRUE"; +# "HIS_STATS_KLINES" = "TRUE"; +# "HIS_STATS_LINKS" = "TRUE"; +# "HIS_STATS_MODULES" = "TRUE"; +# "HIS_STATS_COMMANDS" = "TRUE"; +# "HIS_STATS_OPERATORS" = "TRUE"; +# "HIS_STATS_PORTS" = "TRUE"; +# "HIS_STATS_QUARANTINES" = "TRUE"; +# "HIS_STATS_MAPPINGS" = "TRUE"; +# "HIS_STATS_USAGE" = "TRUE"; +# "HIS_STATS_LOCALS" = "TRUE"; +# "HIS_STATS_MOTDS" = "TRUE"; +# "HIS_STATS_UPTIME" = "FALSE"; +# "HIS_STATS_UWORLD" = "TRUE"; +# "HIS_STATS_VSERVERS" = "TRUE"; +# "HIS_STATS_USERLOAD" = "TRUE"; +# "HIS_STATS_MEMUSAGE" = "TRUE"; +# "HIS_STATS_CLASSES" = "TRUE"; +# "HIS_STATS_MEMORY" = "TRUE"; +# "HIS_STATS_IAUTH" = "TRUE"; # "HIS_WHOIS_SERVERNAME" = "TRUE"; # "HIS_WHOIS_IDLETIME" = "TRUE"; # "HIS_WHOIS_LOCALCHAN" = "TRUE"; # "HIS_WHO_SERVERNAME" = "TRUE"; # "HIS_WHO_HOPCOUNT" = "TRUE"; +# "HIS_MODEWHO" = "TRUE"; # "HIS_BANWHO" = "TRUE"; # "HIS_KILLWHO" = "TRUE"; # "HIS_REWRITE" = "TRUE"; -# "HIS_REMOTE" = "1"; -# "HIS_NETSPLIT" = TRUE"; +# "HIS_REMOTE" = "TRUE"; +# "HIS_NETSPLIT" = "TRUE"; # "HIS_SERVERNAME" = "*.irc-dev.net"; # "HIS_SERVERINFO" = "IRC-Dev.Net, Desarrollo de IRC / IRC Development"; # "HIS_URLSERVERS" = "http://www.irc-dev.net/servers.php"; # "NETWORK" = "IRC-Dev"; # "URL_CLIENTS" = "ftp://ftp.irc.org/pub/irc/clients"; - +# "SPAM_OPER_COUNTDOWN" = "5"; +# "SPAM_EXPIRE_TIME" = "120"; +# "SPAM_JOINED_TIME" = "60"; +# "SPAM_FJP_COUNT" = "5"; }; # Well, you have now reached the end of this sample configuration # file. If you have any questions, visit http://www.irc-dev.net, -# or join the channel #irc-dev at Undernet, and feel :-) +# or join the channel #irc-dev at IRC-Hispano, and feel :-) # # Upgrades of the ircd can be found via CVS or download on # http://www.irc-dev.net ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2007-09-21 08:03:21
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-09-21 08:03:20 UTC Modified files: Makefile.in config.h.in ircd/Makefile.in ircd/m_destruct.c ircd/m_nick.c ircd/test/Makefile.in Log message: Regeneracion ---------------------- diff included ---------------------- Index: ircd-ircdev/Makefile.in diff -u ircd-ircdev/Makefile.in:1.12 ircd-ircdev/Makefile.in:1.13 --- ircd-ircdev/Makefile.in:1.12 Thu Sep 20 23:59:26 2007 +++ ircd-ircdev/Makefile.in Fri Sep 21 01:03:09 2007 @@ -1,6 +1,8 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -10,154 +12,245 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +@SET_MAKE@ -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = . - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -host_alias = @host_alias@ +build_triplet = @build@ host_triplet = @host@ -AMDEPBACKSLASH = @AMDEPBACKSLASH@ +subdir = . +DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/configure COPYING ChangeLog INSTALL TODO \ + acconfig.h config.guess config.sub depcomp install-sh missing \ + ylwrap +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +man8dir = $(mandir)/man8 +am__installdirs = "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(sysconfdir)" +NROFF = nroff +MANS = $(man_MANS) +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +sysconfDATA_INSTALL = $(INSTALL_DATA) +DATA = $(sysconf_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ -CXX = @CXX@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ -am__isrc = @am__isrc@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ mkdir_p = @mkdir_p@ - +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ SUBDIRS = ircd - -EXTRA_DIST = doc patches tools include Doxyfile INSTALL INSTALL.es ircd-patch ChangeLog ChangeLog.es COPYING COPYING.es RELEASE.NOTES RELEASE.NOTES.es TODO TODO.es +EXTRA_DIST = doc patches tools include Doxyfile INSTALL INSTALL.es ircd-patch \ + ChangeLog ChangeLog.es COPYING COPYING.es RELEASE.NOTES RELEASE.NOTES.es \ + TODO TODO.es # Install man page and example.conf man_MANS = doc/en/ircd.8 sysconf_DATA = doc/ircd.sample-en.conf doc/ircd.sample-es.conf -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = [config.h] -CONFIG_CLEAN_FILES = -man8dir = $(mandir)/man8 -MANS = $(man_MANS) - -NROFF = nroff -DATA = $(sysconf_DATA) - -DIST_COMMON = ./stamp-h.in COPYING ChangeLog INSTALL Makefile.am \ -Makefile.in TODO acconfig.h acinclude.m4 aclocal.m4 config.guess \ -config.sub configure configure.ac install-sh missing - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive -TAR = tar -GZIP_ENV = --best -all: all-redirect .SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) - cd $(top_builddir) \ - && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status - -$(ACLOCAL_M4): configure.ac acinclude.m4 - cd $(srcdir) && $(ACLOCAL) +am--refresh: + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ + cd $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; -config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck -$(srcdir)/configure: $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + +$(top_srcdir)/configure: $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -[config.h]: stamp-h - @if test ! -f $@; then \ - rm -f stamp-h; \ - $(MAKE) stamp-h; \ - else :; fi -stamp-h: $(srcdir)/[config.h].in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES= CONFIG_HEADERS=[config.h] \ - $(SHELL) ./config.status - @echo timestamp > stamp-h 2> /dev/null -$(srcdir)/[config.h].in: $(srcdir)/stamp-h.in +config.h: stamp-h1 @if test ! -f $@; then \ - rm -f $(srcdir)/stamp-h.in; \ - $(MAKE) $(srcdir)/stamp-h.in; \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi -$(srcdir)/stamp-h.in: $(top_srcdir)/configure.ac $(ACLOCAL_M4) acconfig.h - cd $(top_srcdir) && $(AUTOHEADER) - @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null - -mostlyclean-hdr: -clean-hdr: +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) $(top_srcdir)/acconfig.h + cd $(top_srcdir) && $(AUTOHEADER) + rm -f stamp-h1 + touch $@ distclean-hdr: - -rm -f [config.h] - -maintainer-clean-hdr: - -install-man8: - $(mkinstalldirs) $(DESTDIR)$(man8dir) - @list='$(man8_MANS)'; \ - l2='$(man_MANS)'; for i in $$l2; do \ + -rm -f config.h stamp-h1 +install-man8: $(man8_MANS) $(man_MANS) + @$(NORMAL_INSTALL) + test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)" + @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ case "$$i" in \ *.8*) list="$$list $$i" ;; \ esac; \ @@ -166,50 +259,53 @@ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 8*) ;; \ + *) ext='8' ;; \ + esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \ - $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \ done - uninstall-man8: - @list='$(man8_MANS)'; \ - l2='$(man_MANS)'; for i in $$l2; do \ + @$(NORMAL_UNINSTALL) + @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ case "$$i" in \ *.8*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 8*) ;; \ + *) ext='8' ;; \ + esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \ - rm -f $(DESTDIR)$(man8dir)/$$inst; \ + echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \ + rm -f "$(DESTDIR)$(man8dir)/$$inst"; \ done -install-man: $(MANS) - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) install-man8 -uninstall-man: - @$(NORMAL_UNINSTALL) - $(MAKE) $(AM_MAKEFLAGS) uninstall-man8 - install-sysconfDATA: $(sysconf_DATA) @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(sysconfdir) + test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)" @list='$(sysconf_DATA)'; for p in $$list; do \ - if test -f $(srcdir)/$$p; then \ - echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \ - $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p; \ - else if test -f $$p; then \ - echo " $(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p"; \ - $(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \ - fi; fi; \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \ + $(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \ done uninstall-sysconfDATA: @$(NORMAL_UNINSTALL) - list='$(sysconf_DATA)'; for p in $$list; do \ - rm -f $(DESTDIR)$(sysconfdir)/$$p; \ + @list='$(sysconf_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \ + rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd @@ -218,13 +314,14 @@ # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. - -@SET_MAKE@ - -all-recursive install-data-recursive install-exec-recursive \ -installdirs-recursive install-recursive uninstall-recursive \ -check-recursive installcheck-recursive info-recursive dvi-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -236,21 +333,31 @@ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ dot_seen=no; \ - rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ - rev="$$subdir $$rev"; \ - test "$$subdir" != "." || dot_seen=yes; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ done; \ - test "$$dot_seen" = "no" && rev=". $$rev"; \ + rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -260,192 +367,337 @@ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) + mkid -fID $$unique +tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) [config.h].in $(TAGS_DEPENDENCIES) $(LISP) +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)[config.h].in$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags [config.h].in $$unique $(LISP)) - -mostlyclean-tags: - -clean-tags: + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - -rm -rf $(distdir) - GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz - mkdir $(distdir)/=build - mkdir $(distdir)/=inst - dc_install_base=`cd $(distdir)/=inst && pwd`; \ - cd $(distdir)/=build \ - && ../configure --srcdir=.. --prefix=$$dc_install_base \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) dist - -rm -rf $(distdir) - @banner="$(distdir).tar.gz is ready for distribution"; \ - dashes=`echo "$$banner" | sed s/./=/g`; \ - echo "$$dashes"; \ - echo "$$banner"; \ - echo "$$dashes" -dist: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - -rm -rf $(distdir) -dist-all: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - -rm -rf $(distdir) distdir: $(DISTFILES) - -rm -rf $(distdir) - mkdir $(distdir) - -chmod 777 $(distdir) - here=`cd $(top_builddir) && pwd`; \ - top_distdir=`cd $(distdir) && pwd`; \ - distdir=`cd $(distdir) && pwd`; \ - cd $(top_srcdir) \ - && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile - @for file in $(DISTFILES); do \ - d=$(srcdir); \ + $(am__remove_distdir) + test -d $(distdir) || mkdir $(distdir) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ fi; \ done - for subdir in $(SUBDIRS); do \ + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ - chmod 777 $(distdir)/$$subdir; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ || exit 1; \ fi; \ done - $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook -info-am: -info: info-recursive -dvi-am: -dvi: dvi-recursive + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 check-am: all-am check: check-recursive -installcheck-am: -installcheck: installcheck-recursive -all-recursive-am: [config.h] - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -install-exec-am: install-sysconfDATA +all-am: Makefile $(MANS) $(DATA) config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(sysconfdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive install-exec: install-exec-recursive - -install-data-am: install-man install-data: install-data-recursive +uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-recursive -uninstall-am: uninstall-man uninstall-sysconfDATA -uninstall: uninstall-recursive -all-am: Makefile $(MANS) $(DATA) [config.h] -all-redirect: all-recursive-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: installdirs-recursive -installdirs-am: - $(mkinstalldirs) $(DESTDIR)$(mandir)/man8 $(DESTDIR)$(sysconfdir) - +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: -mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive -mostlyclean: mostlyclean-recursive +clean-am: clean-generic mostlyclean-am -clean-am: clean-hdr clean-tags clean-generic mostlyclean-am +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr distclean-tags -clean: clean-recursive +dvi: dvi-recursive -distclean-am: distclean-hdr distclean-tags distclean-generic clean-am +dvi-am: -distclean: distclean-recursive - -rm -f config.status +html: html-recursive -maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \ - maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." +info: info-recursive + +info-am: + +install-data-am: install-man + +install-dvi: install-dvi-recursive + +install-exec-am: install-sysconfDATA + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: install-man8 + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: maintainer-clean: maintainer-clean-recursive - -rm -f config.status + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic -.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ -install-man8 uninstall-man8 install-man uninstall-man \ -uninstall-sysconfDATA install-sysconfDATA install-data-recursive \ -uninstall-data-recursive install-exec-recursive \ -uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ -all-recursive check-recursive installcheck-recursive info-recursive \ -dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ -maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \ -install-exec-am install-exec install-data-am install-data install-am \ -install uninstall-am uninstall all-redirect all-am all installdirs-am \ -installdirs mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-man uninstall-sysconfDATA + +uninstall-man: uninstall-man8 + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-am clean clean-generic \ + ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ + dist-hook dist-shar dist-tarZ dist-zip distcheck distclean \ + distclean-generic distclean-hdr distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-man8 install-pdf install-pdf-am install-ps \ + install-ps-am install-strip install-sysconfDATA installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ + pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ + uninstall-man uninstall-man8 uninstall-sysconfDATA # Make sure to filter out those CVS directories dist-hook: find $(distdir) -name CVS -print -prune | xargs rm -rf - # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Index: ircd-ircdev/config.h.in diff -u ircd-ircdev/config.h.in:1.12 ircd-ircdev/config.h.in:1.13 --- ircd-ircdev/config.h.in:1.12 Thu Sep 20 23:59:26 2007 +++ ircd-ircdev/config.h.in Fri Sep 21 01:03:09 2007 @@ -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.12 2007/09/21 06:59:26 zolty Exp $ + * $Id: config.h.in,v 1.13 2007/09/21 08:03:09 zolty Exp $ * */ #ifndef INCLUDED_config_h Index: ircd-ircdev/ircd/Makefile.in diff -u ircd-ircdev/ircd/Makefile.in:1.34 ircd-ircdev/ircd/Makefile.in:1.35 --- ircd-ircdev/ircd/Makefile.in:1.34 Thu Sep 20 23:59:26 2007 +++ ircd-ircdev/ircd/Makefile.in Fri Sep 21 01:03:09 2007 @@ -1,6 +1,8 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -10,307 +12,595 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +@SET_MAKE@ -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -host_alias = @host_alias@ +build_triplet = @build@ host_triplet = @host@ -AMDEPBACKSLASH = @AMDEPBACKSLASH@ +noinst_PROGRAMS = table_gen$(EXEEXT) +bin_PROGRAMS = convert-conf$(EXEEXT) umkpasswd$(EXEEXT) ircd$(EXEEXT) + +#if ENVIRONMENT_UNDERNET +#ircd_SOURCES += \ +# m_account.c +#endif +@ENVIRONMENT_DDB_TRUE@am__append_1 = \ +@ENVIRONMENT_DDB_TRUE@ ddb.c \ +@ENVIRONMENT_DDB_TRUE@ ddb_db_native.c \ +@ENVIRONMENT_DDB_TRUE@ ddb_events.c \ +@ENVIRONMENT_DDB_TRUE@ ircd_tea.c \ +@ENVIRONMENT_DDB_TRUE@ m_bmode.c \ +@ENVIRONMENT_DDB_TRUE@ m_db.c \ +@ENVIRONMENT_DDB_TRUE@ m_dbq.c \ +@ENVIRONMENT_DDB_TRUE@ m_ghost.c \ +@ENVIRONMENT_DDB_TRUE@ m_svsnick.c + + +#if ENVIRONMENT_SERVICES +#ircd_SOURCES += \ +# m_svsnick.c +#endif +@ENGINE_POLL_TRUE@am__append_2 = engine_poll.c +@ENGINE_POLL_FALSE@am__append_3 = engine_select.c +@ENGINE_DEVPOLL_TRUE@am__append_4 = engine_devpoll.c +@ENGINE_EPOLL_TRUE@am__append_5 = engine_epoll.c +@ENGINE_KQUEUE_TRUE@am__append_6 = engine_kqueue.c +subdir = ircd +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ircd_lexer.c \ + ircd_parser.c ircd_parser.h +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" +binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) +convert_conf_SOURCES = convert-conf.c +convert_conf_OBJECTS = convert-conf.$(OBJEXT) +convert_conf_LDADD = $(LDADD) +am__ircd_SOURCES_DIST = IPcheck.c channel.c class.c client.c crule.c \ + dbuf.c destruct_event.c fileio.c gline.c hash.c ircd.c \ + ircd_alloc.c ircd_crypt.c ircd_crypt_plain.c ircd_crypt_smd5.c \ + ircd_crypt_native.c ircd_events.c ircd_features.c ircd_lexer.l \ + ircd_log.c ircd_md5.c ircd_parser.y ircd_relay.c ircd_reply.c \ + ircd_res.c ircd_reslib.c ircd_signal.c ircd_snprintf.c \ + ircd_string.c jupe.c list.c listener.c m_admin.c m_asll.c \ + m_away.c m_burst.c m_cap.c m_clearmode.c m_close.c m_connect.c \ + m_cprivmsg.c m_create.c m_defaults.c m_destruct.c m_desynch.c \ + m_die.c m_endburst.c m_error.c m_get.c m_gline.c m_help.c \ + m_info.c m_invite.c m_ison.c m_join.c m_jupe.c m_kick.c \ + m_kill.c m_links.c m_list.c m_lusers.c m_map.c m_mode.c \ + m_motd.c m_names.c m_nick.c m_notice.c m_oper.c m_opmode.c \ + m_part.c m_pass.c m_ping.c m_pong.c m_privmsg.c m_privs.c \ + m_proto.c m_pseudo.c m_quit.c m_rehash.c m_reset.c m_restart.c \ + m_rping.c m_rpong.c m_server.c m_set.c m_settime.c m_silence.c \ + m_squit.c m_stats.c m_time.c m_topic.c m_trace.c m_uping.c \ + m_user.c m_users.c m_userhost.c m_userip.c m_version.c \ + m_wallchops.c m_wallops.c m_wallusers.c m_wallvoices.c \ + m_watch.c m_who.c m_whois.c m_whowas.c match.c memdebug.c \ + motd.c msgq.c numnicks.c opercmds.c os_generic.c packet.c \ + parse.c querycmds.c random.c s_auth.c s_bsd.c s_conf.c \ + s_debug.c s_err.c s_misc.c s_numeric.c s_serv.c s_stats.c \ + s_user.c send.c uping.c userload.c watch.c whowas.c ddb.c \ + ddb_db_native.c ddb_events.c ircd_tea.c m_bmode.c m_db.c \ + m_dbq.c m_ghost.c m_svsnick.c engine_poll.c engine_select.c \ + engine_devpoll.c engine_epoll.c engine_kqueue.c +@ENVIRONMENT_DDB_TRUE@am__objects_1 = ddb.$(OBJEXT) \ +@ENVIRONMENT_DDB_TRUE@ ddb_db_native.$(OBJEXT) \ +@ENVIRONMENT_DDB_TRUE@ ddb_events.$(OBJEXT) ircd_tea.$(OBJEXT) \ +@ENVIRONMENT_DDB_TRUE@ m_bmode.$(OBJEXT) m_db.$(OBJEXT) \ +@ENVIRONMENT_DDB_TRUE@ m_dbq.$(OBJEXT) m_ghost.$(OBJEXT) \ +@ENVIRONMENT_DDB_TRUE@ m_svsnick.$(OBJEXT) +@ENGINE_POLL_TRUE@am__objects_2 = engine_poll.$(OBJEXT) +@ENGINE_POLL_FALSE@am__objects_3 = engine_select.$(OBJEXT) +@ENGINE_DEVPOLL_TRUE@am__objects_4 = engine_devpoll.$(OBJEXT) +@ENGINE_EPOLL_TRUE@am__objects_5 = engine_epoll.$(OBJEXT) +@ENGINE_KQUEUE_TRUE@am__objects_6 = engine_kqueue.$(OBJEXT) +am_ircd_OBJECTS = IPcheck.$(OBJEXT) channel.$(OBJEXT) class.$(OBJEXT) \ + client.$(OBJEXT) crule.$(OBJEXT) dbuf.$(OBJEXT) \ + destruct_event.$(OBJEXT) fileio.$(OBJEXT) gline.$(OBJEXT) \ + hash.$(OBJEXT) ircd.$(OBJEXT) ircd_alloc.$(OBJEXT) \ + ircd_crypt.$(OBJEXT) ircd_crypt_plain.$(OBJEXT) \ + ircd_crypt_smd5.$(OBJEXT) ircd_crypt_native.$(OBJEXT) \ + ircd_events.$(OBJEXT) ircd_features.$(OBJEXT) \ + ircd_lexer.$(OBJEXT) ircd_log.$(OBJEXT) ircd_md5.$(OBJEXT) \ + ircd_parser.$(OBJEXT) ircd_relay.$(OBJEXT) \ + ircd_reply.$(OBJEXT) ircd_res.$(OBJEXT) ircd_reslib.$(OBJEXT) \ + ircd_signal.$(OBJEXT) ircd_snprintf.$(OBJEXT) \ + ircd_string.$(OBJEXT) jupe.$(OBJEXT) list.$(OBJEXT) \ + listener.$(OBJEXT) m_admin.$(OBJEXT) m_asll.$(OBJEXT) \ + m_away.$(OBJEXT) m_burst.$(OBJEXT) m_cap.$(OBJEXT) \ + m_clearmode.$(OBJEXT) m_close.$(OBJEXT) m_connect.$(OBJEXT) \ + m_cprivmsg.$(OBJEXT) m_create.$(OBJEXT) m_defaults.$(OBJEXT) \ + m_destruct.$(OBJEXT) m_desynch.$(OBJEXT) m_die.$(OBJEXT) \ + m_endburst.$(OBJEXT) m_error.$(OBJEXT) m_get.$(OBJEXT) \ + m_gline.$(OBJEXT) m_help.$(OBJEXT) m_info.$(OBJEXT) \ + m_invite.$(OBJEXT) m_ison.$(OBJEXT) m_join.$(OBJEXT) \ + m_jupe.$(OBJEXT) m_kick.$(OBJEXT) m_kill.$(OBJEXT) \ + m_links.$(OBJEXT) m_list.$(OBJEXT) m_lusers.$(OBJEXT) \ + m_map.$(OBJEXT) m_mode.$(OBJEXT) m_motd.$(OBJEXT) \ + m_names.$(OBJEXT) m_nick.$(OBJEXT) m_notice.$(OBJEXT) \ + m_oper.$(OBJEXT) m_opmode.$(OBJEXT) m_part.$(OBJEXT) \ + m_pass.$(OBJEXT) m_ping.$(OBJEXT) m_pong.$(OBJEXT) \ + m_privmsg.$(OBJEXT) m_privs.$(OBJEXT) m_proto.$(OBJEXT) \ + m_pseudo.$(OBJEXT) m_quit.$(OBJEXT) m_rehash.$(OBJEXT) \ + m_reset.$(OBJEXT) m_restart.$(OBJEXT) m_rping.$(OBJEXT) \ + m_rpong.$(OBJEXT) m_server.$(OBJEXT) m_set.$(OBJEXT) \ + m_settime.$(OBJEXT) m_silence.$(OBJEXT) m_squit.$(OBJEXT) \ + m_stats.$(OBJEXT) m_time.$(OBJEXT) m_topic.$(OBJEXT) \ + m_trace.$(OBJEXT) m_uping.$(OBJEXT) m_user.$(OBJEXT) \ + m_users.$(OBJEXT) m_userhost.$(OBJEXT) m_userip.$(OBJEXT) \ + m_version.$(OBJEXT) m_wallchops.$(OBJEXT) m_wallops.$(OBJEXT) \ + m_wallusers.$(OBJEXT) m_wallvoices.$(OBJEXT) m_watch.$(OBJEXT) \ + m_who.$(OBJEXT) m_whois.$(OBJEXT) m_whowas.$(OBJEXT) \ + match.$(OBJEXT) memdebug.$(OBJEXT) motd.$(OBJEXT) \ + msgq.$(OBJEXT) numnicks.$(OBJEXT) opercmds.$(OBJEXT) \ + os_generic.$(OBJEXT) packet.$(OBJEXT) parse.$(OBJEXT) \ + querycmds.$(OBJEXT) random.$(OBJEXT) s_auth.$(OBJEXT) \ + s_bsd.$(OBJEXT) s_conf.$(OBJEXT) s_debug.$(OBJEXT) \ + s_err.$(OBJEXT) s_misc.$(OBJEXT) s_numeric.$(OBJEXT) \ + s_serv.$(OBJEXT) s_stats.$(OBJEXT) s_user.$(OBJEXT) \ + send.$(OBJEXT) uping.$(OBJEXT) userload.$(OBJEXT) \ + watch.$(OBJEXT) whowas.$(OBJEXT) $(am__objects_1) \ + $(am__objects_2) $(am__objects_3) $(am__objects_4) \ + $(am__objects_5) $(am__objects_6) +nodist_ircd_OBJECTS = version.$(OBJEXT) +ircd_OBJECTS = $(am_ircd_OBJECTS) $(nodist_ircd_OBJECTS) +am__DEPENDENCIES_1 = +ircd_DEPENDENCIES = $(am__DEPENDENCIES_1) +table_gen_SOURCES = table_gen.c +table_gen_OBJECTS = table_gen.$(OBJEXT) +table_gen_LDADD = $(LDADD) +am_umkpasswd_OBJECTS = ircd_md5.$(OBJEXT) ircd_crypt_plain.$(OBJEXT) \ + ircd_crypt_smd5.$(OBJEXT) ircd_crypt_native.$(OBJEXT) \ + ircd_alloc.$(OBJEXT) ircd_string.$(OBJEXT) memdebug.$(OBJEXT) \ + umkpasswd.$(OBJEXT) +umkpasswd_OBJECTS = $(am_umkpasswd_OBJECTS) +umkpasswd_LDADD = $(LDADD) +DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS) +YLWRAP = $(top_srcdir)/ylwrap +YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS) +SOURCES = convert-conf.c $(ircd_SOURCES) $(nodist_ircd_SOURCES) \ + table_gen.c $(umkpasswd_SOURCES) +DIST_SOURCES = convert-conf.c $(am__ircd_SOURCES_DIST) table_gen.c \ + $(umkpasswd_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ -CXX = @CXX@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ -am__isrc = @am__isrc@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ mkdir_p = @mkdir_p@ - +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ SUBDIRS = test -noinst_PROGRAMS = table_gen -bin_PROGRAMS = convert-conf umkpasswd ircd - -AM_CPPFLAGS = -I$(top_srcdir)/include -DDPATH="\"$(sysconfdir)\"" -DSPATH="\"$(bindir)/ircd\"" -DCPATH="\"ircd.conf\"" -DLPATH="\"ircd.log\"" - +AM_CPPFLAGS = -I$(top_srcdir)/include -DDPATH="\"$(sysconfdir)\"" \ + -DSPATH="\"$(bindir)/ircd\"" -DCPATH="\"ircd.conf\"" \ + -DLPATH="\"ircd.log\"" BUILT_SOURCES = ircd_parser.h AM_YFLAGS = -d - EXTRA_DIST = version.c.SH - DISTCLEANFILES = version.c - -umkpasswd_SOURCES = ircd_md5.c ircd_crypt_plain.c ircd_crypt_smd5.c ircd_crypt_native.c ircd_alloc.c ircd_string.c memdebug.c umkpasswd.c - +umkpasswd_SOURCES = \ + ircd_md5.c \ + ircd_crypt_plain.c \ + ircd_crypt_smd5.c \ + ircd_crypt_native.c \ + ircd_alloc.c \ + ircd_string.c \ + memdebug.c \ + umkpasswd.c nodist_ircd_SOURCES = version.c -@ENVIRONMENT_DDB_TRUE@ircd_SOURCES = IPcheck.c channel.c class.c client.c crule.c dbuf.c destruct_event.c fileio.c gline.c hash.c ircd.c ircd_alloc.c ircd_crypt.c ircd_crypt_plain.c ircd_crypt_smd5.c ircd_crypt_native.c ircd_events.c ircd_features.c ircd_lexer.l ircd_log.c ircd_md5.c ircd_parser.y ircd_relay.c ircd_reply.c ircd_res.c ircd_reslib.c ircd_signal.c ircd_snprintf.c ircd_string.c jupe.c list.c listener.c m_admin.c m_asll.c m_away.c m_burst.c m_cap.c m_clearmode.c m_close.c m_connect.c m_cprivmsg.c m_create.c m_defaults.c m_destruct.c m_desynch.c m_die.c m_endburst.c m_error.c m_get.c m_gline.c m_help.c m_info.c m_invite.c m_ison.c m_join.c m_jupe.c m_kick.c m_kill.c m_links.c m_list.c m_lusers.c m_map.c m_mode.c m_motd.c m_names.c m_nick.c m_notice.c m_oper.c m_opmode.c m_part.c m_pass.c m_ping.c m_pong.c m_privmsg.c m_privs.c m_proto.c m_pseudo.c m_quit.c m_rehash.c m_reset.c m_restart.c m_rping.c m_rpong.c m_server.c m_set.c m_settime.c m_silence.c m_squit.c m_stats.c m_time.c m_topic.c m_trace.c m_uping.c m_user.c m_users.c m_userhost.c m_userip.c m_version.c m_wallchops.c m_wallops.c m_wallusers.c m_wallvoices.c m_watch.c m_who.c m_whois.c m_whowas.c match.c memdebug.c motd.c msgq.c numnicks.c opercmds.c os_generic.c packet.c parse.c querycmds.c random.c s_auth.c s_bsd.c s_conf.c s_debug.c s_err.c s_misc.c s_numeric.c s_serv.c s_stats.c s_user.c send.c uping.c userload.c watch.c whowas.c -ddb.cddb_db_native.cddb_events.circd_tea.cm_bmode.cm_db.cm_dbq.cm_ghost.cm_svsnick.circd_SOURCES = @ENGINE_POLL_TRUE@ -engine_poll.circd_SOURCES = @ENGINE_POLL_FALSE@ -engine_select.circd_SOURCES = @ENGINE_DEVPOLL_TRUE@ -engine_devpoll.circd_SOURCES = @ENGINE_EPOLL_TRUE@ -engine_epoll.circd_SOURCES = @ENGINE_KQUEUE_TRUE@ -engine_kqueue.circd_SOURCES = - +ircd_SOURCES = IPcheck.c channel.c class.c client.c crule.c dbuf.c \ + destruct_event.c fileio.c gline.c hash.c ircd.c ircd_alloc.c \ + ircd_crypt.c ircd_crypt_plain.c ircd_crypt_smd5.c \ + ircd_crypt_native.c ircd_events.c ircd_features.c ircd_lexer.l \ + ircd_log.c ircd_md5.c ircd_parser.y ircd_relay.c ircd_reply.c \ + ircd_res.c ircd_reslib.c ircd_signal.c ircd_snprintf.c \ + ircd_string.c jupe.c list.c listener.c m_admin.c m_asll.c \ + m_away.c m_burst.c m_cap.c m_clearmode.c m_close.c m_connect.c \ + m_cprivmsg.c m_create.c m_defaults.c m_destruct.c m_desynch.c \ + m_die.c m_endburst.c m_error.c m_get.c m_gline.c m_help.c \ + m_info.c m_invite.c m_ison.c m_join.c m_jupe.c m_kick.c \ + m_kill.c m_links.c m_list.c m_lusers.c m_map.c m_mode.c \ + m_motd.c m_names.c m_nick.c m_notice.c m_oper.c m_opmode.c \ + m_part.c m_pass.c m_ping.c m_pong.c m_privmsg.c m_privs.c \ + m_proto.c m_pseudo.c m_quit.c m_rehash.c m_reset.c m_restart.c \ + m_rping.c m_rpong.c m_server.c m_set.c m_settime.c m_silence.c \ + m_squit.c m_stats.c m_time.c m_topic.c m_trace.c m_uping.c \ + m_user.c m_users.c m_userhost.c m_userip.c m_version.c \ + m_wallchops.c m_wallops.c m_wallusers.c m_wallvoices.c \ + m_watch.c m_who.c m_whois.c m_whowas.c match.c memdebug.c \ + motd.c msgq.c numnicks.c opercmds.c os_generic.c packet.c \ + parse.c querycmds.c random.c s_auth.c s_bsd.c s_conf.c \ + s_debug.c s_err.c s_misc.c s_numeric.c s_serv.c s_stats.c \ + s_user.c send.c uping.c userload.c watch.c whowas.c \ + $(am__append_1) $(am__append_2) $(am__append_3) \ + $(am__append_4) $(am__append_5) $(am__append_6) ircd_LDADD = $(LEXLIB) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = ../[config.h] -CONFIG_CLEAN_FILES = -PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) - +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-recursive -DEFS = @DEFS@ -I. -I$(srcdir) -I.. -CPPFLAGS = @CPPFLAGS@ -LDFLAGS = @LDFLAGS@ -LIBS = @LIBS@ -convert_conf_SOURCES = convert-conf.c -convert_conf_OBJECTS = convert-conf.o -convert_conf_LDADD = $(LDADD) -convert_conf_DEPENDENCIES = -convert_conf_LDFLAGS = -umkpasswd_OBJECTS = ircd_md5.o ircd_crypt_plain.o ircd_crypt_smd5.o \ -ircd_crypt_native.o ircd_alloc.o ircd_string.o memdebug.o umkpasswd.o -umkpasswd_LDADD = $(LDADD) -umkpasswd_DEPENDENCIES = -umkpasswd_LDFLAGS = -ddb.cddb_db_native.cddb_events.circd_tea.cm_bmode.cm_db.cm_dbq.cm_ghost.cm_svsnick.circd_OBJECTS = -@ENVIRONMENT_DDB_TRUE@ircd_OBJECTS = IPcheck.o channel.o class.o \ -@ENVIRONMENT_DDB_TRUE@client.o crule.o dbuf.o destruct_event.o fileio.o \ -@ENVIRONMENT_DDB_TRUE@gline.o hash.o ircd.o ircd_alloc.o ircd_crypt.o \ -@ENVIRONMENT_DDB_TRUE@ircd_crypt_plain.o ircd_crypt_smd5.o \ -@ENVIRONMENT_DDB_TRUE@ircd_crypt_native.o ircd_events.o ircd_features.o \ -@ENVIRONMENT_DDB_TRUE@ircd_lexer.o ircd_log.o ircd_md5.o ircd_parser.o \ -@ENVIRONMENT_DDB_TRUE@ircd_relay.o ircd_reply.o ircd_res.o \ -@ENVIRONMENT_DDB_TRUE@ircd_reslib.o ircd_signal.o ircd_snprintf.o \ -@ENVIRONMENT_DDB_TRUE@ircd_string.o jupe.o list.o listener.o m_admin.o \ -@ENVIRONMENT_DDB_TRUE@m_asll.o m_away.o m_burst.o m_cap.o m_clearmode.o \ -@ENVIRONMENT_DDB_TRUE@m_close.o m_connect.o m_cprivmsg.o m_create.o \ -@ENVIRONMENT_DDB_TRUE@m_defaults.o m_destruct.o m_desynch.o m_die.o \ -@ENVIRONMENT_DDB_TRUE@m_endburst.o m_error.o m_get.o m_gline.o m_help.o \ -@ENVIRONMENT_DDB_TRUE@m_info.o m_invite.o m_ison.o m_join.o m_jupe.o \ -@ENVIRONMENT_DDB_TRUE@m_kick.o m_kill.o m_links.o m_list.o m_lusers.o \ -@ENVIRONMENT_DDB_TRUE@m_map.o m_mode.o m_motd.o m_names.o m_nick.o \ -@ENVIRONMENT_DDB_TRUE@m_notice.o m_oper.o m_opmode.o m_part.o m_pass.o \ -@ENVIRONMENT_DDB_TRUE@m_ping.o m_pong.o m_privmsg.o m_privs.o m_proto.o \ -@ENVIRONMENT_DDB_TRUE@m_pseudo.o m_quit.o m_rehash.o m_reset.o \ -@ENVIRONMENT_DDB_TRUE@m_restart.o m_rping.o m_rpong.o m_server.o \ -@ENVIRONMENT_DDB_TRUE@m_set.o m_settime.o m_silence.o m_squit.o \ -@ENVIRONMENT_DDB_TRUE@m_stats.o m_time.o m_topic.o m_trace.o m_uping.o \ -@ENVIRONMENT_DDB_TRUE@m_user.o m_users.o m_userhost.o m_userip.o \ -@ENVIRONMENT_DDB_TRUE@m_version.o m_wallchops.o m_wallops.o \ -@ENVIRONMENT_DDB_TRUE@m_wallusers.o m_wallvoices.o m_watch.o m_who.o \ -@ENVIRONMENT_DDB_TRUE@m_whois.o m_whowas.o match.o memdebug.o motd.o \ -@ENVIRONMENT_DDB_TRUE@msgq.o numnicks.o opercmds.o os_generic.o \ -@ENVIRONMENT_DDB_TRUE@packet.o parse.o querycmds.o random.o s_auth.o \ -@ENVIRONMENT_DDB_TRUE@s_bsd.o s_conf.o s_debug.o s_err.o s_misc.o \ -@ENVIRONMENT_DDB_TRUE@s_numeric.o s_serv.o s_stats.o s_user.o send.o \ -@ENVIRONMENT_DDB_TRUE@uping.o userload.o watch.o whowas.o -engine_kqueue.circd_OBJECTS = -engine_poll.circd_OBJECTS = -engine_epoll.circd_OBJECTS = -engine_devpoll.circd_OBJECTS = -engine_select.circd_OBJECTS = -ircd_DEPENDENCIES = -ircd_LDFLAGS = -table_gen_SOURCES = table_gen.c -table_gen_OBJECTS = table_gen.o -table_gen_LDADD = $(LDADD) -table_gen_DEPENDENCIES = -table_gen_LDFLAGS = -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LEXLIB = @LEXLIB@ -CFLAGS = @CFLAGS@ -COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ -DIST_COMMON = Makefile.am Makefile.in ircd_lexer.c ircd_parser.c - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -DEP_FILES = .deps/IPcheck.P .deps/channel.P .deps/class.P \ -.deps/client.P .deps/convert-conf.P .deps/crule.P .deps/dbuf.P \ -.deps/destruct_event.P .deps/fileio.P .deps/gline.P .deps/hash.P \ -.deps/ircd.P .deps/ircd_alloc.P .deps/ircd_crypt.P \ -.deps/ircd_crypt_native.P .deps/ircd_crypt_plain.P \ -.deps/ircd_crypt_smd5.P .deps/ircd_events.P .deps/ircd_features.P \ -.deps/ircd_lexer.P .deps/ircd_log.P .deps/ircd_md5.P \ -.deps/ircd_parser.P .deps/ircd_relay.P .deps/ircd_reply.P \ -.deps/ircd_res.P .deps/ircd_reslib.P .deps/ircd_signal.P \ -.deps/ircd_snprintf.P .deps/ircd_string.P .deps/jupe.P .deps/list.P \ -.deps/listener.P .deps/m_admin.P .deps/m_asll.P .deps/m_away.P \ -.deps/m_burst.P .deps/m_cap.P .deps/m_clearmode.P .deps/m_close.P \ -.deps/m_connect.P .deps/m_cprivmsg.P .deps/m_create.P \ -.deps/m_defaults.P .deps/m_destruct.P .deps/m_desynch.P .deps/m_die.P \ -.deps/m_endburst.P .deps/m_error.P .deps/m_get.P .deps/m_gline.P \ -.deps/m_help.P .deps/m_info.P .deps/m_invite.P .deps/m_ison.P \ -.deps/m_join.P .deps/m_jupe.P .deps/m_kick.P .deps/m_kill.P \ -.deps/m_links.P .deps/m_list.P .deps/m_lusers.P .deps/m_map.P \ -.deps/m_mode.P .deps/m_motd.P .deps/m_names.P .deps/m_nick.P \ -.deps/m_notice.P .deps/m_oper.P .deps/m_opmode.P .deps/m_part.P \ -.deps/m_pass.P .deps/m_ping.P .deps/m_pong.P .deps/m_privmsg.P \ -.deps/m_privs.P .deps/m_proto.P .deps/m_pseudo.P .deps/m_quit.P \ -.deps/m_rehash.P .deps/m_reset.P .deps/m_restart.P .deps/m_rping.P \ -.deps/m_rpong.P .deps/m_server.P .deps/m_set.P .deps/m_settime.P \ -.deps/m_silence.P .deps/m_squit.P .deps/m_stats.P .deps/m_time.P \ -.deps/m_topic.P .deps/m_trace.P .deps/m_uping.P .deps/m_user.P \ -.deps/m_userhost.P .deps/m_userip.P .deps/m_users.P .deps/m_version.P \ -.deps/m_wallchops.P .deps/m_wallops.P .deps/m_wallusers.P \ -.deps/m_wallvoices.P .deps/m_watch.P .deps/m_who.P .deps/m_whois.P \ -.deps/m_whowas.P .deps/match.P .deps/memdebug.P .deps/motd.P \ -.deps/msgq.P .deps/numnicks.P .deps/opercmds.P .deps/os_generic.P \ -.deps/packet.P .deps/parse.P .deps/querycmds.P .deps/random.P \ -.deps/s_auth.P .deps/s_bsd.P .deps/s_conf.P .deps/s_debug.P \ -.deps/s_err.P .deps/s_misc.P .deps/s_numeric.P .deps/s_serv.P \ -.deps/s_stats.P .deps/s_user.P .deps/send.P .deps/table_gen.P \ -.deps/umkpasswd.P .deps/uping.P .deps/userload.P .deps/watch.P \ -.deps/whowas.P -SOURCES = convert-conf.c $(umkpasswd_SOURCES) $(ircd_SOURCES) table_gen.c -OBJECTS = convert-conf.o $(umkpasswd_OBJECTS) $(ircd_OBJECTS) table_gen.o - -all: all-redirect .SUFFIXES: -.SUFFIXES: .S .c .l .o .s .y -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --gnu ircd/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -mostlyclean-binPROGRAMS: - -clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) - -distclean-binPROGRAMS: - -maintainer-clean-binPROGRAMS: - +.SUFFIXES: .c .l .o .obj .y +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign ircd/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign ircd/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(bindir) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ - if test -f $$p; then \ - echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ - $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + if test -f $$p \ + ; then \ + f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ + $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) - list='$(bin_PROGRAMS)'; for p in $$list; do \ - rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ + rm -f "$(DESTDIR)$(bindir)/$$f"; \ done -mostlyclean-noinstPROGRAMS: +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) clean-noinstPROGRAMS: -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) - -distclean-noinstPROGRAMS: - -maintainer-clean-noinstPROGRAMS: - -.s.o: - $(COMPILE) -c $< - -.S.o: - $(COMPILE) -c $< +convert-conf$(EXEEXT): $(convert_conf_OBJECTS) $(convert_conf_DEPENDENCIES) + @rm -f c... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-09-21 06:59:37
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-09-21 06:59:37 UTC Modified files: Makefile.in config.h.in configure ircd/Makefile.in ircd/test/Makefile.in Log message: Regeneracion de Configure y Makefiles ---------------------- diff included ---------------------- Index: ircd-ircdev/Makefile.in diff -u ircd-ircdev/Makefile.in:1.11 ircd-ircdev/Makefile.in:1.12 --- ircd-ircdev/Makefile.in:1.11 Sun Apr 22 06:56:17 2007 +++ ircd-ircdev/Makefile.in Thu Sep 20 23:59:26 2007 @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.10 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,245 +10,154 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -subdir = . -DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(top_srcdir)/configure COPYING ChangeLog INSTALL TODO \ - acconfig.h config.guess config.sub depcomp install-sh missing \ - ylwrap -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -man8dir = $(mandir)/man8 -am__installdirs = "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(sysconfdir)" -NROFF = nroff -MANS = $(man_MANS) -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -sysconfDATA_INSTALL = $(INSTALL_DATA) -DATA = $(sysconf_DATA) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } -DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best -distuninstallcheck_listfiles = find . -type f -print -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ +AMDEPBACKSLASH = @AMDEPBACKSLASH@ AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ +am__isrc = @am__isrc@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ + SUBDIRS = ircd -EXTRA_DIST = doc patches tools include Doxyfile INSTALL INSTALL.es ircd-patch \ - ChangeLog ChangeLog.es COPYING COPYING.es RELEASE.NOTES RELEASE.NOTES.es \ - TODO TODO.es + +EXTRA_DIST = doc patches tools include Doxyfile INSTALL INSTALL.es ircd-patch ChangeLog ChangeLog.es COPYING COPYING.es RELEASE.NOTES RELEASE.NOTES.es TODO TODO.es # Install man page and example.conf man_MANS = doc/en/ircd.8 sysconf_DATA = doc/ircd.sample-en.conf doc/ircd.sample-es.conf -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = [config.h] +CONFIG_CLEAN_FILES = +man8dir = $(mandir)/man8 +MANS = $(man_MANS) +NROFF = nroff +DATA = $(sysconf_DATA) + +DIST_COMMON = ./stamp-h.in COPYING ChangeLog INSTALL Makefile.am \ +Makefile.in TODO acconfig.h acinclude.m4 aclocal.m4 config.guess \ +config.sub configure configure.ac install-sh missing + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +all: all-redirect .SUFFIXES: -am--refresh: - @: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ - cd $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): configure.ac acinclude.m4 + cd $(srcdir) && $(ACLOCAL) -$(top_srcdir)/configure: $(am__configure_deps) +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -config.h: stamp-h1 +[config.h]: stamp-h @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + rm -f stamp-h; \ + $(MAKE) stamp-h; \ else :; fi - -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.h.in: $(am__configure_deps) $(top_srcdir)/acconfig.h +stamp-h: $(srcdir)/[config.h].in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES= CONFIG_HEADERS=[config.h] \ + $(SHELL) ./config.status + @echo timestamp > stamp-h 2> /dev/null +$(srcdir)/[config.h].in: $(srcdir)/stamp-h.in + @if test ! -f $@; then \ + rm -f $(srcdir)/stamp-h.in; \ + $(MAKE) $(srcdir)/stamp-h.in; \ + else :; fi +$(srcdir)/stamp-h.in: $(top_srcdir)/configure.ac $(ACLOCAL_M4) acconfig.h cd $(top_srcdir) && $(AUTOHEADER) - rm -f stamp-h1 - touch $@ + @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null + +mostlyclean-hdr: + +clean-hdr: distclean-hdr: - -rm -f config.h stamp-h1 -install-man8: $(man8_MANS) $(man_MANS) - @$(NORMAL_INSTALL) - test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)" - @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ + -rm -f [config.h] + +maintainer-clean-hdr: + +install-man8: + $(mkinstalldirs) $(DESTDIR)$(man8dir) + @list='$(man8_MANS)'; \ + l2='$(man_MANS)'; for i in $$l2; do \ case "$$i" in \ *.8*) list="$$list $$i" ;; \ esac; \ @@ -259,53 +166,50 @@ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 8*) ;; \ - *) ext='8' ;; \ - esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \ + echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \ + $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \ done + uninstall-man8: - @$(NORMAL_UNINSTALL) - @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ + @list='$(man8_MANS)'; \ + l2='$(man_MANS)'; for i in $$l2; do \ case "$$i" in \ *.8*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 8*) ;; \ - *) ext='8' ;; \ - esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \ - rm -f "$(DESTDIR)$(man8dir)/$$inst"; \ + echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \ + rm -f $(DESTDIR)$(man8dir)/$$inst; \ done +install-man: $(MANS) + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-man8 +uninstall-man: + @$(NORMAL_UNINSTALL) + $(MAKE) $(AM_MAKEFLAGS) uninstall-man8 + install-sysconfDATA: $(sysconf_DATA) @$(NORMAL_INSTALL) - test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)" + $(mkinstalldirs) $(DESTDIR)$(sysconfdir) @list='$(sysconf_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \ - $(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \ + fi; fi; \ done uninstall-sysconfDATA: @$(NORMAL_UNINSTALL) - @list='$(sysconf_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \ - rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \ + list='$(sysconf_DATA)'; for p in $$list; do \ + rm -f $(DESTDIR)$(sysconfdir)/$$p; \ done # This directory's subdirectories are mostly independent; you can cd @@ -314,14 +218,13 @@ # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -333,31 +236,21 @@ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ - rev="$$rev ."; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ @@ -367,337 +260,192 @@ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) [config.h].in $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ done; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + test -z "$(ETAGS_ARGS)[config.h].in$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags [config.h].in $$unique $(LISP)) + +mostlyclean-tags: + +clean-tags: distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) distdir: $(DISTFILES) - $(am__remove_distdir) - test -d $(distdir) || mkdir $(distdir) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - distdir) \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) - -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && cd $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck - $(am__remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' -distuninstallcheck: - @cd $(distuninstallcheck_dir) \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 + $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive check-am: all-am check: check-recursive -all-am: Makefile $(MANS) $(DATA) config.h -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(sysconfdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-recursive +installcheck-am: +installcheck: installcheck-recursive +all-recursive-am: [config.h] + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +install-exec-am: install-sysconfDATA install-exec: install-exec-recursive + +install-data-am: install-man install-data: install-data-recursive -uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive +install: install-recursive +uninstall-am: uninstall-man uninstall-sysconfDATA +uninstall: uninstall-recursive +all-am: Makefile $(MANS) $(DATA) [config.h] +all-redirect: all-recursive-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(mandir)/man8 $(DESTDIR)$(sysconfdir) + + mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: install-man - -install-dvi: install-dvi-recursive - -install-exec-am: install-sysconfDATA - -install-html: install-html-recursive - -install-info: install-info-recursive - -install-man: install-man8 - -install-pdf: install-pdf-recursive - -install-ps: install-ps-recursive - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic +mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic - -pdf: pdf-recursive - -pdf-am: +clean-am: clean-hdr clean-tags clean-generic mostlyclean-am -ps: ps-recursive +clean: clean-recursive -ps-am: +distclean-am: distclean-hdr distclean-tags distclean-generic clean-am -uninstall-am: uninstall-man uninstall-sysconfDATA +distclean: distclean-recursive + -rm -f config.status -uninstall-man: uninstall-man8 +maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ - install-strip +maintainer-clean: maintainer-clean-recursive + -rm -f config.status -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am am--refresh check check-am clean clean-generic \ - ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ - dist-hook dist-shar dist-tarZ dist-zip distcheck distclean \ - distclean-generic distclean-hdr distclean-tags distcleancheck \ - distdir distuninstallcheck dvi dvi-am html html-am info \ - info-am install install-am install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-man8 install-pdf install-pdf-am install-ps \ - install-ps-am install-strip install-sysconfDATA installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ - uninstall-man uninstall-man8 uninstall-sysconfDATA +.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ +install-man8 uninstall-man8 install-man uninstall-man \ +uninstall-sysconfDATA install-sysconfDATA install-data-recursive \ +uninstall-data-recursive install-exec-recursive \ +uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ +all-recursive check-recursive installcheck-recursive info-recursive \ +dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs-am \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean # Make sure to filter out those CVS directories dist-hook: find $(distdir) -name CVS -print -prune | xargs rm -rf + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Index: ircd-ircdev/config.h.in diff -u ircd-ircdev/config.h.in:1.11 ircd-ircdev/config.h.in:1.12 --- ircd-ircdev/config.h.in:1.11 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/config.h.in Thu Sep 20 23:59:26 2007 @@ -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.11 2007/04/26 21:17:11 zolty Exp $ + * $Id: config.h.in,v 1.12 2007/09/21 06:59:26 zolty Exp $ * */ #ifndef INCLUDED_config_h @@ -132,10 +132,6 @@ /* Define to 1 if you have the <poll.h> header file. */ #undef HAVE_POLL_H -/* Define to 1 if system calls automatically restart after interruption by a - signal. */ -#undef HAVE_RESTARTABLE_SYSCALLS - /* Define to 1 if you have the `setrlimit' function. */ #undef HAVE_SETRLIMIT @@ -175,9 +171,6 @@ /* Define to 1 if you have the <sys/types.h> header file. */ #undef HAVE_SYS_TYPES_H -/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */ -#undef HAVE_SYS_WAIT_H - /* Define to 1 if you have the `times' function. */ #undef HAVE_TIMES Index: ircd-ircdev/configure diff -u ircd-ircdev/configure:1.22 ircd-ircdev/configure:1.23 --- ircd-ircdev/configure:1.22 Thu Apr 26 12:17:30 2007 +++ ircd-ircdev/configure Thu Sep 20 23:59:26 2007 @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac Revision: 1.1 . +# From configure.ac Revision: 1.2 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for IRC-Dev IRC Daemon 1.0.beta. # @@ -5083,8 +5083,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/resource.h \ - sys/socket.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 { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then @@ -9398,176 +9398,6 @@ done -{ echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5 -echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6; } -if test "${ac_cv_header_sys_wait_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <sys/types.h> -#include <sys/wait.h> -#ifndef WEXITSTATUS -# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) -#endif -#ifndef WIFEXITED -# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) -#endif - -int -main () -{ - int s; - wait (&s); - s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_header_sys_wait_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_sys_wait_h=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6; } -if test $ac_cv_header_sys_wait_h = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_SYS_WAIT_H 1 -_ACEOF - -fi - -{ echo "$as_me:$LINENO: checking for restartable system calls" >&5 -echo $ECHO_N "checking for restartable system calls... $ECHO_C" >&6; } -if test "${ac_cv_sys_restartable_syscalls+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { { 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 -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Exit 0 (true) if wait returns something other than -1, - i.e. the pid of the child, which means that wait was restarted - after getting the signal. */ - -$ac_includes_default -#include <signal.h> -#ifdef HAVE_SYS_WAIT_H -# include <sys/wait.h> -#endif - -/* Some platforms explicitly require an extern "C" signal handler - when using C++. */ -#ifdef __cplusplus -extern "C" void ucatch (int dummy) { } -#else -void ucatch (dummy) int dummy; { } -#endif - -int -main () -{ - int i = fork (), status; - - if (i == 0) - { - sleep (3); - kill (getppid (), SIGINT); - sleep (3); - return 0; - } - - signal (SIGINT, ucatch); - - status = wait (&i); - if (status == -1) - wait (&i); - - return status == -1; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sys_restartable_syscalls=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_sys_restartable_syscalls=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_sys_restartable_syscalls" >&5 -echo "${ECHO_T}$ac_cv_sys_restartable_syscalls" >&6; } -if test $ac_cv_sys_restartable_syscalls = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_RESTARTABLE_SYSCALLS 1 -_ACEOF - -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 @@ -10396,7 +10226,7 @@ if test -f /etc/resolv.conf; then unet_domain=`awk '/^domain/ { print $2; exit }' /etc/resolv.conf` if test x"$unet_domain" = x; then - unet_domain=`awk '/^search/ { print $2; exit }' /etc/resolv.conf` + unet_domain=`awk '/^search/ { print $2; exit }' /etc/resolv.conf` fi fi Index: ircd-ircdev/ircd/Makefile.in diff -u ircd-ircdev/ircd/Makefile.in:1.33 ircd-ircdev/ircd/Makefile.in:1.34 --- ircd-ircdev/ircd/Makefile.in:1.33 Sun Apr 22 06:56:20 2007 +++ ircd-ircdev/ircd/Makefile.in Thu Sep 20 23:59:26 2007 @@ -1,8 +1,6 @@ -# Makefile.in generated by automake 1.10 from Makefile.am. -# @configure_input@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,595 +10,307 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -@SET_MAKE@ +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = @build@ +host_alias = @host_alias@ host_triplet = @host@ -noinst_PROGRAMS = table_gen$(EXEEXT) -bin_PROGRAMS = convert-conf$(EXEEXT) umkpasswd$(EXEEXT) ircd$(EXEEXT) - -#if ENVIRONMENT_UNDERNET -#ircd_SOURCES += \ -# m_account.c -#endif -@ENVIRONMENT_DDB_TRUE@am__append_1 = \ -@ENVIRONMENT_DDB_TRUE@ ddb.c \ -@ENVIRONMENT_DDB_TRUE@ ddb_db_native.c \ -@ENVIRONMENT_DDB_TRUE@ ddb_events.c \ -@ENVIRONMENT_DDB_TRUE@ ircd_tea.c \ -@ENVIRONMENT_DDB_TRUE@ m_bmode.c \ -@ENVIRONMENT_DDB_TRUE@ m_db.c \ -@ENVIRONMENT_DDB_TRUE@ m_dbq.c \ -@ENVIRONMENT_DDB_TRUE@ m_ghost.c \ -@ENVIRONMENT_DDB_TRUE@ m_svsnick.c - - -#if ENVIRONMENT_SERVICES -#ircd_SOURCES += \ -# m_svsnick.c -#endif -@ENGINE_POLL_TRUE@am__append_2 = engine_poll.c -@ENGINE_POLL_FALSE@am__append_3 = engine_select.c -@ENGINE_DEVPOLL_TRUE@am__append_4 = engine_devpoll.c -@ENGINE_EPOLL_TRUE@am__append_5 = engine_epoll.c -@ENGINE_KQUEUE_TRUE@am__append_6 = engine_kqueue.c -subdir = ircd -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ircd_lexer.c \ - ircd_parser.c ircd_parser.h -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" -binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) -convert_conf_SOURCES = convert-conf.c -convert_conf_OBJECTS = convert-conf.$(OBJEXT) -convert_conf_LDADD = $(LDADD) -am__ircd_SOURCES_DIST = IPcheck.c channel.c class.c client.c crule.c \ - dbuf.c destruct_event.c fileio.c gline.c hash.c ircd.c \ - ircd_alloc.c ircd_crypt.c ircd_crypt_plain.c ircd_crypt_smd5.c \ - ircd_crypt_native.c ircd_events.c ircd_features.c ircd_lexer.l \ - ircd_log.c ircd_md5.c ircd_parser.y ircd_relay.c ircd_reply.c \ - ircd_res.c ircd_reslib.c ircd_signal.c ircd_snprintf.c \ - ircd_string.c jupe.c list.c listener.c m_admin.c m_asll.c \ - m_away.c m_burst.c m_cap.c m_clearmode.c m_close.c m_connect.c \ - m_cprivmsg.c m_create.c m_defaults.c m_destruct.c m_desynch.c \ - m_die.c m_endburst.c m_error.c m_get.c m_gline.c m_help.c \ - m_info.c m_invite.c m_ison.c m_join.c m_jupe.c m_kick.c \ - m_kill.c m_links.c m_list.c m_lusers.c m_map.c m_mode.c \ - m_motd.c m_names.c m_nick.c m_notice.c m_oper.c m_opmode.c \ - m_part.c m_pass.c m_ping.c m_pong.c m_privmsg.c m_privs.c \ - m_proto.c m_pseudo.c m_quit.c m_rehash.c m_reset.c m_restart.c \ - m_rping.c m_rpong.c m_server.c m_set.c m_settime.c m_silence.c \ - m_squit.c m_stats.c m_time.c m_topic.c m_trace.c m_uping.c \ - m_user.c m_users.c m_userhost.c m_userip.c m_version.c \ - m_wallchops.c m_wallops.c m_wallusers.c m_wallvoices.c \ - m_watch.c m_who.c m_whois.c m_whowas.c match.c memdebug.c \ - motd.c msgq.c numnicks.c opercmds.c os_generic.c packet.c \ - parse.c querycmds.c random.c s_auth.c s_bsd.c s_conf.c \ - s_debug.c s_err.c s_misc.c s_numeric.c s_serv.c s_stats.c \ - s_user.c send.c uping.c userload.c watch.c whowas.c ddb.c \ - ddb_db_native.c ddb_events.c ircd_tea.c m_bmode.c m_db.c \ - m_dbq.c m_ghost.c m_svsnick.c engine_poll.c engine_select.c \ - engine_devpoll.c engine_epoll.c engine_kqueue.c -@ENVIRONMENT_DDB_TRUE@am__objects_1 = ddb.$(OBJEXT) \ -@ENVIRONMENT_DDB_TRUE@ ddb_db_native.$(OBJEXT) \ -@ENVIRONMENT_DDB_TRUE@ ddb_events.$(OBJEXT) ircd_tea.$(OBJEXT) \ -@ENVIRONMENT_DDB_TRUE@ m_bmode.$(OBJEXT) m_db.$(OBJEXT) \ -@ENVIRONMENT_DDB_TRUE@ m_dbq.$(OBJEXT) m_ghost.$(OBJEXT) \ -@ENVIRONMENT_DDB_TRUE@ m_svsnick.$(OBJEXT) -@ENGINE_POLL_TRUE@am__objects_2 = engine_poll.$(OBJEXT) -@ENGINE_POLL_FALSE@am__objects_3 = engine_select.$(OBJEXT) -@ENGINE_DEVPOLL_TRUE@am__objects_4 = engine_devpoll.$(OBJEXT) -@ENGINE_EPOLL_TRUE@am__objects_5 = engine_epoll.$(OBJEXT) -@ENGINE_KQUEUE_TRUE@am__objects_6 = engine_kqueue.$(OBJEXT) -am_ircd_OBJECTS = IPcheck.$(OBJEXT) channel.$(OBJEXT) class.$(OBJEXT) \ - client.$(OBJEXT) crule.$(OBJEXT) dbuf.$(OBJEXT) \ - destruct_event.$(OBJEXT) fileio.$(OBJEXT) gline.$(OBJEXT) \ - hash.$(OBJEXT) ircd.$(OBJEXT) ircd_alloc.$(OBJEXT) \ - ircd_crypt.$(OBJEXT) ircd_crypt_plain.$(OBJEXT) \ - ircd_crypt_smd5.$(OBJEXT) ircd_crypt_native.$(OBJEXT) \ - ircd_events.$(OBJEXT) ircd_features.$(OBJEXT) \ - ircd_lexer.$(OBJEXT) ircd_log.$(OBJEXT) ircd_md5.$(OBJEXT) \ - ircd_parser.$(OBJEXT) ircd_relay.$(OBJEXT) \ - ircd_reply.$(OBJEXT) ircd_res.$(OBJEXT) ircd_reslib.$(OBJEXT) \ - ircd_signal.$(OBJEXT) ircd_snprintf.$(OBJEXT) \ - ircd_string.$(OBJEXT) jupe.$(OBJEXT) list.$(OBJEXT) \ - listener.$(OBJEXT) m_admin.$(OBJEXT) m_asll.$(OBJEXT) \ - m_away.$(OBJEXT) m_burst.$(OBJEXT) m_cap.$(OBJEXT) \ - m_clearmode.$(OBJEXT) m_close.$(OBJEXT) m_connect.$(OBJEXT) \ - m_cprivmsg.$(OBJEXT) m_create.$(OBJEXT) m_defaults.$(OBJEXT) \ - m_destruct.$(OBJEXT) m_desynch.$(OBJEXT) m_die.$(OBJEXT) \ - m_endburst.$(OBJEXT) m_error.$(OBJEXT) m_get.$(OBJEXT) \ - m_gline.$(OBJEXT) m_help.$(OBJEXT) m_info.$(OBJEXT) \ - m_invite.$(OBJEXT) m_ison.$(OBJEXT) m_join.$(OBJEXT) \ - m_jupe.$(OBJEXT) m_kick.$(OBJEXT) m_kill.$(OBJEXT) \ - m_links.$(OBJEXT) m_list.$(OBJEXT) m_lusers.$(OBJEXT) \ - m_map.$(OBJEXT) m_mode.$(OBJEXT) m_motd.$(OBJEXT) \ - m_names.$(OBJEXT) m_nick.$(OBJEXT) m_notice.$(OBJEXT) \ - m_oper.$(OBJEXT) m_opmode.$(OBJEXT) m_part.$(OBJEXT) \ - m_pass.$(OBJEXT) m_ping.$(OBJEXT) m_pong.$(OBJEXT) \ - m_privmsg.$(OBJEXT) m_privs.$(OBJEXT) m_proto.$(OBJEXT) \ - m_pseudo.$(OBJEXT) m_quit.$(OBJEXT) m_rehash.$(OBJEXT) \ - m_reset.$(OBJEXT) m_restart.$(OBJEXT) m_rping.$(OBJEXT) \ - m_rpong.$(OBJEXT) m_server.$(OBJEXT) m_set.$(OBJEXT) \ - m_settime.$(OBJEXT) m_silence.$(OBJEXT) m_squit.$(OBJEXT) \ - m_stats.$(OBJEXT) m_time.$(OBJEXT) m_topic.$(OBJEXT) \ - m_trace.$(OBJEXT) m_uping.$(OBJEXT) m_user.$(OBJEXT) \ - m_users.$(OBJEXT) m_userhost.$(OBJEXT) m_userip.$(OBJEXT) \ - m_version.$(OBJEXT) m_wallchops.$(OBJEXT) m_wallops.$(OBJEXT) \ - m_wallusers.$(OBJEXT) m_wallvoices.$(OBJEXT) m_watch.$(OBJEXT) \ - m_who.$(OBJEXT) m_whois.$(OBJEXT) m_whowas.$(OBJEXT) \ - match.$(OBJEXT) memdebug.$(OBJEXT) motd.$(OBJEXT) \ - msgq.$(OBJEXT) numnicks.$(OBJEXT) opercmds.$(OBJEXT) \ - os_generic.$(OBJEXT) packet.$(OBJEXT) parse.$(OBJEXT) \ - querycmds.$(OBJEXT) random.$(OBJEXT) s_auth.$(OBJEXT) \ - s_bsd.$(OBJEXT) s_conf.$(OBJEXT) s_debug.$(OBJEXT) \ - s_err.$(OBJEXT) s_misc.$(OBJEXT) s_numeric.$(OBJEXT) \ - s_serv.$(OBJEXT) s_stats.$(OBJEXT) s_user.$(OBJEXT) \ - send.$(OBJEXT) uping.$(OBJEXT) userload.$(OBJEXT) \ - watch.$(OBJEXT) whowas.$(OBJEXT) $(am__objects_1) \ - $(am__objects_2) $(am__objects_3) $(am__objects_4) \ - $(am__objects_5) $(am__objects_6) -nodist_ircd_OBJECTS = version.$(OBJEXT) -ircd_OBJECTS = $(am_ircd_OBJECTS) $(nodist_ircd_OBJECTS) -am__DEPENDENCIES_1 = -ircd_DEPENDENCIES = $(am__DEPENDENCIES_1) -table_gen_SOURCES = table_gen.c -table_gen_OBJECTS = table_gen.$(OBJEXT) -table_gen_LDADD = $(LDADD) -am_umkpasswd_OBJECTS = ircd_md5.$(OBJEXT) ircd_crypt_plain.$(OBJEXT) \ - ircd_crypt_smd5.$(OBJEXT) ircd_crypt_native.$(OBJEXT) \ - ircd_alloc.$(OBJEXT) ircd_string.$(OBJEXT) memdebug.$(OBJEXT) \ - umkpasswd.$(OBJEXT) -umkpasswd_OBJECTS = $(am_umkpasswd_OBJECTS) -umkpasswd_LDADD = $(LDADD) -DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS) -YLWRAP = $(top_srcdir)/ylwrap -YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS) -SOURCES = convert-conf.c $(ircd_SOURCES) $(nodist_ircd_SOURCES) \ - table_gen.c $(umkpasswd_SOURCES) -DIST_SOURCES = convert-conf.c $(am__ircd_SOURCES_DIST) table_gen.c \ - $(umkpasswd_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ +AMDEPBACKSLASH = @AMDEPBACKSLASH@ AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ +am__isrc = @am__isrc@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ + SUBDIRS = test -AM_CPPFLAGS = -I$(top_srcdir)/include -DDPATH="\"$(sysconfdir)\"" \ - -DSPATH="\"$(bindir)/ircd\"" -DCPATH="\"ircd.conf\"" \ - -DLPATH="\"ircd.log\"" +noinst_PROGRAMS = table_gen +bin_PROGRAMS = convert-conf umkpasswd ircd + +AM_CPPFLAGS = -I$(top_srcdir)/include -DDPATH="\"$(sysconfdir)\"" -DSPATH="\"$(bindir)/ircd\"" -DCPATH="\"ircd.conf\"" -DLPATH="\"ircd.log\"" + BUILT_SOURCES = ircd_parser.h AM_YFLAGS = -d + EXTRA_DIST = version.c.SH + DISTCLEANFILES = version.c -umkpasswd_SOURCES = \ - ircd_md5.c \ - ircd_crypt_plain.c \ - ircd_crypt_smd5.c \ - ircd_crypt_native.c \ - ircd_alloc.c \ - ircd_string.c \ - memdebug.c \ - umkpasswd.c + +umkpasswd_SOURCES = ircd_md5.c ircd_crypt_plain.c ircd_crypt_smd5.c ircd_crypt_native.c ircd_alloc.c ircd_string.c memdebug.c umkpasswd.c + nodist_ircd_SOURCES = version.c -ircd_SOURCES = IPcheck.c channel.c class.c client.c crule.c dbuf.c \ - destruct_event.c fileio.c gline.c hash.c ircd.c ircd_alloc.c \ - ircd_crypt.c ircd_crypt_plain.c ircd_crypt_smd5.c \ - ircd_crypt_native.c ircd_events.c ircd_features.c ircd_lexer.l \ - ircd_log.c ircd_md5.c ircd_parser.y ircd_relay.c ircd_reply.c \ - ircd_res.c ircd_reslib.c ircd_signal.c ircd_snprintf.c \ - ircd_string.c jupe.c list.c listener.c m_admin.c m_asll.c \ - m_away.c m_burst.c m_cap.c m_clearmode.c m_close.c m_connect.c \ - m_cprivmsg.c m_create.c m_defaults.c m_destruct.c m_desynch.c \ - m_die.c m_endburst.c m_error.c m_get.c m_gline.c m_help.c \ - m_info.c m_invite.c m_ison.c m_join.c m_jupe.c m_kick.c \ - m_kill.c m_links.c m_list.c m_lusers.c m_map.c m_mode.c \ - m_motd.c m_names.c m_nick.c m_notice.c m_oper.c m_opmode.c \ - m_part.c m_pass.c m_ping.c m_pong.c m_privmsg.c m_privs.c \ - m_proto.c m_pseudo.c m_quit.c m_rehash.c m_reset.c m_restart.c \ - m_rping.c m_rpong.c m_server.c m_set.c m_settime.c m_silence.c \ - m_squit.c m_stats.c m_time.c m_topic.c m_trace.c m_uping.c \ - m_user.c m_users.c m_userhost.c m_userip.c m_version.c \ - m_wallchops.c m_wallops.c m_wallusers.c m_wallvoices.c \ - m_watch.c m_who.c m_whois.c m_whowas.c match.c memdebug.c \ - motd.c msgq.c numnicks.c opercmds.c os_generic.c packet.c \ - parse.c querycmds.c random.c s_auth.c s_bsd.c s_conf.c \ - s_debug.c s_err.c s_misc.c s_numeric.c s_serv.c s_stats.c \ - s_user.c send.c uping.c userload.c watch.c whowas.c \ - $(am__append_1) $(am__append_2) $(am__append_3) \ - $(am__append_4) $(am__append_5) $(am__append_6) +@ENVIRONMENT_DDB_TRUE@ircd_SOURCES = IPcheck.c channel.c class.c client.c crule.c dbuf.c destruct_event.c fileio.c gline.c hash.c ircd.c ircd_alloc.c ircd_crypt.c ircd_crypt_plain.c ircd_crypt_smd5.c ircd_crypt_native.c ircd_events.c ircd_features.c ircd_lexer.l ircd_log.c ircd_md5.c ircd_parser.y ircd_relay.c ircd_reply.c ircd_res.c ircd_reslib.c ircd_signal.c ircd_snprintf.c ircd_string.c jupe.c list.c listener.c m_admin.c m_asll.c m_away.c m_burst.c m_cap.c m_clearmode.c m_close.c m_connect.c m_cprivmsg.c m_create.c m_defaults.c m_destruct.c m_desynch.c m_die.c m_endburst.c m_error.c m_get.c m_gline.c m_help.c m_info.c m_invite.c m_ison.c m_join.c m_jupe.c m_kick.c m_kill.c m_links.c m_list.c m_lusers.c m_map.c m_mode.c m_motd.c m_names.c m_nick.c m_notice.c m_oper.c m_opmode.c m_part.c m_pass.c m_ping.c m_pong.c m_privmsg.c m_privs.c m_proto.c m_pseudo.c m_quit.c m_rehash.c m_reset.c m_restart.c m_rping.c m_rpong.c m_server.c m_set.c m_settime.c m_silence.c m_squit.c m_stats.c m_time.c m_topic.c m_trace.c m_uping.c m_user.c m_users.c m_userhost.c m_userip.c m_version.c m_wallchops.c m_wallops.c m_wallusers.c m_wallvoices.c m_watch.c m_who.c m_whois.c m_whowas.c match.c memdebug.c motd.c msgq.c numnicks.c opercmds.c os_generic.c packet.c parse.c querycmds.c random.c s_auth.c s_bsd.c s_conf.c s_debug.c s_err.c s_misc.c s_numeric.c s_serv.c s_stats.c s_user.c send.c uping.c userload.c watch.c whowas.c +ddb.cddb_db_native.cddb_events.circd_tea.cm_bmode.cm_db.cm_dbq.cm_ghost.cm_svsnick.circd_SOURCES = @ENGINE_POLL_TRUE@ +engine_poll.circd_SOURCES = @ENGINE_POLL_FALSE@ +engine_select.circd_SOURCES = @ENGINE_DEVPOLL_TRUE@ +engine_devpoll.circd_SOURCES = @ENGINE_EPOLL_TRUE@ +engine_epoll.circd_SOURCES = @ENGINE_KQUEUE_TRUE@ +engine_kqueue.circd_SOURCES = + ircd_LDADD = $(LEXLIB) -all: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) all-recursive +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../[config.h] +CONFIG_CLEAN_FILES = +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) + +DEFS = @DEFS@ -I. -I$(srcdir) -I.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +convert_conf_SOURCES = convert-conf.c +convert_conf_OBJECTS = convert-conf.o +convert_conf_LDADD = $(LDADD) +convert_conf_DEPENDENCIES = +convert_conf_LDFLAGS = +umkpasswd_OBJECTS = ircd_md5.o ircd_crypt_plain.o ircd_crypt_smd5.o \ +ircd_crypt_native.o ircd_alloc.o ircd_string.o memdebug.o umkpasswd.o +umkpasswd_LDADD = $(LDADD) +umkpasswd_DEPENDENCIES = +umkpasswd_LDFLAGS = +ddb.cddb_db_native.cddb_events.circd_tea.cm_bmode.cm_db.cm_dbq.cm_ghost.cm_svsnick.circd_OBJECTS = +@ENVIRONMENT_DDB_TRUE@ircd_OBJECTS = IPcheck.o channel.o class.o \ +@ENVIRONMENT_DDB_TRUE@client.o crule.o dbuf.o destruct_event.o fileio.o \ +@ENVIRONMENT_DDB_TRUE@gline.o hash.o ircd.o ircd_alloc.o ircd_crypt.o \ +@ENVIRONMENT_DDB_TRUE@ircd_crypt_plain.o ircd_crypt_smd5.o \ +@ENVIRONMENT_DDB_TRUE@ircd_crypt_native.o ircd_events.o ircd_features.o \ +@ENVIRONMENT_DDB_TRUE@ircd_lexer.o ircd_log.o ircd_md5.o ircd_parser.o \ +@ENVIRONMENT_DDB_TRUE@ircd_relay.o ircd_reply.o ircd_res.o \ +@ENVIRONMENT_DDB_TRUE@ircd_reslib.o ircd_signal.o ircd_snprintf.o \ +@ENVIRONMENT_DDB_TRUE@ircd_string.o jupe.o list.o listener.o m_admin.o \ +@ENVIRONMENT_DDB_TRUE@m_asll.o m_away.o m_burst.o m_cap.o m_clearmode.o \ +@ENVIRONMENT_DDB_TRUE@m_close.o m_connect.o m_cprivmsg.o m_create.o \ +@ENVIRONMENT_DDB_TRUE@m_defaults.o m_destruct.o m_desynch.o m_die.o \ +@ENVIRONMENT_DDB_TRUE@m_endburst.o m_error.o m_get.o m_gline.o m_help.o \ +@ENVIRONMENT_DDB_TRUE@m_info.o m_invite.o m_ison.o m_join.o m_jupe.o \ +@ENVIRONMENT_DDB_TRUE@m_kick.o m_kill.o m_links.o m_list.o m_lusers.o \ +@ENVIRONMENT_DDB_TRUE@m_map.o m_mode.o m_motd.o m_names.o m_nick.o \ +@ENVIRONMENT_DDB_TRUE@m_notice.o m_oper.o m_opmode.o m_part.o m_pass.o \ +@ENVIRONMENT_DDB_TRUE@m_ping.o m_pong.o m_privmsg.o m_privs.o m_proto.o \ +@ENVIRONMENT_DDB_TRUE@m_pseudo.o m_quit.o m_rehash.o m_reset.o \ +@ENVIRONMENT_DDB_TRUE@m_restart.o m_rping.o m_rpong.o m_server.o \ +@ENVIRONMENT_DDB_TRUE@m_set.o m_settime.o m_silence.o m_squit.o \ +@ENVIRONMENT_DDB_TRUE@m_stats.o m_time.o m_topic.o m_trace.o m_uping.o \ +@ENVIRONMENT_DDB_TRUE@m_user.o m_users.o m_userhost.o m_userip.o \ +@ENVIRONMENT_DDB_TRUE@m_version.o m_wallchops.o m_wallops.o \ +@ENVIRONMENT_DDB_TRUE@m_wallusers.o m_wallvoices.o m_watch.o m_who.o \ +@ENVIRONMENT_DDB_TRUE@m_whois.o m_whowas.o match.o memdebug.o motd.o \ +@ENVIRONMENT_DDB_TRUE@msgq.o numnicks.o opercmds.o os_generic.o \ +@ENVIRONMENT_DDB_TRUE@packet.o parse.o querycmds.o random.o s_auth.o \ +@ENVIRONMENT_DDB_TRUE@s_bsd.o s_conf.o s_debug.o s_err.o s_misc.o \ +@ENVIRONMENT_DDB_TRUE@s_numeric.o s_serv.o s_stats.o s_user.o send.o \ +@ENVIRONMENT_DDB_TRUE@uping.o userload.o watch.o whowas.o +engine_kqueue.circd_OBJECTS = +engine_poll.circd_OBJECTS = +engine_epoll.circd_OBJECTS = +engine_devpoll.circd_OBJECTS = +engine_select.circd_OBJECTS = +ircd_DEPENDENCIES = +ircd_LDFL... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-09-20 21:01:16
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-09-20 21:01:04 UTC Modified files: ChangeLog ChangeLog.es configure.ac ircd-patch test.l include/client.h include/crule.h include/msgq.h include/patchlevel.h include/send.h ircd/channel.c ircd/convert-conf.c ircd/crule.c ircd/gline.c ircd/hash.c ircd/ircd.c ircd/ircd_crypt.c ircd/ircd_crypt_native.c ircd/ircd_events.c ircd/ircd_features.c ircd/ircd_log.c ircd/ircd_parser.y ircd/ircd_res.c ircd/ircd_reslib.c ircd/ircd_signal.c ircd/listener.c ircd/m_account.c ircd/m_admin.c ircd/m_asll.c ircd/m_away.c ircd/m_burst.c ircd/m_cap.c ircd/m_clearmode.c ircd/m_connect.c ircd/m_create.c ircd/m_defaults.c ircd/m_destruct.c ircd/m_endburst.c ircd/m_invite.c ircd/m_join.c ircd/m_kick.c ircd/m_kill.c ircd/m_list.c ircd/m_lusers.c ircd/m_mode.c ircd/m_names.c ircd/m_nick.c ircd/m_oper.c ircd/m_part.c ircd/m_pass.c ircd/m_pong.c ircd/m_privs.c ircd/m_rehash.c ircd/m_silence.c ircd/m_stats.c ircd/m_topic.c ircd/m_userhost.c ircd/m_userip.c ircd/m_version.c ircd/m_wallvoices.c ircd/m_who.c ircd/m_whois.c ircd/match.c ircd/motd.c ircd/msgq.c ircd/os_generic.c ircd/s_auth.c ircd/s_bsd.c ircd/s_conf.c ircd/s_debug.c ircd/s_err.c ircd/s_misc.c ircd/s_stats.c ircd/s_user.c ircd/send.c ircd/table_gen.c ircd/umkpasswd.c ircd/uping.c Added files: tools/iauth-test Log message: Cleanup ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.56 ircd-ircdev/ChangeLog:1.57 --- ircd-ircdev/ChangeLog:1.56 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/ChangeLog Thu Sep 20 14:00:31 2007 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.56 2007/07/21 23:51:39 zolty Exp $ +# $Id: ChangeLog,v 1.57 2007/09/20 21:00:31 zolty Exp $ # # Insert new changes at beginning of the change list. # +2007-09-20 Toni Garc�a <zo...@ir...> 1.0.beta8 + * Cleanup + 2007-07-22 Toni Garc�a <zo...@ir...> 1.0.beta7 * Spambot checking * DelayedJoin fix Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.56 ircd-ircdev/ChangeLog.es:1.57 --- ircd-ircdev/ChangeLog.es:1.56 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/ChangeLog.es Thu Sep 20 14:00:31 2007 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.56 2007/07/21 23:51:39 zolty Exp $ +# $Id: ChangeLog.es,v 1.57 2007/09/20 21:00:31 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-09-20 Toni Garc�a <zo...@ir...> 1.0.beta8 + * Cleanup + 2007-07-22 Toni Garc�a <zo...@ir...> 1.0.beta7 * Chequeo de Spambot * Fix de DelayedJoin Index: ircd-ircdev/configure.ac diff -u ircd-ircdev/configure.ac:1.1 ircd-ircdev/configure.ac:1.2 --- ircd-ircdev/configure.ac:1.1 Sun Apr 22 06:56:17 2007 +++ ircd-ircdev/configure.ac Thu Sep 20 14:00:31 2007 @@ -23,7 +23,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.ac,v 1.1 2007/04/22 13:56:17 zolty Exp $ +dnl @(#)$Id: configure.ac,v 1.2 2007/09/20 21:00:31 zolty Exp $ dnl AC_INIT([IRC-Dev IRC Daemon],[1.0.beta],[de...@ir...],[ircd-ircdev]) @@ -44,7 +44,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA]) -AC_REVISION($Revision: 1.1 $) +AC_REVISION($Revision: 1.2 $) AC_CONFIG_SRCDIR([ircd/ircd.c]) AM_INIT_AUTOMAKE([foreign]) @@ -88,8 +88,8 @@ dnl Check out 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/resource.h \ - sys/socket.h]) + sys/epoll.h sys/event.h sys/param.h sys/resource.h \ + sys/socket.h]) dnl Checks for typedefs, structures, compiler characteristics, etc. AC_C_CONST @@ -100,8 +100,8 @@ AC_TYPE_UID_T unet_CHECK_TYPE_SIZES AC_CHECK_TYPE([struct sockaddr_in6], - [unet_have_sockaddr_in6=yes], - [unet_have_sockaddr_in6=no], + [unet_have_sockaddr_in6=yes], + [unet_have_sockaddr_in6=no], [#include <sys/types.h> #include <netinet/in.h>]) @@ -117,11 +117,11 @@ curl_cv_socklen_t_equiv= for arg2 in "struct sockaddr" void ; do for t in int size_t unsigned long "unsigned long" ; do - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> + AC_TRY_COMPILE([#include <sys/types.h> #include <sys/socket.h> -int getpeername (int $arg2 *, $t *);]], [[$t len; - getpeername(0, 0, &len);]])],[curl_cv_socklen_t_equiv="$t" - break],[]) +int getpeername (int $arg2 *, $t *);],[$t len; + getpeername(0, 0, &len);], [curl_cv_socklen_t_equiv="$t" + break]) done done ]) @@ -134,10 +134,6 @@ dnl Checks for library functions. AC_CHECK_FUNCS([kqueue setrlimit getrusage times]) -dnl Do we have restarting syscalls? -dnl XXX Note: this macro has been obsoleted -AC_SYS_RESTARTABLE_SYSCALLS - dnl Figure out non-blocking and signals unet_NONBLOCKING unet_SIGNALS @@ -255,11 +251,11 @@ dnl XXX Should rework this check AC_MSG_CHECKING([whether epoll functions are properly defined]) AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <sys/epoll.h>], - [epoll_create(10);])], - [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no]) - AC_DEFINE([EPOLL_NEED_BODY], 1, - [Define to implement epoll system calls])]) + [epoll_create(10);])], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_DEFINE([EPOLL_NEED_BODY], 1, + [Define to implement epoll system calls])]) fi AM_CONDITIONAL(ENGINE_EPOLL, [test x"$unet_cv_enable_epoll" = xyes]) @@ -306,7 +302,7 @@ dnl How to copy one va_list to another? AC_CACHE_CHECK([for va_copy], unet_cv_c_va_copy, [AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <stdarg.h>], - [va_list ap1, ap2; va_copy(ap1, ap2);])], + [va_list ap1, ap2; va_copy(ap1, ap2);])], [unet_cv_c_va_copy="yes"], [unet_cv_c_va_copy="no"])]) @@ -316,7 +312,7 @@ AC_CACHE_CHECK([for __va_copy], unet_cv_c___va_copy, [AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <stdarg.h>], - [va_list ap1, ap2; __va_copy(ap1, ap2);])], + [va_list ap1, ap2; __va_copy(ap1, ap2);])], [unet_cv_c___va_copy="yes"], [unet_cv_c___va_copy="no"])]) @@ -329,7 +325,7 @@ if test -f /etc/resolv.conf; then unet_domain=`awk '/^domain/ { print $2; exit }' /etc/resolv.conf` if test x"$unet_domain" = x; then - unet_domain=`awk '/^search/ { print $2; exit }' /etc/resolv.conf` + unet_domain=`awk '/^search/ { print $2; exit }' /etc/resolv.conf` fi fi @@ -352,7 +348,7 @@ unet_VALUE([maxcon], $unet_maxcon, [Maximum number of connections server will accept], - [max connections], + [max connections], [# Fix up a spurious --with-maxcon if test x"$unet_cv_with_maxcon" = xyes -o x"$unet_cv_with_maxcon" = xno; then unet_cv_with_maxcon=$unet_maxcon @@ -362,7 +358,7 @@ [Maximum number of network connections]) dnl Report configuration -dnl AC_CONFIG_COMMANDS([default-1],[[echo " +dnl AC_OUTPUT_COMMANDS([echo " dnl ircu is now hopefully configured for your system. dnl Host system: $host_os @@ -377,7 +373,7 @@ dnl kqueue() engine: $unet_cv_enable_kqueue dnl /dev/poll engine: $unet_cv_enable_devpoll dnl epoll() engine: $unet_cv_enable_epoll -dnl "]],[[]]) +dnl "]) dnl Output everything... dnl AC_OUTPUT Index: ircd-ircdev/include/client.h diff -u ircd-ircdev/include/client.h:1.21 ircd-ircdev/include/client.h:1.22 --- ircd-ircdev/include/client.h:1.21 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/include/client.h Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Structures and functions for handling local clients. - * @version $Id: client.h,v 1.21 2007/07/21 23:51:39 zolty Exp $ + * @version $Id: client.h,v 1.22 2007/09/20 21:00:31 zolty Exp $ */ #ifndef INCLUDED_client_h #define INCLUDED_client_h @@ -325,7 +325,6 @@ /** Get client's warning countdown value. */ #define cli_warn_countdown(cli) (cli_connect(cli)->con_warn_countdown) - /** Get number of incoming bytes queued for client. */ #define cli_count(cli) con_count(cli_connect(cli)) /** Get file descriptor for sending in client's direction. */ Index: ircd-ircdev/include/crule.h diff -u ircd-ircdev/include/crule.h:1.6 ircd-ircdev/include/crule.h:1.7 --- ircd-ircdev/include/crule.h:1.6 Sun Apr 22 06:56:19 2007 +++ ircd-ircdev/include/crule.h Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file crule.h * @brief Interfaces and declarations for connection rule checking. - * @version $Id: crule.h,v 1.6 2007/04/22 13:56:19 zolty Exp $ + * @version $Id: crule.h,v 1.7 2007/09/20 21:00:31 zolty Exp $ */ #ifndef INCLUDED_crule_h #define INCLUDED_crule_h @@ -32,7 +32,6 @@ struct CRuleNode; extern int crule_eval(struct CRuleNode* rule); -extern struct CRuleNode* crule_parse(const char* rule); extern char *crule_text(struct CRuleNode *rule); extern struct CRuleNode* crule_make_and(struct CRuleNode *left, Index: ircd-ircdev/include/msgq.h diff -u ircd-ircdev/include/msgq.h:1.7 ircd-ircdev/include/msgq.h:1.8 --- ircd-ircdev/include/msgq.h:1.7 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/include/msgq.h Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Outbound message queue interface and declarations. - * @version $Id: msgq.h,v 1.7 2007/04/21 21:17:22 zolty Exp $ + * @version $Id: msgq.h,v 1.8 2007/09/20 21:00:31 zolty Exp $ */ #ifndef INCLUDED_msgq_h #define INCLUDED_msgq_h @@ -50,7 +50,7 @@ struct MsgQList { struct Msg *head; /**< First Msg in queue list */ struct Msg *tail; /**< Last Msg in queue list */ - unsigned int sent; /**< Bytes in *head that have already been sent */ + unsigned int sent; /**< Bytes in *head that have already been sent */ }; /** Entire two-priority message queue for a destination. */ Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.55 ircd-ircdev/include/patchlevel.h:1.56 --- ircd-ircdev/include/patchlevel.h:1.55 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/include/patchlevel.h Thu Sep 20 14:00:31 2007 @@ -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.55 2007/07/21 23:51:39 zolty Exp $ + * $Id: patchlevel.h,v 1.56 2007/09/20 21:00:31 zolty Exp $ * */ -#define PATCHLEVEL "7" +#define PATCHLEVEL "8" #define RELEASE "1.0.beta" Index: ircd-ircdev/include/send.h diff -u ircd-ircdev/include/send.h:1.10 ircd-ircdev/include/send.h:1.11 --- ircd-ircdev/include/send.h:1.10 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/include/send.h Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file send.h * @brief Send messages to certain targets. - * @version $Id: send.h,v 1.10 2007/04/21 21:17:22 zolty Exp $ + * @version $Id: send.h,v 1.11 2007/09/20 21:00:31 zolty Exp $ */ #ifndef INCLUDED_send_h #define INCLUDED_send_h @@ -116,7 +116,7 @@ #define SKIP_SERVERS 0x10 /**< skip server links */ /* Send command to all users having a particular flag set */ -extern void sendwallto_group(struct Client *from, int type, +extern void sendwallto_group(struct Client *from, int type, struct Client *one, const char *pattern, ...); Index: ircd-ircdev/ircd-patch diff -u ircd-ircdev/ircd-patch:1.1 ircd-ircdev/ircd-patch:1.2 --- ircd-ircdev/ircd-patch:1.1 Tue Dec 28 03:15:43 2004 +++ ircd-ircdev/ircd-patch Thu Sep 20 14:00:31 2007 @@ -20,7 +20,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA -# $Id: ircd-patch,v 1.1 2004/12/28 11:15:43 zolty Exp $ +# $Id: ircd-patch,v 1.2 2007/09/20 21:00:31 zolty Exp $ # # # Experimental centralized patch system for ircu @@ -51,15 +51,15 @@ update_patchlist() { list="" for name in $PLIST ; do - [ -f $MARKS/$name ] && list="$list.$name" + test -f $MARKS/$name && list="$list.$name" done echo "/* This file was automatically generated by ircd-patch */" > $PLIST_FILE echo "#define PATCHLIST \"$list\"" >> $PLIST_FILE echo "Updated $PLIST_FILE" } -[ ! -d $DIFFS ] && (echo "*** Missing $DIFFS, creating it" ; mkdir -p $DIFFS) -[ ! -d $MARKS ] && (echo "*** Missing $MARKS, creating it" ; mkdir -p $MARKS) +test -d $DIFFS || (echo "*** Missing $DIFFS, creating it" ; mkdir -p $DIFFS) +test -d $MARKS || (echo "*** Missing $MARKS, creating it" ; mkdir -p $MARKS) dry_run() { rejects=`patch -p0 -N -t --dry-run $2 < $1 | grep "hunk FAILED" | sed -e 's/.*to file / /;s/\.rej$//'` @@ -69,7 +69,7 @@ patch_list() { echo "Available patches (* marks applied patches):" for name in $PLIST ; do - [ -f $MARKS/$name ] && echo -n " * " || echo -n " " + test -f $MARKS/$name && echo -n " * " || echo -n " " echo $name done echo "Done." @@ -78,11 +78,11 @@ patch_test() { echo "Testing patches:" list="$*" - [ -z "$list" ] && list=$PLIST + test "z$list" = "z" && list=$PLIST for name in $list ; do fname=$DIFFS/$name.diff echo -ne " $name\t" - if [ ! -f $MARKS/$name ] ; then + if test ! -f $MARKS/$name ; then if dry_run "$fname" ; then echo -n " OK" else @@ -106,19 +106,19 @@ patch_add() { name=$1 fname="$DIFFS/$name.diff" - if [ ! -f $fname ]; then + if test ! -f $fname ; then echo "Patch $name ($fname) does not exist" retcode=3 return fi - if [ $force -lt 2 -a -f $MARKS/$name ] ; then + if test $force -lt 2 -a -f $MARKS/$name ; then echo "Patch $name seems already applied" retcode=4 return fi - if [ $force -lt 1 ]; then + if test $force -lt 1 ; then echo -n "Testing $fname... " if ! dry_run $fname ; then echo "Failed (use -f to force)." @@ -143,19 +143,19 @@ patch_del() { name=$1 fname="$DIFFS/$name.diff" - if [ ! -f $fname ]; then + if test ! -f $fname ; then echo "Patch $name ($fname) does not exist" retcode=3 return fi - if [ $force -lt 2 -a ! -f $MARKS/$name ] ; then + if test $force -lt 2 -a ! -f $MARKS/$name ; then echo "Patch $name doesn't seem to be applied" retcode=4 return fi - if [ $force -lt 1 ]; then + if test $force -lt 1 ; then echo -n "Testing $fname... " if ! dry_run $fname -R ; then echo "Failed (use -f to force)." @@ -191,8 +191,8 @@ echo "a patch is already applied." } -while [ "$1" == "-f" ]; do - force=$[$force + 1] +while test "$1" = "-f" ; do + force=`expr $force + 1` shift done Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.32 ircd-ircdev/ircd/channel.c:1.33 --- ircd-ircdev/ircd/channel.c:1.32 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/ircd/channel.c Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.32 2007/07/21 23:51:39 zolty Exp $ + * @version $Id: channel.c,v 1.33 2007/09/20 21:00:31 zolty Exp $ */ #include "config.h" @@ -82,7 +82,6 @@ set_ban_mask(struct Ban *ban, const char *banstr) { char *sep; - assert(banstr != NULL); ircd_strncpy(ban->banstr, banstr, sizeof(ban->banstr) - 1); sep = strrchr(banstr, '@'); @@ -303,7 +302,7 @@ * on the channel and we want them to contact IRC opers * who then will educate them on the use of Apass/Upass. */ - if (!chptr->mode.apass[0]) /* If no Apass, reset all modes. */ + if (!chptr->mode.apass[0]) /* If no Apass, reset all modes. */ { struct Ban *link, *next; chptr->mode.mode = 0; @@ -319,11 +318,10 @@ if (!feature_bool(FEAT_OPLEVELS)) { destruct_channel(chptr); - destruct_channel(chptr); return 0; } } - if (TStime() - chptr->creationtime < 172800) /* Channel younger than 48 hours? */ + if (TStime() - chptr->creationtime < 172800) /* Channel younger than 48 hours? */ schedule_destruct_event_1m(chptr); /* Get rid of it in approximately 4-5 minutes */ else schedule_destruct_event_48h(chptr); /* Get rid of it in approximately 48 hours */ @@ -452,10 +450,9 @@ hostmask = banlist->banstr + banlist->nu_len + 1; if (!((banlist->flags & BAN_IPMASK) && ipmask_check(&cli_ip(cptr), &banlist->address, banlist->addrbits)) - && match(hostmask, cli_user(cptr)->host) - && !(sr && !match(hostmask, sr))) - continue; - + && match(hostmask, cli_user(cptr)->host) + && !(sr && !match(hostmask, sr))) + continue; /* If an exception matches, no ban can match. */ if (banlist->flags & BAN_EXCEPTION) return NULL; @@ -598,7 +595,7 @@ } return 1; } - + /** Remove a user from a channel * This is the generic entry point for removing a user from a channel, this @@ -719,6 +716,7 @@ #if defined(UNDERNET) /* Discourage using the Apass to get op. They should use the upass. */ + if (IsChannelManager(member) && member->channel->mode.apass[0]) return 0; #endif @@ -1423,9 +1421,9 @@ * Adds an invite for a user to a channel. Limits the number of invites * to FEAT_MAXCHANNELSPERUSER. Does not notify the user. * - * @param[in] cptr The client to be invited. - * @param[in] chptr The channel to be invited to. - * @param[in] inviter The client inviting \a cptr. + * @param[in] cptr The client to be invited. + * @param[in] chptr The channel to be invited to. + * @param[in] inviter The client inviting \a cptr. */ void add_invite(struct Client *cptr, struct Channel *chptr, struct Client *inviter) { @@ -1433,6 +1431,7 @@ struct Invite *inv; int max = feature_int(FEAT_MAXCHANNELSPERUSER); int count = 0; + /* See if the user is already invited. */ while ((inv = *uprev) != NULL) { @@ -1790,32 +1789,32 @@ if ((totalbuflen - IRCD_MAX(9, tmp)) <= 0) /* don't overflow buffer */ MB_TYPE(mbuf, i) |= MODE_SAVE; /* save for later */ else { - char mode_char = 0; #if defined(DDB) || defined(SERVICES) + char mode_char = 0; + switch(MB_TYPE(mbuf, i) & (MODE_OWNER | MODE_CHANOP | MODE_VOICE)) -#else - switch(MB_TYPE(mbuf, i) & (MODE_CHANOP | MODE_VOICE)) -#endif { -#if defined(DDB) || defined(SERVICES) case MODE_OWNER: mode_char = 'q'; break; -#endif case MODE_CHANOP: mode_char = 'o'; break; case MODE_VOICE: mode_char = 'v'; break; - } - bufptr[(*bufptr_i)++] = mode_char; + } + bufptr[(*bufptr_i)++] = mode_char; + + totalbuflen -= IRCD_MAX(9, tmp) + 1; + } + + } else if (MB_TYPE(mbuf, i) & MODE_BAN) { +#else + bufptr[(*bufptr_i)++] = MB_TYPE(mbuf, i) & MODE_CHANOP ? 'o' : 'v'; totalbuflen -= IRCD_MAX(9, tmp) + 1; } -#if defined(UNDERNET) } else if (MB_TYPE(mbuf, i) & (MODE_BAN | MODE_APASS | MODE_UPASS)) { -#else - } else if (MB_TYPE(mbuf, i) & MODE_BAN) { #endif tmp = strlen(MB_STRING(mbuf, i)); @@ -1974,6 +1973,7 @@ #endif /* defined(DDB) */ sendcmdto_channel(app_source, CMD_MODE, mbuf->mb_channel, NULL, SKIP_SERVERS, "%H %s%s%s%s%s%s%s%s", mbuf->mb_channel, +/* TODO-ZOLTAN: Revisar */ /* rembuf_i || rembuf_local_i ? "-" : "", rembuf, rembuf_local, addbuf_i || addbuf_local_i ? "+" : "", @@ -2012,9 +2012,8 @@ } #if defined(UNDERNET) - /* if we're changing oplevels we know the oplevel, pass it on */ - if (mbuf->mb_channel->mode.apass[0] - && (MB_TYPE(mbuf, i) & MODE_CHANOP) + /* if we're changing oplevels and we know the oplevel, pass it on */ + if ((MB_TYPE(mbuf, i) & MODE_CHANOP) && MB_OPLEVEL(mbuf, i) < MAXOPLEVEL) *strptr_i += ircd_snprintf(0, strptr + *strptr_i, BUFSIZE - *strptr_i, " %s%s:%d", @@ -2182,6 +2181,7 @@ mode &= (MODE_ADD | MODE_DEL | MODE_PRIVATE | MODE_SECRET | MODE_MODERATED | MODE_TOPICLIMIT | MODE_INVITEONLY | MODE_NOPRIVMSGS | MODE_REGONLY | #if defined(DDB) || defined(SERVICES) +/* TODO-ZOLTAN: Revisar */ /* MODE_REGCHAN | */ #endif MODE_DELJOINS | MODE_WASDELJOINS); @@ -2615,7 +2615,7 @@ if (!state->mbuf) return; - + /* Skip if this is a burst, we have a key already and the new key is * after the old one alphabetically */ if ((state->flags & MODE_PARSE_BURST) && @@ -2648,8 +2648,7 @@ if (state->flags & MODE_PARSE_SET) { if (state->dir == MODE_DEL) /* remove the old key */ *state->chptr->mode.key = '\0'; - else if (!state->chptr->mode.key[0] - || ircd_strcmp(t_str, state->chptr->mode.key) < 0) + else ircd_strncpy(state->chptr->mode.key, t_str, KEYLEN); } } @@ -2699,7 +2698,7 @@ } else { send_reply(state->sptr, ERR_NOMANAGER, state->chptr->chname, (TStime() - state->chptr->creationtime < 172800) ? - "approximately 4-5 minutes" : "approximately 48 hours"); + "approximately 4-5 minutes" : "approximately 48 hours"); } return; } @@ -2840,6 +2839,7 @@ return; } } + if (state->done & DONE_APASS) /* allow apass to be set only once */ return; state->done |= DONE_APASS; @@ -2885,18 +2885,19 @@ ircd_strncpy(state->chptr->mode.apass, t_str, KEYLEN); /* Make it VERY clear to the user that this is a one-time password */ if (MyUser(state->sptr)) { - send_reply(state->sptr, RPL_APASSWARN_SET, state->chptr->mode.apass); - send_reply(state->sptr, RPL_APASSWARN_SECRET, state->chptr->chname, + send_reply(state->sptr, RPL_APASSWARN_SET, state->chptr->mode.apass); + send_reply(state->sptr, RPL_APASSWARN_SECRET, state->chptr->chname, state->chptr->mode.apass); } /* Give the channel manager level 0 ops. There should not be tested for IsChannelManager here because - on the local server it is impossible to set the apass if one - isn't a channel manager and remote servers might need to sync - the oplevel here: when someone creates a channel (and becomes - channel manager) during a net.break, and only sets the Apass - after the net rejoined, they will have oplevel MAXOPLEVEL on - all remote servers. */ + on the local server it is impossible to set the apass if one + isn't a channel manager and remote servers might need to sync + the oplevel here: when someone creates a channel (and becomes + channel manager) during a net.break, and only sets the Apass + after the net rejoined, they will have oplevel MAXOPLEVEL on + all remote servers. */ + if (state->member) SetOpLevel(state->member, 0); } else { /* remove the old apass */ @@ -3105,7 +3106,6 @@ continue; } else if (ban->flags & BAN_DEL) { /* Deleted a ban? */ char *bandup; - DupString(bandup, ban->banstr); modebuf_mode_string(state->mbuf, MODE_DEL | MODE_BAN, bandup, 1); @@ -3145,7 +3145,6 @@ len -= banlen; } else { char *bandup; - /* add the ban to the buffer */ DupString(bandup, ban->banstr); modebuf_mode_string(state->mbuf, MODE_ADD | MODE_BAN, @@ -3300,7 +3299,7 @@ /* prevent +k users from being deopped */ if (IsChannelService(state->cli_change[i].client)) { if (state->flags & MODE_PARSE_FORCE) /* it was forced */ - sendto_opmask(0, SNO_HACK4, "Deop of +k user on %H by %s", + sendto_opmask(0, SNO_HACK4, "Deop of +k user on %H by %s", state->chptr, (IsServer(state->sptr) ? cli_name(state->sptr) : cli_name((cli_user(state->sptr))->server))); @@ -3327,10 +3326,10 @@ } #if defined(UNDERNET) - /* Forbid deopping other members with an oplevel less than + /* Forbid deopping other members with an oplevel less than * one's own level, and other members with an oplevel the same * as one's own unless both are at MAXOPLEVEL. */ - if (state->sptr != state->cli_change[i].client + if (state->sptr != state->cli_change[i].client && state->member && ((OpLevel(member) < OpLevel(state->member)) || (OpLevel(member) == OpLevel(state->member) @@ -3361,8 +3360,8 @@ SetOpLevel(member, state->cli_change[i].oplevel); else if (!state->member) SetOpLevel(member, MAXOPLEVEL); - else if (!state->chptr->mode.apass[0] || OpLevel(state->member) == MAXOPLEVEL) - SetOpLevel(member, MAXOPLEVEL); + else if (OpLevel(state->member) >= MAXOPLEVEL) + SetOpLevel(member, OpLevel(state->member)); else SetOpLevel(member, OpLevel(state->member) + 1); } @@ -3763,8 +3762,8 @@ * exactly the same logic, albeit somewhat more concise, as was in * the original m_part.c */ - /* got to remove user here */ - if (jbuf->jb_type == JOINBUF_TYPE_PARTALL || is_local) + if (jbuf->jb_type == JOINBUF_TYPE_PARTALL || + is_local) /* got to remove user here */ remove_user_from_channel(jbuf->jb_source, chan); } else { #if defined(UNDERNET) @@ -3785,7 +3784,7 @@ #endif /* send JOIN notification to all servers (CREATE is sent later). */ - if (jbuf->jb_type != JOINBUF_TYPE_CREATE && !IsLocalChannel(chan->chname)) + if (jbuf->jb_type != JOINBUF_TYPE_CREATE && !is_local) { #if defined(DDB) if (flags & CHFL_OWNER) @@ -3808,7 +3807,7 @@ /* send an op, too, if needed */ #if defined(UNDERNET) if (flags & CHFL_CHANOP && (oplevel < MAXOPLEVEL || !MyUser(jbuf->jb_source))) - sendcmdto_channel((chan->mode.apass[0] ? &his : jbuf->jb_source), + sendcmdto_channel((chan->mode.apass[0] ? &his : jbuf->jb_source), CMD_MODE, chan, NULL, SKIP_SERVERS, "%H +o %C", chan, jbuf->jb_source); #elif defined(DDB) Index: ircd-ircdev/ircd/convert-conf.c diff -u ircd-ircdev/ircd/convert-conf.c:1.3 ircd-ircdev/ircd/convert-conf.c:1.4 --- ircd-ircdev/ircd/convert-conf.c:1.3 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/ircd/convert-conf.c Thu Sep 20 14:00:31 2007 @@ -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: convert-conf.c,v 1.3 2007/04/26 21:17:11 zolty Exp $ + * $Id: convert-conf.c,v 1.4 2007/09/20 21:00:31 zolty Exp $ * convert-conf.c - Convert ircu2.10.11 ircd.conf to ircu2.10.12 format. * */ @@ -218,12 +218,12 @@ { for (sl = conn->origins; sl; sl = sl->next) fprintf(stdout, "# %s\n", sl->value); - if (conn->host == NULL + if (conn->host == NULL || conn->password == NULL || conn->class == NULL) { - fprintf(stderr,"H:line missing C:line for %s\n", conn->name); - continue; - } + fprintf(stderr,"H:line missing C:line for %s\n", conn->name); + continue; + } fprintf(stdout, "Connect {\n\tname =\"%s\";\n\thost = \"%s\";\n" Index: ircd-ircdev/ircd/crule.c diff -u ircd-ircdev/ircd/crule.c:1.7 ircd-ircdev/ircd/crule.c:1.8 --- ircd-ircdev/ircd/crule.c:1.7 Sun Apr 22 06:56:20 2007 +++ ircd-ircdev/ircd/crule.c Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ /** * @file * @brief Connection rule parser and checker - * @version $Id: crule.c,v 1.7 2007/04/22 13:56:20 zolty Exp $ + * @version $Id: crule.c,v 1.8 2007/09/20 21:00:31 zolty Exp $ * * by Tony Vencill (Tonto on IRC) <ve...@bg...> * rewritten by Michael Poole <md...@tr...> @@ -43,9 +43,6 @@ #include "s_bsd.h" #include "struct.h" -#include <stdio.h> -#include <stdlib.h> - /** Evaluation function for a connection rule. */ typedef int (*crule_funcptr) (struct CRuleNode *); Index: ircd-ircdev/ircd/gline.c diff -u ircd-ircdev/ircd/gline.c:1.20 ircd-ircdev/ircd/gline.c:1.21 --- ircd-ircdev/ircd/gline.c:1.20 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/ircd/gline.c Thu Sep 20 14:00:31 2007 @@ -23,7 +23,7 @@ */ /** @file * @brief Implementation of Gline manipulation functions. - * @version $Id: gline.c,v 1.20 2007/04/21 21:17:22 zolty Exp $ + * @version $Id: gline.c,v 1.21 2007/09/20 21:00:31 zolty Exp $ */ #include "config.h" @@ -71,7 +71,6 @@ /** List of BadChan G-lines. */ static struct Gline* BadChanGlineList = 0; - /** Count number of users who match \a mask. * @param[in] mask user\@host or user\@ip mask to check. * @return Count of matching users. @@ -82,7 +81,7 @@ struct Client *acptr; int count = 0; char namebuf[USERLEN + HOSTLEN + 2]; - char ipbuf[USERLEN + 16 + 2]; + char ipbuf[USERLEN + SOCKIPLEN + 2]; for (acptr = GlobalClientList; acptr; acptr = cli_next(acptr)) { if (!IsUser(acptr)) @@ -899,7 +898,7 @@ send_reply(sptr, RPL_STATSGLINE, 'G', gline->gl_user, gline->gl_host ? "@" : "", gline->gl_host ? gline->gl_host : "", - gline->gl_expire + TSoffset, + gline->gl_expire + TSoffset, GlineIsActive(gline) ? '+' : '-', gline->gl_reason); } Index: ircd-ircdev/ircd/hash.c diff -u ircd-ircdev/ircd/hash.c:1.14 ircd-ircdev/ircd/hash.c:1.15 --- ircd-ircdev/ircd/hash.c:1.14 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/ircd/hash.c Thu Sep 20 14:00:31 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Hash table management. - * @version $Id: hash.c,v 1.14 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: hash.c,v 1.15 2007/09/20 21:00:31 zolty Exp $ * * This file used to use some very complicated hash function. Now it * uses CRC-32, but effectively remaps each input byte according to a @@ -488,7 +488,6 @@ stats_nickjupes(struct Client* to, const struct StatDesc* sd, char* param) { int i; - for (i = 0; i < JUPEHASHSIZE; i++) if (jupeTable[i][0]) send_reply(to, RPL_STATSJLINE, jupeTable[i]); Index: ircd-ircdev/ircd/ircd.c diff -u ircd-ircdev/ircd/ircd.c:1.28 ircd-ircdev/ircd/ircd.c:1.29 --- ircd-ircdev/ircd/ircd.c:1.28 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/ircd/ircd.c Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Entry point and other initialization functions for the daemon. - * @version $Id: ircd.c,v 1.28 2007/04/26 21:17:11 zolty Exp $ + * @version $Id: ircd.c,v 1.29 2007/09/20 21:00:31 zolty Exp $ */ #include "config.h" @@ -211,8 +211,8 @@ *--------------------------------------------------------------------------*/ /** Handle out-of-memory condition. */ static void outofmemory(void) { - Debug((DEBUG_FATAL, "Out of memory")); - server_panic("Out of Memory"); + Debug((DEBUG_FATAL, "Out of memory: restarting server...")); + server_restart("Out of Memory"); } @@ -228,11 +228,11 @@ sprintf(buff, "%5d\n", (int)getpid()); if (write(thisServer.pid_fd, buff, strlen(buff)) == -1) log_write(LS_SYSTEM, L_WARNING, 0, "Error writing to pid file %s: %m", - feature_str(FEAT_PPATH)); + feature_str(FEAT_PPATH)); return; } log_write(LS_SYSTEM, L_WARNING, 0, "Error opening pid file %s: %m", - feature_str(FEAT_PPATH)); + feature_str(FEAT_PPATH)); } /** Try to create the PID file. @@ -262,7 +262,7 @@ static void try_connections(struct Event* ev) { struct ConfItem* aconf; struct ConfItem** pconf; - time_t next = 0; + time_t next; struct Jupe* ajupe; int hold; int done; @@ -746,8 +746,8 @@ debug_init(thisServer.bootopt & BOOT_TTY); if (check_pid()) { - log_write(LS_SYSTEM, L_CRIT, 0, - "Failed to acquire PID file lock after fork"); + log_write(LS_SYSTEM, L_CRIT, 0, + "Failed to acquire PID file lock after fork"); return 2; } Index: ircd-ircdev/ircd/ircd_crypt.c diff -u ircd-ircdev/ircd/ircd_crypt.c:1.7 ircd-ircdev/ircd/ircd_crypt.c:1.8 --- ircd-ircdev/ircd/ircd_crypt.c:1.7 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/ircd_crypt.c Thu Sep 20 14:00:31 2007 @@ -22,7 +22,7 @@ /** * @file * @brief Core password encryption routines. - * @version $Id: ircd_crypt.c,v 1.7 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: ircd_crypt.c,v 1.8 2007/09/20 21:00:31 zolty Exp $ * * This is a new look crypto API for ircu, it can handle different * password formats by the grace of magic tokens at the beginning of the @@ -43,6 +43,7 @@ * * -- blessed be, hikari. */ + #include "config.h" #include "ircd_crypt.h" #include "ircd_alloc.h" Index: ircd-ircdev/ircd/ircd_crypt_native.c diff -u ircd-ircdev/ircd/ircd_crypt_native.c:1.6 ircd-ircdev/ircd/ircd_crypt_native.c:1.7 --- ircd-ircdev/ircd/ircd_crypt_native.c:1.6 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/ircd_crypt_native.c Thu Sep 20 14:00:31 2007 @@ -22,10 +22,10 @@ /** * @file * @brief Native crypt() function routines - * @version $Id: ircd_crypt_native.c,v 1.6 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: ircd_crypt_native.c,v 1.7 2007/09/20 21:00:31 zolty Exp $ * * Routines for handling passwords encrypted with the system's native crypt() - * function (typically a DES encryption routine, but can be anything nowdays). + * function (typically a DES encryption routine, but can be anything nowadays). * */ #define _XOPEN_SOURCE 600 Index: ircd-ircdev/ircd/ircd_events.c diff -u ircd-ircdev/ircd/ircd_events.c:1.10 ircd-ircdev/ircd/ircd_events.c:1.11 --- ircd-ircdev/ircd/ircd_events.c:1.10 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/ircd/ircd_events.c Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of event loop mid-layer. - * @version $Id: ircd_events.c,v 1.10 2007/04/26 21:17:11 zolty Exp $ + * @version $Id: ircd_events.c,v 1.11 2007/09/20 21:00:31 zolty Exp $ */ #include "config.h" @@ -172,7 +172,7 @@ gen->gh_flags |= GEN_ERROR; Debug((DEBUG_LIST, "Generating event type %s for generator %p (%s)", - event_to_name(type), gen, gen_flags(gen->gh_flags))); + event_to_name(type), gen, gen_flags(gen->gh_flags))); ev.ev_next = NULL; ev.ev_prev_p = NULL; @@ -291,7 +291,7 @@ return; Debug((DEBUG_LIST, "Generating event type %s for generator %p (%s)", - event_to_name(type), gen, gen_flags(gen->gh_flags))); + event_to_name(type), gen, gen_flags(gen->gh_flags))); if ((ptr = evInfo.events_free)) evInfo.events_free = ptr->ev_next; /* pop one off the freelist */ Index: ircd-ircdev/ircd/ircd_features.c diff -u ircd-ircdev/ircd/ircd_features.c:1.20 ircd-ircdev/ircd/ircd_features.c:1.21 --- ircd-ircdev/ircd/ircd_features.c:1.20 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/ircd/ircd_features.c Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of configurable feature support. - * @version $Id: ircd_features.c,v 1.20 2007/07/21 23:51:39 zolty Exp $ + * @version $Id: ircd_features.c,v 1.21 2007/09/20 21:00:31 zolty Exp $ */ #include "config.h" @@ -909,7 +909,7 @@ for (i = 0; features[i].type; i++) { struct FeatureDesc *feat = &features[i]; - switch (feat_type(feat)) { + switch (feat_type(feat)) { case FEAT_NONE: /* you're on your own */ break; Index: ircd-ircdev/ircd/ircd_log.c diff -u ircd-ircdev/ircd/ircd_log.c:1.16 ircd-ircdev/ircd/ircd_log.c:1.17 --- ircd-ircdev/ircd/ircd_log.c:1.16 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/ircd/ircd_log.c Thu Sep 20 14:00:31 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief IRC logging implementation. - * @version $Id: ircd_log.c,v 1.16 2007/04/26 21:17:11 zolty Exp $ + * @version $Id: ircd_log.c,v 1.17 2007/09/20 21:00:31 zolty Exp $ */ #include "config.h" @@ -181,7 +181,7 @@ }; /** Modifiable static information. */ -static struct logInfo_s{ +static struct logInfo_s { struct LogFile *filelist; /**< list of log files */ struct LogFile *freelist; /**< list of free'd log files */ int facility; /**< default facility */ Index: ircd-ircdev/ircd/ircd_parser.y diff -u ircd-ircdev/ircd/ircd_parser.y:1.27 ircd-ircdev/ircd/ircd_parser.y:1.28 --- ircd-ircdev/ircd/ircd_parser.y:1.27 Thu Apr 26 12:17:31 2007 +++ ircd-ircdev/ircd/ircd_parser.y Thu Sep 20 14:00:31 2007 @@ -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.27 2007/04/26 19:17:31 zolty Exp $ + * $Id: ircd_parser.y,v 1.28 2007/09/20 21:00:31 zolty Exp $ * */ %{ @@ -63,6 +63,7 @@ #define MAX_STRINGS 80 /* Maximum number of feature params. */ #define USE_IPV4 (1 << 16) #define USE_IPV6 (1 << 17) + extern struct LocalConf localConf; extern struct DenyConf* denyConfList; extern struct CRuleConf* cruleConfList; @@ -258,7 +259,6 @@ } %% - /* Blocks in the config file... */ blocks: blocks block | block; block: adminblock | generalblock | classblock | connectblock | Index: ircd-ircdev/ircd/ircd_res.c diff -u ircd-ircdev/ircd/ircd_res.c:1.15 ircd-ircdev/ircd/ircd_res.c:1.16 --- ircd-ircdev/ircd/ircd_res.c:1.15 Thu Apr 26 12:17:31 2007 +++ ircd-ircdev/ircd/ircd_res.c Thu Sep 20 14:00:31 2007 @@ -41,7 +41,7 @@ */ /** @file * @brief IRC resolver functions. - * @version $Id: ircd_res.c,v 1.15 2007/04/26 19:17:31 zolty Exp $ + * @version $Id: ircd_res.c,v 1.16 2007/09/20 21:00:31 zolty Exp $ */ #include "client.h" #include "ircd_alloc.h" @@ -489,8 +489,8 @@ } /** Send a query to look up the address for a name. - * @param[in] callback Callback function to call upon completion. - * @param[in] ctx Context information to pass to \a callback. + * @param[in] callback Function to call upon completion. + * @param[in] ctx Context data to pass to \a callback. * @param[in] name Hostname to look up. * @param[in] request DNS lookup structure (may be NULL). * @param[in] type Preferred request type. @@ -522,7 +522,8 @@ } /** Send a query to look up the name for an address. - * @param[in] query Callback information. + * @param[in] callback Callback function to call upon completion. + * @param[in] ctx Context information to pass to \a callback. * @param[in] addr Address to look up. * @param[in] request DNS lookup structure (may be NULL). */ Index: ircd-ircdev/ircd/ircd_reslib.c diff -u ircd-ircdev/ircd/ircd_reslib.c:1.5 ircd-ircdev/ircd/ircd_reslib.c:1.6 --- ircd-ircdev/ircd/ircd_reslib.c:1.5 Thu Apr 26 12:17:31 2007 +++ ircd-ircdev/ircd/ircd_reslib.c Thu Sep 20 14:00:31 2007 @@ -122,7 +122,7 @@ /** @file * @brief DNS resolver library functions. - * @version $Id: ircd_reslib.c,v 1.5 2007/04/26 19:17:31 zolty Exp $ + * @version $Id: ircd_reslib.c,v 1.6 2007/09/20 21:00:31 zolty Exp $ */ /** Array of nameserver addresses. */ @@ -458,7 +458,8 @@ const unsigned char *src, char *dst, size_t dstsiz) { unsigned char tmp[NS_MAXCDNAME]; - int n; + int n; + if ((n = irc_ns_name_unpack(msg, eom, src, tmp, sizeof tmp)) == -1) return(-1); if (irc_ns_name_ntop((char*)tmp, (char*)dst, dstsiz) == -1) Index: ircd-ircdev/ircd/ircd_signal.c diff -u ircd-ircdev/ircd/ircd_signal.c:1.7 ircd-ircdev/ircd/ircd_signal.c:1.8 --- ircd-ircdev/ircd/ircd_signal.c:1.7 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/ircd/ircd_signal.c Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Signal handlers for ircu. - * @version $Id: ircd_signal.c,v 1.7 2007/04/26 21:17:11 zolty Exp $ + * @version $Id: ircd_signal.c,v 1.8 2007/09/20 21:00:31 zolty Exp $ */ #include "config.h" @@ -248,15 +248,6 @@ signal_add(&sig_int, sigint_callback, 0, SIGINT); signal_add(&sig_term, sigterm_callback, 0, SIGTERM); signal_add(&sig_chld, sigchld_callback, 0, SIGCHLD); - -#ifdef HAVE_RESTARTABLE_SYSCALLS - /* - * At least on Apollo sr10.1 it seems continuing system calls - * after signal is the default. The following 'siginterrupt' - * should change that default to interrupting calls. - */ - siginterrupt(SIGALRM, 1); -#endif } /** Kill and clean up all child processes. */ Index: ircd-ircdev/ircd/listener.c diff -u ircd-ircdev/ircd/listener.c:1.12 ircd-ircdev/ircd/listener.c:1.13 --- ircd-ircdev/ircd/listener.c:1.12 Sun Apr 22 06:56:20 2007 +++ ircd-ircdev/ircd/listener.c Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation for handling listening sockets. - * @version $Id: listener.c,v 1.12 2007/04/22 13:56:20 zolty Exp $ + * @version $Id: listener.c,v 1.13 2007/09/20 21:00:31 zolty Exp $ */ #include "config.h" @@ -489,7 +489,7 @@ * Enable the server to clear out other connections before * continuing to accept() new connections. */ - if (fd > maxclients - 1) + if (fd >= maxclients) { ++ServerStats->is_ref; send(fd, "ERROR :All connections in use\r\n", 32, 0); Index: ircd-ircdev/ircd/m_account.c diff -u ircd-ircdev/ircd/m_account.c:1.12 ircd-ircdev/ircd/m_account.c:1.13 --- ircd-ircdev/ircd/m_account.c:1.12 Sun Apr 22 06:56:20 2007 +++ ircd-ircdev/ircd/m_account.c Thu Sep 20 14:00:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for ACCOUNT command. - * @version $Id: m_account.c,v 1.12 2007/04/22 13:56:20 zolty Exp $ + * @version $Id: m_account.c,v 1.13 2007/09/20 21:00:31 zolty Exp $ */ #include "config.h" @@ -41,6 +41,7 @@ #include <string.h> /** Handle an ACCOUNT message from a server connection. + * * \a parv has the following elements: * \li \a parv[1] is the numnick of the client to act on * \li \a parv[2] is the account name Index: ircd-ircdev/ircd/m_admin.c diff -u ircd-ircdev/ircd/m_admin.c:1.7 ircd-ircdev/ircd/m_admin.c:1.8 --- ircd-ircdev/ircd/m_admin.c:1.7 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_admin.c Thu Sep 20 14:00:32 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for ADMIN command. - * @version $Id: m_admin.c,v 1.7 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_admin.c,v 1.8 2007/09/20 21:00:32 zolty Exp $ */ #include "config.h" @@ -108,8 +108,6 @@ * \a parv has the following elements: * \li \a parv[1] is the server name being interrogated. * - * parv[0] = sender prefix - * parv[1] = servername * See @ref m_functions for discussion of the arguments. * @param[in] cptr Client that sent us the message. * @param[in] sptr Original source of message. Index: ircd-ircdev/ircd/m_asll.c diff -u ircd-ircdev/ircd/m_asll.c:1.5 ircd-ircdev/ircd/m_asll.c:1.6 --- ircd-ircdev/ircd/m_asll.c:1.5 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_asll.c Thu Sep 20 14:00:32 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for ASLL command. - * @version $Id: m_asll.c,v 1.5 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_asll.c,v 1.6 2007/09/20 21:00:32 zolty Exp $ */ #include "config.h" @@ -62,7 +62,6 @@ return 0; } - /** Handle an ASLL message from a server. * * In the "outbound" direction, \a parv has the following elements: Index: ircd-ircdev/ircd/m_away.c diff -u ircd-ircdev/ircd/m_away.c:1.8 ircd-ircdev/ircd/m_away.c:1.9 --- ircd-ircdev/ircd/m_away.c:1.8 Sat Apr 21 14:17:23 2007 +++ ircd-ircdev/ircd/m_away.c Thu Sep 20 14:00:32 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for AWAY command. - * @version $Id: m_away.c,v 1.8 2007/04/21 21:17:23 zolty Exp $ + * @version $Id: m_away.c,v 1.9 2007/09/20 21:00:32 zolty Exp $ */ #include "config.h" @@ -104,7 +104,7 @@ if (user_set_away(cli_user(sptr), away_message)) { - if (!was_away) + if (!was_away) sendcmdto_serv(sptr, CMD_AWAY, cptr, ":%s", away_message); send_reply(sptr, RPL_NOWAWAY); } Index: ircd-ircdev/ircd/m_burst.c diff -u ircd-ircdev/ircd/m_burst.c:1.20 ircd-ircdev/ircd/m_burst.c:1.21 --- ircd-ircdev/ircd/m_burst.c:1.20 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/ircd/m_burst.c Thu Sep 20 14:00:32 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Handlers for BURST command. - * @version $Id: m_burst.c,v 1.20 2007/07/21 23:51:39 zolty Exp $ + * @version $Id: m_burst.c,v 1.21 2007/09/20 21:00:32 zolty Exp $ */ #include "config.h" @@ -188,55 +188,51 @@ if (parc < 3) return protocol_violation(sptr,"Too few parameters for BURST"); - if (!IsBurst(sptr)) /* don't allow BURST outside of burst */ - return exit_client_msg(cptr, cptr, &me, "HACK: BURST message outside " - "net.burst from %s", cli_name(sptr)); - if (!(chptr = get_channel(sptr, parv[1], CGT_CREATE))) return 0; /* can't create the channel? */ timestamp = atoi(parv[2]); #if defined(UNDERNET) - if (chptr->creationtime) /* 0 for new (empty) channels, + if (chptr->creationtime) /* 0 for new (empty) channels, i.e. when this server just restarted. */ { - if (parc == 3) /* Zannel BURST? */ + if (parc == 3) /* Zannel BURST? */ { /* An empty channel without +A set, will cause a BURST message - with exactly 3 parameters (because all modes have been reset). - If the timestamp on such channels is only a few seconds older - from our own, then we ignore this burst: we do not deop our - own side. - Likewise, we expect the other (empty) side to copy our timestamp - from our own BURST message, even though it is slightly larger. - - The reason for this is to allow people to join an empty - non-A channel (a zannel) during a net.split, and not be - deopped when the net reconnects (with another zannel). When - someone joins a split zannel, their side increments the TS by one. - If they cycle a few times then we still don't have a reason to - deop them. Theoretically I see no reason not to accept ANY timestamp, - but to be sure, we only accept timestamps that are just a few - seconds off (one second for each time they cycled the channel). */ + with exactly 3 parameters (because all modes have been reset). + If the timestamp on such channels is only a few seconds older + from our own, then we ignore this burst: we do not deop our + own side. + Likewise, we expect the other (empty) side to copy our timestamp + from our own BURST message, even though it is slightly larger. + + The reason for this is to allow people to join an empty + non-A channel (a zannel) during a net.split, and not be + deopped when the net reconnects (with another zannel). When + someone joins a split zannel, their side increments the TS by one. + If they cycle a few times then we still don't have a reason to + deop them. Theoretically I see no reason not to accept ANY timestamp, + but to be sure, we only accept timestamps that are just a few + seconds off (one second for each time they cycled the channel). */ /* Don't even deop users who cycled four times during the net.break. */ if (timestamp < chptr->creationtime && chptr->creationtime <= timestamp + 4 && - chptr->users != 0) /* Only do this when WE have users, so that - if we do this the BURST that we sent has - parc > 3 and the other side will use the - test below: */ - timestamp = chptr->creationtime; /* Do not deop our side. */ + chptr->users != 0) /* Only do this when WE have users, so that + if we do this the BURST that we sent has + parc > 3 and the other side will use the + test below: */ + timestamp = chptr->creationtime; /* Do not deop our side. */ } else if (chptr->creationtime < timestamp && timestamp <= chptr->creationtime + 4 && - chptr->users == 0) + chptr->users == 0) { /* If one side of the net.junction does the above timestamp = chptr->creationtime, then the other - side must do this: */ - chptr->creationtime = timestamp; /* Use the same TS on both sides. */ + side must do this: */ + chptr->creationtime = timestamp; /* Use the same TS on both sides. */ } /* In more complex cases, we might still end up with a creationtime desync of a few seconds, but that should @@ -490,7 +486,7 @@ current_mode = (current_mode & ~CHFL_DELAYED) | CHFL_CHANOP; do { level_increment = 10 * level_increment + *ptr++ - '0'; - } while(IsDigit(*ptr)); + } while (IsDigit(*ptr)); oplevel += level_increment; } #else @@ -651,7 +647,6 @@ /* remove ban from channel */ if (lp->flags & (BAN_OVERLAPPED | BAN_BURST_WIPEOUT)) { char *bandup; - DupString(bandup, lp->banstr); modebuf_mode_string(mbuf, MODE_DEL | MODE_BAN, bandup, 1); Index: ircd-ircdev/ircd/m_cap.c diff -u ircd-ircdev/ircd/m_cap.c:1.6 ircd-ircdev/ircd/m_cap.c:1.7 --- ircd-ircdev/ircd/m_cap.c:1.6 Thu Apr 26 12:17:31 2007 +++ ircd-ircdev/ircd/m_cap.c Thu Sep 20 14:00:32 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Capability negotiation commands - * @version $Id: m_cap.c,v 1.6 2007/04/26 19:17:31 zolty Exp $ + * @version $Id: m_cap.c,v 1.7 2007/09/20 21:00:32 zolty Exp $ */ #include "config.h" @@ -47,7 +47,7 @@ struct capabilities { enum Capab cap; /**< Capability identifier. */ char *capstr; /**< Capability id string. */ - unsigned long flags; /**< Bitset of CAPFL_* flags. */ + unsigned long flags; /**< Bitset of CAPFL_* flags. */ char *name; /**< Long capability name. */ int namelen; /**< Length of capability name string. */ }; @@ -228,7 +228,6 @@ { if (IsUnknown(sptr)) /* registration hasn't completed; suspend it... */ auth_cap_start(cli_auth(sptr)); - return send_caplist(sptr, 0, 0, "LS"); /* send list of capabilities */ } Index: ircd-ircdev/ircd/m_clearmode.c diff -u ircd-ircdev/ircd/m_clearmode.c:1.13 ircd-ircdev/ircd/m_clearmode.c:1.14 --- ircd-ircdev/ircd/m_clearmode.c:1.13 Sat Apr 21 14:17:23 2007 +++ ircd-ircdev/ircd/m_clearmode.c Thu Sep 20 14:00:32 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for CLEARMODE command. - * @version $Id: m_clearmode.c,v 1.13 2007/04/21 21:17:23 zolty Exp $ + * @version $Id: m_clearmode.c,v 1.14 2007/09/20 21:00:32 zolty Exp $ */ #include "config.h" @@ -122,7 +122,6 @@ if (del_mode & MODE_BAN) { for (link = chptr->banlist; link; link = next) { char *bandup; - next = link->next; DupString(bandup, link->banstr); @@ -190,7 +189,7 @@ } /** Handle a CLEARMODE message from a server. - * + * * \a parv has the following elements: * \li \a parv[1] is the channel to affect * \li \a parv[2] is the channel modes to clear Index: ircd-ircdev/ircd/m_connect.c diff -u ircd-ircdev/ircd/m_connect.c:1.9 ircd-ircdev/ircd/m_connect.c:1.10 --- ircd-ircdev/ircd/m_connect.c:1.9 Sat Apr 21 14:17:23 2007 +++ ircd-ircdev/ircd/m_connect.c Thu Sep 20 14:00:32 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for CONNECT command. - * @version $Id: m_connect.c,v 1.9 2007/04/21 21:17:23 zolty Exp $ + * @version $Id: m_connect.c,v 1.10 2007/09/20 21:00:32 zolty Exp $ */ #include "config.h" @@ -170,7 +170,6 @@ * * See @ref m_functions for discussion of the arguments. * @param[in] cptr Client that sent us the message. - * @param[in] cptr Client that sent us the message. * @param[in] sptr Original source of message. * @param[in] parc Number of arguments. * @param[in] parv Argument vector. Index: ircd-ircdev/ircd/m_create.c diff -u ircd-ircdev/ircd/m_create.c:1.11 ircd-ircdev/ircd/m_create.c:1.12 --- ircd-ircdev/ircd/m_create.c:1.11 Sat Apr 21 14:17:23 2007 +++ ircd-ircdev/ircd/m_create.c Thu Sep 20 14:00:32 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for CREATE command. - * @version $Id: m_create.c,v 1.11 2007/04/21 21:17:23 zolty Exp $ + * @version $Id: m_create.c,v 1.12 2007/09/20 21:00:32 zolty Exp $ */ #include "config.h" @@ -121,33 +121,32 @@ /* Check if we need to bounce a mode */ if (TStime() - chanTS > TS_LAG_TIME || (chptr->creationtime && chanTS > chptr->creationtime && - /* Accept CREATE for zannels. This is only really necessary on a network - with servers prior to 2.10.12.02: we just accept their TS and ignore - the fact that it was a zannel. The influence of this on a network - that is completely 2.10.12.03 or higher is neglectable: Normally - a server only sends a CREATE after first sending a DESTRUCT. Thus, - by receiving a CREATE for a zannel one of three things happened: - 1. The DESTRUCT was sent during a net.break; this could mean that - our zannel is at the verge of expiring too, it should have been - destructed. It is correct to copy the newer TS now, all modes - already have been reset, so it will be as if it was destructed - and immediately recreated. In order to avoid desyncs of modes, - we don't accept a CREATE for channels that have +A set. - 2. The DESTRUCT passed, then someone created the channel on our - side and left it again. In this situation we have a near - simultaneous creation on two servers; the person on our side - already left within the time span of a message propagation. - already left within the time span of a message propagation. - The channel will therefore be less than 48 hours old and no - 'protection' is necessary. + /* Accept CREATE for zannels. This is only really necessary on a network + with servers prior to 2.10.12.02: we just accept their TS and ignore + the fact that it was a zannel. The influence of this on a network + that is completely 2.10.12.03 or higher is neglectable: Normally + a server only sends a CREATE after first sending a DESTRUCT. Thus, + by receiving a CREATE for a zannel one of three things happened: + 1. The DESTRUCT was sent during a net.break; this could mean that + our zannel is at the verge of expiring too, it should have been + destructed. It is correct to copy the newer TS now, all modes + already have been reset, so it will be as if it was destructed + and immediately recreated. In order to avoid desyncs of modes, + we don't accept a CREATE for channels that have +A set. + 2. The DESTRUCT passed, then someone created the channel on our + side and left it again. In this situation we have a near + simultaneous creation on two servers; the person on our side + already left within the time span of a message propagation. + The channel will therefore be less than 48 hours old and no + 'protection' is necessary. 3. The source server sent the CREATE while linking, before it got the BURST for our zannel. If this happens, we should reset the channel back to the old timestamp. This can be distinguished from case #1 by checking IsBurstOrBurstAck(cli_user(sptr)->server). - */ + */ #if defined(UNDERNET) - !(chptr->users == 0 && !chptr->mode.apass[0]))) { + !(chptr->users == 0 && !chptr->mode.apass[0]))) { #else !(chptr->users == 0))) { #endif Index: ircd-ircdev/ircd/m_defaults.c diff -u ircd-ircdev/ircd/m_defaults.c:1.6 ircd-ircdev/ircd/m_defaults.c:1.7 --- ircd-ircdev/ircd/m_defaults.c:1.6 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_defaults.c Thu Sep 20 14:00:32 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief - * @version $Id: m_defaults.c,v 1.6 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_defaults.c,v 1.7 2007/09/20 21:00:32 zolty Exp $ */ #include "config.h" @@ -38,6 +38,7 @@ /** Inform a client he is not opered. * \a parv is ignored. + * * See @ref m_functions for discussion of the arguments. * @param[in] cptr Client that sent us the message. * @param[in] sptr Original source of message. Index: ircd-ircdev/ircd/m_destruct.c diff -u ircd-ircdev/ircd/m_destruct.c:1.9 ircd-ircdev/ircd/m_destruct.c:1.10 --- ircd-ircdev/ircd/m_destruct.c:1.9 Sat Apr 21 14:17:23 2007 +++ ircd-ircdev/ircd/m_destruct.c Thu Sep 20 14:00:32 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for DESTRUCT command. - * @version $Id: m_destruct.c,v 1.9 2007/04/21 21:17:23 zolty Exp $ + * @version $Id: m_destruct.c,v 1.10 2007/09/20 21:00:32 zolty Exp $ */ #include "config.h" @@ -119,11 +119,11 @@ /* Don't pass on DESTRUCT messages for channels that are not empty, but instead send a BURST msg upstream. */ if (chptr->users > 0) { -#if 1 /* Once all servers are 2.10.12, this can be used too. +#if 0 /* Once all servers are 2.10.12, this can be used too. Until then we have to use CREATE and MODE to - get the message accross, because older server do - not accept a BURST outside the net.burst. */ - send_channel_modes(cptr, chptr); + get the message accross, because older server do + not accept a BURST outside the net.burst. */ + send_channel_modes(cptr, chptr); #else /* This happens when a JOIN and DESTRUCT crossed, ie: @@ -138,7 +138,7 @@ server1 ----------------- server2 DESTRUCT--> <-- DESTRUCT <-- CREATE - + in both cases, when the DESTRUCT arrives on server2 we need to send synchronizing messages upstream (to server1). Since sending two CREATEs Index: ircd-ircdev/ircd/m_endburst.c diff -u ircd-ircdev/ircd/m_endburst.c:1.8 ircd-ircdev/ircd/m_endburst.c:1.9 --- ircd-ircdev/ircd/m_endburst.c:1.8 Sat Apr 21 14:17:23 2007 +++ ircd-ircdev/ircd/m_endburst.c Thu Sep 20 14:00:32 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for END OF BURST command. - * @version $Id: m_endburst.c,v 1.8 2007/04/21 21:17:23 zolty Exp $ + * @version $Id: m_endburst.c,v 1.9 2007/09/20 21:00:32 zolty Exp $ */ #include "config.h" @@ -75,7 +75,6 @@ /* Count through channels... */ for (chan = GlobalChannelList; chan; chan = next_chan) { next_chan = chan->next; - if (!chan->members && (chan->mode.mode & MODE_BURSTADDED)) { /* Newly empty channel, schedule it for removal. */ chan->mode.mode &= ~MODE_BURSTADDED; Index: ircd-ircdev/ircd/m_invite.c diff -u ircd-ircdev/ircd/m_invite.c:1.18 ircd-ircdev/ircd/m_invite.c:1.19 --- ircd-ircdev/ircd/m_invite.c:1.18 Sat Apr 21 14:17:23 2007 +++ ircd-ircdev/ircd/m_invite.c Thu Sep 20 14:00:32 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for INVITE command. - * @version $Id: m_invite.c,v 1.18 2007/04/21 21:17:23 zolty Exp $ + * @version $Id: m_invite.c,v 1.19 2007/09/20 21:00:32 zolty Exp $ */ #include "config.h" @@ -132,7 +132,7 @@ } #if 0 -/* TODO-ZOLTAN COMPROBARLO */ +/* TODO-ZOLTAN: COMPROBARLO */ if (!IsLocalChannel(chptr->chname) || MyConnect(acptr)) { if (feature_bool(FEAT_ANNOUNCE_INVITES)) { /* Announce to channel operators. */ @@ -156,7 +156,7 @@ * \a parv has the following elements: * \li \a parv[1] is the nickname of the client to invite * \li \a parv[2] is the name of the channel to invite \a parv[1] to - * \li \a parv[3] (optional) is the channel's timestam + * \li \a parv[3] (optional) is the channel's timestamp * * - INVITE now is accepted only if who does it is chanop (this of course * implies that channel must exist and he must be on it). Index: ircd-ircdev/ircd/m_join.c diff -u ircd-ircdev/ircd/m_join.c:1.20 ircd-ircdev/ircd/m_join.c:1.21 --- ircd-ircdev/ircd/m_join.c:1.20 Sat Jul 21 16:51:39 2007 +++ ircd-ircdev/ircd/m_join.c Thu Sep 20 14:00:32 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for JOIN command. - * @version $Id: m_join.c,v 1.20 2007/07/21 23:51:39 zolty Exp $ + * @version $Id: m_join.c,v 1.21 2007/09/20 21:00:32 zolty Exp $ */ #include "config.h" @@ -122,6 +122,7 @@ chanlist = last0(cptr, sptr, parv[1]); /* find last "JOIN 0" */ keys = parv[2]; /* remember where keys are */ + for (name = ircd_strtok(&p, chanlist, ","); name; name = ircd_strtok(&p, 0, ",")) { char *key = 0; @@ -280,10 +281,10 @@ if (err) { switch(err) { case ERR_NEEDREGGEDNICK: - send_reply(sptr, - ERR_NEEDREGGEDNICK, - chptr->chname, - feature_str(F... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-07-21 23:55:14
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-07-21 23:55:14 UTC Added files: depcomp Log message: Author: zoltan <zo...@ir...> Log message: 2007-07-22 Toni Garc�a <zo...@ir...> 1.0.beta7 * Chequeo de Spambot * Fix de DelayedJoin ---------------------- diff included ---------------------- Index: ircd-ircdev/depcomp diff -u /dev/null ircd-ircdev/depcomp:1.1 --- /dev/null Sat Jul 21 16:55:15 2007 +++ ircd-ircdev/depcomp Sat Jul 21 16:55:01 2007 @@ -0,0 +1,522 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2004-05-31.23 + +# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. + +# 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, 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. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva <ol...@dc...>. + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to <bug...@gn...>. +EOF + exit 0 + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit 0 + ;; +esac + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. + "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> $depfile + echo >> $depfile + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> $depfile + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts `$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` + tmpdepfile="$stripped.u" + if test "$libtool" = yes; then + "$@" -Wc,-M + else + "$@" -M + fi + stat=$? + + if test -f "$tmpdepfile"; then : + else + stripped=`echo "$stripped" | sed 's,^.*/,,'` + tmpdepfile="$stripped.u" + fi + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + + if test -f "$tmpdepfile"; then + outname="$stripped.o" + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" + sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # Dependencies are output in .lo.d with libtool 1.4. + # With libtool 1.5 they are output both in $dir.libs/$base.o.d + # and in $dir.libs/$base.o.d and $dir$base.o.d. We process the + # latter, because the former will be cleaned when $dir.libs is + # erased. + tmpdepfile1="$dir.libs/$base.lo.d" + tmpdepfile2="$dir$base.o.d" + tmpdepfile3="$dir.libs/$base.d" + "$@" -Wc,-MD + else + tmpdepfile1="$dir$base.o.d" + tmpdepfile2="$dir$base.d" + tmpdepfile3="$dir$base.d" + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + if test -f "$tmpdepfile1"; then + tmpdepfile="$tmpdepfile1" + elif test -f "$tmpdepfile2"; then + tmpdepfile="$tmpdepfile2" + else + tmpdepfile="$tmpdepfile3" + fi + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no + for arg in "$@"; do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix="`echo $object | sed 's/^.*\././'`" + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. + "$@" || exit $? + IFS=" " + for arg + do + case "$arg" in + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2007-07-21 23:53:57
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-07-21 23:54:00 UTC Log message: Directory /cvsroot/irc-dev/ircd-ircdev/patches/marks added to the repository |
From: Toni G. <zo...@us...> - 2007-07-21 23:51:52
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-07-21 23:51:49 UTC Modified files: ChangeLog ChangeLog.es include/channel.h include/client.h include/ircd_features.h include/msg.h include/patchlevel.h ircd/channel.c ircd/ircd_features.c ircd/m_burst.c ircd/m_join.c ircd/m_mode.c ircd/m_part.c Log message: Author: zoltan <zo...@ir...> Log message: 2007-07-22 Toni Garc�a <zo...@ir...> 1.0.beta7 * Chequeo de Spambot * Fix de DelayedJoin ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.55 ircd-ircdev/ChangeLog:1.56 --- ircd-ircdev/ChangeLog:1.55 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/ChangeLog Sat Jul 21 16:51:39 2007 @@ -1,11 +1,15 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.55 2007/04/26 21:17:11 zolty Exp $ +# $Id: ChangeLog,v 1.56 2007/07/21 23:51:39 zolty Exp $ # # Insert new changes at beginning of the change list. # -2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta6 +2007-07-22 Toni Garc�a <zo...@ir...> 1.0.beta7 + * Spambot checking + * DelayedJoin fix + +2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta6 * Aliases for /STATS * PING-PONG with high priority * Signal SIGCHLD support Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.55 ircd-ircdev/ChangeLog.es:1.56 --- ircd-ircdev/ChangeLog.es:1.55 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/ChangeLog.es Sat Jul 21 16:51:39 2007 @@ -1,10 +1,14 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.55 2007/04/26 21:17:11 zolty Exp $ +# $Id: ChangeLog.es,v 1.56 2007/07/21 23:51:39 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-07-22 Toni Garc�a <zo...@ir...> 1.0.beta7 + * Chequeo de Spambot + * Fix de DelayedJoin + 2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta6 * Aliases para /STATS * PING-PONG con alta prioridad Index: ircd-ircdev/include/channel.h diff -u ircd-ircdev/include/channel.h:1.17 ircd-ircdev/include/channel.h:1.18 --- ircd-ircdev/include/channel.h:1.17 Sat Apr 21 09:20:17 2007 +++ ircd-ircdev/include/channel.h Sat Jul 21 16:51:39 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Channel management and maintenance. - * @version $Id: channel.h,v 1.17 2007/04/21 16:20:17 zolty Exp $ + * @version $Id: channel.h,v 1.18 2007/07/21 23:51:39 zolty Exp $ */ #ifndef INCLUDED_channel_h #define INCLUDED_channel_h @@ -464,9 +464,7 @@ extern void add_invite(struct Client *cptr, struct Channel *chptr, struct Client *inviter); extern void del_invite(struct Client *cptr, struct Channel *chptr); extern void list_set_default(void); /* this belongs elsewhere! */ - -extern void RevealDelayedJoin(struct Membership *member); -extern void CheckDelayedJoins(struct Channel *chan); +extern void check_spambot_warning(struct Client *cptr); extern void modebuf_init(struct ModeBuf *mbuf, struct Client *source, struct Client *connect, struct Channel *chan, Index: ircd-ircdev/include/client.h diff -u ircd-ircdev/include/client.h:1.20 ircd-ircdev/include/client.h:1.21 --- ircd-ircdev/include/client.h:1.20 Thu Apr 26 12:17:31 2007 +++ ircd-ircdev/include/client.h Sat Jul 21 16:51:39 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Structures and functions for handling local clients. - * @version $Id: client.h,v 1.20 2007/04/26 19:17:31 zolty Exp $ + * @version $Id: client.h,v 1.21 2007/07/21 23:51:39 zolty Exp $ */ #ifndef INCLUDED_client_h #define INCLUDED_client_h @@ -190,6 +190,10 @@ time_t con_nexttarget;/**< Next time a target change is allowed */ time_t con_lasttime; /**< Last time data read from socket */ time_t con_since; /**< Last time we accepted a command */ + time_t con_last_join; /**< Last time this client joined a channel */ + time_t con_last_part; /**< Last time this client left a channel */ + int con_join_part_count; /**< Count of fast join/parts */ + int con_warn_countdown; /**< Counter for spambot warnings */ struct MsgQ con_sendQ; /**< Outgoing message queue */ struct DBuf con_recvQ; /**< Incoming data yet to be parsed */ unsigned int con_sendM; /**< Stats: protocol messages sent */ @@ -312,6 +316,15 @@ #define cli_username(cli) ((cli)->cli_username) /** Get client realname (information field). */ #define cli_info(cli) ((cli)->cli_info) +/** Get client's last channel join time. */ +#define cli_last_join(cli) (cli_connect(cli)->con_last_join) +/** Get client's last channel part time. */ +#define cli_last_part(cli) (cli_connect(cli)->con_last_part) +/** Get client's fast join/part count. */ +#define cli_join_part_count(cli) (cli_connect(cli)->con_join_part_count) +/** Get client's warning countdown value. */ +#define cli_warn_countdown(cli) (cli_connect(cli)->con_warn_countdown) + /** Get number of incoming bytes queued for client. */ #define cli_count(cli) con_count(cli_connect(cli)) Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.19 ircd-ircdev/include/ircd_features.h:1.20 --- ircd-ircdev/include/ircd_features.h:1.19 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/include/ircd_features.h Sat Jul 21 16:51:39 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Public interfaces and declarations for dealing with configurable features. - * @version $Id: ircd_features.h,v 1.19 2007/04/26 21:17:11 zolty Exp $ + * @version $Id: ircd_features.h,v 1.20 2007/07/21 23:51:39 zolty Exp $ */ #ifndef INCLUDED_features_h #define INCLUDED_features_h @@ -60,6 +60,7 @@ FEAT_HIDDEN_IP, FEAT_CONNEXIT_NOTICES, FEAT_OPLEVELS, + FEAT_ZANNELS, FEAT_LOCAL_CHANNELS, FEAT_TOPIC_BURST, FEAT_USER_GLIST, @@ -193,6 +194,10 @@ FEAT_NETWORK, FEAT_URL_CLIENTS, FEAT_URLREG, + FEAT_SPAM_OPER_COUNTDOWN, + FEAT_SPAM_EXPIRE_TIME, + FEAT_SPAM_JOINED_TIME, + FEAT_SPAM_FJP_COUNT, FEAT_LAST_F }; Index: ircd-ircdev/include/msg.h diff -u ircd-ircdev/include/msg.h:1.15 ircd-ircdev/include/msg.h:1.16 --- ircd-ircdev/include/msg.h:1.15 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/msg.h Sat Jul 21 16:51:39 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Command and token declarations and structures. - * @version $Id: msg.h,v 1.15 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: msg.h,v 1.16 2007/07/21 23:51:39 zolty Exp $ */ #ifndef INCLUDED_msg_h #define INCLUDED_msg_h @@ -201,11 +201,11 @@ #define MSG_WALLCHOPS "WALLCHOPS" /* WC */ #define TOK_WALLCHOPS "WC" -#define CMD_WALLCHOPS MSG_WALLCHOPS, TOK_WALLCHOPS +#define CMD_WALLCHOPS MSG_NOTICE, TOK_WALLCHOPS #define MSG_WALLVOICES "WALLVOICES" /* WV */ #define TOK_WALLVOICES "WV" -#define CMD_WALLVOICES MSG_WALLVOICES, TOK_WALLVOICES +#define CMD_WALLVOICES MSG_NOTICE, TOK_WALLVOICES #define MSG_CPRIVMSG "CPRIVMSG" /* CPRI */ #define TOK_CPRIVMSG "CP" Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.54 ircd-ircdev/include/patchlevel.h:1.55 --- ircd-ircdev/include/patchlevel.h:1.54 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/include/patchlevel.h Sat Jul 21 16:51:39 2007 @@ -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.54 2007/04/26 21:17:11 zolty Exp $ + * $Id: patchlevel.h,v 1.55 2007/07/21 23:51:39 zolty Exp $ * */ -#define PATCHLEVEL "6" +#define PATCHLEVEL "7" #define RELEASE "1.0.beta" Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.31 ircd-ircdev/ircd/channel.c:1.32 --- ircd-ircdev/ircd/channel.c:1.31 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/ircd/channel.c Sat Jul 21 16:51:39 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.31 2007/04/21 21:17:22 zolty Exp $ + * @version $Id: channel.c,v 1.32 2007/07/21 23:51:39 zolty Exp $ */ #include "config.h" @@ -74,21 +74,6 @@ /** Number of ban structures in use. */ static size_t bans_inuse; -#if !defined(NDEBUG) -/** return the length (>=0) of a chain of links. - * @param lp pointer to the start of the linked list - * @return the number of items in the list - */ -static int list_length(struct SLink *lp) -{ - int count = 0; - - for (; lp; lp = lp->next) - ++count; - return count; -} -#endif - /** Set the mask for a ban, checking for IP masks. * @param[in,out] ban Ban structure to modify. * @param[in] banstr Mask to ban. @@ -108,6 +93,41 @@ } } +/** Check a channel for join-delayed members. + * @param[in] chan Channel to search. + * @return Non-zero if any members are join-delayed; false if none are. + */ +static int +find_delayed_joins(const struct Channel *chan) +{ + const struct Membership *memb; + for (memb = chan->members; memb; memb = memb->next_member) + if (IsDelayedJoin(memb)) + return 1; + return 0; +} + +/* CheckDelayedJoins: checks and clear +d if necessary */ + +static void CheckDelayedJoins(struct Channel *chan) +{ + if ((chan->mode.mode & MODE_WASDELJOINS) && !find_delayed_joins(chan)) { + chan->mode.mode &= ~MODE_WASDELJOINS; + sendcmdto_channel(&his, CMD_MODE, chan, NULL, SKIP_SERVERS, + "%H -d", chan); + } +} + +/* RevealDelayedJoin: sends a join for a hidden user */ +static void RevealDelayedJoin(struct Membership *member) +{ + ClearDelayedJoin(member); + sendcmdto_channel(member->user, CMD_JOIN, member->channel, + member->user, SKIP_SERVERS, + ":%H", member->channel); + CheckDelayedJoins(member->channel); +} + /** Allocate a new Ban structure. * @param[in] banstr Ban mask to use. * @return Newly allocated ban. @@ -662,46 +682,6 @@ return 0; } -/** Check if a user is a Zombie on a specific channel. - * - * @param cptr The client to check. - * @param chptr The channel to check. - * - * @returns True if the client (cptr) is a zombie on the channel (chptr), - * False otherwise. - * - * @see \ref zombie - */ -int is_zombie(struct Client *cptr, struct Channel *chptr) -{ - struct Membership* member; - - assert(0 != chptr); - - if ((member = find_member_link(chptr, cptr))) - return IsZombie(member); - return 0; -} - -/** Returns if a user has voice on a channel. - * - * @param cptr The client - * @param chptr The channel - * - * @returns True if the client (cptr) is voiced on (chptr) and is not a zombie. - * @see \ref zombie - */ -int has_voice(struct Client* cptr, struct Channel* chptr) -{ - struct Membership* member; - - assert(0 != chptr); - if ((member = find_member_link(chptr, cptr))) - return (!IsZombie(member) && HasVoice(member)); - - return 0; -} - /** Can this member send to a channel * * A user can speak on a channel iff: @@ -726,12 +706,24 @@ { assert(0 != member); + /* Do not check for users on other servers: This should be a + * temporary desynch, or maybe they are on an older server, but + * we do not want to send ERR_CANNOTSENDTOCHAN more than once. + */ + if (!MyUser(member->user)) + { + if (IsDelayedJoin(member) && reveal) + RevealDelayedJoin(member); + return 1; + } + #if defined(UNDERNET) /* Discourage using the Apass to get op. They should use the upass. */ if (IsChannelManager(member) && member->channel->mode.apass[0]) return 0; #endif + /* If you have voice or ops, you can speak. */ if (IsVoicedOrOpped(member)) return 1; @@ -747,12 +739,9 @@ if (member->channel->mode.mode & MODE_REGONLY && !IsAccount(member->user)) return 0; #endif - /* - * If you're banned then you can't speak either. - * but because of the amount of CPU time that is_banned chews - * we only check it for our clients. - */ - if (MyUser(member->user) && is_banned(member)) + + /* If you're banned then you can't speak either. */ + if (is_banned(member)) return 0; if (IsDelayedJoin(member) && reveal) @@ -820,9 +809,13 @@ struct Membership* member; for (member = (cli_user(cptr))->channel; member; member = member->next_channel) { - if (!IsVoicedOrOpped(member) && - (is_banned(member) || - (member->channel->mode.mode & MODE_MODERATED))) + if (IsVoicedOrOpped(member)) + continue; + if ((member->channel->mode.mode & MODE_MODERATED) +#if defined(UNDERNET) + || (member->channel->mode.mode & MODE_REGONLY && !IsAccount(cptr)) +#endif + || is_banned(member)) return member->channel->chname; } } @@ -979,7 +972,7 @@ int opped_members_index = 0; struct Membership** opped_members = NULL; int last_oplevel = 0; - int feat_oplevels = (chptr->mode.apass[0]) != '\0'; + int send_oplevels = 0; #endif assert(0 != cptr); @@ -1045,6 +1038,9 @@ ++number_of_ops; else opped_members[opped_members_index++] = member; + /* We also send oplevels if anyone is below the weakest level. */ + if (OpLevel(member) < MAXOPLEVEL) + send_oplevels = 1; } /* Only handle the members with the flags that we are interested in. */ if ((member->status & CHFL_VOICED_OR_OPPED) == current_flags[flag_cnt]) @@ -1085,7 +1081,7 @@ if (IsChanOp(member)) /* flag_cnt == 2 or 3 */ { /* append the absolute value of the oplevel */ - if (feat_oplevels) + if (send_oplevels) loc += ircd_snprintf(0, tbuf + loc, sizeof(tbuf) - loc, "%u", last_oplevel = member->oplevel); else tbuf[loc++] = 'o'; @@ -1094,7 +1090,7 @@ msgq_append(&me, mb, tbuf); new_mode = 0; } - else if (feat_oplevels && flag_cnt > 1 && last_oplevel != member->oplevel) + else if (send_oplevels && flag_cnt > 1 && last_oplevel != member->oplevel) { /* * This can't be the first member of a (continued) BURST @@ -1696,7 +1692,6 @@ #endif MODE_REGONLY, 'R', MODE_DELJOINS, 'D', - MODE_WASDELJOINS, 'd', /* MODE_KEY, 'k', */ /* MODE_BAN, 'b', */ MODE_LIMIT, 'l', @@ -1706,15 +1701,19 @@ #endif 0x0, 0x0 }; - int i; + static int local_flags[] = { + MODE_WASDELJOINS, 'd', + 0x0, 0x0 + }; + unsigned int i; int *flag_p; struct Client *app_source; /* where the MODE appears to come from */ - char addbuf[20]; /* accumulates +psmtin, etc. */ - int addbuf_i = 0; - char rembuf[20]; /* accumulates -psmtin, etc. */ - int rembuf_i = 0; + char addbuf[20], addbuf_local[20]; /* accumulates +psmtin, etc. */ + int addbuf_i = 0, addbuf_local_i = 0; + char rembuf[20], rembuf_local[20]; /* accumulates -psmtin, etc. */ + int rembuf_i = 0, rembuf_local_i = 0; char *bufptr; /* we make use of indirection to simplify the code */ int *bufptr_i; @@ -1740,7 +1739,10 @@ /* Ok, if we were given the OPMODE flag, or its a server, hide the source. */ - if (mbuf->mb_dest & MODEBUF_DEST_OPMODE || IsServer(mbuf->mb_source) || IsMe(mbuf->mb_source)) + if (feature_bool(FEAT_HIS_MODEWHO) && + (mbuf->mb_dest & MODEBUF_DEST_OPMODE || + IsServer(mbuf->mb_source) || + IsMe(mbuf->mb_source))) app_source = &his; else app_source = mbuf->mb_source; @@ -1760,6 +1762,14 @@ rembuf[rembuf_i++] = flag_p[1]; } + /* Some flags may be for local display only. */ + for (flag_p = local_flags; flag_p[0]; flag_p += 2) { + if (*flag_p & mbuf->mb_add) + addbuf_local[addbuf_local_i++] = flag_p[1]; + else if (*flag_p & mbuf->mb_rem) + rembuf_local[rembuf_local_i++] = flag_p[1]; + } + /* Now go through the modes with arguments... */ for (i = 0; i < mbuf->mb_count; i++) { if (MB_TYPE(mbuf, i) & MODE_ADD) { /* adding or removing? */ @@ -1860,6 +1870,8 @@ /* terminate the mode strings */ addbuf[addbuf_i] = '\0'; rembuf[rembuf_i] = '\0'; + addbuf_local[addbuf_local_i] = '\0'; + rembuf_local[rembuf_local_i] = '\0'; /* If we're building a user visible MODE or HACK... */ if (mbuf->mb_dest & (MODEBUF_DEST_CHANNEL | MODEBUF_DEST_HACK2 | @@ -2279,19 +2291,22 @@ int modebuf_flush(struct ModeBuf *mbuf) { - struct Membership *memb; - - /* Check if MODE_WASDELJOINS should be set */ - if (!(mbuf->mb_channel->mode.mode & (MODE_DELJOINS | MODE_WASDELJOINS)) - && (mbuf->mb_rem & MODE_DELJOINS)) { - for (memb = mbuf->mb_channel->members; memb; memb = memb->next_member) { - if (IsDelayedJoin(memb)) { - mbuf->mb_channel->mode.mode |= MODE_WASDELJOINS; - mbuf->mb_add |= MODE_WASDELJOINS; - mbuf->mb_rem &= ~MODE_WASDELJOINS; - break; - } - } + /* Check if MODE_WASDELJOINS should be set: */ + /* Must be set if going -D and some clients are hidden */ + if ((mbuf->mb_rem & MODE_DELJOINS) + && !(mbuf->mb_channel->mode.mode & (MODE_DELJOINS | MODE_WASDELJOINS)) + && find_delayed_joins(mbuf->mb_channel)) { + mbuf->mb_channel->mode.mode |= MODE_WASDELJOINS; + mbuf->mb_add |= MODE_WASDELJOINS; + mbuf->mb_rem &= ~MODE_WASDELJOINS; + } + /* Must be cleared if +D is set */ + if ((mbuf->mb_add & MODE_DELJOINS) + && ((mbuf->mb_channel->mode.mode & (MODE_WASDELJOINS | MODE_WASDELJOINS)) + == (MODE_WASDELJOINS | MODE_WASDELJOINS))) { + mbuf->mb_channel->mode.mode &= ~MODE_WASDELJOINS; + mbuf->mb_add &= ~MODE_WASDELJOINS; + mbuf->mb_rem |= MODE_WASDELJOINS; } return modebuf_flush_int(mbuf, 1); @@ -3167,8 +3182,10 @@ char *t_str; struct Client *acptr; #if defined(UNDERNET) + char *colon; struct Membership *member; int oplevel = MAXOPLEVEL + 1; + int req_oplevel; #endif int i; @@ -3188,9 +3205,29 @@ return; } - if (MyUser(state->sptr)) /* find client we're manipulating */ + if (MyUser(state->sptr)) { +#if defined(UNDERNET) + colon = strchr(t_str, ':'); + if (colon != NULL) { + *colon++ = '\0'; + req_oplevel = atoi(colon); + if (!(state->flags & MODE_PARSE_FORCE) + && state->member + && (req_oplevel < OpLevel(state->member) + || (req_oplevel == OpLevel(state->member) + && OpLevel(state->member) < MAXOPLEVEL) + || req_oplevel > MAXOPLEVEL)) + send_reply(state->sptr, ERR_NOTLOWEROPLEVEL, + t_str, state->chptr->chname, + OpLevel(state->member), req_oplevel, "op", + OpLevel(state->member) == req_oplevel ? "the same" : "a higher"); + else if (req_oplevel <= MAXOPLEVEL) + oplevel = req_oplevel; + } +#endif + /* find client we're manipulating */ acptr = find_chasing(state->sptr, t_str, NULL); - else { + } else { #if defined(UNDERNET) if (t_str[5] == ':') { t_str[5] = '\0'; @@ -3201,7 +3238,7 @@ * posible sitio para el ChanDb */ acptr = findNUser(t_str); -} + } if (!acptr) return; /* find_chasing() already reported an error to the user */ @@ -3290,11 +3327,14 @@ } #if defined(UNDERNET) - /* don't allow to deop members with an op level that is <= our own level */ - if (state->sptr != state->cli_change[i].client /* but allow to deop oneself */ - && state->chptr->mode.apass[0] + /* Forbid deopping other members with an oplevel less than + * one's own level, and other members with an oplevel the same + * as one's own unless both are at MAXOPLEVEL. */ + if (state->sptr != state->cli_change[i].client && state->member - && OpLevel(member) <= OpLevel(state->member)) { + && ((OpLevel(member) < OpLevel(state->member)) + || (OpLevel(member) == OpLevel(state->member) + && OpLevel(member) < MAXOPLEVEL))) { int equal = (OpLevel(member) == OpLevel(state->member)); send_reply(state->sptr, ERR_NOTLOWEROPLEVEL, cli_name(state->cli_change[i].client), @@ -3331,7 +3371,7 @@ /* actually effect the change */ if (state->flags & MODE_PARSE_SET) { if (state->cli_change[i].flag & MODE_ADD) { - if (IsDelayedJoin(member)) + if (IsDelayedJoin(member) && !IsZombie(member)) RevealDelayedJoin(member); member->status |= (state->cli_change[i].flag & #if defined(DDB) || defined(SERVICES) @@ -3385,10 +3425,6 @@ state->add &= ~MODE_SECRET; state->del |= MODE_SECRET; } - if (flag_p[0] & MODE_DELJOINS) { - state->add &= ~MODE_WASDELJOINS; - state->del |= MODE_WASDELJOINS; - } } else { state->add &= ~flag_p[0]; state->del |= flag_p[0]; @@ -3551,7 +3587,7 @@ state.parc--; /* is it a TS? */ - if (IsServer(state.sptr) && !state.parc && IsDigit(*modestr)) { + if (IsServer(state.cptr) && !state.parc && IsDigit(*modestr)) { time_t recv_ts; if (!(state.flags & MODE_PARSE_SET)) /* don't set earlier TS if */ @@ -3561,6 +3597,35 @@ if (recv_ts && recv_ts < state.chptr->creationtime) state.chptr->creationtime = recv_ts; /* respect earlier TS */ + else if (recv_ts > state.chptr->creationtime) { + struct Client *sserv; + + /* Check whether the originating server has fully processed + * the burst to it. */ + sserv = state.cptr; + if (!IsServer(sserv)) + sserv = cli_user(sserv)->server; + if (IsBurstOrBurstAck(sserv)) { + /* This is a legal but unusual case; the source server + * probably just has not processed the BURST for this + * channel. It SHOULD wipe out all its modes soon, so + * silently ignore the mode change rather than send a + * bounce that could desync modes from our side (that + * have already been sent). + */ + state.mbuf->mb_add = 0; + state.mbuf->mb_rem = 0; + state.mbuf->mb_count = 0; + return state.args_used; + } else { + /* Server is desynced; bounce the mode and deop the source + * to fix it. */ + state.mbuf->mb_dest &= ~MODEBUF_DEST_CHANNEL; + state.mbuf->mb_dest |= MODEBUF_DEST_BOUNCE | MODEBUF_DEST_HACK2; + if (!IsServer(state.cptr)) + state.mbuf->mb_dest |= MODEBUF_DEST_DEOP; + } + } break; /* break out of while loop */ } else if (state.flags & MODE_PARSE_STRICT || @@ -3831,32 +3896,59 @@ return 0; } -/* RevealDelayedJoin: sends a join for a hidden user */ - -void RevealDelayedJoin(struct Membership *member) -{ - ClearDelayedJoin(member); - sendcmdto_channel(member->user, CMD_JOIN, member->channel, member->user, SKIP_SERVERS, ":%H", - member->channel); - CheckDelayedJoins(member->channel); -} - -/* CheckDelayedJoins: checks and clear +d if necessary */ - -void CheckDelayedJoins(struct Channel *chan) +/** Check whether \a sptr is acting like a spambot when it leaves a + * channel. + * Side effects: Updates \a sptr's join_part_count, last_part and + * warn_countdown fields; may warn operators. + * Based on code by Dianora. + * + * @param[in] sptr Client to check + * @param[in] name Channel being joined (or NULL if a part). + */ +void +check_spambot_warning(struct Client *sptr) { - struct Membership *memb2; + int decrement_count; + int spam_expire_time; - if (chan->mode.mode & MODE_WASDELJOINS) { - for (memb2=chan->members;memb2;memb2=memb2->next_member) - if (IsDelayedJoin(memb2)) - break; + spam_expire_time = feature_int(FEAT_SPAM_EXPIRE_TIME); + if (!spam_expire_time) + { + /* Admin apparently does not want this feature (we do not want to + * divide by zero below). */ + } + else if (!MyUser(sptr)) + { + /* This client's behavior is someone else's problem. */ + } + else if (cli_join_part_count(sptr) >= feature_int(FEAT_SPAM_FJP_COUNT)) + { + if (cli_warn_countdown(sptr) > 0) + cli_warn_countdown(sptr)--; - if (!memb2) { - /* clear +d */ - chan->mode.mode &= ~MODE_WASDELJOINS; - sendcmdto_channel(&his, CMD_MODE, chan, NULL, SKIP_SERVERS, - "%H -d", chan); + if (cli_warn_countdown(sptr) == 0) + { + /* Its already known as a possible spambot */ + sendto_opmask(0, SNO_OLDSNO, + "User %s (%s@%s) is a possible spambot", + cli_name(sptr), cli_username(sptr), + cli_sockhost(sptr)); + cli_warn_countdown(sptr) = feature_int(FEAT_SPAM_OPER_COUNTDOWN); } } + else if ((decrement_count = (CurrentTime - cli_last_part(sptr)) + / spam_expire_time) > 0) + { + if (decrement_count > cli_join_part_count(sptr)) + cli_join_part_count(sptr) = 0; + else + cli_join_part_count(sptr) -= decrement_count; + } + else if ((CurrentTime - (cli_last_join(sptr))) < feature_int(FEAT_SPAM_JOINED_TIME)) + { + /* oh, its a possible spambot */ + cli_join_part_count(sptr)++; + } + + cli_last_part(sptr) = CurrentTime; } Index: ircd-ircdev/ircd/ircd_features.c diff -u ircd-ircdev/ircd/ircd_features.c:1.19 ircd-ircdev/ircd/ircd_features.c:1.20 --- ircd-ircdev/ircd/ircd_features.c:1.19 Thu Apr 26 14:17:11 2007 +++ ircd-ircdev/ircd/ircd_features.c Sat Jul 21 16:51:39 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of configurable feature support. - * @version $Id: ircd_features.c,v 1.19 2007/04/26 21:17:11 zolty Exp $ + * @version $Id: ircd_features.c,v 1.20 2007/07/21 23:51:39 zolty Exp $ */ #include "config.h" @@ -384,6 +384,7 @@ F_S(HIDDEN_IP, 0, "127.0.0.1", 0), F_B(CONNEXIT_NOTICES, 0, 0, 0), F_B(OPLEVELS, 0, 1, set_isupport_chanmodes), + F_B(ZANNELS, 0, 1, 0), F_B(LOCAL_CHANNELS, 0, 1, set_isupport_chantypes), F_B(TOPIC_BURST, 0, 0, 0), F_B(USER_GLIST, 0, 1, 0), @@ -517,6 +518,10 @@ F_S(NETWORK, 0, "IRC-Dev", set_isupport_network), F_S(URL_CLIENTS, 0, "ftp://ftp.irc.org/pub/irc/clients", 0), F_S(URLREG, 0, "http://cservice.undernet.org/live/", 0), + F_I(SPAM_OPER_COUNTDOWN, 0, 5, 0), + F_I(SPAM_EXPIRE_TIME, 0, 120, 0), + F_I(SPAM_JOINED_TIME, 0, 60, 0), + F_I(SPAM_FJP_COUNT, 0, 5, 0), #undef F_S #undef F_B Index: ircd-ircdev/ircd/m_burst.c diff -u ircd-ircdev/ircd/m_burst.c:1.19 ircd-ircdev/ircd/m_burst.c:1.20 --- ircd-ircdev/ircd/m_burst.c:1.19 Sat Apr 21 14:17:23 2007 +++ ircd-ircdev/ircd/m_burst.c Sat Jul 21 16:51:39 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Handlers for BURST command. - * @version $Id: m_burst.c,v 1.19 2007/04/21 21:17:23 zolty Exp $ + * @version $Id: m_burst.c,v 1.20 2007/07/21 23:51:39 zolty Exp $ */ #include "config.h" @@ -197,6 +197,59 @@ timestamp = atoi(parv[2]); +#if defined(UNDERNET) + if (chptr->creationtime) /* 0 for new (empty) channels, + i.e. when this server just restarted. */ + { + if (parc == 3) /* Zannel BURST? */ + { + /* An empty channel without +A set, will cause a BURST message + with exactly 3 parameters (because all modes have been reset). + If the timestamp on such channels is only a few seconds older + from our own, then we ignore this burst: we do not deop our + own side. + Likewise, we expect the other (empty) side to copy our timestamp + from our own BURST message, even though it is slightly larger. + + The reason for this is to allow people to join an empty + non-A channel (a zannel) during a net.split, and not be + deopped when the net reconnects (with another zannel). When + someone joins a split zannel, their side increments the TS by one. + If they cycle a few times then we still don't have a reason to + deop them. Theoretically I see no reason not to accept ANY timestamp, + but to be sure, we only accept timestamps that are just a few + seconds off (one second for each time they cycled the channel). */ + + /* Don't even deop users who cycled four times during the net.break. */ + if (timestamp < chptr->creationtime && + chptr->creationtime <= timestamp + 4 && + chptr->users != 0) /* Only do this when WE have users, so that + if we do this the BURST that we sent has + parc > 3 and the other side will use the + test below: */ + timestamp = chptr->creationtime; /* Do not deop our side. */ + } + else if (chptr->creationtime < timestamp && + timestamp <= chptr->creationtime + 4 && + chptr->users == 0) + { + /* If one side of the net.junction does the above + timestamp = chptr->creationtime, then the other + side must do this: */ + chptr->creationtime = timestamp; /* Use the same TS on both sides. */ + } + /* In more complex cases, we might still end up with a + creationtime desync of a few seconds, but that should + be synced automatically rather quickly (every JOIN + caries a timestamp and will sync it; modes by users do + not carry timestamps and are accepted regardless). + Only when nobody joins the channel on the side with + the oldest timestamp before a new net.break occurs + precisely inbetween the desync, an unexpected bounce + might happen on reconnect. */ + } +#endif + if (!chptr->creationtime || chptr->creationtime > timestamp) { /* * Kick local members if channel is +i or +k and our TS was larger Index: ircd-ircdev/ircd/m_join.c diff -u ircd-ircdev/ircd/m_join.c:1.19 ircd-ircdev/ircd/m_join.c:1.20 --- ircd-ircdev/ircd/m_join.c:1.19 Sat Apr 21 14:17:23 2007 +++ ircd-ircdev/ircd/m_join.c Sat Jul 21 16:51:39 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for JOIN command. - * @version $Id: m_join.c,v 1.19 2007/04/21 21:17:23 zolty Exp $ + * @version $Id: m_join.c,v 1.20 2007/07/21 23:51:39 zolty Exp $ */ #include "config.h" @@ -418,10 +418,81 @@ remove_user_from_channel(sptr, chptr); chptr = FindChannel(name); } +#if defined(UNDERNET) + /* Always copy the timestamp when it is older, that is the only way to + ensure network-wide synchronization of creation times. + We now also copy a creation time that only 1 second younger... + this is needed because the timestamp must be incremented + by one when someone joins an existing, but empty, channel. + However, this is only necessary when the channel is still + empty (also here) and when this channel doesn't have +A set. + + To prevent this from allowing net-rides on the channel, we + clear all modes from the channel. + + (Scenario for a net ride: c1 - s1 - s2 - c2, with c1 the only + user in the channel; c1 parts and rejoins, gaining ops. + Before s2 sees c1's part, c2 joins the channel and parts + immediately. s1 sees c1 part, c1 create, c2 join, c2 part; + c2's join resets the timestamp. s2 sees c2 join, c2 part, c1 + part, c1 create; but since s2 sees the channel as a zannel or + non-existent, it does not bounce the create with the newer + timestamp.) + */ + if (creation && (creation < chptr->creationtime || + (!chptr->mode.apass[0] && chptr->users == 0))) { + struct Membership *member; + struct ModeBuf mbuf; + + chptr->creationtime = creation; + /* Wipe out the current modes on the channel. */ + modebuf_init(&mbuf, sptr, cptr, chptr, MODEBUF_DEST_CHANNEL | MODEBUF_DEST_HACK3); + + modebuf_mode(&mbuf, MODE_DEL | chptr->mode.mode); + chptr->mode.mode &= MODE_BURSTADDED | MODE_WASDELJOINS; + + if (chptr->mode.limit) { + modebuf_mode_uint(&mbuf, MODE_DEL | MODE_LIMIT, chptr->mode.limit); + chptr->mode.limit = 0; + } + + if (chptr->mode.key[0]) { + modebuf_mode_string(&mbuf, MODE_DEL | MODE_KEY, chptr->mode.key, 0); + chptr->mode.key[0] = '\0'; + } + + if (chptr->mode.upass[0]) { + modebuf_mode_string(&mbuf, MODE_DEL | MODE_UPASS, chptr->mode.upass, 0); + modebuf_mode_string(&mbuf, MODE_DEL | MODE_UPASS, chptr->mode.upass, 0); + chptr->mode.upass[0] = '\0'; + } + + if (chptr->mode.apass[0]) { + modebuf_mode_string(&mbuf, MODE_DEL | MODE_APASS, chptr->mode.apass, 0); + chptr->mode.apass[0] = '\0'; + } + + for (member = chptr->members; member; member = member->next_member) + { + if (IsChanOp(member)) { + modebuf_mode_client(&mbuf, MODE_DEL | MODE_CHANOP, member->user, OpLevel(member)); + member->status &= ~CHFL_CHANOP; + } + if (HasVoice(member)) { + modebuf_mode_client(&mbuf, MODE_DEL | MODE_VOICE, member->user, OpLevel(member)); + member->status &= ~CHFL_VOICE; + } + } + modebuf_flush(&mbuf); + } +#else + /* TODO-ZoltPoner el sistema de arriba para keys? */ + /* Always copy the timestamp when it is older, that is the only way to ensure network-wide synchronization of creation times. */ if (creation && creation < chptr->creationtime) chptr->creationtime = creation; +#endif } joinbuf_join(&join, chptr, 0); Index: ircd-ircdev/ircd/m_mode.c diff -u ircd-ircdev/ircd/m_mode.c:1.13 ircd-ircdev/ircd/m_mode.c:1.14 --- ircd-ircdev/ircd/m_mode.c:1.13 Sun Apr 22 06:56:21 2007 +++ ircd-ircdev/ircd/m_mode.c Sat Jul 21 16:51:39 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for MODE command. - * @version $Id: m_mode.c,v 1.13 2007/04/22 13:56:21 zolty Exp $ + * @version $Id: m_mode.c,v 1.14 2007/07/21 23:51:39 zolty Exp $ */ #include "config.h" @@ -30,6 +30,7 @@ #include "client.h" #include "hash.h" #include "ircd.h" +#include "ircd_features.h" #include "ircd_log.h" #include "ircd_reply.h" #include "ircd_string.h" @@ -148,16 +149,21 @@ (MODEBUF_DEST_CHANNEL | /* Send mode to clients */ MODEBUF_DEST_SERVER | /* Send mode to servers */ MODEBUF_DEST_HACK4)); /* Send a HACK(4) message */ - else #if defined(UNDERNET) + else if (!feature_bool(FEAT_OPLEVELS)) + modebuf_init(&mbuf, sptr, cptr, chptr, + (MODEBUF_DEST_CHANNEL | /* Send mode to clients */ + MODEBUF_DEST_SERVER | /* Send mode to servers */ + MODEBUF_DEST_HACK3)); /* Send a HACK(3) message */ /* Servers need to be able to op people who join using the Apass - * or upass, therefore we accept modes for channels with an Apass - * without generating a HACK3. */ + * or upass, as well as people joining a zannel, therefore we do + * not generate HACK3 when oplevels are on. */ + else modebuf_init(&mbuf, sptr, cptr, chptr, (MODEBUF_DEST_CHANNEL | /* Send mode to clients */ - MODEBUF_DEST_SERVER | /* Send mode to servers */ - (*chptr->mode.apass ? 0 : MODEBUF_DEST_HACK3))); + MODEBUF_DEST_SERVER)); /* Send mode to servers */ #else + else modebuf_init(&mbuf, sptr, cptr, chptr, (MODEBUF_DEST_CHANNEL | /* Send mode to clients */ MODEBUF_DEST_SERVER | /* Send mode to servers */ Index: ircd-ircdev/ircd/m_part.c diff -u ircd-ircdev/ircd/m_part.c:1.9 ircd-ircdev/ircd/m_part.c:1.10 --- ircd-ircdev/ircd/m_part.c:1.9 Sat Apr 21 09:20:18 2007 +++ ircd-ircdev/ircd/m_part.c Sat Jul 21 16:51:39 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for PART command. - * @version $Id: m_part.c,v 1.9 2007/04/21 16:20:18 zolty Exp $ + * @version $Id: m_part.c,v 1.10 2007/07/21 23:51:39 zolty Exp $ */ #include "config.h" @@ -98,6 +98,7 @@ flags |= CHFL_DELAYED; joinbuf_join(&parts, chptr, flags); /* part client from channel */ + check_spambot_warning(sptr); } return joinbuf_flush(&parts); /* flush channel parts */ ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2007-04-26 21:17:26
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-04-26 21:17:22 UTC Modified files: ChangeLog ChangeLog.es config.h.in include/ircd_features.h include/ircd_signal.h include/motd.h include/patchlevel.h include/s_bsd.h include/struct.h ircd/convert-conf.c ircd/ircd.c ircd/ircd_events.c ircd/ircd_features.c ircd/ircd_log.c ircd/ircd_signal.c ircd/ircd_string.c ircd/m_list.c ircd/m_names.c ircd/m_pass.c ircd/m_ping.c ircd/m_pong.c ircd/m_stats.c ircd/m_whois.c ircd/m_whowas.c ircd/match.c ircd/motd.c ircd/s_bsd.c ircd/s_err.c ircd/s_stats.c Log message: Author: zo...@ir... Log message: 2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta6 * Aliases para /STATS * PING-PONG con alta prioridad * Soporte para senial SIGCHLD ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.54 ircd-ircdev/ChangeLog:1.55 --- ircd-ircdev/ChangeLog:1.54 Thu Apr 26 12:17:30 2007 +++ ircd-ircdev/ChangeLog Thu Apr 26 14:17:11 2007 @@ -1,10 +1,15 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.54 2007/04/26 19:17:30 zolty Exp $ +# $Id: ChangeLog,v 1.55 2007/04/26 21:17:11 zolty Exp $ # # Insert new changes at beginning of the change list. # +2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta6 + * Aliases for /STATS + * PING-PONG with high priority + * Signal SIGCHLD support + 2007-04-26 Toni Garcïa <zo...@ir...> 1.0.beta5 * New AUTH * Fix IPv6 support for SunOS and FreeBSD Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.54 ircd-ircdev/ChangeLog.es:1.55 --- ircd-ircdev/ChangeLog.es:1.54 Thu Apr 26 12:17:30 2007 +++ ircd-ircdev/ChangeLog.es Thu Apr 26 14:17:11 2007 @@ -1,10 +1,15 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.54 2007/04/26 19:17:30 zolty Exp $ +# $Id: ChangeLog.es,v 1.55 2007/04/26 21:17:11 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta6 + * Aliases para /STATS + * PING-PONG con alta prioridad + * Soporte para senial SIGCHLD + 2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta5 * Nuevo AUTH * Fix soporte IPv6 para SunOS y FreeBSD Index: ircd-ircdev/config.h.in diff -u ircd-ircdev/config.h.in:1.10 ircd-ircdev/config.h.in:1.11 --- ircd-ircdev/config.h.in:1.10 Sun Apr 22 06:56:17 2007 +++ ircd-ircdev/config.h.in Thu Apr 26 14:17:11 2007 @@ -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.10 2007/04/22 13:56:17 zolty Exp $ + * $Id: config.h.in,v 1.11 2007/04/26 21:17:11 zolty Exp $ * */ #ifndef INCLUDED_config_h Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.18 ircd-ircdev/include/ircd_features.h:1.19 --- ircd-ircdev/include/ircd_features.h:1.18 Thu Apr 26 12:17:31 2007 +++ ircd-ircdev/include/ircd_features.h Thu Apr 26 14:17:11 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Public interfaces and declarations for dealing with configurable features. - * @version $Id: ircd_features.h,v 1.18 2007/04/26 19:17:31 zolty Exp $ + * @version $Id: ircd_features.h,v 1.19 2007/04/26 21:17:11 zolty Exp $ */ #ifndef INCLUDED_features_h #define INCLUDED_features_h @@ -116,41 +116,70 @@ FEAT_HIS_LINKS, FEAT_HIS_TRACE, FEAT_HIS_STATS_a, + FEAT_HIS_STATS_NAMESERVERS, #if defined(DDB) FEAT_HIS_STATS_b, + FEAT_HIS_STATS_DDB, #endif FEAT_HIS_STATS_c, + FEAT_HIS_STATS_CONNECT, FEAT_HIS_STATS_d, + FEAT_HIS_STATS_CRULES, FEAT_HIS_STATS_e, + FEAT_HIS_STATS_ENGINE, FEAT_HIS_STATS_f, + FEAT_HIS_STATS_FEATURES, FEAT_HIS_STATS_g, + FEAT_HIS_STATS_GLINES, FEAT_HIS_STATS_i, + FEAT_HIS_STATS_ACCESS, FEAT_HIS_STATS_j, + FEAT_HIS_STATS_HISTOGRAM, FEAT_HIS_STATS_J, + FEAT_HIS_STATS_JUPES, FEAT_HIS_STATS_k, + FEAT_HIS_STATS_KLINES, FEAT_HIS_STATS_l, + FEAT_HIS_STATS_LINKS, FEAT_HIS_STATS_L, + FEAT_HIS_STATS_MODULES, FEAT_HIS_STATS_m, - FEAT_HIS_STATS_M, + FEAT_HIS_STATS_COMMANDS, FEAT_HIS_STATS_o, + FEAT_HIS_STATS_OPERATORS, FEAT_HIS_STATS_p, + FEAT_HIS_STATS_PORTS, FEAT_HIS_STATS_q, - FEAT_HIS_STATS_r, + FEAT_HIS_STATS_QUARANTINES, FEAT_HIS_STATS_R, + FEAT_HIS_STATS_MAPPINGS, + FEAT_HIS_STATS_r, + FEAT_HIS_STATS_USAGE, FEAT_HIS_STATS_t, + FEAT_HIS_STATS_LOCALS, FEAT_HIS_STATS_T, + FEAT_HIS_STATS_MOTDS, FEAT_HIS_STATS_u, + FEAT_HIS_STATS_UPTIME, FEAT_HIS_STATS_U, + FEAT_HIS_STATS_UWORLD, FEAT_HIS_STATS_v, + FEAT_HIS_STATS_VSERVERS, FEAT_HIS_STATS_w, + FEAT_HIS_STATS_USERLOAD, FEAT_HIS_STATS_x, + FEAT_HIS_STATS_MEMUSAGE, FEAT_HIS_STATS_y, + FEAT_HIS_STATS_CLASSES, FEAT_HIS_STATS_z, + FEAT_HIS_STATS_MEMORY, + FEAT_HIS_STATS_IAUTH, FEAT_HIS_WHOIS_SERVERNAME, FEAT_HIS_WHOIS_IDLETIME, FEAT_HIS_WHOIS_LOCALCHAN, FEAT_HIS_WHO_SERVERNAME, FEAT_HIS_WHO_HOPCOUNT, + FEAT_HIS_MODEWHO, FEAT_HIS_BANWHO, FEAT_HIS_KILLWHO, FEAT_HIS_REWRITE, Index: ircd-ircdev/include/ircd_signal.h diff -u ircd-ircdev/include/ircd_signal.h:1.5 ircd-ircdev/include/ircd_signal.h:1.6 --- ircd-ircdev/include/ircd_signal.h:1.5 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/ircd_signal.h Thu Apr 26 14:17:11 2007 @@ -21,12 +21,17 @@ */ /** @file ircd_signal.h * @brief Interface to signal handler subsystem. - * @version $Id: ircd_signal.h,v 1.5 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: ircd_signal.h,v 1.6 2007/04/26 21:17:11 zolty Exp $ */ #ifndef INCLUDED_ircd_signal_h #define INCLUDED_ircd_signal_h +typedef void (*SigChldCallBack)(pid_t child_pid, void *datum, int status); + extern void setup_signals(void); +extern void register_child(pid_t child, SigChldCallBack call, void *datum); +extern void unregister_child(pid_t child); +extern void reap_children(void); #endif /* INCLUDED_ircd_signal_h */ Index: ircd-ircdev/include/motd.h diff -u ircd-ircdev/include/motd.h:1.6 ircd-ircdev/include/motd.h:1.7 --- ircd-ircdev/include/motd.h:1.6 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/motd.h Thu Apr 26 14:17:11 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Message-of-the-day manipulation interface and declarations. - * @version $Id: motd.h,v 1.6 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: motd.h,v 1.7 2007/04/26 21:17:11 zolty Exp $ */ #ifndef INCLUDED_motd_h #define INCLUDED_motd_h @@ -93,10 +93,11 @@ /* motd_recache causes all the MOTD caches to be cleared */ void motd_recache(void); -/* motd_init initializes the MOTD routines, including reading the +/* motd_init_* initialize the MOTDs, including reading the * ircd.motd and remote.motd files into cache */ -void motd_init(void); +void motd_init_local(void); +void motd_init_remote(void); /* This routine adds a MOTD */ void motd_add(const char *hostmask, const char *path); Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.53 ircd-ircdev/include/patchlevel.h:1.54 --- ircd-ircdev/include/patchlevel.h:1.53 Thu Apr 26 12:17:31 2007 +++ ircd-ircdev/include/patchlevel.h Thu Apr 26 14:17:11 2007 @@ -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.53 2007/04/26 19:17:31 zolty Exp $ + * $Id: patchlevel.h,v 1.54 2007/04/26 21:17:11 zolty Exp $ * */ -#define PATCHLEVEL "5" +#define PATCHLEVEL "6" #define RELEASE "1.0.beta" Index: ircd-ircdev/include/s_bsd.h diff -u ircd-ircdev/include/s_bsd.h:1.10 ircd-ircdev/include/s_bsd.h:1.11 --- ircd-ircdev/include/s_bsd.h:1.10 Sun Apr 22 06:56:20 2007 +++ ircd-ircdev/include/s_bsd.h Thu Apr 26 14:17:11 2007 @@ -21,7 +21,7 @@ */ /** @file s_bsd.h * @brief Wrapper functions to avoid direct use of BSD APIs. - * @version $Id: s_bsd.h,v 1.10 2007/04/22 13:56:20 zolty Exp $ + * @version $Id: s_bsd.h,v 1.11 2007/04/26 21:17:11 zolty Exp $ */ #ifndef INCLUDED_s_bsd_h #define INCLUDED_s_bsd_h @@ -62,14 +62,8 @@ extern const char* const REUSEADDR_ERROR_MSG; extern const char* const SOCKET_ERROR_MSG; extern const char* const CONNLIMIT_ERROR_MSG; -extern const char* const ACCEPT_ERROR_MSG; -extern const char* const PEERNAME_ERROR_MSG; -extern const char* const POLL_ERROR_MSG; -extern const char* const SELECT_ERROR_MSG; -extern const char* const CONNECT_ERROR_MSG; extern const char* const SETBUFS_ERROR_MSG; extern const char* const TOS_ERROR_MSG; -extern const char* const REGISTER_ERROR_MSG; extern int HighestFd; extern struct Client** LocalClientArray; Index: ircd-ircdev/include/struct.h diff -u ircd-ircdev/include/struct.h:1.12 ircd-ircdev/include/struct.h:1.13 --- ircd-ircdev/include/struct.h:1.12 Sun Apr 22 06:56:20 2007 +++ ircd-ircdev/include/struct.h Thu Apr 26 14:17:11 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Structure definitions for users and servers. - * @version $Id: struct.h,v 1.12 2007/04/22 13:56:20 zolty Exp $ + * @version $Id: struct.h,v 1.13 2007/04/26 21:17:11 zolty Exp $ */ #ifndef INCLUDED_struct_h #define INCLUDED_struct_h @@ -62,6 +62,7 @@ int asll_rtt; /**< AsLL round-trip time */ int asll_to; /**< AsLL upstream lag */ int asll_from; /**< AsLL downstream lag */ + time_t asll_last; /**< Last time we sent or received an AsLL ping */ #if defined(DDB) unsigned long ddb_open; /**< DDB database open */ Index: ircd-ircdev/ircd/convert-conf.c diff -u ircd-ircdev/ircd/convert-conf.c:1.2 ircd-ircdev/ircd/convert-conf.c:1.3 --- ircd-ircdev/ircd/convert-conf.c:1.2 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/ircd/convert-conf.c Thu Apr 26 14:17:11 2007 @@ -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: convert-conf.c,v 1.2 2007/04/19 22:53:47 zolty Exp $ + * $Id: convert-conf.c,v 1.3 2007/04/26 21:17:11 zolty Exp $ * convert-conf.c - Convert ircu2.10.11 ircd.conf to ircu2.10.12 format. * */ @@ -30,13 +30,12 @@ #define MAX_FIELDS 5 -const char *admin_names[] = { "location", "contact", "contact", 0 }, - *connect_names[] = { "host", "password", "name", "#port", "class", 0 }, +static const char *admin_names[] = { "location", "contact", "contact", 0 }, *crule_names[] = { "server", "", "rule", 0 }, *general_names[] = { "name", "vhost", "description", "", "#numeric", 0 }, *motd_names[] = { "host", "file", 0 }, *class_names[] = { "name", "#pingfreq", "#connectfreq", "#maxlinks", "#sendq", 0 }, - *removed_features[] = { "VIRTUAL_HOST", "OPERS_SEE_IN_SECRET_CHANNELS", "LOCOP_SEE_IN_SECRET_CHANNELS", 0 }; + *removed_features[] = { "VIRTUAL_HOST", "TIMESEC", "OPERS_SEE_IN_SECRET_CHANNELS", "LOCOP_SEE_IN_SECRET_CHANNELS", "HIS_STATS_h", "HIS_DESYNCS", "AUTOHIDE", 0 }; static char orig_line[512], line[512], dbuf[512]; static char *fields[MAX_FIELDS + 1]; static unsigned int nfields; @@ -106,7 +105,7 @@ fputs("};\n", stdout); } -#define dupstring(TARGET, SOURCE) do { free(TARGET); if (SOURCE) { size_t len = strlen(SOURCE); (TARGET) = malloc(len+1); memcpy((TARGET), (SOURCE), len); } else (TARGET) = 0; } while(0) +#define dupstring(TARGET, SOURCE) do { free(TARGET); if (SOURCE) { size_t len = strlen(SOURCE) + 1; (TARGET) = malloc(len); memcpy((TARGET), (SOURCE), len); } else (TARGET) = 0; } while(0) /*** MANAGING LISTS OF STRINGS ***/ @@ -165,7 +164,7 @@ nlen = strlen(name); for (conn = connects; conn; conn = conn->next) { - for (ii = 0; tolower(name[ii]) == conn->name[ii] && ii < nlen; ++ii) ; + for (ii = 0; tolower(name[ii]) == tolower(conn->name[ii]) && ii < nlen; ++ii) ; if (conn->name[ii] == '\0' && name[ii] == '\0') break; } @@ -175,7 +174,7 @@ { conn = calloc(1, sizeof(*conn) + nlen); for (ii = 0; ii < nlen; ++ii) - conn->name[ii] = tolower(name[ii]); + conn->name[ii] = name[ii]; conn->next = connects; connects = conn; } @@ -219,6 +218,13 @@ { for (sl = conn->origins; sl; sl = sl->next) fprintf(stdout, "# %s\n", sl->value); + if (conn->host == NULL + || conn->password == NULL + || conn->class == NULL) { + fprintf(stderr,"H:line missing C:line for %s\n", conn->name); + continue; + } + fprintf(stdout, "Connect {\n\tname =\"%s\";\n\thost = \"%s\";\n" "\tpassword = \"%s\";\n\tclass = \"%s\";\n", @@ -308,7 +314,7 @@ ii = strlen(fields[0]); feat = calloc(1, sizeof(*feat) + ii); while (ii-- > 0) - feat->name[ii] = toupper(fields[0][ii]); + feat->name[ii] = fields[0][ii]; feat->next = features; features = feat; string_get(&feat->origins, orig_line); @@ -323,9 +329,15 @@ struct feature *feat; size_t ii; - fputs("Features {\n\t\"OPLEVELS\" = \"FALSE\";\n", stdout); + fputs("Features {\n", stdout); + fputs("\t\"OPLEVELS\" = \"FALSE\";\n", stdout); + fputs("\t\"ZANNELS\" = \"FALSE\";\n", stdout); for (feat = features; feat; feat = feat->next) { + /* Display the original feature line we are talking about. */ + for (sl = feat->origins; sl; sl = sl->next) + fprintf(stdout, "# %s\n", sl->value); + /* See if the feature was remapped to an oper privilege. */ for (rmf = remapped_features; rmf->name; rmf++) if (0 == strcmp(feat->name, rmf->name)) @@ -345,6 +357,14 @@ continue; } + /* If it had no value before, drop it now since the lexer does + * not accept empty strings and the grammar does not accept + * empty stringlists.*/ + if (!feat->values) { + fprintf(stdout, "# Above feature had no value.\n"); + continue; + } + /* Wasn't remapped, wasn't removed: print it out. */ fprintf(stdout, "\t\"%s\" =", feat->name); for (sl = feat->values; sl; sl = sl->next) @@ -421,7 +441,7 @@ } for (ii = 0; (remap = &remapped_features[ii++])->name; ) { if (!remap->feature || !remap->privilege - || !remap->feature->values || !remap->flags & mask) + || !remap->feature->values || !(remap->flags & mask)) continue; fprintf(stdout, "\t%s = %s;\n", remap->privilege, strcmp(remap->feature->values->value, "TRUE") ? "no" : "yes"); @@ -601,9 +621,10 @@ fputs(line, stdout); continue; } - /* Strip EOL character(s) and pass blank lines through. */ - while (len > 0 && (line[len-1] == '\n' || line[len-1] == '\r')) + /* Strip trailing whitespace. */ + while (len > 0 && isspace(line[len-1])) line[--len] = '\0'; + /* Pass blank lines through. */ if (len == 0) { fputc('\n', stdout); continue; Index: ircd-ircdev/ircd/ircd.c diff -u ircd-ircdev/ircd/ircd.c:1.27 ircd-ircdev/ircd/ircd.c:1.28 --- ircd-ircdev/ircd/ircd.c:1.27 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/ircd/ircd.c Thu Apr 26 14:17:11 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Entry point and other initialization functions for the daemon. - * @version $Id: ircd.c,v 1.27 2007/04/21 21:17:22 zolty Exp $ + * @version $Id: ircd.c,v 1.28 2007/04/26 21:17:11 zolty Exp $ */ #include "config.h" @@ -44,7 +44,6 @@ #include "jupe.h" #include "list.h" #include "match.h" -#include "motd.h" #include "msg.h" #include "numeric.h" #include "numnicks.h" @@ -107,8 +106,6 @@ struct Client *GlobalClientList = &me; /**< Pointer to beginning of Client list */ time_t TSoffset = 0; /**< Offset of timestamps to system clock */ -int GlobalRehashFlag = 0; /**< do a rehash if set */ -int GlobalRestartFlag = 0; /**< do a restart if set */ time_t CurrentTime; /**< Updated every time we leave select() */ char *configfile = CPATH; /**< Server configuration file */ @@ -193,6 +190,8 @@ close_connections(!(thisServer.bootopt & (BOOT_TTY | BOOT_DEBUG | BOOT_CHKCONF))); + reap_children(); + execv(SPATH, thisServer.argv); /* Have to reopen since it has been closed above */ @@ -264,14 +263,17 @@ struct ConfItem* aconf; struct ConfItem** pconf; time_t next = 0; - struct ConnectionClass* cltmp; struct Jupe* ajupe; - int hold; + int hold; + int done; assert(ET_EXPIRE == ev_type(ev)); assert(0 != ev_timer(ev)); Debug((DEBUG_NOTICE, "Connection check at : %s", myctime(CurrentTime))); + next = CurrentTime + feature_int(FEAT_CONNECTFREQUENCY); + done = 0; + for (aconf = GlobalConfList; aconf; aconf = aconf->next) { /* Only consider server items with non-zero port and non-zero * connect times that are not actively juped. @@ -286,17 +288,16 @@ hold = aconf->hold > CurrentTime; /* Update next possible connection check time. */ - if (hold && (next > aconf->hold || next == 0)) + if (hold && next > aconf->hold) next = aconf->hold; - cltmp = aconf->conn_class; - /* Do not try to connect if its use is still on hold until future, + * we have already initiated a connection this try_connections(), * too many links in its connection class, it is already linked, * or if connect rules forbid a link now. */ - if (hold - || (Links(cltmp) > MaxLinks(cltmp)) + if (hold || done + || (ConfLinks(aconf) > ConfMaxLinks(aconf)) || FindServer(aconf->name) || conf_eval_crule(aconf->name, CRULE_MASK)) continue; @@ -318,14 +319,10 @@ aconf->name); /* And stop looking for further candidates. */ - break; + done = 1; } - if (next == 0) - next = CurrentTime + feature_int(FEAT_CONNECTFREQUENCY); - Debug((DEBUG_NOTICE, "Next connection check : %s", myctime(next))); - timer_add(&connect_timer, try_connections, 0, TT_ABSOLUTE, next); } @@ -369,6 +366,24 @@ IsPingSent(cptr) ? "[Ping Sent]" : "[]", max_ping, (int)(CurrentTime - cli_lasttime(cptr)))); + /* If it's a server and we have not sent an AsLL lately, do so. */ + if (IsServer(cptr)) { + if (CurrentTime - cli_serv(cptr)->asll_last >= max_ping) { + char *asll_ts; + + SetPingSent(cptr); + cli_serv(cptr)->asll_last = CurrentTime; + expire = cli_serv(cptr)->asll_last + max_ping; + asll_ts = militime_float(NULL); + sendcmdto_prio_one(&me, CMD_PING, cptr, "!%s %s %s", asll_ts, + cli_name(cptr), asll_ts); + } + + expire = cli_serv(cptr)->asll_last + max_ping; + if (expire < next_check) + next_check = expire; + } + /* Ok, the thing that will happen most frequently, is that someone will * have sent something recently. Cover this first for speed. * -- @@ -392,28 +407,18 @@ */ if (!IsRegistered(cptr)) { assert(!IsServer(cptr)); - if ((CurrentTime-cli_firsttime(cptr) >= max_ping)) { - /* Display message if they have sent a NICK and a USER but no - * nospoof PONG. - */ - if (*(cli_name(cptr)) && cli_user(cptr) && *(cli_user(cptr))->username) { - send_reply(cptr, SND_EXPLICIT | ERR_BADPING, - ":Your client may not be compatible with this server."); - send_reply(cptr, SND_EXPLICIT | ERR_BADPING, - ":Compatible clients are available at %s", - feature_str(FEAT_URL_CLIENTS)); - } - exit_client_msg(cptr,cptr,&me, "Registration Timeout"); - continue; - } else { - /* OK, they still have enough time left, so we'll just skip to the - * next client. Set the next check to be when their time is up, if - * that's before the currently scheduled next check -- hikari */ - expire = cli_firsttime(cptr) + max_ping; - if (expire < next_check) - next_check = expire; + /* If client authorization time has expired, ask auth whether they + * should be checked again later. */ + if ((CurrentTime-cli_firsttime(cptr) >= max_ping) + && auth_ping_timeout(cptr)) continue; - } + /* OK, they still have enough time left, so we'll just skip to the + * next client. Set the next check to be when their time is up, if + * that's before the currently scheduled next check -- hikari */ + expire = cli_firsttime(cptr) + max_ping; + if (expire < next_check) + next_check = expire; + continue; } /* Quit the client after max_ping*2 - they should have answered by now */ @@ -441,11 +446,7 @@ if (IsUser(cptr)) sendrawto_one(cptr, MSG_PING " :%s", cli_name(&me)); else - { - char *asll_ts = militime_float(NULL); - sendcmdto_one(&me, CMD_PING, cptr, "!%s %s %s", asll_ts, - cli_name(cptr), asll_ts); - } + sendcmdto_prio_one(&me, CMD_PING, cptr, ":%s", cli_name(&me)); } expire = cli_lasttime(cptr) + max_ping * 2; @@ -730,8 +731,6 @@ should be removed -- hikari */ ircd_crypt_init(); - motd_init(); - if (!init_conf()) { log_write(LS_SYSTEM, L_CRIT, 0, "Failed to read configuration file %s", configfile); Index: ircd-ircdev/ircd/ircd_events.c diff -u ircd-ircdev/ircd/ircd_events.c:1.9 ircd-ircdev/ircd/ircd_events.c:1.10 --- ircd-ircdev/ircd/ircd_events.c:1.9 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/ircd_events.c Thu Apr 26 14:17:11 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of event loop mid-layer. - * @version $Id: ircd_events.c,v 1.9 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: ircd_events.c,v 1.10 2007/04/26 21:17:11 zolty Exp $ */ #include "config.h" @@ -88,13 +88,13 @@ * This is used if an engine does not implement signal handling itself * (when Engine::eng_signal is NULL). */ -static struct { +static struct sigInfo_s { int fd; /**< signal routine's fd */ struct Socket sock; /**< and its struct Socket */ } sigInfo = { -1 }; /** All the thread info */ -static struct { +static struct evInfo_s { struct Generators gens; /**< List of all generators */ struct Event* events_free; /**< struct Event free list */ unsigned int events_alloc; /**< count of allocated struct Events */ @@ -146,6 +146,48 @@ } } +#ifndef IRCD_THREADED + +/** Generate and execute an event. + * @param[in] type Type of event to generate. + * @param[in] arg Pointer to an event generator (GenHeader). + * @param[in] data Extra data for event. + */ +void +event_generate(enum EventType type, void* arg, int data) +{ + struct Event ev; + struct GenHeader *gen = (struct GenHeader*) arg; + + assert(0 != gen); + assert(gen->gh_flags & GEN_ACTIVE); + + if (type == ET_DESTROY) + { + if (gen->gh_flags & GEN_DESTROY) + return; + gen->gh_flags &= ~GEN_ACTIVE; + } + else if (type == ET_ERROR) + gen->gh_flags |= GEN_ERROR; + + Debug((DEBUG_LIST, "Generating event type %s for generator %p (%s)", + event_to_name(type), gen, gen_flags(gen->gh_flags))); + + ev.ev_next = NULL; + ev.ev_prev_p = NULL; + ev.ev_type = type; + ev.ev_data = data; + ev.ev_gen.gen_header = gen; + gen->gh_ref++; + + gen->gh_call(&ev); + if (type != ET_DESTROY) + gen_ref_dec(gen); +} + +#else + /** Execute an event. * Optimizations should inline this. * @param[in] event Event to execute. @@ -180,17 +222,6 @@ evInfo.events_free = event; } -#ifndef IRCD_THREADED -/** we synchronously execute the event when not threaded */ -#define event_add(event) \ -do { \ - struct Event* _ev = (event); \ - _ev->ev_next = 0; \ - _ev->ev_prev_p = 0; \ - event_execute(_ev); \ -} while (0) - -#else /** Add an event to the work queue. * @param[in] event Event to enqueue. */ @@ -241,6 +272,43 @@ /* We'd also have to signal the work crew here */ } } + +/** Generate an event and add it to the queue (or execute it). + * @param[in] type Type of event to generate. + * @param[in] arg Pointer to an event generator (GenHeader). + * @param[in] data Extra data for event. + */ +void +event_generate(enum EventType type, void* arg, int data) +{ + struct Event* ptr; + struct GenHeader* gen = (struct GenHeader*) arg; + + assert(0 != gen); + + /* don't create events (other than ET_DESTROY) for destroyed generators */ + if (type != ET_DESTROY && (gen->gh_flags & GEN_DESTROY)) + return; + + Debug((DEBUG_LIST, "Generating event type %s for generator %p (%s)", + event_to_name(type), gen, gen_flags(gen->gh_flags))); + + if ((ptr = evInfo.events_free)) + evInfo.events_free = ptr->ev_next; /* pop one off the freelist */ + else { /* allocate another structure */ + ptr = (struct Event*) MyMalloc(sizeof(struct Event)); + evInfo.events_alloc++; /* count of allocated events */ + } + + ptr->ev_type = type; /* Record event type */ + ptr->ev_data = data; + + ptr->ev_gen.gen_header = (struct GenHeader*) gen; + ptr->ev_gen.gen_header->gh_ref++; + + event_add(ptr); /* add event to queue */ +} + #endif /* IRCD_THREADED */ /** Place a timer in the correct spot on the queue. @@ -381,42 +449,6 @@ (*evInfo.engine->eng_loop)(&evInfo.gens); } -/** Generate an event and add it to the queue (or execute it). - * @param[in] type Type of event to generate. - * @param[in] arg Pointer to an event generator (GenHeader). - * @param[in] data Extra data for event. - */ -void -event_generate(enum EventType type, void* arg, int data) -{ - struct Event* ptr; - struct GenHeader* gen = (struct GenHeader*) arg; - - assert(0 != gen); - - /* don't create events (other than ET_DESTROY) for destroyed generators */ - if (type != ET_DESTROY && (gen->gh_flags & GEN_DESTROY)) - return; - - Debug((DEBUG_LIST, "Generating event type %s for generator %p (%s)", - event_to_name(type), gen, gen_flags(gen->gh_flags))); - - if ((ptr = evInfo.events_free)) - evInfo.events_free = ptr->ev_next; /* pop one off the freelist */ - else { /* allocate another structure */ - ptr = (struct Event*) MyMalloc(sizeof(struct Event)); - evInfo.events_alloc++; /* count of allocated events */ - } - - ptr->ev_type = type; /* Record event type */ - ptr->ev_data = data; - - ptr->ev_gen.gen_header = (struct GenHeader*) gen; - ptr->ev_gen.gen_header->gh_ref++; - - event_add(ptr); /* add event to queue */ -} - #if 0 /* Try to verify the timer list */ void Index: ircd-ircdev/ircd/ircd_features.c diff -u ircd-ircdev/ircd/ircd_features.c:1.18 ircd-ircdev/ircd/ircd_features.c:1.19 --- ircd-ircdev/ircd/ircd_features.c:1.18 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/ircd_features.c Thu Apr 26 14:17:11 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of configurable feature support. - * @version $Id: ircd_features.c,v 1.18 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: ircd_features.c,v 1.19 2007/04/26 21:17:11 zolty Exp $ */ #include "config.h" @@ -300,8 +300,13 @@ #define FEAT_INT 0x0001 /**< set if entry contains an integer value */ #define FEAT_BOOL 0x0002 /**< set if entry contains a boolean value */ #define FEAT_STR 0x0003 /**< set if entry contains a string value */ +#define FEAT_ALIAS 0x0004 /**< set if entry is alias for another entry */ +#define FEAT_DEP 0x0005 /**< set if entry is deprecated feature */ #define FEAT_MASK 0x000f /**< possible value types */ +/** Extract just the feature type from a feature descriptor. */ +#define feat_type(feat) ((feat)->flags & FEAT_MASK) + #define FEAT_MARK 0x0010 /**< set if entry has been changed */ #define FEAT_NULL 0x0020 /**< NULL string is permitted */ #define FEAT_CASE 0x0040 /**< string is case-sensitive */ @@ -328,6 +333,13 @@ #define F_S(type, flags, v_str, notify) \ { FEAT_ ## type, #type, FEAT_STR | (flags), 0, 0, 0, (v_str), \ 0, 0, 0, (notify), 0, 0, 0 } +/** Declare a feature as an alias for another feature. */ +#define F_A(type, alias) \ + { FEAT_ ## type, #type, FEAT_ALIAS, 0, FEAT_ ## alias, 0, 0, \ + 0, 0, 0, 0, 0, 0, 0 } +/** Declare a feature as deprecated. */ +#define F_D(type) \ + { FEAT_ ## type, #type, FEAT_DEP, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } /** Table of feature descriptions. */ static struct FeatureDesc { @@ -363,6 +375,7 @@ F_B(HUB, 0, 0, 0), F_B(WALLOPS_OPER_ONLY, 0, 0, 0), F_B(NODNS, 0, 0, 0), + F_B(NOIDENT, 0, 0, 0), F_N(RANDOM_SEED, FEAT_NODISP, random_seed_set, 0, 0, 0, 0, 0, 0), F_S(DEFAULT_LIST_PARAM, FEAT_NULL, 0, list_set_default), F_I(NICKNAMEHISTORYLENGTH, 0, 800, whowas_realloc), @@ -399,8 +412,8 @@ F_I(CHANNELLEN, 0, 200, set_isupport_channellen), /* Some misc. default paths */ - F_S(MPATH, FEAT_CASE | FEAT_MYOPER, "ircd.motd", motd_init), - F_S(RPATH, FEAT_CASE | FEAT_MYOPER, "remote.motd", motd_init), + F_S(MPATH, FEAT_CASE | FEAT_MYOPER, "ircd.motd", motd_init_local), + F_S(RPATH, FEAT_CASE | FEAT_MYOPER, "remote.motd", motd_init_remote), F_S(PPATH, FEAT_CASE | FEAT_MYOPER | FEAT_READ, "ircd.pid", 0), #if defined(DDB) F_S(DDBPATH, FEAT_CASE | FEAT_MYOPER, "database", 0), @@ -426,42 +439,71 @@ F_B(HIS_MAP, 0, 1, 0), F_B(HIS_LINKS, 0, 1, 0), F_B(HIS_TRACE, 0, 1, 0), - F_B(HIS_STATS_a, 0, 1, 0), + F_A(HIS_STATS_a, HIS_STATS_NAMESERVERS), + F_B(HIS_STATS_NAMESERVERS, 0, 1, 0), #if defined(DDB) - F_B(HIS_STATS_b, 0, 1, 0), + F_A(HIS_STATS_b, HIS_STATS_DDB), + F_B(HIS_STATS_DDB, 0, 1, 0), #endif - F_B(HIS_STATS_c, 0, 1, 0), - F_B(HIS_STATS_d, 0, 1, 0), - F_B(HIS_STATS_e, 0, 1, 0), - F_B(HIS_STATS_f, 0, 1, 0), - F_B(HIS_STATS_g, 0, 1, 0), - F_B(HIS_STATS_i, 0, 1, 0), - F_B(HIS_STATS_j, 0, 1, 0), - F_B(HIS_STATS_J, 0, 1, 0), - F_B(HIS_STATS_k, 0, 1, 0), - F_B(HIS_STATS_l, 0, 1, 0), - F_B(HIS_STATS_L, 0, 1, 0), - F_B(HIS_STATS_m, 0, 1, 0), - F_B(HIS_STATS_M, 0, 1, 0), - F_B(HIS_STATS_o, 0, 1, 0), - F_B(HIS_STATS_p, 0, 1, 0), - F_B(HIS_STATS_q, 0, 1, 0), - F_B(HIS_STATS_r, 0, 1, 0), - F_B(HIS_STATS_R, 0, 1, 0), - F_B(HIS_STATS_t, 0, 1, 0), - F_B(HIS_STATS_T, 0, 1, 0), - F_B(HIS_STATS_u, 0, 0, 0), - F_B(HIS_STATS_U, 0, 1, 0), - F_B(HIS_STATS_v, 0, 1, 0), - F_B(HIS_STATS_w, 0, 0, 0), - F_B(HIS_STATS_x, 0, 1, 0), - F_B(HIS_STATS_y, 0, 1, 0), - F_B(HIS_STATS_z, 0, 1, 0), + F_A(HIS_STATS_c, HIS_STATS_CONNECT), + F_B(HIS_STATS_CONNECT, 0, 1, 0), + F_A(HIS_STATS_d, HIS_STATS_CRULES), + F_B(HIS_STATS_CRULES, 0, 1, 0), + F_A(HIS_STATS_e, HIS_STATS_ENGINE), + F_B(HIS_STATS_ENGINE, 0, 1, 0), + F_A(HIS_STATS_f, HIS_STATS_FEATURES), + F_B(HIS_STATS_FEATURES, 0, 1, 0), + F_A(HIS_STATS_g, HIS_STATS_GLINES), + F_B(HIS_STATS_GLINES, 0, 1, 0), + F_A(HIS_STATS_i, HIS_STATS_ACCESS), + F_B(HIS_STATS_ACCESS, 0, 1, 0), + F_A(HIS_STATS_j, HIS_STATS_HISTOGRAM), + F_B(HIS_STATS_HISTOGRAM, 0, 1, 0), + F_A(HIS_STATS_J, HIS_STATS_JUPES), + F_B(HIS_STATS_JUPES, 0, 1, 0), + F_A(HIS_STATS_k, HIS_STATS_KLINES), + F_B(HIS_STATS_KLINES, 0, 1, 0), + F_A(HIS_STATS_l, HIS_STATS_LINKS), + F_B(HIS_STATS_LINKS, 0, 1, 0), + F_A(HIS_STATS_L, HIS_STATS_MODULES), + F_B(HIS_STATS_MODULES, 0, 1, 0), + F_A(HIS_STATS_m, HIS_STATS_COMMANDS), + F_B(HIS_STATS_COMMANDS, 0, 1, 0), + F_A(HIS_STATS_o, HIS_STATS_OPERATORS), + F_B(HIS_STATS_OPERATORS, 0, 1, 0), + F_A(HIS_STATS_p, HIS_STATS_PORTS), + F_B(HIS_STATS_PORTS, 0, 1, 0), + F_A(HIS_STATS_q, HIS_STATS_QUARANTINES), + F_B(HIS_STATS_QUARANTINES, 0, 1, 0), + F_A(HIS_STATS_R, HIS_STATS_MAPPINGS), + F_B(HIS_STATS_MAPPINGS, 0, 1, 0), + F_A(HIS_STATS_r, HIS_STATS_USAGE), + F_B(HIS_STATS_USAGE, 0, 1, 0), + F_A(HIS_STATS_t, HIS_STATS_LOCALS), + F_B(HIS_STATS_LOCALS, 0, 1, 0), + F_A(HIS_STATS_T, HIS_STATS_MOTDS), + F_B(HIS_STATS_MOTDS, 0, 1, 0), + F_A(HIS_STATS_u, HIS_STATS_UPTIME), + F_B(HIS_STATS_UPTIME, 0, 0, 0), + F_A(HIS_STATS_U, HIS_STATS_UWORLD), + F_B(HIS_STATS_UWORLD, 0, 1, 0), + F_A(HIS_STATS_v, HIS_STATS_VSERVERS), + F_B(HIS_STATS_VSERVERS, 0, 1, 0), + F_A(HIS_STATS_w, HIS_STATS_USERLOAD), + F_B(HIS_STATS_USERLOAD, 0, 0, 0), + F_A(HIS_STATS_x, HIS_STATS_MEMUSAGE), + F_B(HIS_STATS_MEMUSAGE, 0, 1, 0), + F_A(HIS_STATS_y, HIS_STATS_CLASSES), + F_B(HIS_STATS_CLASSES, 0, 1, 0), + F_A(HIS_STATS_z, HIS_STATS_MEMORY), + F_B(HIS_STATS_MEMORY, 0, 1, 0), + F_B(HIS_STATS_IAUTH, 0, 1, 0), F_B(HIS_WHOIS_SERVERNAME, 0, 1, 0), F_B(HIS_WHOIS_IDLETIME, 0, 1, 0), F_B(HIS_WHOIS_LOCALCHAN, 0, 1, 0), F_B(HIS_WHO_SERVERNAME, 0, 1, 0), F_B(HIS_WHO_HOPCOUNT, 0, 1, 0), + F_B(HIS_MODEWHO, 0, 1, 0), F_B(HIS_BANWHO, 0, 1, 0), F_B(HIS_KILLWHO, 0, 1, 0), F_B(HIS_REWRITE, 0, 1, 0), @@ -474,6 +516,7 @@ /* Misc. random stuff */ F_S(NETWORK, 0, "IRC-Dev", set_isupport_network), F_S(URL_CLIENTS, 0, "ftp://ftp.irc.org/pub/irc/clients", 0), + F_S(URLREG, 0, "http://cservice.undernet.org/live/", 0), #undef F_S #undef F_B @@ -495,8 +538,30 @@ assert(0 != feature); for (i = 0; features[i].type; i++) /* find appropriate descriptor */ - if (!strcmp(feature, features[i].type)) + if (!strcmp(feature, features[i].type)) { + if (feat_type(&features[i]) == FEAT_ALIAS) { + Debug((DEBUG_NOTICE, "Deprecated feature \"%s\" referenced; replace " + "with %s", feature, features[features[i].def_int].type)); + if (from) /* report a warning */ + send_reply(from, SND_EXPLICIT | ERR_NOFEATURE, + "%s :Feature deprecated, use %s", feature, + features[features[i].def_int].type); + else + log_write(LS_CONFIG, L_WARNING, 0, "Feature \"%s\" deprecated, " + "use \"%s\"", feature, features[features[i].def_int].type); + + return &features[features[i].def_int]; + } else if (feat_type(&features[i]) == FEAT_DEP) { + Debug((DEBUG_NOTICE, "Deprecated feature \"%s\" referenced", feature)); + if (from) /* report a warning */ + send_reply(from, SND_EXPLICIT | ERR_NOFEATURE, + "%s :Feature deprecated", feature); + else + log_write(LS_CONFIG, L_WARNING, 0, "Feature \"%s\" deprecated", + feature); + } return &features[i]; + } Debug((DEBUG_ERROR, "Unknown feature \"%s\"", feature)); if (from) /* report an error */ @@ -532,7 +597,7 @@ if (from && feat->flags & FEAT_READ) return send_reply(from, ERR_NOFEATURE, fields[0]); - switch (feat->flags & FEAT_MASK) { + switch (feat_type(feat)) { case FEAT_NONE: if (feat->set && (i = (*feat->set)(from, fields + 1, count - 1))) { change++; /* feature handler wants a change recorded */ @@ -683,7 +748,7 @@ if (from && feat->flags & FEAT_READ) return send_reply(from, ERR_NOFEATURE, fields[0]); - switch (feat->flags & FEAT_MASK) { + switch (feat_type(feat)) { case FEAT_NONE: /* None... */ if (feat->reset && (i = (*feat->reset)(from, fields + 1, count - 1))) { change++; /* feature handler wants a change recorded */ @@ -744,7 +809,7 @@ (feat->flags & FEAT_OPER && !IsAnOper(from))) /* check privs */ return send_reply(from, ERR_NOPRIVILEGES); - switch (feat->flags & FEAT_MASK) { + switch (feat_type(feat)) { case FEAT_NONE: /* none, call the callback... */ if (feat->get) /* if there's a callback, use it */ (*feat->get)(from, fields + 1, count - 1); @@ -797,7 +862,7 @@ for (i = 0; features[i].type; i++) { change = 0; - switch (features[i].flags & FEAT_MASK) { + switch (feat_type(&features[i])) { case FEAT_NONE: if (features[i].mark && (*features[i].mark)(features[i].flags & FEAT_MARK ? 1 : 0)) @@ -837,26 +902,29 @@ int i; for (i = 0; features[i].type; i++) { - switch (features[i].flags & FEAT_MASK) { + struct FeatureDesc *feat = &features[i]; + + switch (feat_type(feat)) { case FEAT_NONE: /* you're on your own */ break; case FEAT_INT: /* Integers or Booleans... */ case FEAT_BOOL: - features[i].v_int = features[i].def_int; + feat->v_int = feat->def_int; break; case FEAT_STR: /* Strings */ - features[i].v_str = features[i].def_str; - assert(features[i].def_str || (features[i].flags & FEAT_NULL)); + feat->v_str = feat->def_str; + assert(feat->def_str || (feat->flags & FEAT_NULL)); break; } + + if (feat->notify) + (*feat->notify)(); } cli_magic(&his) = CLIENT_MAGIC; cli_status(&his) = STAT_SERVER; - feature_notify_servername(); - feature_notify_serverinfo(); } /** Report all F-lines to a user. @@ -875,7 +943,7 @@ (features[i].flags & FEAT_OPER && !IsAnOper(to))) continue; /* skip this one */ - switch (features[i].flags & FEAT_MASK) { + switch (feat_type(&features[i])) { case FEAT_NONE: if (features[i].report) /* let the callback handle this */ (*features[i].report)(to, features[i].flags & FEAT_MARK ? 1 : 0); @@ -916,7 +984,7 @@ feature_int(enum Feature feat) { assert(features[feat].feat == feat); - assert((features[feat].flags & FEAT_MASK) == FEAT_INT); + assert(feat_type(&features[feat]) == FEAT_INT); return features[feat].v_int; } @@ -932,7 +1000,7 @@ if (FEAT_LAST_F < feat) return 0; assert(features[feat].feat == feat); - assert((features[feat].flags & FEAT_MASK) == FEAT_BOOL); + assert(feat_type(&features[feat]) == FEAT_BOOL); return features[feat].v_int; } @@ -945,7 +1013,7 @@ feature_str(enum Feature feat) { assert(features[feat].feat == feat); - assert((features[feat].flags & FEAT_MASK) == FEAT_STR); + assert(feat_type(&features[feat]) == FEAT_STR); return features[feat].v_str; } Index: ircd-ircdev/ircd/ircd_log.c diff -u ircd-ircdev/ircd/ircd_log.c:1.15 ircd-ircdev/ircd/ircd_log.c:1.16 --- ircd-ircdev/ircd/ircd_log.c:1.15 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/ircd/ircd_log.c Thu Apr 26 14:17:11 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief IRC logging implementation. - * @version $Id: ircd_log.c,v 1.15 2007/04/21 21:17:22 zolty Exp $ + * @version $Id: ircd_log.c,v 1.16 2007/04/26 21:17:11 zolty Exp $ */ #include "config.h" @@ -98,7 +98,7 @@ #define LOG_NOTFOUND -2 /**< didn't find a facility corresponding to name */ /** Map names to syslog facilities. */ -static struct { +static struct facilities_s { char *name; /**< Textual name of facility. */ int facility; /**< Facility value for syslog(). */ } facilities[] = { @@ -118,7 +118,7 @@ #define SNO_NOTFOUND 0xffffffff /**< didn't find a SNO_MASK value for name */ /** Map names to snomask values. */ -static struct { +static struct masks_s { char *name; /**< Name of server notice bit. */ unsigned int snomask; /**< Bitmask corresponding to name. */ } masks[] = { @@ -126,7 +126,7 @@ M(NONE), M(OLDSNO), M(SERVKILL), M(OPERKILL), M(HACK2), M(HACK3), M(UNAUTH), M(TCPCOMMON), M(TOOMANY), M(HACK4), M(GLINE), M(NETWORK), M(IPMISMATCH), M(THROTTLE), M(OLDREALOP), - M(CONNEXIT), M(DEBUG), + M(CONNEXIT), M(DEBUG), M(AUTH), #undef M { 0, 0 } }; @@ -168,7 +168,7 @@ S(IAUTH, -1, SNO_NETWORK), S(DEBUG, -1, SNO_DEBUG), #undef S - { LS_LAST_SYSTEM, 0, 0, -1, 0, -1, 0 } + { LS_LAST_SYSTEM, 0, 0, -1, 0, -1, 0, 0, 0 } }; /** Describes a log file. */ @@ -181,7 +181,7 @@ }; /** Modifiable static information. */ -static struct { +static struct logInfo_s{ struct LogFile *filelist; /**< list of log files */ struct LogFile *freelist; /**< list of free'd log files */ int facility; /**< default facility */ Index: ircd-ircdev/ircd/ircd_signal.c diff -u ircd-ircdev/ircd/ircd_signal.c:1.6 ircd-ircdev/ircd/ircd_signal.c:1.7 --- ircd-ircdev/ircd/ircd_signal.c:1.6 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/ircd_signal.c Thu Apr 26 14:17:11 2007 @@ -21,11 +21,12 @@ */ /** @file * @brief Signal handlers for ircu. - * @version $Id: ircd_signal.c,v 1.6 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: ircd_signal.c,v 1.7 2007/04/26 21:17:11 zolty Exp $ */ #include "config.h" #include "ircd.h" +#include "ircd_alloc.h" #include "ircd_events.h" #include "ircd_log.h" #include "ircd_signal.h" @@ -33,11 +34,23 @@ /* #include <assert.h> -- Now using assert in ircd_log.h */ #include <signal.h> +#include <string.h> +#include <sys/wait.h> +#include <unistd.h> + +/** Records a function to be called when a child process terminates. */ +struct ChildRecord { + struct ChildRecord *next; + SigChldCallBack call; + void *datum; + pid_t cpid; +}; /** Counts various types of signals that we receive. */ static struct tag_SignalCounter { unsigned int alrm; /**< Received SIGALRM count. */ unsigned int hup; /**< Received SIGHUP count. */ + unsigned int chld; /**< Received SIGCHLD count. */ } SignalCounter; /** Event generator for SIGHUP. */ @@ -46,6 +59,17 @@ static struct Signal sig_int; /** Event generator for SIGTERM. */ static struct Signal sig_term; +/** Event generator for SIGCHLD. */ +static struct Signal sig_chld; +/** List of active child process callback requests. */ +static struct ChildRecord *children; +/** List of inactive (free) child records. */ +static struct ChildRecord *crec_freelist; + +/* Make sure we have a definition for SIGCHLD. */ +#if !defined(SIGCHLD) +# define SIGCHLD SIGCLD +#endif /** Signal handler for SIGALRM. * @param[in] sig Signal number (ignored). @@ -95,6 +119,112 @@ server_restart("caught signal: SIGINT"); } +/** Allocate a child callback record. + * @return Newly allocated callback record. + */ +static struct ChildRecord *alloc_crec(void) +{ + struct ChildRecord *crec; + + if (crec_freelist) + { + crec = crec_freelist; + crec_freelist = crec->next; + } + else + { + crec = MyCalloc(1, sizeof(*crec)); + } + + memset(crec, 0, sizeof(*crec)); + crec->next = NULL; + return crec; +} + +/** Release \a crec, which is after \a prev. + * @param[in] crec Child process callback record to release. + */ +static void release_crec(struct ChildRecord *crec) +{ + memset(crec, 0, sizeof(*crec)); + crec->next = crec_freelist; + crec_freelist = crec; +} + +/** Register a function to be called when a child process terminates. + * @param[in] child Child process ID. + * @param[in] call Function to call when process \a child terminates. + * @param[in] datum Additional data parameter to pass to \a call. + */ +void register_child(pid_t child, SigChldCallBack call, void *datum) +{ + struct ChildRecord *crec; + + crec = alloc_crec(); + /* Link into #children list. */ + crec->next = children; + children = crec; + /* Fill in user fields. */ + crec->call = call; + crec->datum = datum; + crec->cpid = child; +} + +/** Unregister all callbacks for a child process, optionally calling + * them first. + * @param[in] child Child process ID to unregister. + * @param[in] do_call If non-zero, make the callbacks. + * @param[in] status If \a do_call is non-zero, the child's exit status. + */ +static void do_unregister_child(pid_t child, int do_call, int status) +{ + struct ChildRecord *crec = children; + struct ChildRecord *prev = NULL; + + while (crec != NULL) + { + if (crec->cpid == child) + { + if (do_call) + crec->call(child, crec->datum, status); + + if (prev) + prev->next = crec->next; + else + children = crec->next; + + release_crec(crec); + } + else + prev = crec; + crec = prev ? prev->next : children; + } +} + +/** Unregister all callbacks for a child process. + * @param[in] child Child process ID to unregister. + */ +void unregister_child(pid_t child) +{ + do_unregister_child(child, 0, 0); +} + +/** Signal handler for SIGCHLD. + * @param[in] ev Signal event descriptor. + */ +static void sigchld_callback(struct Event *ev) +{ + pid_t cpid; + int status; + + ++SignalCounter.chld; + do { + cpid = waitpid(-1, &status, WNOHANG); + if (cpid > 0) + do_unregister_child(cpid, 1, status); + } while (cpid > 0); +} + /** Register all necessary signal handlers. */ void setup_signals(void) { @@ -117,6 +247,7 @@ signal_add(&sig_hup, sighup_callback, 0, SIGHUP); signal_add(&sig_int, sigint_callback, 0, SIGINT); signal_add(&sig_term, sigterm_callback, 0, SIGTERM); + signal_add(&sig_chld, sigchld_callback, 0, SIGCHLD); #ifdef HAVE_RESTARTABLE_SYSCALLS /* @@ -127,3 +258,14 @@ siginterrupt(SIGALRM, 1); #endif } + +/** Kill and clean up all child processes. */ +void reap_children(void) +{ + /* Send SIGTERM to all children in process group. Sleep for a + * second to let them exit before we try to clean them up. + */ + kill(0, SIGTERM); + sleep(1); + sigchld_callback(NULL); +} Index: ircd-ircdev/ircd/ircd_string.c diff -u ircd-ircdev/ircd/ircd_string.c:1.14 ircd-ircdev/ircd/ircd_string.c:1.15 --- ircd-ircdev/ircd/ircd_string.c:1.14 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/ircd_string.c Thu Apr 26 14:17:11 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of string operations. - * @version $Id: ircd_string.c,v 1.14 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: ircd_string.c,v 1.15 2007/04/26 21:17:11 zolty Exp $ */ #include "config.h" @@ -159,6 +159,8 @@ while (s < endp && (*s++ = *s2++)) ; + if (s == endp) + *s = '\0'; return s1; } Index: ircd-ircdev/ircd/m_list.c diff -u ircd-ircdev/ircd/m_list.c:1.10 ircd-ircdev/ircd/m_list.c:1.11 --- ircd-ircdev/ircd/m_list.c:1.10 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_list.c Thu Apr 26 14:17:11 2007 @@ -20,7 +20,7 @@ */ /** @file * @brief Handlers for LIST command. - * @version $Id: m_list.c,v 1.10 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_list.c,v 1.11 2007/04/26 21:17:11 zolty Exp $ */ #include "config.h" @@ -205,6 +205,12 @@ case 'S': case 's': + /* Admins have no business making the default LIST include + * secret channels, even if it is just for opers with the + * LIST_CHAN privilege. */ + if (!sptr) + break; + if (!IsAnOper(sptr) || !HasPriv(sptr, PRIV_LIST_CHAN)) return show_usage(sptr); Index: ircd-ircdev/ircd/m_names.c diff -u ircd-ircdev/ircd/m_names.c:1.12 ircd-ircdev/ircd/m_names.c:1.13 --- ircd-ircdev/ircd/m_names.c:1.12 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_names.c Thu Apr 26 14:17:11 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for NAMES command. - * @version $Id: m_names.c,v 1.12 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_names.c,v 1.13 2007/04/26 21:17:11 zolty Exp $ */ #include "config.h" @@ -203,7 +203,8 @@ s = strchr(para, ','); /* Recursively call m_names for each comma-separated channel. Eww. */ if (s) { - parv[1+showingdelayed] = ++s; + *s++ = '\0'; + parv[1+showingdelayed] = s; m_names(cptr, sptr, parc, parv); } @@ -357,7 +358,8 @@ s = strchr(para, ','); /* Recursively call m_names for each comma-separated channel. */ if (s) { - parv[1+!!showingdelayed] = ++s; + *s++ = '\0'; + parv[1+!!showingdelayed] = s; m_names(cptr, sptr, parc, parv); } Index: ircd-ircdev/ircd/m_pass.c diff -u ircd-ircdev/ircd/m_pass.c:1.5 ircd-ircdev/ircd/m_pass.c:1.6 --- ircd-ircdev/ircd/m_pass.c:1.5 Thu Apr 19 15:53:49 2007 +++ ircd-ircdev/ircd/m_pass.c Thu Apr 26 14:17:11 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for PASS command. - * @version $Id: m_pass.c,v 1.5 2007/04/19 22:53:49 zolty Exp $ + * @version $Id: m_pass.c,v 1.6 2007/04/26 21:17:11 zolty Exp $ */ #include "config.h" @@ -29,6 +29,7 @@ #include "ircd_log.h" #include "ircd_reply.h" #include "ircd_string.h" +#include "s_auth.h" #include "send.h" /* #include <assert.h> -- Now using assert in ircd_log.h */ @@ -47,15 +48,30 @@ */ int mr_pass(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { - const char* password = parc > 1 ? parv[1] : 0; + char password[BUFSIZE]; + int arg, len; assert(0 != cptr); assert(cptr == sptr); assert(!IsRegistered(sptr)); + /* Some clients (brokenly) send "PASS x y" rather than "PASS :x y" + * when the user enters "x y" as the password. Unsplit arguments to + * work around this. + */ + for (arg = 1, len = 0; arg < parc; ++arg) + { + ircd_strncpy(password + len, parv[arg], sizeof(password) - len); + len += strlen(parv[arg]); + password[len++] = ' '; + } + if (len > 0) + --len; + password[len] = '\0'; + if (EmptyString(password)) return need_more_params(cptr, "PASS"); - ircd_strncpy(cli_passwd(cptr), password, PASSWDLEN); + return cli_auth(cptr) ? auth_set_password(cli_auth(cptr), password) : 0; return 0; } Index: ircd-ircdev/ircd/m_ping.c diff -u ircd-ircdev/ircd/m_ping.c:1.9 ircd-ircdev/ircd/m_ping.c:1.10 --- ircd-ircdev/ircd/m_ping.c:1.9 Thu Apr 19 15:53:49 2007 +++ ircd-ircdev/ircd/m_ping.c Thu Apr 26 14:17:11 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for PING command. - * @version $Id: m_ping.c,v 1.9 2007/04/19 22:53:49 zolty Exp $ + * @version $Id: m_ping.c,v 1.10 2007/04/26 21:17:11 zolty Exp $ */ /* * Stupid ircd Tricks @@ -143,7 +143,7 @@ if (!EmptyString(destination) && 0 != ircd_strcmp(destination, cli_name(&me))) { if ((acptr = FindServer(destination))) - sendcmdto_one(sptr, CMD_PING, acptr, "%C :%s", sptr, destination); + sendcmdto_prio_one(sptr, CMD_PING, acptr, "%C :%s", sptr, destination); else send_reply(sptr, ERR_NOSUCHSERVER, destination); } @@ -214,8 +214,8 @@ { /* AsLL ping, send reply back */ int diff = atoi(militime_float(parv[3])); - sendcmdto_one(&me, CMD_PONG, sptr, "%C %s %s %i %s", &me, origin, - parv[3], diff, militime_float(NULL)); + sendcmdto_prio_one(&me, CMD_PONG, sptr, "%C %s %s %i %s", &me, origin, + parv[3], diff, militime_float(NULL)); return 0; } if (!EmptyString(destination) && 0 != ircd_strcmp(destination, cli_name(&me))) { @@ -223,7 +223,7 @@ /* * Servers can just forward the origin */ - sendcmdto_one(sptr, CMD_PING, acptr, "%s :%s", origin, destination); + sendcmdto_prio_one(sptr, CMD_PING, acptr, "%s :%s", origin, destination); } else { /* @@ -238,7 +238,7 @@ * NOTE: sptr is never local so if pong handles numerics everywhere we * could send a numeric here. */ - sendcmdto_one(&me, CMD_PONG, sptr, "%C :%s", &me, origin); + sendcmdto_prio_one(&me, CMD_PONG, sptr, "%C :%s", &me, origin); } return 0; } Index: ircd-ircdev/ircd/m_pong.c diff -u ircd-ircdev/ircd/m_pong.c:1.8 ircd-ircdev/ircd/m_pong.c:1.9 --- ircd-ircdev/ircd/m_pong.c:1.8 Thu Apr 26 12:17:31 2007 +++ ircd-ircdev/ircd/m_pong.c Thu Apr 26 14:17:12 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for PONG command. - * @version $Id: m_pong.c,v 1.8 2007/04/26 19:17:31 zolty Exp $ + * @version $Id: m_pong.c,v 1.9 2007/04/26 21:17:12 zolty Exp $ */ #include "config.h" @@ -74,8 +74,8 @@ } origin = parv[1]; destination = parv[2]; - ClrFlag(cptr, FLAG_PINGSENT); - ClrFlag(sptr, FLAG_PINGSENT); + ClearPingSent(cptr); + ClearPingSent(sptr); cli_lasttime(cptr) = CurrentTime; if (parc > 5) @@ -84,6 +84,7 @@ cli_serv(cptr)->asll_rtt = atoi(militime_float(parv[3])); cli_serv(cptr)->asll_to = atoi(parv[4]); cli_serv(cptr)->asll_from = atoi(militime_float(parv[5])); + cli_serv(cptr)->asll_last = CurrentTime; return 0; } @@ -99,7 +100,7 @@ { struct Client* acptr; if ((acptr = FindClient(destination))) - sendcmdto_one(sptr, CMD_PONG, acptr, "%s %s", origin, destination); + sendcmdto_prio_one(sptr, CMD_PONG, acptr, "%s %s", origin, destination); } return 0; } @@ -121,7 +122,7 @@ assert(cptr == sptr); assert(!IsRegistered(sptr)); - ClrFlag(cptr, FLAG_PINGSENT); + ClearPingSent(cptr); return (parc > 1) ? auth_set_pong(cli_auth(sptr), strtoul(parv[parc - 1], NULL, 10)) : 0; } @@ -139,7 +140,8 @@ { assert(0 != cptr); assert(cptr == sptr); - ClrFlag(cptr, FLAG_PINGSENT); + + ClearPingSent(cptr); cli_lasttime(cptr) = CurrentTime; return 0; } Index: ircd-ircdev/ircd/m_stats.c diff -u ircd-ircdev/ircd/m_stats.c:1.8 ircd-ircdev/ircd/m_stats.c:1.9 --- ircd-ircdev/ircd/m_stats.c:1.8 Thu Apr 19 15:53:49 2007 +++ ircd-ircdev/ircd/m_stats.c Thu Apr 26 14:17:12 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for the STATS command. - * @version $Id: m_stats.c,v 1.8 2007/04/19 22:53:49 zolty Exp $ + * @version $Id: m_stats.c,v 1.9 2007/04/26 21:17:12 zolty Exp $ */ #include "config.h" @@ -84,7 +84,11 @@ if (!IsPrivileged(cptr) && ((sd->sd_flags & STAT_FLAG_OPERONLY) || ((sd->sd_flags & STAT_FLAG_OPERFEAT) && feature_bool(sd->sd_control)))) - return send_reply(cptr, ERR_NOPRIVILEGES); + return send_reply(sptr, ERR_NOPRIVILEGES); + + /* Check if they are a local user */ + if ((sd->sd_flags & STAT_FLAG_LOCONLY) && !MyUser(sptr)) + return send_reply(sptr, ERR_NOPRIVILEGES); /* Check if they are a local user */ if ((sd->sd_flags & STAT_FLAG_LOCONLY) && !MyUser(cptr)) Index: ircd-ircdev/ircd/m_whois.c diff -u ircd-ircdev/ircd/m_whois.c:1.17 ircd-ircdev/ircd/m_whois.c:1.18 --- ircd-ircdev/ircd/m_whois.c:1.17 Thu Apr 19 15:53:49 2007 +++ ircd-ircdev/ircd/m_whois.c Thu Apr 26 14:17:12 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for WHOIS command. - * @version $Id: m_whois.c,v 1.17 2007/04/19 22:53:49 zolty Exp $ + * @version $Id: m_whois.c,v 1.18 2007/04/26 21:17:12 zolty Exp $ */ #include "config.h" @@ -124,7 +124,7 @@ } if (IsDeaf(acptr)) *(buf + len++) = '-'; - if (IsOper(sptr) && !ShowChannel(sptr, chptr)) + if (!ShowChannel(sptr, chptr)) *(buf + len++) = '*'; if (IsDelayedJoin(chan) && (sptr != acptr)) *(buf + len++) = '<'; Index: ircd-ircdev/ircd/m_whowas.c diff -u ircd-ircdev/ircd/m_whowas.c:1.10 ircd-ircdev/ircd/m_whowas.c:1.11 --- ircd-ircdev/ircd/m_whowas.c:1.10 Thu Apr 19 15:53:49 2007 +++ ircd-ircdev/ircd/m_whowas.c Thu Apr 26 14:17:12 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for WHOWAS command. - * @version $Id: m_whowas.c,v 1.10 2007/04/19 22:53:49 zolty Exp $ + * @version $Id: m_whowas.c,v 1.11 2007/04/26 21:17:12 zolty Exp $ */ #include "config.h" @@ -92,7 +92,7 @@ send_reply(sptr, RPL_WHOWASUSER, temp->name, temp->username, temp->hostname, temp->realname); if (IsAnOper(sptr) && temp->realhost) - send_reply(sptr, RPL_WHOISACTUALLY, temp->name, temp->username, temp->realhost); + send_reply(sptr, RPL_WHOISACTUALLY, temp->name, temp->username, temp->realhost, "<untracked>"); send_reply(sptr, RPL_WHOISSERVER, temp->name, (feature_bool(FEAT_HIS_WHOIS_SERVERNAME) && !IsOper(sptr)) ? feature_str(FEAT_HIS_SERVERNAME) : Index: ircd-ircdev/ircd/match.c diff -u ircd-ircdev/ircd/match.c:1.13 ircd-ircdev/ircd/match.c:1.14 --- ircd-ircdev/ircd/match.c:1.13 Thu Apr 19 15:53:49 2007 +++ ircd-ircdev/ircd/match.c Thu Apr 26 14:17:12 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Functions to match strings against IRC mask strings. - * @version $Id: match.c,v 1.13 2007/04/19 22:53:49 zolty Exp $ + * @version $Id: match.c,v 1.14 2007/04/26 21:17:12 zolty Exp $ */ #include "config.h" @@ -210,7 +210,7 @@ m++; /* allow escaping to force capitalization */ if (*m++ != *n++) - return 1; + goto backtrack; break; case '*': case '?': for (star_p = 0; ; m++) { Index: ircd-ircdev/ircd/motd.c diff -u ircd-ircdev/ircd/motd.c:1.10 ircd-ircdev/ircd/motd.c:1.11 --- ircd-ircdev/ircd/motd.c:1.10 Sat Apr 21 14:17:23 2007 +++ ircd-ircdev/ircd/motd.c Thu Apr 26 14:17:12 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Message-of-the-day manipulation implementation. - * @version $Id: motd.c,v 1.10 2007/04/21 21:17:23 zolty Exp $ + * @version $Id: motd.c,v 1.11 2007/04/26 21:17:12 zolty Exp $ */ #include "config.h" @@ -361,23 +361,36 @@ motd_cache(MotdList.remote); } -/** Re-cache the local and remote MOTDs. - * If they already exist, they are deallocated first. +/** Re-cache the local MOTD. + * If it already exists it is deallocated first. */ void -motd_init(void) +motd_init_local(void) { if (MotdList.local) /* destroy old local... */ motd_destroy(MotdList.local); - MotdList.local = motd_create(0, feature_str(FEAT_MPATH), MOTD_MAXLINES); - motd_cache(MotdList.local); /* init local and cache it */ + if (!EmptyString(feature_str(FEAT_MPATH))) + { + MotdList.local = motd_create(0, feature_str(FEAT_MPATH), MOTD_MAXLINES); + motd_cache(MotdList.local); /* init local and cache it */ + } +} +/** Re-cache the remote MOTD. + * If it already exists it is deallocated first. + */ +void +motd_init_remote(void) +{ if (MotdList.remote) /* destroy old remote... */ motd_destroy(MotdList.remote); - MotdList.remote = motd_create(0, feature_str(FEAT_RPATH), MOTD_MAXREMOTE); - motd_cache(MotdList.remote); /* init remote and cache it */ + if (!EmptyString(feature_str(FEAT_RPATH))) + { + MotdList.remote = motd_create(0, feature_str(FEAT_RPATH), MOTD_MAXREMOTE); + motd_cache(MotdList.remote); /* init remote and cache it */ + } } /** Add a new MOTD. Index: ircd-ircdev/ircd/s_bsd.c diff -u ircd-ircdev/ircd/s_bsd.c:1.21 ircd-ircdev/ircd/s_bsd.c:1.22 --- ircd-ircdev/ircd/s_bsd.c:1.21 Thu Apr 26 12:17:31 2007 +++ ircd-ircdev/ircd/s_bsd.c Thu Apr 26 14:17:12 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Functions that now (or in the past) relied on BSD APIs. - * @version $Id: s_bsd.c,v 1.21 2007/04/26 19:17:31 zolty Exp $ + * @version $Id: s_bsd.c,v 1.22 2007/04/26 21:17:12 zolty Exp $ */ #include "config.h" @@ -87,20 +87,34 @@ /* * report_error text constants */ -const char* const ACCEPT_ERROR_MSG = "error accepting connection for %s: %s"; -const char* const BIND_ERROR_MSG = "bind error for %s: %s"; -const char* const CONNECT_ERROR_MSG = "connect to host %s failed: %s"; -const char* const CONNLIMIT_ERROR_MSG = "connect limit exceeded for %s: %s"; -const char* const LISTEN_ERROR_MSG = "listen error for %s: %s"; -const char* const NONB_ERROR_MSG = "error setting non-blocking for %s: %s"; -const char* const PEERNAME_ERROR_MSG = "getpeername failed for %s: %s"; -const char* const POLL_ERROR_MSG = "poll error for %s: %s"; -const char* const REGISTER_ERROR_MSG = "registering %s: %s"; -const char* const REUSEADDR_ERROR_MSG = "error setting SO_REUSEADDR for %s: %s"; -const char* const SELECT_ERROR_MSG = "select error for %s: %s"; -const char* const SETBUFS_ERROR_MSG = "error setting buffer size for %s: %s"; -const char* const SOCKET_ERROR_MSG = "error creating socket for %s: %s"; -const char* const TOS_ERROR_MSG = "error setting TOS for %s: %s"; +static const char* const ACCEPT_ERROR_MSG + = "error accepting connection for %s: %s"; + const char* const BIND_ERROR_MSG + = "bind error for %s: %s"; +static const char* const CONNECT_ERROR_MSG + = "connect to host %s failed: %s"; + const char* const CONNLIMIT_ERROR_MSG + = "connect limit exceeded for %s: %s"; + const char* const LISTEN_ERROR_MSG + = "listen error for %s: %s"; + const char* const NONB_ERROR_MSG + = "error setting non-blocking for %s: %s"; +static const char* const PEERNAME_ERROR_MSG + = "getpeername failed for %s: %s"; +static const char* const POLL_ERROR_MSG + = "poll error for %s: %s"; +static const char* const REGISTER_ERROR_MSG + = "registering %s: %s"; + const char* const REUSEADDR_ERROR_MSG + = "error setting SO_REUSEADDR for %s: %s"; +static const char* const SELECT_ERROR_MSG + = "select error for %s: %s"; + const char* const SETBUFS_ERROR_MSG + = "error setting buffer size for %s: %s"; + const char* const SOCKET_ERROR_MSG + = "error creating socket for %s: %s"; + const char* const TOS_ERROR_MSG + = "error setting TOS for %s: %s"; static void client_sock_callback(struct Event* ev); @@ -363,7 +377,7 @@ * Make us timeout after twice the timeout for DNS look ups */ cli_la... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-04-26 19:17:44
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-04-26 19:17:41 UTC Modified files: ChangeLog ChangeLog.es configure include/client.h include/ircd_features.h include/ircd_reslib.h include/patchlevel.h include/res.h include/s_auth.h include/s_user.h ircd/ircd_parser.y ircd/ircd_res.c ircd/ircd_reslib.c ircd/list.c ircd/m_cap.c ircd/m_pong.c ircd/m_user.c ircd/os_generic.c ircd/s_auth.c ircd/s_bsd.c ircd/s_conf.c ircd/s_misc.c ircd/s_user.c Removed files: include/ircd_auth.h ircd/ircd_auth.c Log message: Author: zo...@ir... Log message: 2007-04-26 Toni Garcïa <zo...@ir...> 1.0.beta5 * Nuevo AUTH * Fix soporte IPv6 para SunOS y FreeBSD ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.53 ircd-ircdev/ChangeLog:1.54 --- ircd-ircdev/ChangeLog:1.53 Sun Apr 22 06:56:17 2007 +++ ircd-ircdev/ChangeLog Thu Apr 26 12:17:30 2007 @@ -1,10 +1,14 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.53 2007/04/22 13:56:17 zolty Exp $ +# $Id: ChangeLog,v 1.54 2007/04/26 19:17:30 zolty Exp $ # # Insert new changes at beginning of the change list. # +2007-04-26 Toni Garcïa <zo...@ir...> 1.0.beta5 + * New AUTH + * Fix IPv6 support for SunOS and FreeBSD + 2007-04-22 Toni Garcïa <zo...@ir...> 1.0.beta4 * New Configure and Makefiles * New Yacc y Lex parser Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.53 ircd-ircdev/ChangeLog.es:1.54 --- ircd-ircdev/ChangeLog.es:1.53 Sun Apr 22 06:56:17 2007 +++ ircd-ircdev/ChangeLog.es Thu Apr 26 12:17:30 2007 @@ -1,10 +1,14 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.53 2007/04/22 13:56:17 zolty Exp $ +# $Id: ChangeLog.es,v 1.54 2007/04/26 19:17:30 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-04-26 Toni Garc�a <zo...@ir...> 1.0.beta5 + * Nuevo AUTH + * Fix soporte IPv6 para SunOS y FreeBSD + 2007-04-22 Toni Garc�a <zo...@ir...> 1.0.beta4 * Nuevo Configure y Makefiles * Nuevo Yacc y Lex parser Index: ircd-ircdev/configure diff -u ircd-ircdev/configure:1.21 ircd-ircdev/configure:1.22 --- ircd-ircdev/configure:1.21 Sun Apr 22 06:56:17 2007 +++ ircd-ircdev/configure Thu Apr 26 12:17:30 2007 @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac Revision: 1.3 . +# From configure.ac Revision: 1.1 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for IRC-Dev IRC Daemon 1.0.beta. # Index: ircd-ircdev/include/client.h diff -u ircd-ircdev/include/client.h:1.19 ircd-ircdev/include/client.h:1.20 --- ircd-ircdev/include/client.h:1.19 Sun Apr 22 06:56:19 2007 +++ ircd-ircdev/include/client.h Thu Apr 26 12:17:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Structures and functions for handling local clients. - * @version $Id: client.h,v 1.19 2007/04/22 13:56:19 zolty Exp $ + * @version $Id: client.h,v 1.20 2007/04/26 19:17:31 zolty Exp $ */ #ifndef INCLUDED_client_h #define INCLUDED_client_h @@ -143,7 +143,6 @@ FLAG_BURST, /**< Server is receiving a net.burst */ FLAG_BURST_ACK, /**< Server is waiting for eob ack */ FLAG_IPCHECK, /**< Added or updated IPregistry data */ - FLAG_IAUTHED, /**< Got IAUTH response for user */ FLAG_LOCOP, /**< Local operator -- SRB */ FLAG_SERVNOTICE, /**< server notices such as kill */ FLAG_OPER, /**< Operator */ @@ -191,7 +190,6 @@ time_t con_nexttarget;/**< Next time a target change is allowed */ time_t con_lasttime; /**< Last time data read from socket */ time_t con_since; /**< Last time we accepted a command */ - unsigned int con_cookie; /**< Random number the user must PONG */ struct MsgQ con_sendQ; /**< Outgoing message queue */ struct DBuf con_recvQ; /**< Incoming data yet to be parsed */ unsigned int con_sendM; /**< Stats: protocol messages sent */ @@ -204,7 +202,6 @@ HandlerType con_handler; /**< Message index into command table for parsing. */ struct ListingArgs* con_listing; /**< Current LIST status. */ - unsigned long con_unreg; /**< Indicate what still needs to be done */ unsigned int con_max_sendq; /**< cached max send queue for client */ unsigned int con_ping_freq; /**< cached ping freq */ unsigned short con_lastsq; /**< # 2k blocks when sendqueued @@ -226,8 +223,7 @@ struct Privs con_privs; /**< Oper privileges */ struct CapSet con_capab; /**< Client capabilities (from us) */ struct CapSet con_active; /**< Active capabilities (to us) */ - struct AuthRequest* con_auth; /**< auth request for client */ - struct IAuthRequest* con_iauth; /**< iauth request for client */ + struct AuthRequest* con_auth; /**< Auth request for client */ }; /** Magic constant to identify valid Connection structures. */ @@ -257,13 +253,6 @@ char cli_info[REALLEN + 1]; /**< Free form additional client information */ }; -#define CLIREG_NICK 0x0001 /**< Client must set nickname */ -#define CLIREG_USER 0x0002 /**< Client must set username */ -#define CLIREG_COOKIE 0x0004 /**< Client must return cookie */ -#define CLIREG_CAP 0x0008 /**< Client in capability negotiation */ - -#define CLIREG_INIT (CLIREG_NICK | CLIREG_USER | CLIREG_COOKIE) - /** Magic constant to identify valid Client structures. */ #define CLIENT_MAGIC 0x4ca08286 @@ -317,8 +306,6 @@ #define cli_capab(cli) con_capab(cli_connect(cli)) /** Get active client capabilities for client */ #define cli_active(cli) con_active(cli_connect(cli)) -/** Get flags for remaining registration tasks */ -#define cli_unreg(cli) con_unreg(cli_connect(cli)) /** Get client name. */ #define cli_name(cli) ((cli)->cli_name) /** Get client username (ident). */ @@ -340,8 +327,6 @@ #define cli_nextnick(cli) con_nextnick(cli_connect(cli)) /** Get next time a target change is allowed for the client. */ #define cli_nexttarget(cli) con_nexttarget(cli_connect(cli)) -/** Get required PING/PONG cookie for client. */ -#define cli_cookie(cli) con_cookie(cli_connect(cli)) /** Get SendQ for client. */ #define cli_sendQ(cli) con_sendQ(cli_connect(cli)) /** Get RecvQ for client. */ @@ -384,8 +369,6 @@ #define cli_proc(cli) con_proc(cli_connect(cli)) /** Get auth request for client. */ #define cli_auth(cli) con_auth(cli_connect(cli)) -/** Get iauth request for client. */ -#define cli_iauth(cli) con_iauth(cli_connect(cli)) /** Get sentalong marker for client. */ #define cli_sentalong(cli) con_sentalong(cli_connect(cli)) @@ -419,8 +402,6 @@ #define con_lasttime(con) ((con)->con_lasttime) /** Get last time we accepted a command from the connection. */ #define con_since(con) ((con)->con_since) -/** Get PING/PONG confirmation cookie for connection. */ -#define con_cookie(con) ((con)->con_cookie) /** Get SendQ for connection. */ #define con_sendQ(con) ((con)->con_sendQ) /** Get RecvQ for connection. */ @@ -441,8 +422,6 @@ #define con_handler(con) ((con)->con_handler) /** Get the LIST status for the connection. */ #define con_listing(con) ((con)->con_listing) -/** Get remining steps before registration completes. */ -#define con_unreg(con) ((con)->con_unreg) /** Get the maximum permitted SendQ size for the connection. */ #define con_max_sendq(con) ((con)->con_max_sendq) /** Get the ping frequency for the connection. */ @@ -471,8 +450,6 @@ #define con_active(con) (&(con)->con_active) /** Get the auth request for the connection. */ #define con_auth(con) ((con)->con_auth) -/** Get the iauth request for the connection. */ -#define con_iauth(con) ((con)->con_iauth) #define STAT_CONNECTING 0x001 /**< connecting to another server */ #define STAT_HANDSHAKE 0x002 /**< pass - server sent */ @@ -567,8 +544,6 @@ #define IsDeaf(x) HasFlag(x, FLAG_DEAF) /** Return non-zero if the client has been IP-checked for clones. */ #define IsIPChecked(x) HasFlag(x, FLAG_IPCHECK) -/** Return non-zero if the client has been okayed by iauth. */ -#define IsIAuthed(x) HasFlag(x, FLAG_IAUTHED) /** Return non-zero if we have received an ident response for the client. */ #define IsIdented(x) HasFlag(x, FLAG_GOTID) /** Return non-zero if the client has set mode +i (invisible). */ @@ -633,8 +608,6 @@ #define SetGotId(x) SetFlag(x, FLAG_GOTID) /** Mark a client as being IP-checked. */ #define SetIPChecked(x) SetFlag(x, FLAG_IPCHECK) -/** Mark a client as being iauth-checked. */ -#define SetIAuthed(x) SetFlag(x, FLAG_IAUTHED) /** Mark a client as having mode +i (invisible). */ #define SetInvisible(x) SetFlag(x, FLAG_INVISIBLE) /** Mark a client as causing a net.join. */ @@ -737,12 +710,13 @@ #define SNO_CONNEXIT 0x4000 /**< client connect/exit (ugh) */ #define SNO_AUTO 0x8000 /**< AUTO G-Lines */ #define SNO_DEBUG 0x10000 /**< debugging messages (DEBUGMODE only) */ +#define SNO_AUTH 0x20000 /**< IAuth notices */ +/** Bitmask of all valid server notice bits. */ #ifdef DEBUGMODE -# define SNO_ALL 0x1ffff /**< Bitmask of all valid server - * notice bits. */ +# define SNO_ALL 0x3ffff #else -# define SNO_ALL 0xffff +# define SNO_ALL 0x2ffff #endif /** Server notice bits allowed to normal users. */ @@ -753,7 +727,7 @@ /** Server notice bits enabled by default for IRC operators. */ #define SNO_OPERDEFAULT (SNO_DEFAULT|SNO_HACK2|SNO_HACK4|SNO_THROTTLE|SNO_OLDSNO) /** Server notice bits reserved to IRC operators. */ -#define SNO_OPER (SNO_CONNEXIT|SNO_OLDREALOP) +#define SNO_OPER (SNO_CONNEXIT|SNO_OLDREALOP|SNO_AUTH) /** Noisy server notice bits that cause other bits to be cleared during connect. */ #define SNO_NOISY (SNO_SERVKILL|SNO_UNAUTH) Index: ircd-ircdev/include/ircd_auth.h diff -u ircd-ircdev/include/ircd_auth.h:1.3 ircd-ircdev/include/ircd_auth.h:removed --- ircd-ircdev/include/ircd_auth.h:1.3 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/ircd_auth.h Thu Apr 26 12:17:42 2007 @@ -1,44 +0,0 @@ -/* - * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/ircd_auth.h - * - * Copyright (C) 2002-2007 IRC-Dev Development Team <de...@ir...> - * Copyright (C) 2004 Michael Poole <md...@tr...> - * Copyright (C) 2001 Perry Lorier <is...@co...> - * - * 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 Interface to IAuth client implementation. - * @version $Id: ircd_auth.h,v 1.3 2007/04/19 22:53:46 zolty Exp $ - */ -#ifndef INCLUDED_ircd_auth_h -#define INCLUDED_ircd_auth_h - -#ifndef INCLUDED_config_h -#include "config.h" -#endif - -struct IAuth; -extern struct IAuth *iauth_active; - -struct IAuth *iauth_connect(char *host, unsigned short port, char *passwd, time_t reconnect, time_t timeout); -int iauth_start_client(struct IAuth *iauth, struct Client *cptr); -void iauth_exit_client(struct Client *cptr); - -void iauth_mark_closing(void); -void iauth_close_unused(void); - -#endif /* INCLUDED_ircd_auth_h */ Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.17 ircd-ircdev/include/ircd_features.h:1.18 --- ircd-ircdev/include/ircd_features.h:1.17 Sat Apr 21 09:20:18 2007 +++ ircd-ircdev/include/ircd_features.h Thu Apr 26 12:17:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Public interfaces and declarations for dealing with configurable features. - * @version $Id: ircd_features.h,v 1.17 2007/04/21 16:20:18 zolty Exp $ + * @version $Id: ircd_features.h,v 1.18 2007/04/26 19:17:31 zolty Exp $ */ #ifndef INCLUDED_features_h #define INCLUDED_features_h @@ -51,6 +51,7 @@ FEAT_HUB, FEAT_WALLOPS_OPER_ONLY, FEAT_NODNS, + FEAT_NOIDENT, FEAT_RANDOM_SEED, FEAT_DEFAULT_LIST_PARAM, FEAT_NICKNAMEHISTORYLENGTH, Index: ircd-ircdev/include/ircd_reslib.h diff -u ircd-ircdev/include/ircd_reslib.h:1.3 ircd-ircdev/include/ircd_reslib.h:1.4 --- ircd-ircdev/include/ircd_reslib.h:1.3 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/ircd_reslib.h Thu Apr 26 12:17:31 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Interface from ircd resolver to its support functions. - * @version $Id: ircd_reslib.h,v 1.3 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: ircd_reslib.h,v 1.4 2007/04/26 19:17:31 zolty Exp $ */ #ifndef INCLUDED_ircdreslib_h #define INCLUDED_ircdreslib_h @@ -76,17 +76,7 @@ int irc_res_init(void); int irc_dn_expand(const unsigned char *msg, const unsigned char *eom, const unsigned char *src, char *dst, int dstsiz); -int irc_ns_name_uncompress(const unsigned char *msg, const unsigned char *eom, const unsigned char *src, char *dst, size_t dstsiz); -int irc_ns_name_unpack(const unsigned char *msg, const unsigned char *eom, const unsigned char *src, unsigned char *dst, size_t dstsiz); -int irc_ns_name_ntop(const char *src, char *dst, size_t dstsiz); -int irc_dn_comp(const char *src, unsigned char *dst, int dstsiz, unsigned char **dnptrs, unsigned char **lastdnptr); int irc_dn_skipname(const unsigned char *ptr, const unsigned char *eom); -int irc_ns_name_skip(const unsigned char **ptrptr, const unsigned char *eom); -unsigned int irc_ns_get16(const unsigned char *src); -unsigned long irc_ns_get32(const unsigned char *src); -void irc_ns_put16(unsigned int src, unsigned char *dst); -void irc_ns_put32(unsigned long src, unsigned char *dst); -int irc_ns_name_pton(const char *src, unsigned char *dst, size_t dstsiz); -int irc_ns_name_pack(const unsigned char *src, unsigned char *dst, int dstsiz, const unsigned char **dnptrs, const unsigned char **lastdnptr); int irc_res_mkquery(const char *dname, int class, int type, unsigned char *buf, int buflen); +unsigned int irc_ns_get16(const unsigned char *src); #endif /* INCLUDED_res_h */ Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.52 ircd-ircdev/include/patchlevel.h:1.53 --- ircd-ircdev/include/patchlevel.h:1.52 Sun Apr 22 06:56:19 2007 +++ ircd-ircdev/include/patchlevel.h Thu Apr 26 12:17:31 2007 @@ -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.52 2007/04/22 13:56:19 zolty Exp $ + * $Id: patchlevel.h,v 1.53 2007/04/26 19:17:31 zolty Exp $ * */ -#define PATCHLEVEL "4" +#define PATCHLEVEL "5" #define RELEASE "1.0.beta" Index: ircd-ircdev/include/res.h diff -u ircd-ircdev/include/res.h:1.9 ircd-ircdev/include/res.h:1.10 --- ircd-ircdev/include/res.h:1.9 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/res.h Thu Apr 26 12:17:31 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief IRC resolver API. - * @version $Id: res.h,v 1.9 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: res.h,v 1.10 2007/04/26 19:17:31 zolty Exp $ */ #ifndef INCLUDED_res_h @@ -67,6 +67,7 @@ #define QUERY 0 /**< Forward (normal) DNS query operation. */ #define NO_ERRORS 0 /**< No errors processing a query. */ #define SERVFAIL 2 /**< Server error while processing a query. */ +#define NXDOMAIN 3 /**< Domain name in query does not exist. */ #define T_A 1 /**< Hostname -> IPv4 query type. */ #define T_AAAA 28 /**< Hostname -> IPv6 query type. */ #define T_PTR 12 /**< IP(v4 or v6) -> hostname query type. */ @@ -130,13 +131,24 @@ } HEADER; extern void restart_resolver(void); -extern void add_local_domain(char *hname, size_t size); +extern void clear_nameservers(void); +extern void add_nameserver(const char *ipaddr); extern size_t cres_mem(struct Client* cptr); extern void delete_resolver_queries(const void *vptr); extern void report_dns_servers(struct Client *source_p, const struct StatDesc *sd, char *param); extern void gethost_byname(const char *name, dns_callback_f callback, void *ctx); extern void gethost_byaddr(const struct irc_in_addr *addr, dns_callback_f callback, void *ctx); +/** Evaluate to non-zero if \a ADDR is an unspecified (all zeros) address. */ +#define irc_in_addr_unspec(ADDR) (((ADDR)->in6_16[0] == 0) \ + && ((ADDR)->in6_16[1] == 0) \ + && ((ADDR)->in6_16[2] == 0) \ + && ((ADDR)->in6_16[3] == 0) \ + && ((ADDR)->in6_16[4] == 0) \ + && ((ADDR)->in6_16[6] == 0) \ + && ((ADDR)->in6_16[7] == 0) \ + && ((ADDR)->in6_16[5] == 0 \ + || (ADDR)->in6_16[5] == 65535)) /** Evaluate to non-zero if \a ADDR is a valid address (not all 0s and not all 1s). */ #define irc_in_addr_valid(ADDR) (((ADDR)->in6_16[0] && ~(ADDR)->in6_16[0]) \ || (ADDR)->in6_16[1] != (ADDR)->in6_16[0] \ Index: ircd-ircdev/include/s_auth.h diff -u ircd-ircdev/include/s_auth.h:1.5 ircd-ircdev/include/s_auth.h:1.6 --- ircd-ircdev/include/s_auth.h:1.5 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/s_auth.h Thu Apr 26 12:17:31 2007 @@ -2,6 +2,8 @@ * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/s_auth.h * * Copyright (C) 2002-2007 IRC-Dev Development Team <de...@ir...> + * Copyright (C) 2004 Michael Poole <md...@tr...> + * Copyright (C) 2001 Perry Lorier <is...@co...> * Copyright (C) 1992 Darren Reed * * This program is free software; you can redistribute it and/or modify @@ -21,7 +23,7 @@ */ /** @file * @brief Interface for DNS and ident lookups. - * @version $Id: s_auth.h,v 1.5 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: s_auth.h,v 1.6 2007/04/26 19:17:31 zolty Exp $ */ #ifndef INCLUDED_s_auth_h #define INCLUDED_s_auth_h @@ -35,50 +37,24 @@ #endif struct Client; - -/** Stores state of the DNS and RFC 1413 ident lookups for a client. */ -struct AuthRequest { - struct AuthRequest* next; /**< linked list node ptr */ - struct AuthRequest* prev; /**< linked list node ptr */ - struct Client* client; /**< pointer to client struct for request */ - unsigned int flags; /**< current state of request */ - int fd; /**< file descriptor for auth queries */ - struct Socket socket; /**< socket descriptor for auth queries */ - struct Timer timeout; /**< timeout timer for auth queries */ -}; - -/* - * flag values for AuthRequest - * NAMESPACE: AM_xxx - Authentication Module - */ -#define AM_AUTH_CONNECTING 0x01 /**< waiting for ident connect to complete */ -#define AM_AUTH_PENDING 0x02 /**< ident connected, waiting for response */ -#define AM_DNS_PENDING 0x04 /**< dns request sent, waiting for response */ - -#define AM_SOCKET 0x40 /**< socket structure not destroyed */ -#define AM_TIMEOUT 0x80 /**< timer structure not destroyed */ - -/** If any of AM_FREE_MASK bits are set, operations are still in progress. */ -#define AM_FREE_MASK (AM_SOCKET | AM_TIMEOUT) - -#define SetDNSPending(x) ((x)->flags |= AM_DNS_PENDING) -#define ClearDNSPending(x) ((x)->flags &= ~AM_DNS_PENDING) -#define IsDNSPending(x) ((x)->flags & AM_DNS_PENDING) - -#define SetAuthConnect(x) ((x)->flags |= AM_AUTH_CONNECTING) -#define ClearAuthConnect(x) ((x)->flags &= ~AM_AUTH_CONNECTING) -#define IsAuthConnect(x) ((x)->flags & AM_AUTH_CONNECTING) - -#define SetAuthPending(x) ((x)->flags |= AM_AUTH_PENDING) -#define ClearAuthPending(x) ((x)->flags &= AM_AUTH_PENDING) -#define IsAuthPending(x) ((x)->flags & AM_AUTH_PENDING) - -#define ClearAuth(x) ((x)->flags &= ~(AM_AUTH_PENDING | AM_AUTH_CONNECTING)) -#define IsDoingAuth(x) ((x)->flags & (AM_AUTH_PENDING | AM_AUTH_CONNECTING)) +struct AuthRequest; +struct StatDesc; extern void start_auth(struct Client *); -extern void read_auth_reply(struct AuthRequest* req); -extern void send_auth_query(struct AuthRequest* req); -extern void destroy_auth_request(struct AuthRequest *req, int send_reports); +extern int auth_ping_timeout(struct Client *); +extern int auth_set_pong(struct AuthRequest *auth, unsigned int cookie); +extern int auth_set_user(struct AuthRequest *auth, const char *username, const char *hostname, const char *servername, const char *userinfo); +extern int auth_set_nick(struct AuthRequest *auth, const char *nickname); +extern int auth_set_password(struct AuthRequest *auth, const char *password); +extern int auth_cap_start(struct AuthRequest *auth); +extern int auth_cap_done(struct AuthRequest *auth); +extern void destroy_auth_request(struct AuthRequest *req); + +extern int auth_spawn(int argc, char *argv[]); +extern void auth_send_exit(struct Client *cptr); +extern void auth_mark_closing(void); +extern void auth_close_unused(void); +extern void report_iauth_conf(struct Client *cptr, const struct StatDesc *sd, char *param); +extern void report_iauth_stats(struct Client *cptr, const struct StatDesc *sd, char *param); #endif /* INCLUDED_s_auth_h */ Index: ircd-ircdev/include/s_user.h diff -u ircd-ircdev/include/s_user.h:1.11 ircd-ircdev/include/s_user.h:1.12 --- ircd-ircdev/include/s_user.h:1.11 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/s_user.h Thu Apr 26 12:17:31 2007 @@ -21,7 +21,7 @@ */ /** @file s_user.h * @brief Miscellaneous user-related helper functions. - * @version $Id: s_user.h,v 1.11 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: s_user.h,v 1.12 2007/04/26 19:17:31 zolty Exp $ */ #ifndef INCLUDED_s_user_h #define INCLUDED_s_user_h @@ -72,8 +72,6 @@ #define MATCH_SERVER 1 /**< flag for relay_masked_message (etc) to indicate the mask matches a server name */ #define MATCH_HOST 2 /**< flag for relay_masked_message (etc) to indicate the mask matches host name */ -#define COOKIE_VERIFIED 0xffffffff /**< value for cli_cookie() to show completion */ - /* used in set_nick_name */ #define NICK_EQUIVALENT 0x01 /** < Equivalent */ #define NICK_RENAMED 0x02 /** < Rename */ @@ -105,8 +103,7 @@ */ extern struct User* make_user(struct Client *cptr); extern void free_user(struct User *user); -extern int register_user(struct Client* cptr, struct Client* sptr, - const char* nick, char* username); +extern int register_user(struct Client* cptr, struct Client *sptr); extern void user_count_memory(size_t* count_out, size_t* bytes_out); Index: ircd-ircdev/ircd/ircd_auth.c diff -u ircd-ircdev/ircd/ircd_auth.c:1.11 ircd-ircdev/ircd/ircd_auth.c:removed --- ircd-ircdev/ircd/ircd_auth.c:1.11 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/ircd/ircd_auth.c Thu Apr 26 12:17:42 2007 @@ -1,843 +0,0 @@ -/* - * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/ircd_iauth.c - * - * Copyright (C) 2002-2007 IRC-Dev Development Team <de...@ir...> - * Copyright (C) 2004 Michael Poole <md...@tr...> - * Copyright (C) 2001 Perry Lorier <is...@co...> - * - * 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 IAuth client implementation for an IRC server. - * @version $Id: ircd_auth.c,v 1.11 2007/04/21 21:17:22 zolty Exp $ - */ -#include "config.h" -#include "client.h" -#include "ircd_alloc.h" -#include "ircd_auth.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.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" - -/* #include <assert.h> -- Now using assert in ircd_log.h */ -#include <errno.h> -#include <netdb.h> -#include <string.h> -#include <unistd.h> -#include <sys/socket.h> -#include <netinet/in.h> -#ifdef HAVE_STDINT_H -#include <stdint.h> -#endif - -/** Describes state of a single pending IAuth request. */ -struct IAuthRequest { - struct IAuthRequest *iar_prev; /**< previous request struct */ - struct IAuthRequest *iar_next; /**< next request struct */ - struct Client *iar_client; /**< client being authenticated */ - char iar_timed; /**< if non-zero, using parent i_request_timer */ -}; - -/** Enumeration of IAuth connection flags. */ -enum IAuthFlag -{ - IAUTH_BLOCKED, /**< socket buffer full */ - IAUTH_CONNECTED, /**< server greeting/handshake done */ - IAUTH_ABORT, /**< abort connection asap */ - IAUTH_ICLASS, /**< tell iauth about all local users */ - IAUTH_CLOSING, /**< candidate to be disposed */ - IAUTH_LAST_FLAG /**< total number of flags */ -}; -/** Declare a bitset structure indexed by IAuthFlag. */ -DECLARE_FLAGSET(IAuthFlags, IAUTH_LAST_FLAG); - -/** Describes state of an IAuth connection. */ -struct IAuth { - struct IAuthRequest i_list_head; /**< doubly linked list of requests */ - struct MsgQ i_sendQ; /**< messages queued to send */ - struct Socket i_socket; /**< connection to server */ - struct Timer i_reconn_timer; /**< when to reconnect the connection */ - struct Timer i_request_timer; /**< when the current request times out */ - struct IAuthFlags i_flags; /**< connection state/status/flags */ - unsigned int i_recvM; /**< messages received */ - unsigned int i_sendM; /**< messages sent */ - unsigned int i_recvK; /**< kilobytes received */ - unsigned int i_sendK; /**< kilobytes sent */ - unsigned short i_recvB; /**< bytes received modulo 1024 */ - unsigned short i_sendB; /**< bytes sent modulo 1024 */ - time_t i_reconnect; /**< seconds to wait before reconnecting */ - time_t i_timeout; /**< seconds to wait for a request */ - unsigned int i_count; /**< characters used in i_buffer */ - char i_buffer[BUFSIZE+1]; /**< partial unprocessed line from server */ - char i_passwd[PASSWDLEN+1]; /**< password for connection */ - char i_host[HOSTLEN+1]; /**< iauth server hostname */ - struct irc_sockaddr i_addr; /**< iauth server ip address and port */ - struct IAuth *i_next; /**< next connection in list */ -}; - -/** Return flags element of \a iauth. */ -#define i_flags(iauth) ((iauth)->i_flags) -/** Return whether flag \a flag is set on \a iauth. */ -#define IAuthGet(iauth, flag) FlagHas(&i_flags(iauth), flag) -/** Set flag \a flag on \a iauth. */ -#define IAuthSet(iauth, flag) FlagSet(&i_flags(iauth), flag) -/** Clear flag \a flag from \a iauth. */ -#define IAuthClr(iauth, flag) FlagClr(&i_flags(iauth), flag) -/** Get blocked state for \a iauth. */ -#define i_GetBlocked(iauth) IAuthGet(iauth, IAUTH_BLOCKED) -/** Set blocked state for \a iauth. */ -#define i_SetBlocked(iauth) IAuthSet(iauth, IAUTH_BLOCKED) -/** Clear blocked state for \a iauth. */ -#define i_ClrBlocked(iauth) IAuthClr(iauth, IAUTH_BLOCKED) -/** Get connected flag for \a iauth. */ -#define i_GetConnected(iauth) IAuthGet(iauth, IAUTH_CONNECTED) -/** Set connected flag for \a iauth. */ -#define i_SetConnected(iauth) IAuthSet(iauth, IAUTH_CONNECTED) -/** Clear connected flag for \a iauth. */ -#define i_ClrConnected(iauth) IAuthClr(iauth, IAUTH_CONNECTED) -/** Get abort flag for \a iauth. */ -#define i_GetAbort(iauth) IAuthGet(iauth, IAUTH_ABORT) -/** Set abort flag for \a iauth. */ -#define i_SetAbort(iauth) IAuthSet(iauth, IAUTH_ABORT) -/** Clear abort flag for \a iauth. */ -#define i_ClrAbort(iauth) IAuthClr(iauth, IAUTH_ABORT) -/** Get IClass flag for \a iauth. */ -#define i_GetIClass(iauth) IAuthGet(iauth, IAUTH_ICLASS) -/** Set IClass flag for \a iauth. */ -#define i_SetIClass(iauth) IAuthSet(iauth, IAUTH_ICLASS) -/** Clear IClass flag for \a iauth. */ -#define i_ClrIClass(iauth) IAuthClr(iauth, IAUTH_ICLASS) -/** Get closing flag for \a iauth. */ -#define i_GetClosing(iauth) IAuthGet(iauth, IAUTH_CLOSING) -/** Set closing flag for \a iauth. */ -#define i_SetClosing(iauth) IAuthSet(iauth, IAUTH_CLOSING) -/** Clear closing flag for \a iauth. */ -#define i_ClrClosing(iauth) IAuthClr(iauth, IAUTH_CLOSING) - -/** Return head of request linked list for \a iauth. */ -#define i_list_head(iauth) ((iauth)->i_list_head) -/** Return socket event generator for \a iauth. */ -#define i_socket(iauth) ((iauth)->i_socket) -/** Return reconnect timer for \a iauth. */ -#define i_reconn_timer(iauth) ((iauth)->i_reconn_timer) -/** Return request timeout timer for \a iauth. */ -#define i_request_timer(iauth) ((iauth)->i_request_timer) -/** Return DNS query for \a iauth. */ -#define i_query(iauth) ((iauth)->i_query) -/** Return received bytes (modulo 1024) for \a iauth. */ -#define i_recvB(iauth) ((iauth)->i_recvB) -/** Return received kilobytes (modulo 1024) for \a iauth. */ -#define i_recvK(iauth) ((iauth)->i_recvK) -/** Return received megabytes for \a iauth. */ -#define i_recvM(iauth) ((iauth)->i_recvM) -/** Return sent bytes (modulo 1024) for \a iauth. */ -#define i_sendB(iauth) ((iauth)->i_sendB) -/** Return sent kilobytes (modulo 1024) for \a iauth. */ -#define i_sendK(iauth) ((iauth)->i_sendK) -/** Return sent megabytes for \a iauth. */ -#define i_sendM(iauth) ((iauth)->i_sendM) -/** Return outbound message queue for \a iauth. */ -#define i_sendQ(iauth) ((iauth)->i_sendQ) -/** Return reconnection interval for \a iauth. */ -#define i_reconnect(iauth) ((iauth)->i_reconnect) -/** Return request timeout interval for \a iauth. */ -#define i_timeout(iauth) ((iauth)->i_timeout) -/** Return length of unprocessed message data for \a iauth. */ -#define i_count(iauth) ((iauth)->i_count) -/** Return start of unprocessed message data for \a iauth. */ -#define i_buffer(iauth) ((iauth)->i_buffer) -/** Return password we send for \a iauth. */ -#define i_passwd(iauth) ((iauth)->i_passwd) -/** Return server hostname for \a iauth. */ -#define i_host(iauth) ((iauth)->i_host) -/** Return address of IAuth server for \a iauth. */ -#define i_addr(iauth) ((iauth)->i_addr) -/** Return server port for \a iauth. */ -#define i_port(iauth) ((iauth)->i_addr.port) -/** Return next IAuth connection after \a iauth. */ -#define i_next(iauth) ((iauth)->i_next) - -/** Command table entry. */ -struct IAuthCmd { - const char *iac_name; /**< Name of command. */ - void (*iac_func)(struct IAuth *iauth, int, char *[]); /**< Handler function. */ -}; - -/** Active %IAuth connection(s). */ -struct IAuth *iauth_active; - -static void iauth_write(struct IAuth *iauth); -static void iauth_reconnect(struct IAuth *iauth); -static void iauth_disconnect(struct IAuth *iauth); -static void iauth_sock_callback(struct Event *ev); -static void iauth_send_request(struct IAuth *iauth, struct IAuthRequest *iar); -static void iauth_dispose_request(struct IAuth *iauth, struct IAuthRequest *iar); -static void iauth_cmd_doneauth(struct IAuth *iauth, int argc, char *argv[]); -static void iauth_cmd_badauth(struct IAuth *iauth, int argc, char *argv[]); - -/** Table of responses we might get from the IAuth server. */ -static const struct IAuthCmd iauth_cmdtab[] = { - { "DoneAuth", iauth_cmd_doneauth }, - { "BadAuth", iauth_cmd_badauth }, - { NULL, NULL } -}; - -/** Start (or update) a connection to an %IAuth server. - * If a connection already exists for the specified server name and - * port, update it with the other parameters; otherwise allocate a new - * IAuth record. - * @param[in] host %IAuth server hostname. - * @param[in] port %IAuth server port. - * @param[in] passwd Password to send. - * @param[in] reconnect Reconnect interval. - * @param[in] timeout Request timeout interval. - * @return IAuth structure for that connection. - */ -struct IAuth *iauth_connect(char *host, unsigned short port, char *passwd, time_t reconnect, time_t timeout) -{ - struct IAuth *iauth; - - for (iauth = iauth_active; iauth; iauth = i_next(iauth)) { - if (!ircd_strncmp(i_host(iauth), host, HOSTLEN) - && (i_port(iauth) == port)) { - i_ClrClosing(iauth); - i_reconnect(iauth) = reconnect; - if (t_active(&i_reconn_timer(iauth)) && (t_expire(&i_reconn_timer(iauth)) > CurrentTime + i_reconnect(iauth))) - timer_chg(&i_reconn_timer(iauth), TT_RELATIVE, i_reconnect(iauth)); - break; - } - } - if (NULL == iauth) { - if (iauth_active && !i_GetClosing(iauth_active)) { - log_write(LS_CONFIG, L_WARNING, 0, "Creating extra active IAuth connection to %s:%d.", host, port); - } - iauth = MyCalloc(1, sizeof(*iauth)); - i_list_head(iauth).iar_prev = &i_list_head(iauth); - i_list_head(iauth).iar_next = &i_list_head(iauth); - msgq_init(&i_sendQ(iauth)); - ircd_strncpy(i_host(iauth), host, HOSTLEN); - 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); - } - if (passwd) - ircd_strncpy(i_passwd(iauth), passwd, PASSWDLEN); - else - i_passwd(iauth)[0] = '\0'; - i_timeout(iauth) = timeout; - i_SetIClass(iauth); - return iauth; -} - -/** Mark all %IAuth connections as closing. */ -void iauth_mark_closing(void) -{ - struct IAuth *iauth; - for (iauth = iauth_active; iauth; iauth = i_next(iauth)) - i_SetClosing(iauth); -} - -/** Close a particular %IAuth connection. - * @param[in] iauth %Connection to close. - */ -void iauth_close(struct IAuth *iauth) -{ - /* Figure out what to do with the closing connection's requests. */ - if (i_list_head(iauth).iar_next != &i_list_head(iauth)) { - struct IAuthRequest *iar; - if (iauth_active || i_next(iauth)) { - /* If iauth_active != NULL, send requests to it; otherwise if - * i_next(iauth) != NULL, we can hope it or some later - * connection will be active. - */ - struct IAuth *target = iauth_active ? iauth_active : i_next(iauth); - - /* Append iauth->i_list_head to end of target->i_list_head. */ - iar = i_list_head(iauth).iar_next; - iar->iar_prev = i_list_head(target).iar_prev; - i_list_head(target).iar_prev->iar_next = iar; - iar = i_list_head(iauth).iar_prev; - iar->iar_next = &i_list_head(target); - i_list_head(target).iar_prev = iar; - - /* If the target is not closing, send the requests. */ - for (iar = i_list_head(iauth).iar_next; - iar != &i_list_head(target); - iar = iar->iar_next) { - if (!i_GetClosing(target)) - iauth_send_request(target, iar); - } - } else { - /* No active connections - approve the requests and drop them. */ - while ((iar = i_list_head(iauth).iar_next) != &i_list_head(iauth)) { - struct Client *client = iar->iar_client; - iauth_dispose_request(iauth, iar); - register_user(client, client, cli_name(client), cli_username(client)); - } - } - } - /* Make sure the connection closes with an empty request list. */ - i_list_head(iauth).iar_prev = &i_list_head(iauth); - i_list_head(iauth).iar_next = &i_list_head(iauth); - /* Cancel the timer, if it is active. */ - if (t_active(&i_reconn_timer(iauth))) - timer_del(&i_reconn_timer(iauth)); - if (t_active(&i_request_timer(iauth))) - timer_del(&i_request_timer(iauth)); - /* Disconnect from the server. */ - if (i_GetConnected(iauth)) - iauth_disconnect(iauth); - /* Free memory. */ - MyFree(iauth); -} - -/** Close all %IAuth connections marked as closing. */ -void iauth_close_unused(void) -{ - struct IAuth *prev, *iauth, *next; - - for (prev = NULL, iauth = iauth_active; iauth; iauth = next) { - next = i_next(iauth); - if (i_GetClosing(iauth)) { - /* Update iauth_active linked list. */ - if (prev) - i_next(prev) = next; - else - iauth_active = next; - /* Close and destroy the connection. */ - iauth_close(iauth); - } else { - prev = iauth; - } - } -} - -/** Send a line to an %IAuth server. - * @param[in] iauth %Connection to send on. - * @param[in] format Format string for message. - */ -static void iauth_send(struct IAuth *iauth, const char *format, ...) -{ - va_list vl; - struct MsgBuf *mb; - - va_start(vl, format); - mb = msgq_vmake(0, format, vl); - va_end(vl); - msgq_add(&i_sendQ(iauth), mb, 0); - msgq_clean(mb); -} - -/** Report a protocol violation from the %IAuth server. - * @param[in] iauth %Connection that experienced the violation. - * @param[in] format Format string for message to operators. - */ -static void iauth_protocol_violation(struct IAuth *iauth, const char *format, ...) -{ - struct VarData vd; - assert(iauth != 0); - assert(format != 0); - vd.vd_format = format; - va_start(vd.vd_args, format); - sendto_opmask(NULL, SNO_CONNEXIT, "IAuth protocol violation: %v", &vd); - va_end(vd.vd_args); -} - -/** Send on-connect burst to an %IAuth server. - * @param[in] iauth %Connection that has completed. - */ -static void iauth_on_connect(struct IAuth *iauth) -{ - struct IAuthRequest *iar; - if (EmptyString(i_passwd(iauth))) - iauth_send(iauth, "Server %s", cli_name(&me)); - else - iauth_send(iauth, "Server %s %s", cli_name(&me), i_passwd(iauth)); - if (i_GetIClass(iauth)) { - /* TODO: report local users to iauth */ - iauth_send(iauth, "EndUsers"); - } - i_SetConnected(iauth); - for (iar = i_list_head(iauth).iar_next; - iar != &i_list_head(iauth); - iar = iar->iar_next) - iauth_send_request(iauth, iar); - iauth_write(iauth); -} - -/** Complete disconnection of an %IAuth connection. - * @param[in] iauth %Connection to fully close. - */ -static void iauth_disconnect(struct IAuth *iauth) -{ - close(s_fd(&i_socket(iauth))); - socket_del(&i_socket(iauth)); - i_ClrConnected(iauth); -} - -/** DNS completion callback for an %IAuth connection. - * @param[in] vptr Pointer to the IAuth struct. - * @param[in] he DNS reply parameters. - */ -static void iauth_dns_callback(void *vptr, const struct irc_in_addr *addr, const char *h_name) -{ - struct IAuth *iauth = vptr; - if (!addr) { - log_write(LS_IAUTH, L_NOTICE, 0, "IAuth connection to %s failed: host lookup failed", i_host(iauth)); - } else { - memcpy(&i_addr(iauth).addr, addr, sizeof(i_addr(iauth).addr)); - if (!irc_in_addr_valid(&i_addr(iauth).addr)) { - log_write(LS_IAUTH, L_NOTICE, 0, "IAuth connection to %s failed: host came back as unresolved", i_host(iauth)); - return; - } - iauth_reconnect(iauth); - } -} - -/** Timer callback for reconnecting to %IAuth. - * @param[in] ev Timer event for reconnect. - */ -static void iauth_reconnect_ev(struct Event *ev) -{ - if (ev_type(ev) == ET_EXPIRE) - iauth_reconnect(t_data(ev_timer(ev))); -} - -/** Schedule a reconnection for \a iauth. - * @param[in] iauth %Connection that needs to be reconnected. - */ -static void iauth_schedule_reconnect(struct IAuth *iauth) -{ - struct Timer *timer; - 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. - * @param[in] iauth %Connection that should be initiated. - */ -static void iauth_reconnect(struct IAuth *iauth) -{ - struct irc_sockaddr *local; - IOResult result; - int fd; - - 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))) { - gethost_byname(i_host(iauth), iauth_dns_callback, iauth); - return; - } - local = irc_in_addr_is_ipv4(&i_addr(iauth).addr) ? &VirtualHost_v4 : &VirtualHost_v6; - fd = os_socket(local, SOCK_STREAM, "IAuth"); - if (fd < 0) { - iauth_schedule_reconnect(iauth); - return; - } - if (!os_set_sockbufs(fd, SERVER_TCP_WINDOW, SERVER_TCP_WINDOW)) { - 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) { - 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)) { - 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. - * Reads up to SERVER_TCP_WINDOW bytes per pass. - * @param[in] iauth Readable connection. - */ -static void iauth_read(struct IAuth *iauth) -{ - char *src, *endp, *old_buffer, *argv[MAXPARA + 1]; - unsigned int length, argc, ii; - char readbuf[SERVER_TCP_WINDOW]; - - length = 0; - 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; - i_recvB(iauth) &= 1023; - } - old_buffer = i_buffer(iauth); - endp = old_buffer + i_count(iauth); - for (src = readbuf; length > 0; --length) { - *endp = *src++; - if (IsEol(*endp)) { - /* Skip blank lines. */ - if (endp == old_buffer) - continue; - /* NUL-terminate line and split parameters. */ - *endp = '\0'; - for (argc = 0, endp = old_buffer; *endp && (argc < MAXPARA); ) { - while (*endp == ' ') - *endp++ = '\0'; - if (*endp == '\0') - break; - if (*endp == ':') - { - argv[argc++] = endp + 1; - break; - } - argv[argc++] = endp; - for (; *endp && *endp != ' '; ++endp) ; - } - argv[argc] = NULL; - /* Count line and reset endp to start of buffer. */ - i_recvM(iauth)++; - endp = old_buffer; - /* Look up command and try to dispatch. */ - if (argc > 0) { - for (ii = 0; iauth_cmdtab[ii].iac_name; ++ii) { - if (!ircd_strcmp(iauth_cmdtab[ii].iac_name, argv[0])) { - iauth_cmdtab[ii].iac_func(iauth, argc, argv); - if (i_GetAbort(iauth)) - iauth_disconnect(iauth); - break; - } - } - } - } - else if (endp < old_buffer + BUFSIZE) - endp++; - } - i_count(iauth) = endp - old_buffer; -} - -/** Send queued output to \a iauth. - * @param[in] iauth Writable connection with queued data. - */ -static void iauth_write(struct IAuth *iauth) -{ - unsigned int bytes_tried, bytes_sent; - IOResult iores; - - if (i_GetBlocked(iauth)) - return; - while (MsgQLength(&i_sendQ(iauth)) > 0) { - iores = os_sendv_nonb(s_fd(&i_socket(iauth)), &i_sendQ(iauth), &bytes_tried, &bytes_sent); - switch (iores) { - case IO_SUCCESS: - msgq_delete(&i_sendQ(iauth), bytes_sent); - i_sendB(iauth) += bytes_sent; - if (i_sendB(iauth) > 1023) { - i_sendK(iauth) += i_sendB(iauth) >> 10; - i_sendB(iauth) &= 1023; - } - if (bytes_tried == bytes_sent) - break; - /* If bytes_sent < bytes_tried, fall through to IO_BLOCKED. */ - case IO_BLOCKED: - i_SetBlocked(iauth); - socket_events(&i_socket(iauth), SOCK_ACTION_ADD | SOCK_EVENT_WRITABLE); - return; - case IO_FAILURE: - iauth_disconnect(iauth); - return; - } - } - /* We were able to flush all events, so remove notification. */ - socket_events(&i_socket(iauth), SOCK_ACTION_DEL | SOCK_EVENT_WRITABLE); -} - -/** Handle socket activity for an %IAuth connection. - * @param[in] ev &Socket event; the IAuth connection is the user data pointer for the socket. - */ -static void iauth_sock_callback(struct Event *ev) -{ - struct IAuth *iauth; - - assert(0 != ev_socket(ev)); - iauth = (struct IAuth*) s_data(ev_socket(ev)); - assert(0 != iauth); - - switch (ev_type(ev)) { - case ET_CONNECT: - socket_state(ev_socket(ev), SS_CONNECTED); - iauth_on_connect(iauth); - break; - case ET_DESTROY: - if (!i_GetClosing(iauth)) - iauth_schedule_reconnect(iauth); - break; - case ET_READ: - iauth_read(iauth); - break; - case ET_WRITE: - i_ClrBlocked(iauth); - iauth_write(iauth); - break; - case ET_ERROR: - 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"); - break; - } -} - -/* Functions related to IAuthRequest structs */ - -/** Handle timeout while waiting for a response. - * @param[in] ev Timer event that expired. - */ -static void iauth_request_ev(struct Event *ev) -{ - /* TODO: this could probably be more intelligent */ - if (ev_type(ev) == ET_EXPIRE) { - log_write(LS_IAUTH, L_NOTICE, 0, "IAuth request timed out; reconnecting"); - iauth_reconnect(t_data(ev_timer(ev))); - } -} - -/** Send a authorization request to an %IAuth server. - * @param[in] iauth %Connection to send request on. - * @param[in] iar Request to send. - */ -static void iauth_send_request(struct IAuth *iauth, struct IAuthRequest *iar) -{ - struct Client *client; - - /* If iauth is not connected, we must defer the request. */ - if (!i_GetConnected(iauth)) { - Debug((DEBUG_SEND, "IAuth deferring request for %s because we are not connected.", cli_name(iar->iar_client))); - return; - } - - /* If no timed request, set up expiration timer. */ - if (!t_active(&i_request_timer(iauth))) { - struct Timer *timer = timer_init(&i_request_timer(iauth)); - timer_add(timer, iauth_request_ev, iauth, TT_RELATIVE, i_timeout(iauth)); - iar->iar_timed = 1; - } else - iar->iar_timed = 0; - - /* Send the FullAuth request. */ - client = iar->iar_client; - assert(iar->iar_client != NULL); - iauth_send(iauth, "FullAuth %x %s %s %s %s %s :%s", - client, cli_name(client), cli_username(client), - cli_user(client)->host, cli_sock_ip(client), - cli_passwd(client), cli_info(client)); - - /* Write to the socket if we can. */ - iauth_write(iauth); -} - -/** Start independent authorization check for a client. - * @param[in] iauth %Connection to send request on. - * @param[in] cptr Client to check. - * @return Zero, or CPTR_KILLED in case of memory allocation failure. - */ -int iauth_start_client(struct IAuth *iauth, struct Client *cptr) -{ - struct IAuthRequest *iar; - - /* 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; - iar->iar_prev->iar_next = iar; - iar->iar_next->iar_prev = iar; - - /* Send request. */ - iauth_send_request(iauth, iar); - - return 0; -} - -/** Handle a client that is disconnecting. - * If there is a pending %IAuth request for the client, close it. - * @param[in] cptr Client that is disconnecting. - */ -void iauth_exit_client(struct Client *cptr) -{ - if (cli_iauth(cptr)) { - iauth_dispose_request(iauth_active, cli_iauth(cptr)); - cli_iauth(cptr) = NULL; - } - if (iauth_active && i_GetConnected(iauth_active)) { - iauth_send(iauth_active, "ExitUser %x", cptr); - iauth_write(iauth_active); - } -} - -/** Find pending request with a particular ID. - * @param[in] iauth %Connection context for the ID. - * @param[in] id Identifier to look up. - * @return IAuthRequest with that ID, or NULL. - */ -static struct IAuthRequest *iauth_find_request(struct IAuth *iauth, char *id) -{ - struct IAuthRequest *curr; - struct Client *target; - target = (struct Client*)strtoul(id, NULL, 16); - for (curr = i_list_head(iauth).iar_next; - curr != &i_list_head(iauth); - curr = curr->iar_next) { - assert(curr->iar_client != NULL); - if (target == curr->iar_client) - return curr; - } - return NULL; -} - -/** Unlink and free a request. - * @param[in] iauth Connection that owns the request. - * @param[in] iar Request to free. - */ -static void iauth_dispose_request(struct IAuth *iauth, struct IAuthRequest *iar) -{ - assert(iar->iar_client != NULL); - 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; - iar->iar_next->iar_prev = iar->iar_prev; - MyFree(iar); -} - -/** Handle a DoneAuth response from %IAuth. - * This means the client is authorized, so let them in. - * @param[in] iauth Connection that sent the message. - * @param[in] argc Argument count. - * @param[in] argv Argument list. - */ -static void iauth_cmd_doneauth(struct IAuth *iauth, int argc, char *argv[]) -{ - struct IAuthRequest *iar; - struct Client *client; - char *id; - char *username; - char *hostname; - char *c_class; -#if defined(UNDERNET) - char *account; -#endif - - if (argc < 5) { - iauth_protocol_violation(iauth, "Only %d parameters for DoneAuth (expected >=5)", argc); - return; - } - id = argv[1]; - username = argv[2]; - hostname = argv[3]; - c_class = argv[4]; -#if defined(UNDERNET) - account = (argc > 5) ? argv[5] : 0; -#endif - iar = iauth_find_request(iauth, id); - if (!iar) { - iauth_protocol_violation(iauth, "Got unexpected DoneAuth for id %s", id); - return; - } - client = iar->iar_client; - ircd_strncpy(cli_username(client), username, USERLEN); - ircd_strncpy(cli_user(client)->host, hostname, HOSTLEN); -#if defined(UNDERNET) - if (account) { - ircd_strncpy(cli_user(client)->account, account, ACCOUNTLEN); - SetAccount(client); - } -#endif - SetIAuthed(client); - iauth_dispose_request(iauth, iar); - register_user(client, client, cli_name(client), username); -} - -/** Handle a BadAuth response from %IAuth. - * This means the client is not authorized, so dump them. - * @param[in] iauth Connection that sent the message. - * @param[in] argc Argument count. - * @param[in] argv Argument list. - */ -static void iauth_cmd_badauth(struct IAuth *iauth, int argc, char *argv[]) -{ - struct IAuthRequest *iar; - struct Client *client; - char *id; - char *reason; - - if (argc < 3) { - iauth_protocol_violation(iauth, "Only %d parameters for BadAuth (expected >=3)", argc); - return; - } - id = argv[1]; - reason = argv[2]; - if (EmptyString(reason)) { - iauth_protocol_violation(iauth, "Empty BadAuth reason for id %s", id); - return; - } - iar = iauth_find_request(iauth, id); - if (!iar) { - iauth_protocol_violation(iauth, "Got unexpected BadAuth for id %s", id); - return; - } - client = iar->iar_client; - iauth_dispose_request(iauth, iar); - exit_client(client, client, &me, reason); -} Index: ircd-ircdev/ircd/ircd_parser.y diff -u ircd-ircdev/ircd/ircd_parser.y:1.26 ircd-ircdev/ircd/ircd_parser.y:1.27 --- ircd-ircdev/ircd/ircd_parser.y:1.26 Sun Apr 22 06:56:20 2007 +++ ircd-ircdev/ircd/ircd_parser.y Thu Apr 26 12:17:31 2007 @@ -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.26 2007/04/22 13:56:20 zolty Exp $ + * $Id: ircd_parser.y,v 1.27 2007/04/26 19:17:31 zolty Exp $ * */ %{ @@ -34,7 +34,6 @@ #include "hash.h" #include "ircd.h" #include "ircd_alloc.h" -#include "ircd_auth.h" #include "ircd_chattr.h" #include "ircd_log.h" #include "ircd_reply.h" @@ -49,6 +48,7 @@ #include "opercmds.h" #include "parse.h" #include "res.h" +#include "s_auth.h" #include "s_bsd.h" #include "s_conf.h" #include "s_debug.h" @@ -451,7 +451,7 @@ { char *server = $4; - /* add_nameserver(server); TODO-ZOLTAN */ + add_nameserver(server); MyFree(server); }; @@ -1235,8 +1235,8 @@ iauthblock: IAUTH '{' iauthitems '}' ';' { - /* if (permitted(BLOCK_IAUTH, 1)) - auth_spawn(stringno, stringlist); TODO-ZOLTAN */ + if (permitted(BLOCK_IAUTH, 1)) + auth_spawn(stringno, stringlist); while (stringno > 0) MyFree(stringlist[--stringno]); }; Index: ircd-ircdev/ircd/ircd_res.c diff -u ircd-ircdev/ircd/ircd_res.c:1.14 ircd-ircdev/ircd/ircd_res.c:1.15 --- ircd-ircdev/ircd/ircd_res.c:1.14 Sun Apr 22 06:56:20 2007 +++ ircd-ircdev/ircd/ircd_res.c Thu Apr 26 12:17:31 2007 @@ -41,7 +41,7 @@ */ /** @file * @brief IRC resolver functions. - * @version $Id: ircd_res.c,v 1.14 2007/04/22 13:56:20 zolty Exp $ + * @version $Id: ircd_res.c,v 1.15 2007/04/26 19:17:31 zolty Exp $ */ #include "client.h" #include "ircd_alloc.h" @@ -167,6 +167,16 @@ extern int irc_nscount; extern char irc_domain[HOSTLEN]; +/** Prepare the resolver library to (optionally) accept a list of + * DNS servers through add_dns_server(). + */ +void clear_nameservers(void) +{ + irc_nscount = 0; + memset(&VirtualHost_dns_v4, 0, sizeof(VirtualHost_dns_v4)); + memset(&VirtualHost_dns_v6, 0, sizeof(VirtualHost_dns_v6)); +} + /** Check whether \a inp is a nameserver we use. * @param[in] inp Nameserver address. * @return Non-zero if we trust \a inp; zero if not. @@ -191,26 +201,43 @@ void restart_resolver(void) { + int need_v4; + int need_v6; + int ns; + irc_res_init(); if (!request_list.next) request_list.next = request_list.prev = &request_list; - if (!s_active(&res_socket_v4)) + /* Check which address family (or families) our nameservers use. */ + for (need_v4 = need_v6 = ns = 0; ns < irc_nscount; ns++) + { + if (irc_in_addr_is_ipv4(&irc_nsaddr_list[ns].addr)) + need_v4 = 1; + else + need_v6 = 1; + } + + /* If we need an IPv4 socket, and don't have one, open it. */ + if (need_v4 && !s_active(&res_socket_v4)) { - int fd = os_socket(&VirtualHost_v4, SOCK_DGRAM, "Resolver UDPv4 socket", AF_INET); + int fd = os_socket(&VirtualHost_dns_v4, SOCK_DGRAM, "Resolver UDPv4 socket", AF_INET); if (fd >= 0) socket_add(&res_socket_v4, res_readreply, NULL, SS_DATAGRAM, SOCK_EVENT_READABLE, fd); } - if (!s_active(&res_socket_v6)) +#ifdef AF_INET6 + /* If we need an IPv6 socket, and don't have one, open it. */ + if (need_v6 && !s_active(&res_socket_v6)) { - int fd = os_socket(&VirtualHost_v6, SOCK_DGRAM, "Resolver UDPv6 socket", AF_INET6); + int fd = os_socket(&VirtualHost_dns_v6, SOCK_DGRAM, "Resolver UDPv6 socket", AF_INET6); if (fd >= 0) socket_add(&res_socket_v6, res_readreply, NULL, SS_DATAGRAM, SOCK_EVENT_READABLE, fd); } +#endif if (s_active(&res_socket_v4) || s_active(&res_socket_v6)) timer_init(&res_timeout); @@ -221,7 +248,7 @@ * @param[in,out] hname Hostname to check. * @param[in] size Length of \a hname buffer. */ -void +static void add_local_domain(char* hname, size_t size) { /* try to fix up unqualified names @@ -269,7 +296,8 @@ } /** Create a DNS request record for the server. - * @param[in] query Callback information for caller. + * @param[in] callback Callback function to use. + * @param[in] ctx Context parameter for \a callback. * @return Newly allocated and linked-in reslist. */ static struct reslist * @@ -440,7 +468,8 @@ /** Try to look up address for a hostname, trying IPv6 (T_AAAA) first. * @param[in] name Hostname to look up. - * @param[in] query Callback information. + * @param[in] callback Function to call upon completion. + * @param[in] ctx Callback data to pass to \a callback. */ void gethost_byname(const char *name, dns_callback_f callback, void *ctx) @@ -450,7 +479,8 @@ /** Try to look up hostname for an address. * @param[in] addr Address to look up. - * @param[in] query Callback information. + * @param[in] callback Function to call upon completion. + * @param[in] ctx Callback data to pass to \a callback. */ void gethost_byaddr(const struct irc_in_addr *addr, dns_callback_f callback, void *ctx) @@ -459,7 +489,8 @@ } /** Send a query to look up the address for a name. - * @param[in] query Callback information. + * @param[in] callback Callback function to call upon completion. + * @param[in] ctx Context information to pass to \a callback. * @param[in] name Hostname to look up. * @param[in] request DNS lookup structure (may be NULL). * @param[in] type Preferred request type. @@ -731,9 +762,6 @@ break; case T_CNAME: /* first check we already haven't started looking into a cname */ - if (request->type != T_PTR) - return(0); - if (request->state == REQ_CNAME) { n = irc_dn_expand((unsigned char *)buf, (unsigned char *)eob, @@ -812,7 +840,7 @@ if ((header->rcode != NO_ERRORS) || (header->ancount == 0)) { - if (SERVFAIL == header->rcode) + if (SERVFAIL == header->rcode || NXDOMAIN == header->rcode) { /* * If a bad error was returned, we stop here and don't send Index: ircd-ircdev/ircd/ircd_reslib.c diff -u ircd-ircdev/ircd/ircd_reslib.c:1.4 ircd-ircdev/ircd/ircd_reslib.c:1.5 --- ircd-ircdev/ircd/ircd_reslib.c:1.4 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/ircd_reslib.c Thu Apr 26 12:17:31 2007 @@ -122,13 +122,13 @@ /** @file * @brief DNS resolver library functions. - * @version $Id: ircd_reslib.c,v 1.4 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: ircd_reslib.c,v 1.5 2007/04/26 19:17:31 zolty Exp $ */ /** Array of nameserver addresses. */ struct irc_sockaddr irc_nsaddr_list[IRCD_MAXNS]; /** Number of nameservers in #irc_nsaddr_list. */ -int irc_nscount = 0; +int irc_nscount; /** Local domain to use as a search suffix. */ char irc_domain[HOSTLEN + 1]; @@ -153,7 +153,6 @@ }; static int parse_resvconf(void); -static void add_nameserver(char *arg); /** Array of decimal digits, indexed by value. */ static const char digits[] = "0123456789"; @@ -175,8 +174,7 @@ int irc_res_init(void) { - irc_nscount = 0; - return(parse_resvconf()); + return (irc_nscount == 0) ? parse_resvconf() : 0; } /** Read resolver configuration file for domain and nameserver lines. @@ -246,13 +244,13 @@ /** Add a resolver to #irc_nsaddr_list. * @param[in] arg Dotted quad or IPv6 text form of nameserver address. */ -static void -... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-04-26 19:15:35
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-04-26 19:15:34 UTC Log message: Directory /cvsroot/irc-dev/ircd-ircdev/patches/diffs added to the repository |
From: Toni G. <zo...@us...> - 2007-04-26 19:15:04
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-04-26 19:14:59 UTC Log message: Directory /cvsroot/irc-dev/ircd-ircdev/patches added to the repository |
From: Toni G. <zo...@us...> - 2007-04-22 13:56:51
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-04-22 13:56:35 UTC Modified files: .cvsignore ChangeLog ChangeLog.es Makefile.in acinclude.m4 aclocal.m4 config.h.in configure doc/Makefile.in include/capab.h include/client.h include/crule.h include/ircd_osdep.h include/list.h include/listener.h include/patchlevel.h include/s_bsd.h include/s_conf.h include/struct.h ircd/Makefile.in ircd/crule.c ircd/ircd_lexer.l ircd/ircd_parser.y ircd/ircd_res.c ircd/listener.c ircd/m_account.c ircd/m_gline.c ircd/m_mode.c ircd/m_server.c ircd/m_svsnick.c ircd/os_generic.c ircd/s_auth.c ircd/s_bsd.c ircd/s_conf.c ircd/s_serv.c ircd/s_stats.c ircd/s_user.c ircd/uping.c ircd/test/Makefile.in Added files: Makefile.am configure.ac missing test.l include/flagset.h ircd/Makefile.am ircd/test/Makefile.am Removed files: configure.in Log message: Author: zo...@ir... Log message: 2007-04-22 Toni Garcïa <zo...@ir...> 1.0.beta4 * Nuevo Configure y Makefiles * Nuevo Yacc y Lex parser * Nuevo flag de servidor Uworld * Reescritura Crules ---------------------- diff included ---------------------- Index: ircd-ircdev/.cvsignore diff -u ircd-ircdev/.cvsignore:1.3 ircd-ircdev/.cvsignore:1.4 --- ircd-ircdev/.cvsignore:1.3 Wed Nov 24 08:13:27 2004 +++ ircd-ircdev/.cvsignore Sun Apr 22 06:56:17 2007 @@ -5,6 +5,6 @@ stamp-h config.status config.cache -autom4te.cache .project ircu.tags +autom4te.cache Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.52 ircd-ircdev/ChangeLog:1.53 --- ircd-ircdev/ChangeLog:1.52 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/ChangeLog Sun Apr 22 06:56:17 2007 @@ -1,10 +1,16 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.52 2007/04/21 21:17:22 zolty Exp $ +# $Id: ChangeLog,v 1.53 2007/04/22 13:56:17 zolty Exp $ # # Insert new changes at beginning of the change list. # +2007-04-22 Toni Garcïa <zo...@ir...> 1.0.beta4 + * New Configure and Makefiles + * New Yacc y Lex parser + * New server flag UWORLD + * Re-write Crules + 2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta3 * Cleanup send.c * Cleanup syntax Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.52 ircd-ircdev/ChangeLog.es:1.53 --- ircd-ircdev/ChangeLog.es:1.52 Sat Apr 21 14:17:22 2007 +++ ircd-ircdev/ChangeLog.es Sun Apr 22 06:56:17 2007 @@ -1,10 +1,16 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.52 2007/04/21 21:17:22 zolty Exp $ +# $Id: ChangeLog.es,v 1.53 2007/04/22 13:56:17 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-04-22 Toni Garc�a <zo...@ir...> 1.0.beta4 + * Nuevo Configure y Makefiles + * Nuevo Yacc y Lex parser + * Nuevo flag de servidor Uworld + * Reescritura Crules + 2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta3 * Limpieza send.c * Limpieza sintasis Index: ircd-ircdev/Makefile.am diff -u /dev/null ircd-ircdev/Makefile.am:1.1 --- /dev/null Sun Apr 22 06:56:36 2007 +++ ircd-ircdev/Makefile.am Sun Apr 22 06:56:17 2007 @@ -0,0 +1,34 @@ +## AutoMake top-level Makefile for the IRC-DEV IRC Daemon +## +## Copyright (C) 2005-2007 IRC-Dev Development Team <de...@ir...> +## Copyright (C) 2005 by Kevin L. Mitchell <kl...@mi...> +## +## 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 +## +## @(#)$Id: Makefile.am,v 1.1 2007/04/22 13:56:17 zolty Exp $ + +SUBDIRS = ircd + +EXTRA_DIST = doc patches tools include Doxyfile INSTALL INSTALL.es ircd-patch \ + ChangeLog ChangeLog.es COPYING COPYING.es RELEASE.NOTES RELEASE.NOTES.es \ + TODO TODO.es + +# Install man page and example.conf +man_MANS = doc/en/ircd.8 +sysconf_DATA = doc/ircd.sample-en.conf doc/ircd.sample-es.conf + +# Make sure to filter out those CVS directories +dist-hook: + find $(distdir) -name CVS -print -prune | xargs rm -rf Index: ircd-ircdev/Makefile.in diff -u ircd-ircdev/Makefile.in:1.10 ircd-ircdev/Makefile.in:1.11 --- ircd-ircdev/Makefile.in:1.10 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/Makefile.in Sun Apr 22 06:56:17 2007 @@ -1,159 +1,703 @@ -# IRC-Dev IRCD - An advanced and innovative IRC Daemon, Makefile +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ -# Copyright (C) 2002-2007 IRC-Dev Development Team <de...@ir...> -# Copyright (C) 1997, Carlo Wood <ca...@ru...> - -# 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. +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. # 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 +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. -#### Start of system configuration section. #### +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = . +DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/configure COPYING ChangeLog INSTALL TODO \ + acconfig.h config.guess config.sub depcomp install-sh missing \ + ylwrap +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +man8dir = $(mandir)/man8 +am__installdirs = "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(sysconfdir)" +NROFF = nroff +MANS = $(man_MANS) +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +sysconfDATA_INSTALL = $(INSTALL_DATA) +DATA = $(sysconf_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ -VPATH = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = ircd +EXTRA_DIST = doc patches tools include Doxyfile INSTALL INSTALL.es ircd-patch \ + ChangeLog ChangeLog.es COPYING COPYING.es RELEASE.NOTES RELEASE.NOTES.es \ + TODO TODO.es + + +# Install man page and example.conf +man_MANS = doc/en/ircd.8 +sysconf_DATA = doc/ircd.sample-en.conf doc/ircd.sample-es.conf +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ + cd $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) $(top_srcdir)/acconfig.h + cd $(top_srcdir) && $(AUTOHEADER) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +install-man8: $(man8_MANS) $(man_MANS) + @$(NORMAL_INSTALL) + test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)" + @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.8*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ + else file=$$i; fi; \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 8*) ;; \ + *) ext='8' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \ + done +uninstall-man8: + @$(NORMAL_UNINSTALL) + @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.8*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 8*) ;; \ + *) ext='8' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \ + rm -f "$(DESTDIR)$(man8dir)/$$inst"; \ + done +install-sysconfDATA: $(sysconf_DATA) + @$(NORMAL_INSTALL) + test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)" + @list='$(sysconf_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \ + $(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \ + done -SHELL = @SHPROG@ -RM = @RMPROG@ -AWK = @AWK@ -@SET_MAKE@ -#### End of system configuration section. #### +uninstall-sysconfDATA: + @$(NORMAL_UNINSTALL) + @list='$(sysconf_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \ + rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \ + done + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d $(distdir) || mkdir $(distdir) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(MANS) $(DATA) config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(sysconfdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive -SUBDIRS = doc ircd ircd/test -IRCD_MAKEFILES = Makefile doc/Makefile ircd/Makefile ircd/test/Makefile +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -all: build +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: -.PHONY: server build depend install config update diff patch export update -# Some versions of make give a warning when this is empty: -.SUFFIXES: .dummy +clean-generic: -build: ${IRCD_MAKEFILES} - @for i in ${SUBDIRS}; do \ - echo "Building $$i..."; \ - cd $$i; ${MAKE} build; cd ..; \ - done +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -config: - @echo "*************************************************************" - @echo "* The \"make config\" step is now DEPRECATED. Most *" - @echo "* server options are now configurable via the configuration *" - @echo "* file using F-lines; the rest are specified on the command *" - @echo "* line to \"./configure\". To aid the transition, a shell *" - @echo "* script has been provided to generate the necessary *" - @echo "* configuration lines for you. You may run this script by *" - @echo "* typing \"tools/transition\"; please pay attention to its *" - @echo "* output. This message will be removed for the next major *" - @echo "* release of ircu. *" - @echo "*************************************************************" +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive -root-clean: - @for i in '*.orig' '.*.orig' '\#*' '*~' '.*~' '*.bak' '.*.bak' core; do\ - echo "Removing $$i"; \ - REMOVE_FILES="`find . -name "$$i" -print`"; \ - test -n "$$REMOVE_FILES" && ${RM} -f $$REMOVE_FILES; \ - done || true +clean-am: clean-generic mostlyclean-am -sub-clean: ${IRCD_MAKEFILES} - @for i in ${SUBDIRS}; do \ - echo "Cleaning $$i..."; \ - cd $$i; ${MAKE} clean; cd ..;\ - done +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr distclean-tags -clean: root-clean sub-clean +dvi: dvi-recursive -root-distclean: root-clean - @for i in '*.rej'; do \ - echo "Removing $$i"; \ - REMOVE_FILES="`find . -name "$$i" -print`"; \ - test -n "$$REMOVE_FILES" && ${RM} -f $$REMOVE_FILES; \ - done || true +dvi-am: -sub-distclean: ${IRCD_MAKEFILES} - @for i in ${SUBDIRS}; do \ - echo "Dist-cleaning $$i..."; \ - cd $$i; ${MAKE} distclean; cd ..;\ - done +html: html-recursive -distclean: root-distclean sub-distclean - ${RM} -f Makefile config.h config.log config.cache config.status \ - stamp-h +info: info-recursive -maintainer-clean: root-distclean ${IRCD_MAKEFILES} - @for i in ${SUBDIRS}; do \ - echo "maintainer-cleaning $$i..."; \ - cd $$i; ${MAKE} maintainer-clean; cd ..;\ - done +info-am: -depend: ${IRCD_MAKEFILES} - @for i in ${SUBDIRS}; do \ - echo "Making dependencies in $$i..."; \ - cd $$i; ${MAKE} depend; cd ..; \ - done +install-data-am: install-man -install: ${IRCD_MAKEFILES} - test -d ${prefix} || mkdir ${prefix} - @for i in ${SUBDIRS}; do \ - echo "Installing $$i..."; \ - cd $$i; ${MAKE} install; cd ..; \ - done +install-dvi: install-dvi-recursive -uninstall: ${IRCD_MAKEFILES} - @for i in ${SUBDIRS}; do \ - echo "Uninstalling $$i..."; \ - cd $$i; ${MAKE} uninstall; cd ..; \ - done +install-exec-am: install-sysconfDATA + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: install-man8 + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic -${srcdir}/aclocal.m4: acinclude.m4 - cd ${srcdir} && aclocal +mostlyclean: mostlyclean-recursive -${srcdir}/configure: configure.in aclocal.m4 - cd ${srcdir} && autoconf +mostlyclean-am: mostlyclean-generic -# autoheader might not change config.h.in, so touch a stamp file. -${srcdir}/config.h.in: stamp-h.in -${srcdir}/stamp-h.in: configure.in aclocal.m4 acconfig.h - cd ${srcdir} && autoheader - echo timestamp > ${srcdir}/stamp-h.in +pdf: pdf-recursive -config.h: stamp-h -stamp-h: config.h.in config.status - ./config.status +pdf-am: -Makefile: Makefile.in config.status - ./config.status +ps: ps-recursive -doc/Makefile: doc/Makefile.in config.status - ./config.status +ps-am: -ircd/Makefile: ircd/Makefile.in config.status - ./config.status +uninstall-am: uninstall-man uninstall-sysconfDATA -ircd/test/Makefile: ircd/test/Makefile.in config.status - ./config.status +uninstall-man: uninstall-man8 -config.status: configure - ./config.status --recheck +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip -# Some versions of 'make' do not support the .PHONY target : -FORCE: +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-am clean clean-generic \ + ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ + dist-hook dist-shar dist-tarZ dist-zip distcheck distclean \ + distclean-generic distclean-hdr distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-man8 install-pdf install-pdf-am install-ps \ + install-ps-am install-strip install-sysconfDATA installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ + pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ + uninstall-man uninstall-man8 uninstall-sysconfDATA -# Indent all headers and source files: -indent: - @test "`indent --version`" = "GNU indent 2.2.8" || \ - (echo "You need GNU indent 2.2.8; See doc/<language>/indent.txt" && exit -1); - VERSION_CONTROL=none indent include/*.h ircd/*.c -# do a cvs update -update: - cvs -z9 update +# Make sure to filter out those CVS directories +dist-hook: + find $(distdir) -name CVS -print -prune | xargs rm -rf +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: Index: ircd-ircdev/acinclude.m4 diff -u ircd-ircdev/acinclude.m4:1.3 ircd-ircdev/acinclude.m4:1.4 --- ircd-ircdev/acinclude.m4:1.3 Mon Apr 11 01:44:56 2005 +++ ircd-ircdev/acinclude.m4 Sun Apr 22 06:56:17 2007 @@ -4,7 +4,7 @@ dnl Check whether we have posix, bsd or sysv non-blocking sockets and dnl define respectively NBLOCK_POSIX, NBLOCK_BSD or NBLOCK_SYSV. dnl -AC_DEFUN(unet_NONBLOCKING, +AC_DEFUN([unet_NONBLOCKING], [dnl Do we have posix, bsd or sysv non-blocking stuff ? AC_CACHE_CHECK([for posix non-blocking], unet_cv_sys_nonblocking_posix, [AC_TRY_RUN([#include <sys/types.h> @@ -71,7 +71,7 @@ dnl unreliable sysv signals and define respectively POSIX_SIGNALS, dnl BSD_RELIABLE_SIGNALS or SYSV_UNRELIABLE_SIGNALS. dnl -AC_DEFUN(unet_SIGNALS, +AC_DEFUN([unet_SIGNALS], [dnl Do we have posix signals, reliable bsd signals or unreliable sysv signals ? AC_CACHE_CHECK([for posix signals], unet_cv_sys_signal_posix, [AC_TRY_COMPILE([#include <signal.h>], @@ -108,7 +108,7 @@ dnl dnl Check the size of several types and define a valid int16_t and int32_t. dnl -AC_DEFUN(unet_CHECK_TYPE_SIZES, +AC_DEFUN([unet_CHECK_TYPE_SIZES], [dnl Check type sizes AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(int) @@ -179,7 +179,7 @@ dnl The check for libresolv is in case you are attempting to link statically dnl and happen to have a libresolv.a lying around (and no libnsl.a). dnl -AC_DEFUN(AC_LIBRARY_NET, [ +AC_DEFUN([AC_LIBRARY_NET], [ # Most operating systems have gethostbyname() in the default searched # libraries (i.e. libc): AC_CHECK_FUNC(gethostbyname, , @@ -200,3 +200,38 @@ AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket, , AC_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", , -lnsl))) ]) + +dnl Option toggles +dnl $1 = option name +dnl $2 = default, "yes" or "no" (may be shell variable) +dnl $3 = help text +dnl $4 = emitted message +dnl $5 = optional final check +dnl Result is contained in $unet_cv_enable_$1 +AC_DEFUN([unet_TOGGLE], +[AC_MSG_CHECKING([$4]) +AC_ARG_ENABLE([$1], + AS_HELP_STRING([--m4_if($2, no, enable, disable)-$1], [$3]), + [unet_cv_enable_$1=$enableval], + [AC_CACHE_VAL(unet_cv_enable_$1, + [unet_cv_enable_$1=$2])]) + +m4_if($5, , , $5) +AC_MSG_RESULT([$unet_cv_enable_$1])]) + +dnl Option values +dnl $1 = option name +dnl $2 = default (may be shell variable) +dnl $3 = help text +dnl $4 = emitted message +dnl $5 = optional final check +dnl Result is contained in $unet_cv_with_$1 +AC_DEFUN([unet_VALUE], +[AC_MSG_CHECKING([$4]) +AC_ARG_WITH([$1], AS_HELP_STRING([--with-$1], [$3]), + [unet_cv_with_$1=$withval], + [AC_CACHE_VAL(unet_cv_with_$1, + [unet_cv_with_$1=$2])]) + +m4_if($5, , , $5) +AC_MSG_RESULT([$unet_cv_with_$1])]) Index: ircd-ircdev/aclocal.m4 diff -u ircd-ircdev/aclocal.m4:1.4 ircd-ircdev/aclocal.m4:1.5 --- ircd-ircdev/aclocal.m4:1.4 Mon Apr 11 01:44:56 2005 +++ ircd-ircdev/aclocal.m4 Sun Apr 22 06:56:17 2007 @@ -1,303 +1,884 @@ -dnl aclocal.m4 generated automatically by aclocal 1.4-p6 +# generated automatically by aclocal 1.10 -*- Autoconf -*- -dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without -dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A -dnl PARTICULAR PURPOSE. - -dnl -dnl Macro: unet_NONBLOCKING -dnl -dnl Check whether we have posix, bsd or sysv non-blocking sockets and -dnl define respectively NBLOCK_POSIX, NBLOCK_BSD or NBLOCK_SYSV. -dnl -AC_DEFUN(unet_NONBLOCKING, -[dnl Do we have posix, bsd or sysv non-blocking stuff ? -AC_CACHE_CHECK([for posix non-blocking], unet_cv_sys_nonblocking_posix, -[AC_TRY_RUN([#include <sys/types.h> -#include <sys/socket.h> -#include <fcntl.h> -#include <sys/ioctl.h> -#include <sys/file.h> -#include <signal.h> -$ac_cv_type_signal alarmed() { exit(1); } -int main(void) -{ - char b[12]; - struct sockaddr x; - size_t l = sizeof(x); - int f = socket(AF_INET, SOCK_DGRAM, 0); - if (f >= 0 && !(fcntl(f, F_SETFL, O_NONBLOCK))) - { - signal(SIGALRM, alarmed); - alarm(2); - recvfrom(f, b, 12, 0, &x, &l); - alarm(0); - exit(0); - } - exit(1); -}], unet_cv_sys_nonblocking_posix=yes, unet_cv_sys_nonblocking_posix=no)]) -if test $unet_cv_sys_nonblocking_posix = yes; then - AC_DEFINE([NBLOCK_POSIX],,[Define if you have POSIX non-blocking sockets.]) -else -AC_CACHE_CHECK([for bsd non-blocking], unet_cv_sys_nonblocking_bsd, -[AC_TRY_RUN([#include <sys/types.h> -#include <sys/socket.h> -#include <fcntl.h> -#include <sys/ioctl.h> -#include <sys/file.h> -#include <signal.h> -$ac_cv_type_signal alarmed() { exit(1); } -int main(void) -{ - char b[12]; - struct sockaddr x; - size_t l = sizeof(x); - int f = socket(AF_INET, SOCK_DGRAM, 0); - if (f >= 0 && !(fcntl(f, F_SETFL, O_NDELAY))) - { - signal(SIGALRM, alarmed); - alarm(2); - recvfrom(f, b, 12, 0, &x, &l); - alarm(0); - exit(0); - } - exit(1); -}], unet_cv_sys_nonblocking_bsd=yes, unet_cv_sys_nonblocking_bsd=no)]) -if test $unet_cv_sys_nonblocking_bsd = yes; then - AC_DEFINE([NBLOCK_BSD],,[Define if you have BSD non-blocking sockets.]) +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_if(m4_PACKAGE_VERSION, [2.61],, +[m4_fatal([this file was generated for autoconf 2.61. +You have another version of autoconf. If you want to use that, +you should regenerate the build system entirely.], [63])]) + +# Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.10' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.10], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.10])dnl +_AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' else - AC_DEFINE([NBLOCK_SYSV],,[Define if you have SysV non-blocking sockets.]) + $1_TRUE='#' + $1_FALSE= fi -fi]) +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) -dnl -dnl Macro: unet_SIGNALS -dnl -dnl Check if we have posix signals, reliable bsd signals or -dnl unreliable sysv signals and define respectively POSIX_SIGNALS, -dnl BSD_RELIABLE_SIGNALS or SYSV_UNRELIABLE_SIGNALS. -dnl -AC_DEFUN(unet_SIGNALS, -[dnl Do we have posix signals, reliable bsd signals or unreliable sysv signals ? -AC_CACHE_CHECK([for posix signals], unet_cv_sys_signal_posix, -[AC_TRY_COMPILE([#include <signal.h>], -[sigaction(SIGTERM, (struct sigaction *)0L, (struct sigaction *)0L)], -unet_cv_sys_signal_posix=yes, unet_cv_sys_signal_posix=no)]) -if test $unet_cv_sys_signal_posix = yes; then - AC_DEFINE([POSIX_SIGNALS],,[Define if you have POSIX signals.]) -else -AC_CACHE_CHECK([for bsd reliable signals], unet_cv_sys_signal_bsd, -[AC_TRY_RUN([#include <signal.h> -int calls = 0; -$ac_cv_type_signal handler() -{ - if (calls) return; - calls++; - kill(getpid(), SIGTERM); - sleep(1); -} -int main(void) -{ - signal(SIGTERM, handler); - kill(getpid(), SIGTERM); - exit (0); -}], unet_cv_sys_signal_bsd=yes, unet_cv_sys_signal_bsd=no)]) -if test $unet_cv_sys_signal_bsd = yes; then - AC_DEFINE([BSD_RELIABLE_SIGNALS],,[Define if you have (reliable) BSD signals.]) +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 9 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir else - AC_DEFINE([SYSV_UNRELIABLE_SIGNALS],,[Define if you have (unreliable) SysV signals.]) + am_cv_$1_dependencies_compiler_type=none fi -fi]) +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) -dnl -dnl Macro: unet_CHECK_TYPE_SIZES -dnl -dnl Check the size of several types and define a valid int16_t and int32_t. -dnl -AC_DEFUN(unet_CHECK_TYPE_SIZES, -[dnl Check type sizes -AC_CHECK_SIZEOF(short) -AC_CHECK_SIZEOF(int) -AC_CHECK_SIZEOF(long) -AC_CHECK_SIZEOF(void *) -AC_CHECK_SIZEOF(int64_t) -AC_CHECK_SIZEOF(long long) -if test "$ac_cv_sizeof_int" = 2 ; then - AC_CHECK_TYPE(int16_t, int) - AC_CHECK_TYPE(uint16_t, unsigned int) -elif test "$ac_cv_sizeof_short" = 2 ; then - AC_CHECK_TYPE(int16_t, short) - AC_CHECK_TYPE(uint16_t, unsigned short) -else - AC_MSG_ERROR([Cannot find a type with size of 16 bits]) + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' fi -if test "$ac_cv_sizeof_int" = 4 ; then - AC_CHECK_TYPE(int32_t, int) - AC_CHECK_TYPE(uint32_t, unsigned int) -elif test "$ac_cv_sizeof_short" = 4 ; then - AC_CHECK_TYPE(int32_t, short) - AC_CHECK_TYPE(uint32_t, unsigned short) -elif test "$ac_cv_sizeof_long" = 4 ; then - AC_CHECK_TYPE(int32_t, long) - AC_CHECK_TYPE(uint32_t, unsigned long) -else - AC_MSG_ERROR([Cannot find a type with size of 32 bits]) +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 3 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 12 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.60])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi fi -if test "$ac_cv_sizeof_int64_t" = 8 ; then - AC_CHECK_TYPE(int64_t) - AC_CHECK_TYPE(uint64_t) -elif test "$ac_cv_sizeof_long_long" = 8 ; then - AC_CHECK_TYPE(int64_t, long long) - AC_CHECK_TYPE(uint64_t, unsigned long long) +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $1 | $1:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-04-21 21:17:40
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-04-21 21:17:34 UTC Modified files: ChangeLog ChangeLog.es include/ddb.h include/ircd.h include/list.h include/msgq.h include/patchlevel.h include/querycmds.h include/s_bsd.h include/send.h ircd/Makefile.in ircd/channel.c ircd/ddb.c ircd/ddb_events.c ircd/destruct_event.c ircd/gline.c ircd/ircd.c ircd/ircd_auth.c ircd/ircd_log.c ircd/ircd_relay.c ircd/ircd_reply.c ircd/jupe.c ircd/list.c ircd/listener.c ircd/m_account.c ircd/m_away.c ircd/m_burst.c ircd/m_clearmode.c ircd/m_connect.c ircd/m_cprivmsg.c ircd/m_create.c ircd/m_db.c ircd/m_dbq.c ircd/m_destruct.c ircd/m_desynch.c ircd/m_endburst.c ircd/m_error.c ircd/m_ghost.c ircd/m_gline.c ircd/m_invite.c ircd/m_join.c ircd/m_jupe.c ircd/m_kick.c ircd/m_kill.c ircd/m_nick.c ircd/m_oper.c ircd/m_rehash.c ircd/m_server.c ircd/m_settime.c ircd/m_silence.c ircd/m_svsnick.c ircd/m_topic.c ircd/m_trace.c ircd/m_wallchops.c ircd/m_wallops.c ircd/m_wallusers.c ircd/m_wallvoices.c ircd/memdebug.c ircd/motd.c ircd/msgq.c ircd/numnicks.c ircd/os_generic.c ircd/s_auth.c ircd/s_bsd.c ircd/s_conf.c ircd/s_misc.c ircd/s_numeric.c ircd/s_serv.c ircd/s_user.c ircd/send.c ircd/umkpasswd.c Removed files: include/sys.h Log message: Author: zo...@ir... Log message: 2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta3 * Limpieza send.c * Limpieza sintasis ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.51 ircd-ircdev/ChangeLog:1.52 --- ircd-ircdev/ChangeLog:1.51 Sat Apr 21 09:20:17 2007 +++ ircd-ircdev/ChangeLog Sat Apr 21 14:17:22 2007 @@ -1,11 +1,15 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.51 2007/04/21 16:20:17 zolty Exp $ +# $Id: ChangeLog,v 1.52 2007/04/21 21:17:22 zolty Exp $ # # Insert new changes at beginning of the change list. # -2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta2 +2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta3 + * Cleanup send.c + * Cleanup syntax + +2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta2 * Remove P09 support rests * New Invite structure Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.51 ircd-ircdev/ChangeLog.es:1.52 --- ircd-ircdev/ChangeLog.es:1.51 Sat Apr 21 09:20:17 2007 +++ ircd-ircdev/ChangeLog.es Sat Apr 21 14:17:22 2007 @@ -1,10 +1,14 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.51 2007/04/21 16:20:17 zolty Exp $ +# $Id: ChangeLog.es,v 1.52 2007/04/21 21:17:22 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta3 + * Limpieza send.c + * Limpieza sintasis + 2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta2 * Eliminar restos soporte P09 * Nueva estructura Invite Index: ircd-ircdev/include/ddb.h diff -u ircd-ircdev/include/ddb.h:1.13 ircd-ircdev/include/ddb.h:1.14 --- ircd-ircdev/include/ddb.h:1.13 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/ddb.h Sat Apr 21 14:17:22 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Distributed DataBases structures, macros and functions. - * @version $Id: ddb.h,v 1.13 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: ddb.h,v 1.14 2007/04/21 21:17:22 zolty Exp $ */ #ifndef INCLUDED_ddb_h #define INCLUDED_ddb_h @@ -148,7 +148,7 @@ extern struct Ddb *ddb_find_key(unsigned char table, char *key); extern char *ddb_get_botname(char *botname); -extern void ddb_splithubs_butone(struct Client *cptr, char *exitmsg); +extern void ddb_splithubs(struct Client *cptr, char *exitmsg); extern void ddb_reload(void); extern void ddb_die(const char *pattern, ...); extern void ddb_report_stats(struct Client* to, const struct StatDesc* sd, char* param); Index: ircd-ircdev/include/ircd.h diff -u ircd-ircdev/include/ircd.h:1.5 ircd-ircdev/include/ircd.h:1.6 --- ircd-ircdev/include/ircd.h:1.5 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/ircd.h Sat Apr 21 14:17:22 2007 @@ -21,7 +21,7 @@ */ /** @file ircd.h * @brief Global data for the daemon. - * @version $Id: ircd.h,v 1.5 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: ircd.h,v 1.6 2007/04/21 21:17:22 zolty Exp $ */ #ifndef INCLUDED_ircd_h #define INCLUDED_ircd_h @@ -77,6 +77,8 @@ extern char* configfile; extern int debuglevel; extern char* debugmode; -extern int running; +extern int running; +extern int maxconnections; +extern int maxclients; #endif /* INCLUDED_ircd_h */ Index: ircd-ircdev/include/list.h diff -u ircd-ircdev/include/list.h:1.7 ircd-ircdev/include/list.h:1.8 --- ircd-ircdev/include/list.h:1.7 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/list.h Sat Apr 21 14:17:22 2007 @@ -21,7 +21,7 @@ */ /** @file list.h * @brief Singly and doubly linked list manipulation interface. - * @version $Id: list.h,v 1.7 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: list.h,v 1.8 2007/04/21 21:17:22 zolty Exp $ */ #ifndef INCLUDED_list_h #define INCLUDED_list_h @@ -71,7 +71,7 @@ extern void free_link(struct SLink *lp); extern struct SLink *make_link(void); -extern void init_list(void); +extern void init_list(int maxconn); extern struct Client *make_client(struct Client *from, int status); extern void free_connection(struct Connection *con); extern void free_client(struct Client *cptr); Index: ircd-ircdev/include/msgq.h diff -u ircd-ircdev/include/msgq.h:1.6 ircd-ircdev/include/msgq.h:1.7 --- ircd-ircdev/include/msgq.h:1.6 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/msgq.h Sat Apr 21 14:17:22 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Outbound message queue interface and declarations. - * @version $Id: msgq.h,v 1.6 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: msgq.h,v 1.7 2007/04/21 21:17:22 zolty Exp $ */ #ifndef INCLUDED_msgq_h #define INCLUDED_msgq_h @@ -50,6 +50,7 @@ struct MsgQList { struct Msg *head; /**< First Msg in queue list */ struct Msg *tail; /**< Last Msg in queue list */ + unsigned int sent; /**< Bytes in *head that have already been sent */ }; /** Entire two-priority message queue for a destination. */ Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.50 ircd-ircdev/include/patchlevel.h:1.51 --- ircd-ircdev/include/patchlevel.h:1.50 Sat Apr 21 09:20:18 2007 +++ ircd-ircdev/include/patchlevel.h Sat Apr 21 14:17:22 2007 @@ -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.50 2007/04/21 16:20:18 zolty Exp $ + * $Id: patchlevel.h,v 1.51 2007/04/21 21:17:22 zolty Exp $ * */ -#define PATCHLEVEL "2" +#define PATCHLEVEL "3" #define RELEASE "1.0.beta" Index: ircd-ircdev/include/querycmds.h diff -u ircd-ircdev/include/querycmds.h:1.6 ircd-ircdev/include/querycmds.h:1.7 --- ircd-ircdev/include/querycmds.h:1.6 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/querycmds.h Sat Apr 21 14:17:22 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Interface and declarations for client counting functions. - * @version $Id: querycmds.h,v 1.6 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: querycmds.h,v 1.7 2007/04/21 21:17:22 zolty Exp $ */ #ifndef INCLUDED_querycmds_h #define INCLUDED_querycmds_h @@ -106,7 +106,7 @@ { \ max_connection_count = UserStats.local_clients + UserStats.local_servers; \ if (max_connection_count % 10 == 0) \ - sendto_opmask_butone(0, SNO_OLDSNO, "Maximum connections: %d (%d clients)", \ + sendto_opmask(0, SNO_OLDSNO, "Maximum connections: %d (%d clients)", \ max_connection_count, max_client_count); \ } \ } while(0) Index: ircd-ircdev/include/s_bsd.h diff -u ircd-ircdev/include/s_bsd.h:1.8 ircd-ircdev/include/s_bsd.h:1.9 --- ircd-ircdev/include/s_bsd.h:1.8 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/s_bsd.h Sat Apr 21 14:17:22 2007 @@ -21,7 +21,7 @@ */ /** @file s_bsd.h * @brief Wrapper functions to avoid direct use of BSD APIs. - * @version $Id: s_bsd.h,v 1.8 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: s_bsd.h,v 1.9 2007/04/21 21:17:22 zolty Exp $ */ #ifndef INCLUDED_s_bsd_h #define INCLUDED_s_bsd_h @@ -71,8 +71,8 @@ extern const char* const TOS_ERROR_MSG; extern const char* const REGISTER_ERROR_MSG; -extern int HighestFd; -extern struct Client* LocalClientArray[MAXCONNECTIONS]; +extern int HighestFd; +extern struct Client** LocalClientArray; extern struct irc_sockaddr VirtualHost_v4; extern struct irc_sockaddr VirtualHost_v6; @@ -87,7 +87,7 @@ extern int read_message(time_t delay); extern void init_server_identity(void); extern void close_connections(int close_stderr); -extern int init_connection_limits(void); +extern int init_connection_limits(int maxconn); extern void update_write(struct Client* cptr); #endif /* INCLUDED_s_bsd_h */ Index: ircd-ircdev/include/send.h diff -u ircd-ircdev/include/send.h:1.9 ircd-ircdev/include/send.h:1.10 --- ircd-ircdev/include/send.h:1.9 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/send.h Sat Apr 21 14:17:22 2007 @@ -21,7 +21,7 @@ */ /** @file send.h * @brief Send messages to certain targets. - * @version $Id: send.h,v 1.9 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: send.h,v 1.10 2007/04/21 21:17:22 zolty Exp $ */ #ifndef INCLUDED_send_h #define INCLUDED_send_h @@ -74,90 +74,69 @@ const char *pattern, ...); /* Send command to servers by flags except one */ -extern void sendcmdto_flag_serv_butone(struct Client *from, const char *cmd, - const char *tok, struct Client *one, - int require, int forbid, - const char *pattern, ...); +extern void sendcmdto_flag_serv(struct Client *from, const char *cmd, + const char *tok, struct Client *one, + int require, int forbid, + const char *pattern, ...); /* Send command to all servers except one */ -extern void sendcmdto_serv_butone(struct Client *from, const char *cmd, - const char *tok, struct Client *one, - const char *pattern, ...); +extern void sendcmdto_serv(struct Client *from, const char *cmd, + const char *tok, struct Client *one, + const char *pattern, ...); /* Send command to all channels user is on */ -extern void sendcmdto_common_channels_butone(struct Client *from, - const char *cmd, - const char *tok, - struct Client *one, - const char *pattern, ...); +extern void sendcmdto_common_channels(struct Client *from, + const char *cmd, + const char *tok, + struct Client *one, + const char *pattern, ...); #if defined(DDB) /* Send bot command to all channel users on this server */ -extern void sendcmdbotto_channel_butserv_butone(const char *botmode, - const char *cmd, - const char *tok, - struct Channel *to, - struct Client *one, - unsigned int skip, - const char *pattern, ...); +extern void sendcmdbotto_channel_butserv(const char *botmode, + const char *cmd, + const char *tok, + struct Channel *to, + struct Client *one, + unsigned int skip, + const char *pattern, ...); #endif -/* Send command to all channel users on this server */ -extern void sendcmdto_channel_butserv_butone(struct Client *from, - const char *cmd, - const char *tok, - struct Channel *to, - struct Client *one, - unsigned int skip, - const char *pattern, ...); - -/* Send command to all servers interested in a channel */ -extern void sendcmdto_channel_servers_butone(struct Client *from, - const char *cmd, - const char *tok, - struct Channel *to, - struct Client *one, - unsigned int skip, - const char *pattern, ...); - /* Send command to all interested channel users */ -extern void sendcmdto_channel_butone(struct Client *from, const char *cmd, - const char *tok, struct Channel *to, - struct Client *one, unsigned int skip, - const char *pattern, ...); +extern void sendcmdto_channel(struct Client *from, const char *cmd, + const char *tok, struct Channel *to, + struct Client *one, unsigned int skip, + const char *pattern, ...); #define SKIP_DEAF 0x01 /**< skip users that are +d */ #define SKIP_BURST 0x02 /**< skip users that are bursting */ #define SKIP_NONOPS 0x04 /**< skip users that aren't chanops */ #define SKIP_NONVOICES 0x08 /**< skip users that aren't voiced (includes chanops) */ +#define SKIP_SERVERS 0x10 /**< skip server links */ /* Send command to all users having a particular flag set */ -extern void sendwallto_group_butone(struct Client *from, int type, - struct Client *one, const char *pattern, - ...); +extern void sendwallto_group(struct Client *from, int type, + struct Client *one, const char *pattern, + ...); #define WALL_DESYNCH 1 /**< send as a DESYNCH message */ #define WALL_WALLOPS 2 /**< send to all +w opers */ #define WALL_WALLUSERS 3 /**< send to all +w users */ /* Send command to all matching clients */ -extern void sendcmdto_match_butone(struct Client *from, const char *cmd, - const char *tok, const char *to, - struct Client *one, unsigned int who, - const char *pattern, ...); +extern void sendcmdto_match(struct Client *from, const char *cmd, + const char *tok, const char *to, + struct Client *one, unsigned int who, + const char *pattern, ...); /* Send server notice to opers but one--one can be NULL */ -extern void sendto_opmask_butone(struct Client *one, unsigned int mask, - const char *pattern, ...); +extern void sendto_opmask(struct Client *one, unsigned int mask, + const char *pattern, ...); /* Same as above, but rate limited */ -extern void sendto_opmask_butone_ratelimited(struct Client *one, - unsigned int mask, time_t *rate, - const char *pattern, ...); - -/* Same as above, but with variable argument list */ -extern void vsendto_opmask_butone(struct Client *one, unsigned int mask, - const char *pattern, va_list vl); +extern void sendto_opmask_ratelimited(struct Client *one, + unsigned int mask, time_t *rate, + const char *pattern, ...); #endif /* INCLUDED_send_h */ Index: ircd-ircdev/include/sys.h diff -u ircd-ircdev/include/sys.h:1.6 ircd-ircdev/include/sys.h:removed --- ircd-ircdev/include/sys.h:1.6 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/sys.h Sat Apr 21 14:17:34 2007 @@ -1,34 +0,0 @@ -/* - * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/sys.h - * - * Copyright (C) 2002-2007 IRC-Dev Development Team <de...@ir...> - * Copyright (C) 1990 Jarkko Oikarinen - * - * 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 - * - * $Id: sys.h,v 1.6 2007/04/19 22:53:47 zolty Exp $ - * - */ -#ifndef INCLUDED_sys_h -#define INCLUDED_sys_h - -/* - * safety margin so we can always have one spare fd, for motd/authd or - * whatever else. -24 allows "safety" margin of 10 listen ports, 8 servers - * and space reserved for logfiles, DNS sockets and identd sockets etc. - */ -#define MAXCLIENTS (MAXCONNECTIONS-24) - -#endif /* INCLUDED_sys_h */ Index: ircd-ircdev/ircd/Makefile.in diff -u ircd-ircdev/ircd/Makefile.in:1.31 ircd-ircdev/ircd/Makefile.in:1.32 --- ircd-ircdev/ircd/Makefile.in:1.31 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/ircd/Makefile.in Sat Apr 21 14:17:22 2007 @@ -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.31 2007/04/19 22:53:47 zolty Exp $ +# $Id: Makefile.in,v 1.32 2007/04/21 21:17:22 zolty Exp $ #### Start of system configuration section. #### @@ -423,7 +423,7 @@ ../include/numnicks.h ../include/querycmds.h ../include/ircd_features.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/struct.h ../include/sys.h ../include/whowas.h + ../include/struct.h ../include/whowas.h 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 \ @@ -447,9 +447,10 @@ ../include/ircd_alloc.h ../include/ircd_chattr.h \ ../include/ircd_string.h ../include/match.h ../include/s_bsd.h \ ../include/s_debug.h ../include/struct.h -dbuf.o: dbuf.c ../config.h ../include/dbuf.h ../include/ircd_alloc.h \ +dbuf.o: dbuf.c ../config.h ../include/dbuf.h ../include/ircd.h \ + ../include/struct.h ../include/ircd_defs.h ../include/ircd_alloc.h \ ../include/ircd_chattr.h ../include/ircd_features.h \ - ../include/ircd_log.h ../include/send.h ../include/sys.h + ../include/ircd_log.h ../include/send.h 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 \ @@ -476,26 +477,7 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd.h ../include/struct.h ../include/match.h \ ../include/msg.h ../include/numeric.h ../include/random.h \ - ../include/send.h ../include/struct.h ../include/sys.h \ - ../include/watch.h -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/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_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/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 + ../include/send.h ../include/struct.h ../include/watch.h 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 @@ -531,8 +513,7 @@ ../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/s_user.h \ - ../include/send.h ../include/struct.h ../include/sys.h \ - ../include/whowas.h + ../include/send.h ../include/struct.h ../include/whowas.h 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 \ @@ -568,8 +549,8 @@ ../include/ircd_snprintf.h ../include/ircd.h ../include/struct.h \ ../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/res.h ../include/ircd_reslib.h + ../include/ircd_features.h ../include/send.h ../include/res.h \ + ../include/ircd_reslib.h 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/ircd_defs.h ../include/fileio.h \ @@ -597,8 +578,7 @@ ../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/struct.h \ - ../include/sys.h + ../include/s_misc.h ../include/send.h ../include/struct.h lex.yy.o: lex.yy.c ../config.h ../include/ircd.h ../include/struct.h \ ../include/ircd_defs.h ../include/ircd_alloc.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/s_debug.h y.tab.h @@ -613,18 +593,6 @@ ../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 -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_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/client.h \ - ../include/s_misc.h ../include/s_stats.h ../include/send.h \ - ../include/sys.h 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 \ @@ -800,16 +768,6 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/msgq.h ../include/numeric.h \ ../include/send.h -m_join.o: m_join.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/ddb.h \ - ../config.h ../include/client.h ../include/gline.h ../include/hash.h \ - ../include/ircd.h ../include/struct.h ../include/ircd_chattr.h \ - ../include/ircd_features.h ../include/ircd_log.h \ - ../include/ircd_reply.h ../include/ircd_string.h ../include/msg.h \ - ../include/numeric.h ../include/numnicks.h ../include/s_debug.h \ - ../include/s_user.h ../include/send.h ../include/sys.h m_jupe.o: m_jupe.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 \ @@ -909,7 +867,7 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.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 ../include/sys.h + ../include/send.h m_notice.o: m_notice.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 \ @@ -1119,8 +1077,9 @@ ../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_features.h \ - ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.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/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 \ @@ -1275,9 +1234,6 @@ ../include/ircd_string.h ../include/listener.h ../include/match.h \ ../include/msg.h ../include/numeric.h ../include/numnicks.h \ ../include/s_conf.h ../include/send.h ../include/struct.h -os_generic.o: os_generic.c ../config.h ../include/ircd_osdep.h \ - ../include/ircd_log.h ../include/msgq.h ../include/ircd_defs.h \ - ../include/res.h ../include/s_bsd.h ../include/sys.h packet.o: packet.c ../config.h ../include/packet.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 \ @@ -1297,7 +1253,7 @@ ../include/s_bsd.h ../include/s_conf.h ../include/client.h \ ../include/s_debug.h ../include/s_misc.h ../include/s_numeric.h \ ../include/s_user.h ../include/send.h ../include/struct.h \ - ../include/sys.h ../include/whowas.h + ../include/whowas.h querycmds.o: querycmds.c ../config.h ../include/querycmds.h \ ../include/ircd_features.h random.o: random.c ../config.h ../include/random.h ../include/client.h \ @@ -1305,50 +1261,6 @@ ../include/ircd_events.h ../include/ircd_handler.h ../include/res.h \ ../include/capab.h ../include/ircd_log.h ../include/ircd_md5.h \ ../include/ircd_reply.h ../include/send.h -s_auth.o: s_auth.c ../config.h ../include/s_auth.h \ - ../include/ircd_events.h ../include/client.h ../include/ircd_defs.h \ - ../include/dbuf.h ../include/msgq.h ../include/ircd_handler.h \ - ../include/res.h ../include/capab.h ../include/IPcheck.h \ - ../include/ircd.h ../include/struct.h ../include/ircd_alloc.h \ - ../include/ircd_chattr.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/list.h ../include/numeric.h \ - ../include/querycmds.h ../include/ircd_features.h ../include/res.h \ - ../include/s_bsd.h ../include/s_debug.h ../include/s_misc.h \ - ../include/send.h ../include/struct.h ../include/sys.h -s_bsd.o: s_bsd.c ../config.h ../include/s_bsd.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/IPcheck.h ../include/channel.h \ - ../include/class.h ../include/client.h ../include/ddb.h ../config.h \ - ../include/hash.h ../include/ircd_alloc.h ../include/ircd_log.h \ - ../include/ircd_features.h ../include/ircd_osdep.h \ - ../include/ircd_reply.h ../include/ircd_snprintf.h \ - ../include/ircd_string.h ../include/ircd_chattr.h ../include/ircd.h \ - ../include/struct.h ../include/list.h ../include/listener.h \ - ../include/msg.h ../include/msgq.h ../include/numeric.h \ - ../include/numnicks.h ../include/packet.h ../include/parse.h \ - ../include/querycmds.h ../include/ircd_features.h ../include/res.h \ - ../include/s_auth.h ../include/s_conf.h ../include/s_debug.h \ - ../include/s_misc.h ../include/s_user.h ../include/send.h \ - ../include/struct.h ../include/sys.h ../include/uping.h \ - ../include/version.h -s_conf.o: s_conf.c ../config.h ../include/s_conf.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/IPcheck.h ../include/class.h \ - ../include/client.h ../include/crule.h ../include/ddb.h ../config.h \ - ../include/ircd_features.h ../include/fileio.h ../include/gline.h \ - ../include/hash.h ../include/ircd.h ../include/struct.h \ - ../include/ircd_alloc.h ../include/ircd_auth.h ../include/ircd_chattr.h \ - ../include/ircd_log.h ../include/ircd_reply.h \ - ../include/ircd_snprintf.h ../include/ircd_string.h ../include/list.h \ - ../include/listener.h ../include/match.h ../include/motd.h \ - ../include/msg.h ../include/numeric.h ../include/numnicks.h \ - ../include/opercmds.h ../include/parse.h ../include/res.h \ - ../include/s_bsd.h ../include/s_debug.h ../include/s_misc.h \ - ../include/send.h ../include/struct.h ../include/sys.h s_debug.o: s_debug.c ../config.h ../include/s_debug.h \ ../include/ircd_defs.h ../include/channel.h ../include/res.h \ ../include/class.h ../include/client.h ../include/dbuf.h \ @@ -1362,7 +1274,7 @@ ../include/numeric.h ../include/numnicks.h ../include/res.h \ ../include/s_bsd.h ../include/s_conf.h ../include/s_stats.h \ ../include/s_user.h ../include/send.h ../include/struct.h \ - ../include/sys.h ../include/watch.h ../include/whowas.h + ../include/watch.h ../include/whowas.h s_err.o: s_err.c ../config.h ../include/numeric.h ../include/ircd_log.h \ ../include/s_debug.h ../include/ircd_defs.h s_misc.o: s_misc.c ../config.h ../include/s_misc.h ../include/IPcheck.h \ @@ -1379,8 +1291,8 @@ ../include/ircd_features.h ../include/res.h ../include/s_bsd.h \ ../include/s_conf.h ../include/client.h ../include/s_debug.h \ ../include/s_stats.h ../include/s_user.h ../include/send.h \ - ../include/struct.h ../include/sys.h ../include/uping.h \ - ../include/userload.h ../include/watch.h + ../include/struct.h ../include/uping.h ../include/userload.h \ + ../include/watch.h s_numeric.o: s_numeric.c ../config.h ../include/s_numeric.h \ ../include/channel.h ../include/ircd_defs.h ../include/res.h \ ../include/client.h ../include/dbuf.h ../include/msgq.h \ @@ -1402,7 +1314,7 @@ ../include/querycmds.h ../include/ircd_features.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/struct.h \ - ../include/sys.h ../include/userload.h + ../include/userload.h s_stats.o: s_stats.c ../config.h ../include/s_stats.h \ ../include/ircd_features.h ../include/class.h ../include/client.h \ ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \ @@ -1434,9 +1346,8 @@ ../include/querycmds.h ../include/ircd_features.h ../include/random.h \ ../include/s_bsd.h ../include/s_conf.h ../include/s_debug.h \ ../include/s_misc.h ../include/s_serv.h ../include/send.h \ - ../include/struct.h ../include/sys.h ../include/userload.h \ - ../include/version.h ../include/watch.h ../include/whowas.h \ - ../include/handlers.h + ../include/struct.h ../include/userload.h ../include/version.h \ + ../include/watch.h ../include/whowas.h ../include/handlers.h send.o: send.c ../config.h ../include/send.h ../include/channel.h \ ../include/ircd_defs.h ../include/res.h ../include/class.h \ ../include/client.h ../include/dbuf.h ../include/msgq.h \ @@ -1447,7 +1358,7 @@ ../include/ircd_chattr.h ../include/list.h ../include/match.h \ ../include/msg.h ../include/numnicks.h ../include/parse.h \ ../include/s_bsd.h ../include/s_debug.h ../include/s_misc.h \ - ../include/s_user.h ../include/struct.h ../include/sys.h + ../include/s_user.h ../include/struct.h uping.o: uping.c ../config.h ../include/uping.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 \ @@ -1457,16 +1368,14 @@ ../include/ircd_chattr.h ../include/match.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.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/s_misc.h ../include/s_user.h ../include/send.h userload.o: userload.c ../config.h ../include/userload.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/msg.h ../include/numnicks.h \ ../include/querycmds.h ../include/ircd_features.h ../include/s_misc.h \ - ../include/s_stats.h ../include/send.h ../include/struct.h \ - ../include/sys.h + ../include/s_stats.h ../include/send.h ../include/struct.h watch.o: watch.c ../config.h ../include/watch.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 \ @@ -1483,21 +1392,7 @@ ../include/ircd_features.h ../include/ircd_log.h \ ../include/ircd_string.h ../include/list.h ../include/numeric.h \ ../include/s_debug.h ../include/s_misc.h ../include/s_user.h \ - ../include/send.h ../include/struct.h ../include/sys.h ../include/msg.h -y.tab.o: y.tab.c ../config.h ../include/s_conf.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/client.h \ - ../include/crule.h ../include/ircd_features.h ../include/fileio.h \ - ../include/gline.h ../include/hash.h ../include/ircd.h \ - ../include/struct.h ../include/ircd_alloc.h ../include/ircd_auth.h \ - ../include/ircd_chattr.h ../include/ircd_log.h ../include/ircd_reply.h \ - ../include/ircd_snprintf.h ../include/ircd_string.h ../include/list.h \ - ../include/listener.h ../include/match.h ../include/motd.h \ - ../include/numeric.h ../include/numnicks.h ../include/opercmds.h \ - ../include/parse.h ../include/res.h ../include/s_bsd.h \ - ../include/s_debug.h ../include/s_misc.h ../include/send.h \ - ../include/struct.h ../include/sys.h + ../include/send.h ../include/struct.h ../include/msg.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 \ @@ -1560,26 +1455,14 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/msg.h \ ../include/numnicks.h ../include/s_misc.h ../include/s_user.h \ ../include/send.h -m_svsnick.o: m_svsnick.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/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_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 -m_svsnick.o: m_svsnick.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/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_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 +engine_devpoll.o: engine_devpoll.c ../config.h ../include/ircd_events.h \ + ../include/ircd.h ../include/struct.h ../include/ircd_defs.h \ + ../include/ircd_alloc.h ../include/ircd_features.h \ + ../include/ircd_log.h ../include/s_debug.h +engine_epoll.o: engine_epoll.c ../config.h ../include/ircd.h \ + ../include/struct.h ../include/ircd_defs.h ../include/ircd_events.h \ + ../include/ircd_alloc.h ../include/ircd_features.h \ + ../include/ircd_log.h ../include/s_debug.h engine_poll.o: engine_poll.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/s_debug.h Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.30 ircd-ircdev/ircd/channel.c:1.31 --- ircd-ircdev/ircd/channel.c:1.30 Sat Apr 21 09:20:18 2007 +++ ircd-ircdev/ircd/channel.c Sat Apr 21 14:17:22 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.30 2007/04/21 16:20:18 zolty Exp $ + * @version $Id: channel.c,v 1.31 2007/04/21 21:17:22 zolty Exp $ */ #include "config.h" @@ -1917,33 +1917,31 @@ /* send the messages off to their destination */ if (mbuf->mb_dest & MODEBUF_DEST_HACK2) - sendto_opmask_butone(0, SNO_HACK2, "HACK(2): %s MODE %s %s%s%s%s%s%s " - "[%Tu]", - cli_name(feature_bool(FEAT_HIS_SNOTICES) ? - mbuf->mb_source : app_source), - mbuf->mb_channel->chname, - rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "", - addbuf, remstr, addstr, - mbuf->mb_channel->creationtime); + sendto_opmask(0, SNO_HACK2, "HACK(2): %s MODE %s %s%s%s%s%s%s [%Tu]", + cli_name(feature_bool(FEAT_HIS_SNOTICES) ? + mbuf->mb_source : app_source), + mbuf->mb_channel->chname, + rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "", + addbuf, remstr, addstr, + mbuf->mb_channel->creationtime); if (mbuf->mb_dest & MODEBUF_DEST_HACK3) - sendto_opmask_butone(0, SNO_HACK3, "BOUNCE or HACK(3): %s MODE %s " - "%s%s%s%s%s%s [%Tu]", - cli_name(feature_bool(FEAT_HIS_SNOTICES) ? - mbuf->mb_source : app_source), - mbuf->mb_channel->chname, rembuf_i ? "-" : "", - rembuf, addbuf_i ? "+" : "", addbuf, remstr, addstr, - mbuf->mb_channel->creationtime); + sendto_opmask(0, SNO_HACK3, "BOUNCE or HACK(3): %s MODE %s " + "%s%s%s%s%s%s [%Tu]", + cli_name(feature_bool(FEAT_HIS_SNOTICES) ? + mbuf->mb_source : app_source), + mbuf->mb_channel->chname, rembuf_i ? "-" : "", + rembuf, addbuf_i ? "+" : "", addbuf, remstr, addstr, + mbuf->mb_channel->creationtime); if (mbuf->mb_dest & MODEBUF_DEST_HACK4) - sendto_opmask_butone(0, SNO_HACK4, "HACK(4): %s MODE %s %s%s%s%s%s%s " - "[%Tu]", - cli_name(feature_bool(FEAT_HIS_SNOTICES) ? - mbuf->mb_source : app_source), - mbuf->mb_channel->chname, - rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "", - addbuf, remstr, addstr, - mbuf->mb_channel->creationtime); + sendto_opmask(0, SNO_HACK4, "HACK(4): %s MODE %s %s%s%s%s%s%s [%Tu]", + cli_name(feature_bool(FEAT_HIS_SNOTICES) ? + mbuf->mb_source : app_source), + mbuf->mb_channel->chname, + rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "", + addbuf, remstr, addstr, + mbuf->mb_channel->creationtime); if (mbuf->mb_dest & MODEBUF_DEST_LOG) log_write(LS_OPERMODE, L_INFO, LOG_NOSNOTICE, @@ -1955,17 +1953,23 @@ { #if defined(DDB) if (mbuf->mb_dest & MODEBUF_DEST_BOTMODE) - sendcmdbotto_channel_butserv_butone(ddb_get_botname(mbuf->mb_botname), - CMD_MODE, mbuf->mb_channel, NULL, 0, - "%H %s%s%s%s%s%s", mbuf->mb_channel, - rembuf_i ? "-" : "", rembuf, - addbuf_i ? "+" : "", addbuf, remstr, addstr); + sendcmdbotto_channel(ddb_get_botname(mbuf->mb_botname), + CMD_MODE, mbuf->mb_channel, NULL, 0, + "%H %s%s%s%s%s%s", mbuf->mb_channel, + rembuf_i ? "-" : "", rembuf, + addbuf_i ? "+" : "", addbuf, remstr, addstr); else #endif /* defined(DDB) */ - sendcmdto_channel_butserv_butone(app_source, CMD_MODE, mbuf->mb_channel, NULL, 0, - "%H %s%s%s%s%s%s", mbuf->mb_channel, - rembuf_i ? "-" : "", rembuf, - addbuf_i ? "+" : "", addbuf, remstr, addstr); + sendcmdto_channel(app_source, CMD_MODE, mbuf->mb_channel, NULL, SKIP_SERVERS, + "%H %s%s%s%s%s%s%s%s", mbuf->mb_channel, +/* rembuf_i || rembuf_local_i ? "-" : "", + rembuf, rembuf_local, + addbuf_i || addbuf_local_i ? "+" : "", + addbuf, addbuf_local, +*/ + rembuf_i ? "-" : "", rembuf, + addbuf_i ? "+" : "", addbuf, + remstr, addstr); } } @@ -1981,7 +1985,7 @@ * limit is supressed if we're removing it; we have to figure out which * direction is the direction for it to be removed, though... */ - limitdel |= (mbuf->mb_dest & MODEBUF_DEST_HACK2) ? MODE_DEL : MODE_ADD; + limitdel |= (mbuf->mb_dest & MODEBUF_DEST_BOUNCE) ? MODE_DEL : MODE_ADD; for (i = 0; i < mbuf->mb_count; i++) { if (MB_TYPE(mbuf, i) & MODE_SAVE) @@ -2045,15 +2049,15 @@ if (mbuf->mb_dest & MODEBUF_DEST_OPMODE) { /* If OPMODE was set, we're propagating the mode as an OPMODE message */ - sendcmdto_serv_butone(mbuf->mb_source, CMD_OPMODE, mbuf->mb_connect, - "%H %s%s%s%s%s%s", mbuf->mb_channel, - rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "", - addbuf, remstr, addstr); + sendcmdto_serv(mbuf->mb_source, CMD_OPMODE, mbuf->mb_connect, + "%H %s%s%s%s%s%s", mbuf->mb_channel, + rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "", + addbuf, remstr, addstr); } else if (mbuf->mb_dest & MODEBUF_DEST_BOUNCE) { /* - * If HACK2 was set, we're bouncing; we send the MODE back to the - * connection we got it from with the senses reversed and a TS of 0; - * origin is us + * If HACK2 was set, we're bouncing; we send the MODE back to + * the connection we got it from with the senses reversed and + * the proper TS; origin is us */ sendcmdto_one(&me, CMD_MODE, mbuf->mb_connect, "%H %s%s%s%s%s%s %Tu", mbuf->mb_channel, addbuf_i ? "-" : "", addbuf, @@ -2061,30 +2065,22 @@ mbuf->mb_channel->creationtime); #if defined(DDB) } else if (mbuf->mb_dest & MODEBUF_DEST_BOTMODE) { - sendcmdto_serv_butone(mbuf->mb_source, CMD_BMODE, mbuf->mb_connect, - "%s %H %s%s%s%s%s%s %Tu", mbuf->mb_botname, mbuf->mb_channel, - rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "", - addbuf, remstr, addstr, - (mbuf->mb_dest & MODEBUF_DEST_HACK4) ? 0 : - mbuf->mb_channel->creationtime); + sendcmdto_serv(mbuf->mb_source, CMD_BMODE, mbuf->mb_connect, + "%s %H %s%s%s%s%s%s %Tu", mbuf->mb_botname, mbuf->mb_channel, + rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "", + addbuf, remstr, addstr, + mbuf->mb_channel->creationtime); #endif /* defined(DDB) */ } else { /* - * We're propagating a normal MODE command to the rest of the network; - * we send the actual channel TS unless this is a HACK3 or a HACK4 + * We're propagating a normal (or HACK3 or HACK4) MODE command + * to the rest of the network. We send the actual channel TS. */ - if (IsServer(mbuf->mb_source)) - sendcmdto_serv_butone(mbuf->mb_source, CMD_MODE, mbuf->mb_connect, - "%H %s%s%s%s%s%s %Tu", mbuf->mb_channel, - rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "", - addbuf, remstr, addstr, - (mbuf->mb_dest & MODEBUF_DEST_HACK4) ? 0 : - mbuf->mb_channel->creationtime); - else - sendcmdto_serv_butone(mbuf->mb_source, CMD_MODE, mbuf->mb_connect, - "%H %s%s%s%s%s%s", mbuf->mb_channel, - rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "", - addbuf, remstr, addstr); + sendcmdto_serv(mbuf->mb_source, CMD_MODE, mbuf->mb_connect, + "%H %s%s%s%s%s%s %Tu", mbuf->mb_channel, + rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "", + addbuf, remstr, addstr, + mbuf->mb_channel->creationtime); } } @@ -2206,7 +2202,7 @@ assert(0 != mbuf); assert(0 != (mode & (MODE_ADD | MODE_DEL))); - if (mode == (MODE_LIMIT | MODE_DEL)) { + if (mode == (MODE_LIMIT | ((mbuf->mb_dest & MODEBUF_DEST_BOUNCE) ? MODE_ADD : MODE_DEL))) { mbuf->mb_rem |= mode; return; } @@ -2686,7 +2682,9 @@ send_reply(state->sptr, ERR_NOTMANAGER, state->chptr->chname, state->chptr->chname); } else { - send_reply(state->sptr, ERR_NOMANAGER, state->chptr->chname); + send_reply(state->sptr, ERR_NOMANAGER, state->chptr->chname, + (TStime() - state->chptr->creationtime < 172800) ? + "approximately 4-5 minutes" : "approximately 48 hours"); } return; } @@ -2731,6 +2729,13 @@ !ircd_strcmp(state->chptr->mode.upass, t_str)) return; /* no upass change */ + /* Skip if this is a burst, we have a Upass already and the new Upass is + * after the old one alphabetically */ + if ((state->flags & MODE_PARSE_BURST) && + *(state->chptr->mode.upass) && + ircd_strcmp(state->chptr->mode.upass, t_str) <= 0) + return; + if (state->flags & MODE_PARSE_BOUNCE) { if (*state->chptr->mode.upass) /* reset old upass */ modebuf_mode_string(state->mbuf, MODE_DEL | flag_p[0], @@ -2743,8 +2748,7 @@ if (state->flags & MODE_PARSE_SET) { if (state->dir == MODE_DEL) /* remove the old upass */ *state->chptr->mode.upass = '\0'; - else if (state->chptr->mode.upass[0] == '\0' - || ircd_strcmp(t_str, state->chptr->mode.upass) < 0) + else ircd_strncpy(state->chptr->mode.upass, t_str, KEYLEN); } } @@ -2778,33 +2782,49 @@ return; } - /* If a non-service user is trying to force it, refuse. */ - if (state->flags & MODE_PARSE_FORCE && MyUser(state->sptr) - && !HasPriv(state->sptr, PRIV_APASS_OPMODE)) { - send_reply(state->sptr, ERR_NOTMANAGER, state->chptr->chname, - state->chptr->chname); - return; - } - - /* Don't allow to change the Apass if the channel is older than 48 hours. */ - if (MyUser(state->sptr) - && TStime() - state->chptr->creationtime >= 172800 - && !IsAnOper(state->sptr)) { - send_reply(state->sptr, ERR_CHANSECURED, state->chptr->chname); - return; - } - - /* If they are not the channel manager, they are not allowed to change it */ - if (MyUser(state->sptr) && !(state->flags & MODE_PARSE_FORCE || IsChannelManager(state->member))) { - if (*state->chptr->mode.apass) { - send_reply(state->sptr, ERR_NOTMANAGER, state->chptr->chname, - state->chptr->chname); + if (MyUser(state->sptr)) { + if (state->flags & MODE_PARSE_FORCE) { + /* If an unprivileged oper is trying to force it, refuse. */ + if (!HasPriv(state->sptr, PRIV_APASS_OPMODE)) { + send_reply(state->sptr, ERR_NOTMANAGER, state->chptr->chname, + state->chptr->chname); + return; + } } else { - send_reply(state->sptr, ERR_NOMANAGER, state->chptr->chname); + /* If they are not the channel manager, they are not allowed to change it. */ + if (!IsChannelManager(state->member)) { + if (*state->chptr->mode.apass) { + send_reply(state->sptr, ERR_NOTMANAGER, state->chptr->chname, + state->chptr->chname); + } else { + send_reply(state->sptr, ERR_NOMANAGER, state->chptr->chname, + (TStime() - state->chptr->creationtime < 172800) ? + "approximately 4-5 minutes" : "approximately 48 hours"); + } + return; + } + /* Can't remove the Apass while Upass is still set. */ + if (state->dir == MODE_DEL && *state->chptr->mode.upass) { + send_reply(state->sptr, ERR_UPASSSET, state->chptr->chname, state->chptr->chname); + return; + } + /* Can't add an Apass if one is set, nor can one remove the wrong Apass. */ + if ((state->dir == MODE_ADD && *state->chptr->mode.apass) || + (state->dir == MODE_DEL && ircd_strcmp(state->chptr->mode.apass, t_str))) { + send_reply(state->sptr, ERR_KEYSET, state->chptr->chname); + return; + } } - return; - } + /* Forbid removing the Apass if the channel is older than 48 hours + * unless an oper is doing it. */ + if (TStime() - state->chptr->creationtime >= 172800 + && state->dir == MODE_DEL + && !IsAnOper(state->sptr)) { + send_reply(state->sptr, ERR_CHANSECURED, state->chptr->chname); + return; + } + } if (state->done & DONE_APASS) /* allow apass to be set only once */ return; state->done |= DONE_APASS; @@ -2821,24 +2841,17 @@ if (!state->mbuf) return; - if (!(state->flags & MODE_PARSE_FORCE)) { - /* can't remove the apass while upass is still set */ - if (state->dir == MODE_DEL && *state->chptr->mode.upass) { - send_reply(state->sptr, ERR_UPASSSET, state->chptr->chname, state->chptr->chname); - return; - } - /* can't add an apass if one is set, nor can one remove the wrong apass */ - if ((state->dir == MODE_ADD && *state->chptr->mode.apass) || - (state->dir == MODE_DEL && ircd_strcmp(state->chptr->mode.apass, t_str))) { - send_reply(state->sptr, ERR_KEYSET, state->chptr->chname); - return; - } - } - if (!(state->flags & MODE_PARSE_WIPEOUT) && state->dir == MODE_ADD && !ircd_strcmp(state->chptr->mode.apass, t_str)) return; /* no apass change */ + /* Skip if this is a burst, we have an Apass already and the new Apass is + * after the old one alphabetically */ + if ((state->flags & MODE_PARSE_BURST) && + *(state->chptr->mode.apass) && + ircd_strcmp(state->chptr->mode.apass, t_str) <= 0) + return; + if (state->flags & MODE_PARSE_BOUNCE) { if (*state->chptr->mode.apass) /* reset old apass */ modebuf_mode_string(state->mbuf, MODE_DEL | flag_p[0], @@ -2850,12 +2863,10 @@ if (state->flags & MODE_PARSE_SET) { if (state->dir == MODE_ADD) { /* set the new apass */ - /* Only accept the new apass if there is no current apass - * (e.g. when a user sets it) or the new one is "less" than the - * old (for resolving conflicts during burst). - */ - if (state->chptr->mode.apass[0] == '\0' - || ircd_strcmp(t_str, state->chptr->mode.apass) < 0) + /* Only accept the new apass if there is no current apass or + * this is a BURST. */ + if (state->chptr->mode.apass[0] == '\0' || + (state->flags & MODE_PARSE_BURST)) ircd_strncpy(state->chptr->mode.apass, t_str, KEYLEN); /* Make it VERY clear to the user that this is a one-time password */ if (MyUser(state->sptr)) { @@ -2863,11 +2874,20 @@ send_reply(state->sptr, RPL_APASSWARN_SECRET, state->chptr->chname, state->chptr->mode.apass); } - /* Give the channel manager level 0 ops. */ - if (!(state->flags & MODE_PARSE_FORCE) && IsChannelManager(state->member)) + /* Give the channel manager level 0 ops. + There should not be tested for IsChannelManager here because + on the local server it is impossible to set the apass if one + isn't a channel manager and remote servers might need to sync + the oplevel here: when someone creates a channel (and becomes + channel manager) during a net.break, and only sets the Apass + after the net rejoined, they will have oplevel MAXOPLEVEL on + all remote servers. */ + if (state->member) SetOpLevel(state->member, 0); } else { /* remove the old apass */ *state->chptr->mode.apass = '\0'; + /* Clear Upass so that there is never a Upass set when a zannel is burst. */ + *state->chptr->mode.upass = '\0'; if (MyUser(state->sptr)) send_reply(state->sptr, RPL_APASSWARN_CLEAR); /* Revert everyone to MAXOPLEVEL. */ @@ -2910,8 +2930,12 @@ old_ban->banstr[old_ban->nu_len] = new_ban->banstr[new_ban->nu_len] = '@'; if (res) return res; - /* Compare the addresses. */ - return !ipmask_check(&new_ban->address, &old_ban->address, old_ban->addrbits); + /* If the old ban's mask mismatches, cannot be a superset. */ + if (!ipmask_check(&new_ban->address, &old_ban->address, old_ban->addrbits)) + return 1; + /* Otherwise it depends on whether the old ban's text is a superset + * of the new. */ + return mmatch(old_ban->banstr, new_ban->banstr); } /** Add a ban from a ban list and mark bans that should be removed @@ -3239,10 +3263,10 @@ /* prevent +k users from being deopped */ if (IsChannelService(state->cli_change[i].client)) { if (state->flags & MODE_PARSE_FORCE) /* it was forced */ - sendto_opmask_butone(0, SNO_HACK4, "Deop of +k user on %H by %s", - state->chptr, - (IsServer(state->sptr) ? cli_name(state->sptr) : - cli_name((cli_user(state->sptr))->server))); + sendto_opmask(0, SNO_HACK4, "Deop of +k user on %H by %s", + state->chptr, + (IsServer(state->sptr) ? cli_name(state->sptr) : + cli_name((cli_user(state->sptr))->server))); else if (MyUser(state->sptr) && state->flags & MODE_PARSE_SET) { send_reply(state->sptr, ERR_ISCHANSERVICE, @@ -3645,7 +3669,7 @@ assert(0 != jbuf); if (!chan) { - sendcmdto_serv_butone(jbuf->jb_source, CMD_JOIN, jbuf->jb_connect, "0"); + sendcmdto_serv(jbuf->jb_source, CMD_JOIN, jbuf->jb_connect, "0"); return; } @@ -3660,9 +3684,9 @@ /* Send notification to channel */ if (!(flags & (CHFL_ZOMBIE | CHFL_DELAYED))) - sendcmdto_channel_butserv_butone(jbuf->jb_source, CMD_PART, chan, NULL, 0, - (flags & CHFL_BANNED || !jbuf->jb_comment) ? - ":%H" : "%H :%s", chan, jbuf->jb_comment); + sendcmdto_channel(jbuf->jb_source, CMD_PART, chan, NULL, SKIP_SERVERS, + (flags & CHFL_BANNED || !jbuf->jb_comment) ? + ":%H" : "%H :%s", chan, jbuf->jb_comment); else if (MyUser(jbuf->jb_source)) sendcmdto_one(jbuf->jb_source, CMD_PART, jbuf->jb_source, (flags & CHFL_BANNED || !jbuf->jb_comment) ? @@ -3695,50 +3719,48 @@ add_user_to_channel(chan, jbuf->jb_source, flags, 0); #endif - /* send notification to all servers */ + /* send JOIN notification to all servers (CREATE is sent later). */ if (jbuf->jb_type != JOINBUF_TYPE_CREATE && !IsLocalChannel(chan->chname)) { -#if defined(UNDERNET) - if (flags & CHFL_CHANOP) { - assert(oplevel == 0 || oplevel == 1); - sendcmdto_serv_butone(jbuf->jb_source, CMD_JOIN, jbuf->jb_connect, - "%u:%H %Tu", oplevel, chan, chan->creationtime); - } else -#elif defined(DDB) +#if defined(DDB) if (flags & CHFL_OWNER) - sendcmdto_serv_butone(jbuf->jb_source, CMD_JOIN, jbuf->jb_connect, - "0:%H %Tu", chan, chan->creationtime); + sendcmdto_serv(jbuf->jb_source, CMD_JOIN, jbuf->jb_connect, + "0:%H %Tu", chan, chan->creationtime); else + sendcmdto_serv(jbuf->jb_source, CMD_JOIN, jbuf->jb_connect, + "%H %Tu", chan, chan->creationtime); +#else + sendcmdto_serv(jbuf->jb_source, CMD_JOIN, jbuf->jb_connect, + "%H %Tu", chan, chan->creationtime); #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); + sendcmdto_channel(jbuf->jb_source, CMD_JOIN, chan, NULL, SKIP_SERVERS, + "%H", chan); /* send an op, too, if needed */ #if defined(UNDERNET) if (flags & CHFL_CHANOP && (oplevel < MAXOPLEVEL || !MyUser(jbuf->jb_source))) - sendcmdto_channel_butserv_butone((chan->mode.apass[0] ? &his : jbuf->jb_source), - CMD_MODE, chan, NULL, 0, "%H +o %C", - chan, jbuf->jb_source); + sendcmdto_channel((chan->mode.apass[0] ? &his : jbuf->jb_source), + CMD_MODE, chan, NULL, SKIP_SERVERS, + "%H +o %C", chan, jbuf->jb_source); #elif defined(DDB) if (flags & CHFL_OWNER) { char *botname = ddb_get_botname(DDB_CHANSERV); - sendcmdbotto_channel_butserv_butone(botname, CMD_MODE, chan, NULL, 0, - "%H +q %C", chan, jbuf->jb_source); + sendcmdbotto_channel(botname, CMD_MODE, chan, NULL, 0, + "%H +q %C", chan, jbuf->jb_source); } else if (flags & CHFL_CHANOP) - sendcmdto_channel_butserv_butone(&me, CMD_MODE, chan, NULL, 0, "%H +o %C", - chan, jbuf->jb_source); + sendcmdto_channel(&me, CMD_MODE, chan, NULL, SKIP_SERVERS, + "%H +o %C", chan, jbuf->jb_source); #else if (flags & CHFL_CHANOP) - sendcmdto_channel_butserv_butone(&me, CMD_MODE, chan, NULL, 0, "%H +o %C", - chan, jbuf->jb_source); + sendcmdto_channel(&me, CMD_MODE, chan, NULL, SKIP_SERVERS, + "%H +o %C", chan, jbuf->jb_source); #endif } else if (MyUser(jbuf->jb_source)) sendcmdto_one(jbuf->jb_source, CMD_JOIN, jbuf->jb_source, ":%H", chan); @@ -3795,14 +3817,14 @@ /* and send the appropriate command */ switch (jbuf->jb_type) { case JOINBUF_TYPE_CREATE: - sendcmdto_serv_butone(jbuf->jb_source, CMD_CREATE, jbuf->jb_connect, - "%s %Tu", chanlist, jbuf->jb_create); + sendcmdto_serv(jbuf->jb_source, CMD_CREATE, jbuf->jb_connect, + "%s %Tu", chanlist, jbuf->jb_create); break; case JOINBUF_TYPE_PART: - sendcmdto_serv_butone(jbuf->jb_source, CMD_PART, jbuf->jb_connect, - jbuf->jb_comment ? "%s :%s" : "%s", chanlist... [truncated message content] |
From: Toni G. <zo...@us...> - 2007-04-21 16:21:16
|
Committer : zolty CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-04-21 16:20:29 UTC Modified files: ChangeLog ChangeLog.es include/channel.h include/client.h include/ircd_features.h include/patchlevel.h include/struct.h ircd/channel.c ircd/m_bmode.c ircd/m_burst.c ircd/m_create.c ircd/m_invite.c ircd/m_join.c ircd/m_kick.c ircd/m_lusers.c ircd/m_mode.c ircd/m_notice.c ircd/m_part.c ircd/m_privmsg.c ircd/m_server.c ircd/m_wallchops.c ircd/m_wallvoices.c ircd/s_debug.c ircd/s_misc.c ircd/s_user.c Log message: Author: zo...@ir... Log message: 2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta2 * Eliminar restos soporte P09 * Nueva estructura Invite ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.50 ircd-ircdev/ChangeLog:1.51 --- ircd-ircdev/ChangeLog:1.50 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/ChangeLog Sat Apr 21 09:20:17 2007 @@ -1,10 +1,14 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.50 2007/04/19 22:53:46 zolty Exp $ +# $Id: ChangeLog,v 1.51 2007/04/21 16:20:17 zolty Exp $ # # Insert new changes at beginning of the change list. # +2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta2 + * Remove P09 support rests + * New Invite structure + 2007-04-20 Toni Garc�a <zo...@ir...> 1.0.beta1 * Write doxygen comments * Statics Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.50 ircd-ircdev/ChangeLog.es:1.51 --- ircd-ircdev/ChangeLog.es:1.50 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/ChangeLog.es Sat Apr 21 09:20:17 2007 @@ -1,10 +1,14 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.50 2007/04/19 22:53:46 zolty Exp $ +# $Id: ChangeLog.es,v 1.51 2007/04/21 16:20:17 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2007-04-21 Toni Garc�a <zo...@ir...> 1.0.beta2 + * Eliminar restos soporte P09 + * Nueva estructura Invite + 2007-04-20 Toni Garc�a <zo...@ir...> 1.0.beta1 * Escribir comentarios de doxygen * Statics Index: ircd-ircdev/include/channel.h diff -u ircd-ircdev/include/channel.h:1.16 ircd-ircdev/include/channel.h:1.17 --- ircd-ircdev/include/channel.h:1.16 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/channel.h Sat Apr 21 09:20:17 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Channel management and maintenance. - * @version $Id: channel.h,v 1.16 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: channel.h,v 1.17 2007/04/21 16:20:17 zolty Exp $ */ #ifndef INCLUDED_channel_h #define INCLUDED_channel_h @@ -63,8 +63,6 @@ #define CHFL_CHANOP 0x0001 /**< Channel operator */ #define CHFL_VOICE 0x0002 /**< the power to speak */ -#define CHFL_DEOPPED 0x0004 /**< Is de-opped by a server */ -#define CHFL_SERVOPOK 0x0008 /**< Server op allowed */ #define CHFL_ZOMBIE 0x0010 /**< Kicked from channel */ #define CHFL_BURST_JOINED 0x0100 /**< Just joined by net.junction */ #define CHFL_BANVALID 0x0800 /**< CHFL_BANNED bit is valid */ @@ -204,15 +202,6 @@ */ #define TS_LAG_TIME 86400 -/** - * A Magic TS that is used for channels that are created by JOIN, - * a channel with this TS accepts all TS without complaining that - * it might receive later via MODE or CREATE. - * - * Part of the P9 compatibility, shouldn't occur on a P10 network. - */ -#define MAGIC_REMOTE_JOIN_TS 1270080000 - extern const char* const PartFmt1; @@ -248,7 +237,6 @@ #define MAXOPLEVEL 999 #define IsZombie(x) ((x)->status & CHFL_ZOMBIE) /**< see \ref zombie */ -#define IsDeopped(x) ((x)->status & CHFL_DEOPPED) #define IsBanned(x) ((x)->status & CHFL_BANNED) #define IsBanValid(x) ((x)->status & CHFL_BANVALID) #if defined(DDB) || defined(SERVICES) @@ -257,7 +245,6 @@ #define IsChanOp(x) ((x)->status & CHFL_CHANOP) #define OpLevel(x) ((x)->oplevel) #define HasVoice(x) ((x)->status & CHFL_VOICE) -#define IsServOpOk(x) ((x)->status & CHFL_SERVOPOK) #define IsBurstJoined(x) ((x)->status & CHFL_BURST_JOINED) #define IsVoicedOrOpped(x) ((x)->status & CHFL_VOICED_OR_OPPED) #if defined(UNDERNET) @@ -268,8 +255,6 @@ #define SetBanned(x) ((x)->status |= CHFL_BANNED) #define SetBanValid(x) ((x)->status |= CHFL_BANVALID) -#define SetDeopped(x) ((x)->status |= CHFL_DEOPPED) -#define SetServOpOk(x) ((x)->status |= CHFL_SERVOPOK) #define SetBurstJoined(x) ((x)->status |= CHFL_BURST_JOINED) #define SetZombie(x) ((x)->status |= CHFL_ZOMBIE) #if defined(UNDERNET) @@ -284,8 +269,6 @@ #define ClearBanned(x) ((x)->status &= ~CHFL_BANNED) #define ClearBanValid(x) ((x)->status &= ~CHFL_BANVALID) -#define ClearDeopped(x) ((x)->status &= ~CHFL_DEOPPED) -#define ClearServOpOk(x) ((x)->status &= ~CHFL_SERVOPOK) #define ClearBurstJoined(x) ((x)->status &= ~CHFL_BURST_JOINED) #define ClearDelayedJoin(x) ((x)->status &= ~CHFL_DELAYED) #if defined(DDB) || defined(SERVICES) @@ -323,6 +306,15 @@ char banstr[NICKLEN+USERLEN+HOSTLEN+3]; /**< hostmask that the ban matches */ }; +/** An invitation to a channel. */ +struct Invite { + struct Invite* next_user; /**< next invite to the user */ + struct Invite* next_channel; /**< next invite to the channel */ + struct Client* user; /**< user being invited */ + struct Channel* channel; /**< channel to which invited */ + char inviter[NICKLEN+USERLEN+HOSTLEN+3]; /**< hostmask of inviter */ +}; + /** Information about a channel */ struct Channel { struct Channel* next; /**< next channel in the global channel list */ @@ -333,7 +325,7 @@ time_t topic_time; /**< Modification time of the topic */ unsigned int users; /**< Number of clients on this channel */ struct Membership* members; /**< Pointer to the clients on this channel*/ - struct SLink* invites; /**< List of invites on this channel */ + struct Invite* invites; /**< List of invites on this channel */ struct Ban* banlist; /**< List of bans on this channel */ struct Mode mode; /**< This channels mode */ char topic[TOPICLEN + 1]; /**< Channels topic */ @@ -452,7 +444,6 @@ struct Client* cptr, struct Client* sptr, struct Channel* chptr); extern struct Client* find_chasing(struct Client* sptr, const char* user, int* chasing); -void add_invite(struct Client *cptr, struct Channel *chptr); int number_of_zombies(struct Channel *chptr); extern const char* find_no_nickchange_channel(struct Client* cptr); @@ -467,16 +458,10 @@ extern int is_chan_owner(struct Client *cptr, struct Channel *chptr); #endif extern int is_chan_op(struct Client *cptr, struct Channel *chptr); -extern int is_zombie(struct Client *cptr, struct Channel *chptr); -extern int has_voice(struct Client *cptr, struct Channel *chptr); -/* - NOTE: pointer is compared, and not dereferenced, called by - add_target with a void*, since targets could be anything, - this function can't make any assumptions that it has a channel -*/ -extern int IsInvited(struct Client* cptr, const void* chptr); extern void send_channel_modes(struct Client *cptr, struct Channel *chptr); extern char *pretty_mask(char *mask); +extern struct Invite* is_invited(struct Client* cptr, struct Channel* chptr); +extern void add_invite(struct Client *cptr, struct Channel *chptr, struct Client *inviter); extern void del_invite(struct Client *cptr, struct Channel *chptr); extern void list_set_default(void); /* this belongs elsewhere! */ Index: ircd-ircdev/include/client.h diff -u ircd-ircdev/include/client.h:1.17 ircd-ircdev/include/client.h:1.18 --- ircd-ircdev/include/client.h:1.17 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/client.h Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Structures and functions for handling local clients. - * @version $Id: client.h,v 1.17 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: client.h,v 1.18 2007/04/21 16:20:18 zolty Exp $ */ #ifndef INCLUDED_client_h #define INCLUDED_client_h @@ -159,7 +159,6 @@ FLAG_GOTID, /**< successful ident lookup achieved */ FLAG_DOID, /**< I-lines say must use ident return */ FLAG_NONL, /**< No \n in buffer */ - FLAG_TS8, /**< Why do you want to know? */ FLAG_MAP, /**< Show server on the map */ FLAG_JUNCTION, /**< Junction causing the net.burst. */ FLAG_BURST, /**< Server is receiving a net.burst */ Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.16 ircd-ircdev/include/ircd_features.h:1.17 --- ircd-ircdev/include/ircd_features.h:1.16 Thu Apr 19 15:53:46 2007 +++ ircd-ircdev/include/ircd_features.h Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Public interfaces and declarations for dealing with configurable features. - * @version $Id: ircd_features.h,v 1.16 2007/04/19 22:53:46 zolty Exp $ + * @version $Id: ircd_features.h,v 1.17 2007/04/21 16:20:18 zolty Exp $ */ #ifndef INCLUDED_features_h #define INCLUDED_features_h @@ -162,6 +162,7 @@ /* Misc. random stuff */ FEAT_NETWORK, FEAT_URL_CLIENTS, + FEAT_URLREG, FEAT_LAST_F }; Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.49 ircd-ircdev/include/patchlevel.h:1.50 --- ircd-ircdev/include/patchlevel.h:1.49 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/patchlevel.h Sat Apr 21 09:20:18 2007 @@ -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.49 2007/04/19 22:53:47 zolty Exp $ + * $Id: patchlevel.h,v 1.50 2007/04/21 16:20:18 zolty Exp $ * */ -#define PATCHLEVEL "1" +#define PATCHLEVEL "2" #define RELEASE "1.0.beta" Index: ircd-ircdev/include/struct.h diff -u ircd-ircdev/include/struct.h:1.10 ircd-ircdev/include/struct.h:1.11 --- ircd-ircdev/include/struct.h:1.10 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/include/struct.h Sat Apr 21 09:20:18 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Structure definitions for users and servers. - * @version $Id: struct.h,v 1.10 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: struct.h,v 1.11 2007/04/21 16:20:18 zolty Exp $ */ #ifndef INCLUDED_struct_h #define INCLUDED_struct_h @@ -39,6 +39,7 @@ struct Client; struct User; struct Membership; +struct Invite; struct SLink; /** Describes a server on the network. */ @@ -73,14 +74,13 @@ struct User { struct Client* server; /**< client structure of server */ struct Membership* channel; /**< chain of channel pointer blocks */ - struct SLink* invited; /**< chain of invite pointer blocks */ + struct Invite* invited; /**< chain of invite pointer blocks */ struct Ban* silence; /**< chain of silence pointer blocks */ struct SLink* watch; /**< chain of watch pointer blocks */ char* away; /**< pointer to away message */ time_t last; /**< last time user sent a message */ unsigned int refcnt; /**< Number of times this block is referenced */ unsigned int joined; /**< number of channels joined */ - unsigned int invites; /**< Number of channels we've been invited to */ unsigned int watches; /**< Number of entrances in the watch list */ /** Remote account name. Before registration is complete, this is * either empty or contains the username from the USER command. Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.29 ircd-ircdev/ircd/channel.c:1.30 --- ircd-ircdev/ircd/channel.c:1.29 Thu Apr 19 15:53:47 2007 +++ ircd-ircdev/ircd/channel.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.29 2007/04/19 22:53:47 zolty Exp $ + * @version $Id: channel.c,v 1.30 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -266,18 +266,44 @@ #if defined(UNDERNET) chptr->users = 0; - /* There is a semantics problem here: Assuming no fragments across a - * split, a channel without Apass could be maliciously destroyed and - * recreated, and someone could set apass on the new instance. - * - * This could be fixed by preserving the empty non-Apass channel for - * the same time as if it had an Apass (but removing +i and +l), and - * reopping the first user to rejoin. However, preventing net rides - * requires a backwards-incompatible protocol change.. + /* + * Also channels without Apass set need to be kept alive, + * otherwise Bad Guys(tm) would be able to takeover + * existing channels too easily, and then set an Apass! + * However, if a channel without Apass becomes empty + * then we try to be kind to them and remove possible + * limiting modes. */ - if (!chptr->mode.apass[0]) /* If no Apass, destroy now. */ - destruct_channel(chptr); - else if (TStime() - chptr->creationtime < 172800) /* Channel younger than 48 hours? */ + chptr->mode.mode &= ~MODE_INVITEONLY; + chptr->mode.limit = 0; + /* + * We do NOT reset a possible key or bans because when + * the 'channel owners' can't get in because of a key + * or ban then apparently there was a fight/takeover + * on the channel and we want them to contact IRC opers + * who then will educate them on the use of Apass/Upass. + */ + if (!chptr->mode.apass[0]) /* If no Apass, reset all modes. */ + { + struct Ban *link, *next; + chptr->mode.mode = 0; + *chptr->mode.key = '\0'; + mode_invite_clear(chptr); + for (link = chptr->banlist; link; link = next) { + next = link->next; + free_ban(link); + } + chptr->banlist = NULL; + + /* Immediately destruct empty -A channels if not using apass. */ + if (!feature_bool(FEAT_OPLEVELS)) + { + destruct_channel(chptr); + destruct_channel(chptr); + return 0; + } + } + if (TStime() - chptr->creationtime < 172800) /* Channel younger than 48 hours? */ schedule_destruct_event_1m(chptr); /* Get rid of it in approximately 4-5 minutes */ else schedule_destruct_event_48h(chptr); /* Get rid of it in approximately 48 hours */ @@ -314,8 +340,7 @@ /* * Now, find all invite links from channel structure */ - while (chptr->invites) - del_invite(chptr->invites->value.cptr, chptr); + mode_invite_clear(chptr); for (ban = chptr->banlist; ban; ban = next) { @@ -716,6 +741,7 @@ */ if (member->channel->mode.mode & MODE_MODERATED) return 0; + #if defined(UNDERNET) /* If only logged in users may join and you're not one, you can't speak. */ if (member->channel->mode.mode & MODE_REGONLY && !IsAccount(member->user)) @@ -1378,41 +1404,80 @@ return chptr; } -/** invite a user to a channel. +/** Find invitation (if any) for \a cptr to \a chptr. + * @param[in] cptr Possibly invited client. + * @param[in] chptr Channel to search for. + * @return A pointer to the relevant struct Invite, or NULL if not invited. + */ +struct Invite *is_invited(struct Client* cptr, struct Channel* chptr) +{ + struct Invite *ip; + + for (ip = (cli_user(cptr))->invited; ip; ip = ip->next_user) + if (ip->channel == chptr) + return ip; + + return 0; +} + +static struct Invite *invite_freelist; + +/** Invite a user to a channel. * * Adds an invite for a user to a channel. Limits the number of invites - * to FEAT_MAXCHANNELSPERUSER. Does not sent notification to the user. + * to FEAT_MAXCHANNELSPERUSER. Does not notify the user. * - * @param cptr The client to be invited. - * @param chptr The channel to be invited to. + * @param[in] cptr The client to be invited. + * @param[in] chptr The channel to be invited to. + * @param[in] inviter The client inviting \a cptr. */ -void add_invite(struct Client *cptr, struct Channel *chptr) +void add_invite(struct Client *cptr, struct Channel *chptr, struct Client *inviter) { - struct SLink *inv, **tmp; + struct Invite **uprev = &cli_user(cptr)->invited; + struct Invite *inv; + int max = feature_int(FEAT_MAXCHANNELSPERUSER); + int count = 0; + /* See if the user is already invited. */ + while ((inv = *uprev) != NULL) + { + if (inv->channel == chptr) + break; + else if (++count >= max) + del_invite(cptr, inv->channel); + else + uprev = &inv->next_user; + } - del_invite(cptr, chptr); - /* - * Delete last link in chain if the list is max length - */ - assert(list_length((cli_user(cptr))->invited) == (cli_user(cptr))->invites); - if ((cli_user(cptr))->invites >= feature_int(FEAT_MAXCHANNELSPERUSER)) - del_invite(cptr, (cli_user(cptr))->invited->value.chptr); - /* - * Add client to channel invite list - */ - inv = make_link(); - inv->value.cptr = cptr; - inv->next = chptr->invites; - chptr->invites = inv; - /* - * Add channel to the end of the client invite list - */ - for (tmp = &((cli_user(cptr))->invited); *tmp; tmp = &((*tmp)->next)); - inv = make_link(); - inv->value.chptr = chptr; - inv->next = NULL; - (*tmp) = inv; - (cli_user(cptr))->invites++; + if (inv) { + /* Remove from the user's invite list. */ + *uprev = inv->next_user; + /* Search for end of invite list. */ + while ((*uprev)->next_user) + uprev = &(*uprev)->next_user; + } else { + /* Find or allocate an Invite struct. */ + if (invite_freelist) { + inv = invite_freelist; + invite_freelist = inv->next_user; + } else { + inv = MyCalloc(1, sizeof(*inv)); + } + + /* Set client and channel fields; add to channel list. */ + inv->user = cptr; + inv->channel = chptr; + inv->next_channel = chptr->invites; + chptr->invites = inv; + } + + /* Add to the user's invite list. */ + assert(uprev != NULL); + *uprev = inv; + + /* Set the remaining fields. */ + ircd_snprintf(NULL, inv->inviter, sizeof(inv->inviter) - 1, + "%#C", inviter); + inv->next_user = NULL; } /** Delete an invite @@ -1423,26 +1488,31 @@ */ void del_invite(struct Client *cptr, struct Channel *chptr) { - struct SLink **inv, *tmp; + struct Invite **inv, *tmp; - for (inv = &(chptr->invites); (tmp = *inv); inv = &tmp->next) - if (tmp->value.cptr == cptr) + /* Remove from channel's invite list. */ + for (inv = &(chptr->invites); (tmp = *inv); inv = &tmp->next_channel) + if (tmp->user == cptr) { - *inv = tmp->next; - free_link(tmp); - tmp = 0; - (cli_user(cptr))->invites--; + *inv = tmp->next_channel; break; } - for (inv = &((cli_user(cptr))->invited); (tmp = *inv); inv = &tmp->next) - if (tmp->value.chptr == chptr) + /* If nothing found, bail. */ + if (!tmp) + return; + + /* Remove from client's invite list. */ + for (inv = &((cli_user(cptr))->invited); (tmp = *inv); inv = &tmp->next_user) + if (tmp->channel == chptr) { - *inv = tmp->next; - free_link(tmp); - tmp = 0; + *inv = tmp->next_user; break; } + + /* Append to freelist of invites. */ + tmp->next_user = invite_freelist; + invite_freelist = tmp; } /** @page zombie Explanation of Zombies @@ -2352,7 +2422,7 @@ mode_invite_clear(struct Channel *chan) { while (chan->invites) - del_invite(chan->invites->value.cptr, chan); + del_invite(chan->invites->user, chan); } /* What we've done for mode_parse so far... */ @@ -3245,8 +3315,6 @@ #else (MODE_CHANOP | MODE_VOICE)); #endif - if (state->cli_change[i].flag & MODE_CHANOP) - ClearDeopped(member); } else member->status &= ~(state->cli_change[i].flag & #if defined(DDB) || defined(SERVICES) @@ -3741,18 +3809,6 @@ return 0; } -/* Returns TRUE (1) if client is invited, FALSE (0) if not */ -int IsInvited(struct Client* cptr, const void* chptr) -{ - struct SLink *lp; - - for (lp = (cli_user(cptr))->invited; lp; lp = lp->next) - if (lp->value.chptr == chptr) - return 1; - - return 0; -} - /* RevealDelayedJoin: sends a join for a hidden user */ void RevealDelayedJoin(struct Membership *member) Index: ircd-ircdev/ircd/m_bmode.c diff -u ircd-ircdev/ircd/m_bmode.c:1.2 ircd-ircdev/ircd/m_bmode.c:1.3 --- ircd-ircdev/ircd/m_bmode.c:1.2 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_bmode.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for BMODE command (Bot Mode). - * @version $Id: m_bmode.c,v 1.2 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_bmode.c,v 1.3 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -61,8 +61,6 @@ if (IsLocalChannel(chptr->chname)) return protocol_violation(sptr, "Attemped to set BMODE on local channel"); - ClrFlag(sptr, FLAG_TS8); - modebuf_init(&mbuf, sptr, cptr, chptr, (MODEBUF_DEST_CHANNEL | /* Send mode to clients */ MODEBUF_DEST_SERVER | /* Send mode to servers */ Index: ircd-ircdev/ircd/m_burst.c diff -u ircd-ircdev/ircd/m_burst.c:1.17 ircd-ircdev/ircd/m_burst.c:1.18 --- ircd-ircdev/ircd/m_burst.c:1.17 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_burst.c Sat Apr 21 09:20:18 2007 @@ -22,7 +22,7 @@ */ /** @file * @brief Handlers for BURST command. - * @version $Id: m_burst.c,v 1.17 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_burst.c,v 1.18 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -389,7 +389,7 @@ struct Membership* member; #endif - base_mode = CHFL_DEOPPED | CHFL_BURST_JOINED; + base_mode = CHFL_BURST_JOINED; if (chptr->mode.mode & MODE_DELJOINS) base_mode |= CHFL_DELAYED; current_mode = last_mode = base_mode; @@ -415,7 +415,7 @@ current_mode = base_mode; current_mode_needs_reset = 0; } - current_mode = (current_mode & ~(CHFL_DEOPPED | CHFL_DELAYED)) | CHFL_CHANOP; + current_mode = (current_mode & ~CHFL_DELAYED) | CHFL_CHANOP; } else if (*ptr == 'v') { /* has voice status */ if (current_mode_needs_reset) { @@ -434,7 +434,7 @@ } oplevel = 0; } - current_mode = (current_mode & ~(CHFL_DEOPPED | CHFL_DELAYED)) | CHFL_CHANOP; + current_mode = (current_mode & ~CHFL_DELAYED) | CHFL_CHANOP; do { level_increment = 10 * level_increment + *ptr++ - '0'; } while(IsDigit(*ptr)); @@ -445,12 +445,12 @@ ptr++) { #if defined(DDB) || defined(SERVICES) if (*ptr == 'q') /* has owner status */ - current_mode = (current_mode & ~(CHFL_DEOPPED | CHFL_DELAYED)) | CHFL_OWNER; + current_mode = (current_mode & ~CHFL_DELAYED) | CHFL_OWNER; else if (*ptr == 'o') /* has oper status */ #else if (*ptr == 'o') /* has oper status */ #endif - current_mode = (current_mode & ~(CHFL_DEOPPED | CHFL_DELAYED)) | CHFL_CHANOP; + current_mode = (current_mode & ~CHFL_DELAYED) | CHFL_CHANOP; else if (*ptr == 'v') /* has voice status */ current_mode = (current_mode & ~CHFL_DELAYED) | CHFL_VOICE; #endif @@ -579,15 +579,14 @@ if (member->status & CHFL_VOICE) modebuf_mode_client(mbuf, MODE_DEL | CHFL_VOICE, member->user, 0); #endif - member->status = (member->status + member->status &= #if defined(UNDERNET) - & ~(CHFL_CHANNEL_MANAGER | CHFL_CHANOP | CHFL_VOICE)) + ~(CHFL_CHANNEL_MANAGER | CHFL_CHANOP | CHFL_VOICE); #elif defined(DDB) || defined(SERVICES) - & ~(CHFL_OWNER | CHFL_CHANOP | CHFL_VOICE)) + ~(CHFL_OWNER | CHFL_CHANOP | CHFL_VOICE); #else - & ~(CHFL_CHANOP | CHFL_VOICE)) + ~(CHFL_CHANOP | CHFL_VOICE); #endif - | CHFL_DEOPPED; } } Index: ircd-ircdev/ircd/m_create.c diff -u ircd-ircdev/ircd/m_create.c:1.9 ircd-ircdev/ircd/m_create.c:1.10 --- ircd-ircdev/ircd/m_create.c:1.9 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_create.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for CREATE command. - * @version $Id: m_create.c,v 1.9 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_create.c,v 1.10 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -80,8 +80,7 @@ /* A create that didn't appear during a burst has that servers idea of * the current time. Use it for lag calculations. */ - if (!IsBurstOrBurstAck(sptr) && 0 != chanTS && - MAGIC_REMOTE_JOIN_TS != chanTS) + if (!IsBurstOrBurstAck(sptr) && 0 != chanTS) cli_serv(cli_user(sptr)->server)->lag = TStime() - chanTS; /* If this server is >1 minute fast, warn */ @@ -121,8 +120,7 @@ /* Check if we need to bounce a mode */ if (TStime() - chanTS > TS_LAG_TIME || - (chptr->creationtime && chanTS > chptr->creationtime && - chptr->creationtime != MAGIC_REMOTE_JOIN_TS)) { + (chptr->creationtime && chanTS > chptr->creationtime)) { modebuf_init(&mbuf, sptr, cptr, chptr, (MODEBUF_DEST_SERVER | /* Send mode to server */ MODEBUF_DEST_HACK2 | /* Send a HACK(2) message */ Index: ircd-ircdev/ircd/m_invite.c diff -u ircd-ircdev/ircd/m_invite.c:1.16 ircd-ircdev/ircd/m_invite.c:1.17 --- ircd-ircdev/ircd/m_invite.c:1.16 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_invite.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for INVITE command. - * @version $Id: m_invite.c,v 1.16 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_invite.c,v 1.17 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -73,9 +73,9 @@ /* * list the channels you have an invite to. */ - struct SLink *lp; - for (lp = cli_user(sptr)->invited; lp; lp = lp->next) - send_reply(cptr, RPL_INVITELIST, lp->value.chptr->chname); + struct Invite *ip; + for (ip = cli_user(sptr)->invited; ip; ip = ip->next_user) + send_reply(cptr, RPL_INVITELIST, ip->channel->chname); send_reply(cptr, RPL_ENDOFINVITELIST); return 0; } @@ -124,7 +124,7 @@ send_reply(sptr, RPL_AWAY, cli_name(acptr), cli_user(acptr)->away); if (MyConnect(acptr)) { - add_invite(acptr, chptr); + add_invite(acptr, chptr, sptr); sendcmdto_one(sptr, CMD_INVITE, acptr, "%s %H", cli_name(acptr), chptr); } else if (!IsLocalChannel(chptr->chname)) { sendcmdto_one(sptr, CMD_INVITE, acptr, "%s %H %Tu", cli_name(acptr), chptr, @@ -236,7 +236,7 @@ return 0; if (MyConnect(acptr)) { - add_invite(acptr, chptr); + add_invite(acptr, chptr, sptr); 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, Index: ircd-ircdev/ircd/m_join.c diff -u ircd-ircdev/ircd/m_join.c:1.17 ircd-ircdev/ircd/m_join.c:1.18 --- ircd-ircdev/ircd/m_join.c:1.17 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_join.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for JOIN command. - * @version $Id: m_join.c,v 1.17 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_join.c,v 1.18 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -169,7 +169,6 @@ /* Try to add the new channel as a recent target for the user. */ if (check_target_limit(sptr, chptr, chptr->chname, 0)) { #if defined(UNDERNET) -/* FIXME zoltan */ chptr->members = 0; destruct_channel(chptr); continue; @@ -177,6 +176,7 @@ joinbuf_join(&create, chptr, CHFL_CHANOP | CHFL_CHANNEL_MANAGER); #else +/*TODO-ZOLTAN: Ojo con esto, con el target limit*/ sub1_from_channel(chptr); continue; } @@ -188,14 +188,13 @@ } else if (check_target_limit(sptr, chptr, chptr->chname, 0)) { continue; } else { - int flags = CHFL_DEOPPED; + struct Invite *invite; + int flags = 0; int err = 0; #if defined(DDB) struct Ddb *ddb = ddb_find_key(DDB_CHANDB, chptr->chname); #endif - /* Check target change limits. */ - #if defined(UNDERNET) /* Check Apass/Upass -- since we only ever look at a single * "key" per channel now, this hampers brute force attacks. */ @@ -203,16 +202,18 @@ flags = CHFL_CHANOP | CHFL_CHANNEL_MANAGER; else if (key && !strcmp(key, chptr->mode.upass)) flags = CHFL_CHANOP; - else if (IsInvited(sptr, chptr)) { + else if (chptr->users == 0 && !chptr->mode.apass[0]) { + /* Joining a zombie channel (zannel): give ops and increment TS. */ + flags = CHFL_CHANOP; + chptr->creationtime++; + } else if (chptr->mode.mode & MODE_INVITEONLY) #elif defined(DDB) if (ddb && !ircd_strcmp(ddb_content(ddb), cli_name(sptr))) flags = CHFL_OWNER; - else if (IsInvited(sptr, chptr)) { + else if (chptr->mode.mode & MODE_INVITEONLY) #else - if (IsInvited(sptr, chptr)) { + if (chptr->mode.mode & MODE_INVITEONLY) #endif - /* Invites bypass these other checks. */ - } else if (chptr->mode.mode & MODE_INVITEONLY) err = ERR_INVITEONLYCHAN; else if (chptr->mode.limit && (chptr->users >= chptr->mode.limit)) err = ERR_CHANNELISFULL; @@ -227,6 +228,19 @@ else if (*chptr->mode.key && (!key || strcmp(key, chptr->mode.key))) err = ERR_BADCHANNELKEY; + /* If the user is invited, s/he can bypass the normal errors. */ + if (err && feature_bool(FEAT_ANNOUNCE_INVITES) + && (invite = is_invited(sptr, chptr))) { + const struct Numeric *num; + num = get_error_numeric(RPL_ISSUEDINVITE); + sendcmdto_channel_butone(&me, num->str, num->str, chptr, cptr, + SKIP_NONOPS | SKIP_BURST, + "%H %s %s :%s has been invited by %s", + chptr, cli_name(sptr), invite->inviter, + cli_name(sptr), invite->inviter); + err = 0; + } + /* An oper with WALK_LCHAN privilege can join a local channel * he otherwise could not join by using "OVERRIDE" as the key. * This will generate a HACK(4) notice, but fails if the oper @@ -234,13 +248,21 @@ if (IsLocalChannel(chptr->chname) && HasPriv(sptr, PRIV_WALK_LCHAN) && !(flags & CHFL_CHANOP) - && key && !strcmp(key, "OVERRIDE") - && strcmp(chptr->mode.key, "OVERRIDE")) + && key && !strcmp(key, "OVERRIDE")) { switch (err) { case 0: - send_reply(sptr, ERR_DONTCHEAT, chptr->chname); - continue; + if (strcmp(chptr->mode.key, "OVERRIDE") +#if defined(UNDERNET) + && strcmp(chptr->mode.apass, "OVERRIDE") + && strcmp(chptr->mode.upass, "OVERRIDE")) { +#else + ) { +#endif + send_reply(sptr, ERR_DONTCHEAT, chptr->chname); + continue; + } + break; case ERR_INVITEONLYCHAN: err = 'i'; break; case ERR_CHANNELISFULL: err = 'l'; break; case ERR_BANNEDFROMCHAN: err = 'b'; break; @@ -249,20 +271,49 @@ default: err = '?'; break; } /* send accountability notice */ - sendto_opmask_butone(0, SNO_HACK4, "OPER JOIN: %C JOIN %H " - "(overriding +%c)", sptr, chptr, err); + if (err) + sendto_opmask_butone(0, SNO_HACK4, "OPER JOIN: %C JOIN %H " + "(overriding +%c)", sptr, chptr, err); err = 0; } /* Is there some reason the user may not join? */ if (err) { - send_reply(sptr, err, chptr->chname); + switch(err) { + case ERR_NEEDREGGEDNICK: + send_reply(sptr, + ERR_NEEDREGGEDNICK, + chptr->chname, + feature_str(FEAT_URLREG)); + break; + default: + send_reply(sptr, err, chptr->chname); + break; + } continue; } joinbuf_join(&join, chptr, flags); +// TODO-ZOltan cli_last_join(sptr) = CurrentTime; + if (flags & CHFL_CHANOP) { + struct ModeBuf mbuf; + /* Always let the server op him: this is needed on a net with older servers + because they 'destruct' channels immediately when they become empty without + sending out a DESTRUCT message. As a result, they would always bounce a mode + (as HACK(2)) when the user ops himself. + (There is also no particularly good reason to have the user op himself.) + */ + modebuf_init(&mbuf, &me, cptr, chptr, MODEBUF_DEST_SERVER); +#if defined(UNDERNET) + modebuf_mode_client(&mbuf, MODE_ADD | MODE_CHANOP, sptr, + chptr->mode.apass[0] ? ((flags & CHFL_CHANNEL_MANAGER) ? 0 : 1) : MAXOPLEVEL); +#elif defined(DDB) || defined(SERVICES) +/*TODO-ZOLTAN*/ + modebuf_mode_client(&mbuf, MODE_ADD | MODE_CHANOP, sptr, 0); +#endif + modebuf_flush(&mbuf); + } } - del_invite(sptr, chptr); if (chptr->topic[0]) { @@ -292,7 +343,6 @@ struct Membership *member; struct Channel *chptr; struct JoinBuf join; - unsigned int flags; time_t creation = 0; char *p = 0; char *chanlist; @@ -321,6 +371,7 @@ for (name = ircd_strtok(&p, chanlist, ","); name; name = ircd_strtok(&p, 0, ",")) { +#if 0 #if defined(UNDERNET) || defined(DDB) if (name[0] == '0' && name[1] == ':') { @@ -328,7 +379,7 @@ flags = CHFL_CHANOP | CHFL_CHANNEL_MANAGER; # else flags = CHFL_OWNER; -# endif +#endif name += 2; } else if (name[0] == '1' && name[1] == ':') @@ -339,6 +390,7 @@ else #endif flags = CHFL_DEOPPED; +#endif if (IsLocalChannel(name) || !IsChannelName(name)) { @@ -355,10 +407,7 @@ name,cli_name(sptr)); continue; } - flags |= HasFlag(sptr, FLAG_TS8) ? CHFL_SERVOPOK : 0; - - /* when the network is 2.10.11+ then remove MAGIC_REMOTE_JOIN_TS */ - chptr->creationtime = creation ? creation : MAGIC_REMOTE_JOIN_TS; + chptr->creationtime = creation; } else { /* We have a valid channel? */ if ((member = find_member_link(chptr, sptr))) @@ -367,19 +416,16 @@ if (!IsZombie(member)) /* already on channel */ continue; - flags = member->status & (CHFL_DEOPPED | CHFL_SERVOPOK); remove_user_from_channel(sptr, chptr); chptr = FindChannel(name); } - else - flags |= HasFlag(sptr, FLAG_TS8) ? CHFL_SERVOPOK : 0; /* Always copy the timestamp when it is older, that is the only way to ensure network-wide synchronization of creation times. */ if (creation && creation < chptr->creationtime) chptr->creationtime = creation; } - joinbuf_join(&join, chptr, flags); + joinbuf_join(&join, chptr, 0); } joinbuf_flush(&join); /* flush joins... */ Index: ircd-ircdev/ircd/m_kick.c diff -u ircd-ircdev/ircd/m_kick.c:1.14 ircd-ircdev/ircd/m_kick.c:1.15 --- ircd-ircdev/ircd/m_kick.c:1.14 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_kick.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for KICK command. - * @version $Id: m_kick.c,v 1.14 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_kick.c,v 1.15 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -61,8 +61,6 @@ struct Membership* member2; char *name, *comment; - ClrFlag(sptr, FLAG_TS8); - if (parc < 3 || *parv[1] == '\0') return need_more_params(sptr, "KICK"); @@ -97,8 +95,12 @@ return send_reply(sptr, ERR_USERNOTINCHANNEL, cli_name(who), chptr->chname); #if defined(UNDERNET) - /* Don't allow to kick member with a higher or equal op-level */ - if (chptr->mode.apass[0] && OpLevel(member) <= OpLevel(member2)) + /* Don't allow to kick member with a higher op-level, + * or members with the same op-level unless both are MAXOPLEVEL. + */ + if (OpLevel(member) < OpLevel(member2) + || (OpLevel(member) == OpLevel(member2) + && OpLevel(member) < MAXOPLEVEL)) return send_reply(sptr, ERR_NOTLOWEROPLEVEL, cli_name(who), chptr->chname, OpLevel(member2), OpLevel(member), "kick", OpLevel(member) == OpLevel(member2) ? "the same" : "a higher"); @@ -151,8 +153,6 @@ struct Membership *member = 0, *sptr_link = 0; char *name, *comment; - ClrFlag(sptr, FLAG_TS8); - if (parc < 3 || *parv[1] == '\0') return need_more_params(sptr, "KICK"); Index: ircd-ircdev/ircd/m_lusers.c diff -u ircd-ircdev/ircd/m_lusers.c:1.7 ircd-ircdev/ircd/m_lusers.c:1.8 --- ircd-ircdev/ircd/m_lusers.c:1.7 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_lusers.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for LUSERS command. - * @version $Id: m_lusers.c,v 1.7 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_lusers.c,v 1.8 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -53,7 +53,7 @@ * @param[in] cptr Client that sent us the message. * @param[in] sptr Original source of message. * @param[in] parc Number of arguments. - * @param[in] parv Argument vector./* + * @param[in] parv Argument vector. */ int m_lusers(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { Index: ircd-ircdev/ircd/m_mode.c diff -u ircd-ircdev/ircd/m_mode.c:1.11 ircd-ircdev/ircd/m_mode.c:1.12 --- ircd-ircdev/ircd/m_mode.c:1.11 Thu Apr 19 15:53:48 2007 +++ ircd-ircdev/ircd/m_mode.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for MODE command. - * @version $Id: m_mode.c,v 1.11 2007/04/19 22:53:48 zolty Exp $ + * @version $Id: m_mode.c,v 1.12 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -71,8 +71,6 @@ if (!IsChannelName(parv[1]) || !(chptr = FindChannel(parv[1]))) return set_user_mode(cptr, sptr, parc, parv); - ClrFlag(sptr, FLAG_TS8); - member = find_member_link(chptr, sptr); if (parc < 3) { @@ -144,8 +142,6 @@ if (!(chptr = FindChannel(parv[1]))) return set_user_mode(cptr, sptr, parc, parv); - ClrFlag(sptr, FLAG_TS8); - if (IsServer(sptr)) { if (find_conf_byhost(cli_confs(cptr), cli_name(sptr), CONF_UWORLD)) modebuf_init(&mbuf, sptr, cptr, chptr, Index: ircd-ircdev/ircd/m_notice.c diff -u ircd-ircdev/ircd/m_notice.c:1.6 ircd-ircdev/ircd/m_notice.c:1.7 --- ircd-ircdev/ircd/m_notice.c:1.6 Thu Apr 19 15:53:49 2007 +++ ircd-ircdev/ircd/m_notice.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for NOTICE command. - * @version $Id: m_notice.c,v 1.6 2007/04/19 22:53:49 zolty Exp $ + * @version $Id: m_notice.c,v 1.7 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -66,8 +66,6 @@ assert(0 != cptr); assert(cptr == sptr); - ClrFlag(sptr, FLAG_TS8); - if (parc < 2 || EmptyString(parv[1])) return send_reply(sptr, ERR_NORECIPIENT, MSG_NOTICE); @@ -118,8 +116,6 @@ char* name; char* server; - ClrFlag(sptr, FLAG_TS8); - if (parc < 3) { /* * we can't deliver it, sending an error back is pointless @@ -174,8 +170,6 @@ assert(0 != cptr); assert(cptr == sptr); - ClrFlag(sptr, FLAG_TS8); - if (parc < 2 || EmptyString(parv[1])) return send_reply(sptr, ERR_NORECIPIENT, MSG_NOTICE); Index: ircd-ircdev/ircd/m_part.c diff -u ircd-ircdev/ircd/m_part.c:1.8 ircd-ircdev/ircd/m_part.c:1.9 --- ircd-ircdev/ircd/m_part.c:1.8 Thu Apr 19 15:53:49 2007 +++ ircd-ircdev/ircd/m_part.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for PART command. - * @version $Id: m_part.c,v 1.8 2007/04/19 22:53:49 zolty Exp $ + * @version $Id: m_part.c,v 1.9 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -60,8 +60,6 @@ char *p = 0; char *name; - ClrFlag(sptr, FLAG_TS8); - /* check number of arguments */ if (parc < 2 || parv[1][0] == '\0') return need_more_params(sptr, "PART"); @@ -126,8 +124,6 @@ char *p = 0; char *name; - ClrFlag(sptr, FLAG_TS8); - /* check number of arguments */ if (parc < 2 || parv[1][0] == '\0') return need_more_params(sptr, "PART"); Index: ircd-ircdev/ircd/m_privmsg.c diff -u ircd-ircdev/ircd/m_privmsg.c:1.6 ircd-ircdev/ircd/m_privmsg.c:1.7 --- ircd-ircdev/ircd/m_privmsg.c:1.6 Thu Apr 19 15:53:49 2007 +++ ircd-ircdev/ircd/m_privmsg.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for PRIVMSG command. - * @version $Id: m_privmsg.c,v 1.6 2007/04/19 22:53:49 zolty Exp $ + * @version $Id: m_privmsg.c,v 1.7 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -65,8 +65,6 @@ assert(cptr == sptr); assert(0 != cli_user(sptr)); - ClrFlag(sptr, FLAG_TS8); - if (feature_bool(FEAT_IDLE_FROM_MSG)) cli_user(sptr)->last = CurrentTime; @@ -115,8 +113,6 @@ char* name; char* server; - ClrFlag(sptr, FLAG_TS8); - if (parc < 3) { /* * we can't deliver it, sending an error back is pointless @@ -172,8 +168,6 @@ assert(cptr == sptr); assert(0 != cli_user(sptr)); - ClrFlag(sptr, FLAG_TS8); - if (feature_bool(FEAT_IDLE_FROM_MSG)) cli_user(sptr)->last = CurrentTime; Index: ircd-ircdev/ircd/m_server.c diff -u ircd-ircdev/ircd/m_server.c:1.10 ircd-ircdev/ircd/m_server.c:1.11 --- ircd-ircdev/ircd/m_server.c:1.10 Thu Apr 19 15:53:49 2007 +++ ircd-ircdev/ircd/m_server.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for the SERVER command. - * @version $Id: m_server.c,v 1.10 2007/04/19 22:53:49 zolty Exp $ + * @version $Id: m_server.c,v 1.11 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -747,8 +747,6 @@ set_server_flags(acptr, parv[7] + 1); Count_newremoteserver(UserStats); - if (Protocol(acptr) < 10) - SetFlag(acptr, FLAG_TS8); add_client_to_list(acptr); hAddClient(acptr); if (*parv[5] == 'J') Index: ircd-ircdev/ircd/m_wallchops.c diff -u ircd-ircdev/ircd/m_wallchops.c:1.8 ircd-ircdev/ircd/m_wallchops.c:1.9 --- ircd-ircdev/ircd/m_wallchops.c:1.8 Thu Apr 19 15:53:49 2007 +++ ircd-ircdev/ircd/m_wallchops.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for WALLCHOPS command. - * @version $Id: m_wallchops.c,v 1.8 2007/04/19 22:53:49 zolty Exp $ + * @version $Id: m_wallchops.c,v 1.9 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -59,8 +59,6 @@ assert(0 != cptr); assert(cptr == sptr); - ClrFlag(sptr, FLAG_TS8); - if (parc < 2 || EmptyString(parv[1])) return send_reply(sptr, ERR_NORECIPIENT, "WALLCHOPS"); Index: ircd-ircdev/ircd/m_wallvoices.c diff -u ircd-ircdev/ircd/m_wallvoices.c:1.8 ircd-ircdev/ircd/m_wallvoices.c:1.9 --- ircd-ircdev/ircd/m_wallvoices.c:1.8 Thu Apr 19 15:53:49 2007 +++ ircd-ircdev/ircd/m_wallvoices.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Handlers for WALLVOICES command. - * @version $Id: m_wallvoices.c,v 1.8 2007/04/19 22:53:49 zolty Exp $ + * @version $Id: m_wallvoices.c,v 1.9 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -59,8 +59,6 @@ assert(0 != cptr); assert(cptr == sptr); - ClrFlag(sptr, FLAG_TS8); - if (parc < 2 || EmptyString(parv[1])) return send_reply(sptr, ERR_NORECIPIENT, "WALLVOICES"); Index: ircd-ircdev/ircd/s_debug.c diff -u ircd-ircdev/ircd/s_debug.c:1.12 ircd-ircdev/ircd/s_debug.c:1.13 --- ircd-ircdev/ircd/s_debug.c:1.12 Thu Apr 19 15:53:50 2007 +++ ircd-ircdev/ircd/s_debug.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Debug support for the ircd. - * @version $Id: s_debug.c,v 1.12 2007/04/19 22:53:50 zolty Exp $ + * @version $Id: s_debug.c,v 1.13 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -217,6 +217,7 @@ char *param) { struct Client *acptr; + struct Invite *inv; struct SLink *link; struct Ban *ban; struct Channel *chptr; @@ -229,7 +230,6 @@ cn = 0, /* connections */ ch = 0, /* channels */ lcc = 0, /* local client conf links */ - chi = 0, /* channel invites */ chb = 0, /* channel bans */ wwu = 0, /* whowas users */ cl = 0, /* classes */ @@ -284,7 +284,7 @@ } if (cli_user(acptr)) { - for (link = cli_user(acptr)->invited; link; link = link->next) + for (inv = cli_user(acptr)->invited; inv; inv = inv->next_user) usi++; for (member = cli_user(acptr)->channel; member; member = member->next_channel) ++memberships; @@ -307,8 +307,6 @@ { ch++; chm += (strlen(chptr->chname) + sizeof(struct Channel)); - for (link = chptr->invites; link; link = link->next) - chi++; for (ban = chptr->banlist; ban; ban = ban->next) { chb++; @@ -333,7 +331,7 @@ send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG, ":Users %zu(%zu) Accounts %d(%zu) Invites %d(%zu)", us, usm, acc, acc * (ACCOUNTLEN + 1), - usi, usi * sizeof(struct SLink)); + usi, usi * sizeof(struct Invite)); send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG, ":User channels %d(%zu) Aways %d(%zu)", memberships, memberships * sizeof(struct Membership), aw, awm); @@ -348,11 +346,10 @@ send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG, ":Channels %d(%zu) Bans %d(%zu)", ch, chm, chb, chbm); send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG, - ":Channel Members %d(%zu) Invites %d(%zu)", memberships, - memberships * sizeof(struct Membership), chi, - chi * sizeof(struct SLink)); + ":Channel Members %d(%zu)", memberships, + memberships * sizeof(struct Membership)); - totch = chm + chbm + chi * sizeof(struct SLink); + totch = chm + chbm; send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG, ":Whowas Users %d(%zu) Away %d(%zu) Array %d(%zu)", Index: ircd-ircdev/ircd/s_misc.c diff -u ircd-ircdev/ircd/s_misc.c:1.14 ircd-ircdev/ircd/s_misc.c:1.15 --- ircd-ircdev/ircd/s_misc.c:1.14 Thu Apr 19 15:53:50 2007 +++ ircd-ircdev/ircd/s_misc.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Miscellaneous support functions. - * @version $Id: s_misc.c,v 1.14 2007/04/19 22:53:50 zolty Exp $ + * @version $Id: s_misc.c,v 1.15 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -180,7 +180,7 @@ /* Rewritten by Run - 24 sept 94 */ static void exit_one_client(struct Client* bcptr, const char* comment) { - struct SLink *lp; + struct Invite *ip; struct Ban *bp; if (cli_serv(bcptr) && cli_serv(bcptr)->client_list) /* Was SetServerYXX called ? */ @@ -209,8 +209,8 @@ remove_user_from_all_channels(bcptr); /* Clean up invitefield */ - while ((lp = cli_user(bcptr)->invited)) - del_invite(bcptr, lp->value.chptr); + while ((ip = cli_user(bcptr)->invited)) + del_invite(bcptr, ip->channel); /* Clean up silencefield */ while ((bp = cli_user(bcptr)->silence)) { Index: ircd-ircdev/ircd/s_user.c diff -u ircd-ircdev/ircd/s_user.c:1.27 ircd-ircdev/ircd/s_user.c:1.28 --- ircd-ircdev/ircd/s_user.c:1.27 Thu Apr 19 15:53:51 2007 +++ ircd-ircdev/ircd/s_user.c Sat Apr 21 09:20:18 2007 @@ -21,7 +21,7 @@ */ /** @file * @brief Miscellaneous user-related helper functions. - * @version $Id: s_user.c,v 1.27 2007/04/19 22:53:51 zolty Exp $ + * @version $Id: s_user.c,v 1.28 2007/04/21 16:20:18 zolty Exp $ */ #include "config.h" @@ -641,8 +641,6 @@ SetFlag(sptr, FLAG_KILLED); return exit_client(cptr, sptr, &me, "NICK server wrong direction"); } - else if (HasFlag(acptr, FLAG_TS8)) - SetFlag(sptr, FLAG_TS8); /* * Check to see if this user is being propagated @@ -1236,8 +1234,7 @@ assert(cli_local(sptr)); targets = cli_targets(sptr); - /* If user is invited to channel, give him/her a free target */ - if (IsChannelName(name) && IsInvited(sptr, target)) + if (IsChannelName(name) && is_invited(sptr, target)) return 0; /* ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2007-04-19 22:54:17
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2007-04-19 22:54:11 UTC Modified files: ChangeLog ChangeLog.es Makefile.in acconfig.h config.h.in configure configure.in doc/Makefile.in include/IPcheck.h include/capab.h include/channel.h include/class.h include/client.h include/crule.h include/dbuf.h include/ddb.h include/destruct_event.h include/fileio.h include/gline.h include/handlers.h include/hash.h include/ircd.h include/ircd_alloc.h include/ircd_auth.h include/ircd_chattr.h include/ircd_crypt.h include/ircd_crypt_native.h include/ircd_crypt_plain.h include/ircd_crypt_smd5.h include/ircd_defs.h include/ircd_events.h include/ircd_features.h include/ircd_handler.h include/ircd_log.h include/ircd_md5.h include/ircd_osdep.h include/ircd_relay.h include/ircd_reply.h include/ircd_reslib.h include/ircd_signal.h include/ircd_snprintf.h include/ircd_string.h include/ircd_tea.h include/jupe.h include/list.h include/listener.h include/match.h include/memdebug.h include/motd.h include/msg.h include/msgq.h include/numeric.h include/numnicks.h include/opercmds.h include/packet.h include/parse.h include/patchlevel.h include/querycmds.h include/random.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_numeric.h include/s_serv.h include/s_stats.h include/s_user.h include/send.h include/struct.h include/sys.h include/umkpasswd.h include/uping.h include/userload.h include/version.h include/watch.h include/whowas.h ircd/.cvsignore ircd/IPcheck.c ircd/Makefile.in ircd/channel.c ircd/class.c ircd/client.c ircd/convert-conf.c ircd/crule.c ircd/dbuf.c ircd/ddb.c ircd/ddb_db_native.c ircd/ddb_db_template.c ircd/ddb_events.c ircd/destruct_event.c ircd/engine_devpoll.c ircd/engine_epoll.c ircd/engine_kqueue.c ircd/engine_poll.c ircd/engine_select.c ircd/fileio.c ircd/gline.c ircd/hash.c ircd/ircd.c ircd/ircd_alloc.c ircd/ircd_auth.c ircd/ircd_crypt.c ircd/ircd_crypt_native.c ircd/ircd_crypt_plain.c ircd/ircd_crypt_smd5.c ircd/ircd_events.c ircd/ircd_features.c ircd/ircd_lexer.l ircd/ircd_log.c ircd/ircd_md5.c ircd/ircd_parser.y ircd/ircd_relay.c ircd/ircd_reply.c ircd/ircd_res.c ircd/ircd_reslib.c ircd/ircd_signal.c ircd/ircd_snprintf.c ircd/ircd_string.c ircd/ircd_tea.c ircd/jupe.c ircd/list.c ircd/listener.c ircd/m_account.c ircd/m_admin.c ircd/m_asll.c ircd/m_away.c ircd/m_bmode.c ircd/m_burst.c ircd/m_cap.c ircd/m_clearmode.c ircd/m_close.c ircd/m_connect.c ircd/m_cprivmsg.c ircd/m_create.c ircd/m_db.c ircd/m_dbq.c ircd/m_defaults.c ircd/m_destruct.c ircd/m_desynch.c ircd/m_die.c ircd/m_endburst.c ircd/m_error.c ircd/m_get.c ircd/m_ghost.c ircd/m_gline.c ircd/m_help.c ircd/m_info.c ircd/m_invite.c ircd/m_ison.c ircd/m_join.c ircd/m_jupe.c ircd/m_kick.c ircd/m_kill.c ircd/m_links.c ircd/m_list.c ircd/m_lusers.c ircd/m_map.c ircd/m_mode.c ircd/m_motd.c ircd/m_names.c ircd/m_nick.c ircd/m_notice.c ircd/m_oper.c ircd/m_opmode.c ircd/m_part.c ircd/m_pass.c ircd/m_ping.c ircd/m_pong.c ircd/m_privmsg.c ircd/m_privs.c ircd/m_proto.c ircd/m_pseudo.c ircd/m_quit.c ircd/m_rehash.c ircd/m_reset.c ircd/m_restart.c ircd/m_rping.c ircd/m_rpong.c ircd/m_server.c ircd/m_set.c ircd/m_settime.c ircd/m_silence.c ircd/m_squit.c ircd/m_stats.c ircd/m_svsnick.c ircd/m_time.c ircd/m_tmpl.c ircd/m_topic.c ircd/m_trace.c ircd/m_uping.c ircd/m_user.c ircd/m_userhost.c ircd/m_userip.c ircd/m_users.c ircd/m_version.c ircd/m_wallchops.c ircd/m_wallops.c ircd/m_wallusers.c ircd/m_wallvoices.c ircd/m_watch.c ircd/m_who.c ircd/m_whois.c ircd/m_whowas.c ircd/match.c ircd/memdebug.c ircd/motd.c ircd/msgq.c ircd/numnicks.c ircd/opercmds.c ircd/os_generic.c ircd/packet.c ircd/parse.c ircd/querycmds.c ircd/random.c ircd/s_auth.c ircd/s_bsd.c ircd/s_conf.c ircd/s_debug.c ircd/s_err.c ircd/s_misc.c ircd/s_numeric.c ircd/s_serv.c ircd/s_stats.c ircd/s_user.c ircd/send.c ircd/table_gen.c ircd/umkpasswd.c ircd/uping.c ircd/userload.c ircd/version.c.SH ircd/watch.c ircd/whowas.c ircd/test/.cvsignore ircd/test/Makefile.in tools/ringlog.c tools/wrapper.c Log message: Author: zoltan <zo...@ir...> Log message: 2007-04-20 Toni Garc�a <zo...@ir...> 1.0.beta1 * Escribir comentarios de doxygen * Statics ---------------------- diff included ---------------------- ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-10-26 15:26:04
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-10-26 15:25:55 UTC Modified files: ChangeLog ChangeLog.es include/patchlevel.h Log message: Version 1.0.beta0 ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.48 ircd-ircdev/ChangeLog:1.49 --- ircd-ircdev/ChangeLog:1.48 Wed Oct 26 07:54:43 2005 +++ ircd-ircdev/ChangeLog Wed Oct 26 08:25:45 2005 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.48 2005/10/26 14:54:43 zolty Exp $ +# $Id: ChangeLog,v 1.49 2005/10/26 15:25:45 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-10-27 Toni García <zo...@ir...> 1.0.beta0 + * First beta version + 2005-10-26 Toni García <zo...@ir...> 1.0.alpha46 * Cleanup code Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.48 ircd-ircdev/ChangeLog.es:1.49 --- ircd-ircdev/ChangeLog.es:1.48 Wed Oct 26 07:54:43 2005 +++ ircd-ircdev/ChangeLog.es Wed Oct 26 08:25:45 2005 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.48 2005/10/26 14:54:43 zolty Exp $ +# $Id: ChangeLog.es,v 1.49 2005/10/26 15:25:45 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-10-27 Toni García <zo...@ir...> 1.0.beta0 + * Primera versión beta + 2005-10-26 Toni García <zo...@ir...> 1.0.alpha46 * Limpieza de código Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.47 ircd-ircdev/include/patchlevel.h:1.48 --- ircd-ircdev/include/patchlevel.h:1.47 Wed Oct 26 07:54:43 2005 +++ ircd-ircdev/include/patchlevel.h Wed Oct 26 08:25:45 2005 @@ -17,12 +17,12 @@ * 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.47 2005/10/26 14:54:43 zolty Exp $ + * $Id: patchlevel.h,v 1.48 2005/10/26 15:25:45 zolty Exp $ * */ -#define PATCHLEVEL "46" +#define PATCHLEVEL "0" -#define RELEASE "1.0.alpha" +#define RELEASE "1.0.beta" /* * Deliberate empty lines ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-10-26 15:23:21
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-10-26 15:23:11 UTC Modified files: ircd/class.c ircd/ircd.c ircd/ircd_alloc.c ircd/ircd_relay.c ircd/m_userip.c ircd/test/Makefile.in Log message: Author: zoltan <zo...@ir...> Log message: 2005-10-26 Toni García <zo...@ir...> 1.0.alpha46 * Limpieza de código ---------------------- diff included ---------------------- Index: ircd-ircdev/ircd/class.c diff -u ircd-ircdev/ircd/class.c:1.11 ircd-ircdev/ircd/class.c:1.12 --- ircd-ircdev/ircd/class.c:1.11 Wed Oct 26 07:54:43 2005 +++ ircd-ircdev/ircd/class.c Wed Oct 26 08:23:00 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of connection class handling functions. - * @version $Id: class.c,v 1.11 2005/10/26 14:54:43 zolty Exp $ + * @version $Id: class.c,v 1.12 2005/10/26 15:23:00 zolty Exp $ */ #include "config.h" @@ -304,4 +304,4 @@ send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG, ":Classes: inuse: %d(%d)", connClassAllocCount, connClassAllocCount * sizeof(struct ConnectionClass)); -} \ No newline at end of file +} Index: ircd-ircdev/ircd/ircd.c diff -u ircd-ircdev/ircd/ircd.c:1.24 ircd-ircdev/ircd/ircd.c:1.25 --- ircd-ircdev/ircd/ircd.c:1.24 Wed Oct 26 07:54:43 2005 +++ ircd-ircdev/ircd/ircd.c Wed Oct 26 08:23:01 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Entry point and other initialization functions for the daemon. - * @version $Id: ircd.c,v 1.24 2005/10/26 14:54:43 zolty Exp $ + * @version $Id: ircd.c,v 1.25 2005/10/26 15:23:01 zolty Exp $ */ #include "config.h" @@ -772,4 +772,4 @@ event_loop(); return 0; -} \ No newline at end of file +} Index: ircd-ircdev/ircd/ircd_alloc.c diff -u ircd-ircdev/ircd/ircd_alloc.c:1.7 ircd-ircdev/ircd/ircd_alloc.c:1.8 --- ircd-ircdev/ircd/ircd_alloc.c:1.7 Wed Oct 26 07:54:43 2005 +++ ircd-ircdev/ircd/ircd_alloc.c Wed Oct 26 08:23:01 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief IRC daemon memory allocation functions. - * @version $Id: ircd_alloc.c,v 1.7 2005/10/26 14:54:43 zolty Exp $ + * @version $Id: ircd_alloc.c,v 1.8 2005/10/26 15:23:01 zolty Exp $ */ #include "config.h" @@ -102,4 +102,4 @@ (*noMemHandler)(); return t; } -#endif \ No newline at end of file +#endif Index: ircd-ircdev/ircd/ircd_relay.c diff -u ircd-ircdev/ircd/ircd_relay.c:1.9 ircd-ircdev/ircd/ircd_relay.c:1.10 --- ircd-ircdev/ircd/ircd_relay.c:1.9 Wed Oct 26 07:54:43 2005 +++ ircd-ircdev/ircd/ircd_relay.c Wed Oct 26 08:23:01 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Helper functions to relay various types of messages. - * @version $Id: ircd_relay.c,v 1.9 2005/10/26 14:54:43 zolty Exp $ + * @version $Id: ircd_relay.c,v 1.10 2005/10/26 15:23:01 zolty Exp $ * * There are four basic types of messages, each with four subtypes. * @@ -567,4 +567,4 @@ IsServer(cli_from(sptr)) ? cli_from(sptr) : 0, host_mask ? MATCH_HOST : MATCH_SERVER, "%s :%s", mask, text); -} \ No newline at end of file +} Index: ircd-ircdev/ircd/m_userip.c diff -u ircd-ircdev/ircd/m_userip.c:1.8 ircd-ircdev/ircd/m_userip.c:1.9 --- ircd-ircdev/ircd/m_userip.c:1.8 Wed Oct 26 07:54:43 2005 +++ ircd-ircdev/ircd/m_userip.c Wed Oct 26 08:23:01 2005 @@ -1,4 +1,4 @@ -* +/* * IRC-Dev IRCD - An advanced and innovative IRC Daemon, ircd/m_userip.c * * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> @@ -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.8 2005/10/26 14:54:43 zolty Exp $ + * $Id: m_userip.c,v 1.9 2005/10/26 15:23:01 zolty Exp $ * */ Index: ircd-ircdev/ircd/test/Makefile.in diff -u ircd-ircdev/ircd/test/Makefile.in:1.7 ircd-ircdev/ircd/test/Makefile.in:1.8 --- ircd-ircdev/ircd/test/Makefile.in:1.7 Tue Oct 25 04:27:10 2005 +++ ircd-ircdev/ircd/test/Makefile.in Wed Oct 26 08:23:01 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.7 2005/10/25 11:27:10 zolty Exp $ +# $Id: Makefile.in,v 1.8 2005/10/26 15:23:01 zolty Exp $ top_srcdir = @top_srcdir@ srcdir = @srcdir@ @@ -92,7 +92,9 @@ ../../include/numnicks.h ../../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 ../../include/capab.h + ../../include/res.h ../../include/capab.h ../../include/res.h +ircd_match_t.o: ircd_match_t.c ../../include/ircd_log.h \ + ../../include/match.h ../../include/res.h ../../config.h ircd_string_t.o: ircd_string_t.c ../../include/ircd_string.h \ ../../include/ircd_chattr.h test_stub.o: test_stub.c ../../include/client.h ../../include/ircd_defs.h \ ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-10-26 15:13:47
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-10-26 15:13:37 UTC Modified files: doc/ircd.sample-en.conf Log message: ircd.conf ---------------------- diff included ---------------------- Index: ircd-ircdev/doc/ircd.sample-en.conf diff -u ircd-ircdev/doc/ircd.sample-en.conf:1.23 ircd-ircdev/doc/ircd.sample-en.conf:1.24 --- ircd-ircdev/doc/ircd.sample-en.conf:1.23 Mon Oct 17 07:02:32 2005 +++ ircd-ircdev/doc/ircd.sample-en.conf Wed Oct 26 08:13:27 2005 @@ -1,6 +1,6 @@ # ircd.conf - configuration file for IRC-Dev's IRCD. # -# Last Updated: 1, Sep 2005. +# Last Updated: 25, October 2005. # # Written by Niels <ni...@un...>, based on the original example.conf, # server code and some real-life (ahem) experience. @@ -59,7 +59,7 @@ # numeric = numericnumber; # }; # -# If present, "virtual" must contain a valid address in dotted +# If present, "vhost" must contain a valid address in dotted # quad or IPv6 numeric notation (127.0.0.1 or ::1). The address MUST # be the address of a physical interface on the host. This address is # used for outgoing connections if the "Connect" block does not override @@ -222,7 +222,8 @@ # apass_opmode (can use OPMODE/CLEARMODE on +A and +U keys) # # For global opers (with propagate = yes or local = no), the default - # is to grant all of the above privileges EXCEPT apass_opmode. For. + # is to grant all of the above privileges EXCEPT walk_lchan, + # unlimit_query, set, badchan, local_badchan and apass_opmode. For. # local opers, the default is to grant ONLY the following privileges: # chan_limit, mode_lchan, show_invis, show_all_invis, local_kill, # rehash, local_gline, local_jupe, local_opmode, whox, display, @@ -708,7 +709,7 @@ Quarantine { "#shells" = "Thou shalt not support the h4><0rz"; "&kiddies" = "They can take care of themselves"; - }; +}; # This is a server-implemented alias to send a message to a service. # The string after Pseudo is the command name; the name entry inside @@ -828,7 +829,6 @@ # "HIS_STATS_e" = "TRUE"; # "HIS_STATS_f" = "TRUE"; # "HIS_STATS_g" = "TRUE"; -# "HIS_STATS_h" = "TRUE"; # "HIS_STATS_i" = "TRUE"; # "HIS_STATS_j" = "TRUE"; # "HIS_STATS_J" = "TRUE"; @@ -847,7 +847,7 @@ # "HIS_STATS_u" = "FALSE"; # "HIS_STATS_U" = "TRUE"; # "HIS_STATS_v" = "TRUE"; -# "HIS_STATS_w" = "FALSE"; +# "HIS_STATS_w" = "TRUE"; # "HIS_STATS_x" = "TRUE"; # "HIS_STATS_y" = "TRUE"; # "HIS_STATS_z" = "TRUE"; @@ -855,7 +855,7 @@ # "HIS_WHOIS_IDLETIME" = "TRUE"; # "HIS_WHOIS_LOCALCHAN" = "TRUE"; # "HIS_WHO_SERVERNAME" = "TRUE"; -# "HIS_WHO_HOPCOUNT" = TRUE"; +# "HIS_WHO_HOPCOUNT" = "TRUE"; # "HIS_BANWHO" = "TRUE"; # "HIS_KILLWHO" = "TRUE"; # "HIS_REWRITE" = "TRUE"; ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-10-26 14:55:38
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-10-26 14:55:18 UTC Modified files: ChangeLog ChangeLog.es Makefile.in include/capab.h include/dbuf.h include/hash.h include/ircd_features.h include/msg.h include/numeric.h include/patchlevel.h include/s_conf.h include/s_user.h ircd/IPcheck.c ircd/Makefile.in ircd/channel.c ircd/class.c ircd/gline.c ircd/hash.c ircd/ircd.c ircd/ircd_alloc.c ircd/ircd_auth.c ircd/ircd_crypt.c ircd/ircd_crypt_smd5.c ircd/ircd_events.c ircd/ircd_features.c ircd/ircd_log.c ircd/ircd_parser.y ircd/ircd_relay.c ircd/ircd_res.c ircd/ircd_string.c ircd/jupe.c ircd/list.c ircd/m_burst.c ircd/m_cap.c ircd/m_clearmode.c ircd/m_connect.c ircd/m_create.c ircd/m_destruct.c ircd/m_join.c ircd/m_kick.c ircd/m_kill.c ircd/m_list.c ircd/m_mode.c ircd/m_nick.c ircd/m_oper.c ircd/m_privs.c ircd/m_quit.c ircd/m_settime.c ircd/m_stats.c ircd/m_time.c ircd/m_topic.c ircd/m_trace.c ircd/m_userhost.c ircd/m_userip.c ircd/m_version.c ircd/m_who.c ircd/m_whois.c ircd/m_whowas.c ircd/match.c ircd/msgq.c ircd/numnicks.c ircd/packet.c ircd/parse.c ircd/s_auth.c ircd/s_conf.c ircd/s_debug.c ircd/s_err.c ircd/s_misc.c ircd/s_numeric.c ircd/s_serv.c ircd/s_stats.c ircd/s_user.c ircd/send.c ircd/umkpasswd.c ircd/test/ircd_chattr_t.c ircd/test/ircd_in_addr_t.c tools/Bounce/Bounce.cpp tools/Bounce/Bounce.h tools/convert-conf.py tools/hashtoy tools/untabify tools/linesync/linesync.sh Log message: Author: zoltan <zo...@ir...> Log message: 2005-10-26 Toni García <zo...@ir...> 1.0.alpha46 * Limpieza de código ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.47 ircd-ircdev/ChangeLog:1.48 --- ircd-ircdev/ChangeLog:1.47 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/ChangeLog Wed Oct 26 07:54:43 2005 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.47 2005/10/25 09:52:43 zolty Exp $ +# $Id: ChangeLog,v 1.48 2005/10/26 14:54:43 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-10-26 Toni García <zo...@ir...> 1.0.alpha46 + * Cleanup code + 2005-10-25 Toni García <zo...@ir...> 1.0.alpha45 * Dynamic ISSUPORT Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.47 ircd-ircdev/ChangeLog.es:1.48 --- ircd-ircdev/ChangeLog.es:1.47 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/ChangeLog.es Wed Oct 26 07:54:43 2005 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.47 2005/10/25 09:52:43 zolty Exp $ +# $Id: ChangeLog.es,v 1.48 2005/10/26 14:54:43 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-10-26 Toni García <zo...@ir...> 1.0.alpha46 + * Limpieza de código + 2005-10-25 Toni García <zo...@ir...> 1.0.alpha45 * ISSUPORT dinámico Index: ircd-ircdev/Makefile.in diff -u ircd-ircdev/Makefile.in:1.8 ircd-ircdev/Makefile.in:1.9 --- ircd-ircdev/Makefile.in:1.8 Tue Feb 15 08:31:49 2005 +++ ircd-ircdev/Makefile.in Wed Oct 26 07:54:43 2005 @@ -151,7 +151,7 @@ # Indent all headers and source files: indent: @test "`indent --version`" = "GNU indent 2.2.8" || \ - (echo "You need GNU indent 2.2.8; See doc/<language>/readme.indent" && exit -1); + (echo "You need GNU indent 2.2.8; See doc/<language>/indent.txt" && exit -1); VERSION_CONTROL=none indent include/*.h ircd/*.c # do a cvs update Index: ircd-ircdev/include/capab.h diff -u ircd-ircdev/include/capab.h:1.3 ircd-ircdev/include/capab.h:1.4 --- ircd-ircdev/include/capab.h:1.3 Mon Apr 11 01:44:59 2005 +++ ircd-ircdev/include/capab.h Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Interface and public definitions for capabilities extension - * @version $Id: capab.h,v 1.3 2005/04/11 08:44:59 zolty Exp $ + * @version $Id: capab.h,v 1.4 2005/10/26 14:54:43 zolty Exp $ */ #ifndef INCLUDED_capab_h #define INCLUDED_capab_h @@ -35,11 +35,7 @@ #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 \ +#define CAPLIST \ _CAP(USERPFX, 0, "undernet.org/userpfx") /** Client capabilities */ Index: ircd-ircdev/include/dbuf.h diff -u ircd-ircdev/include/dbuf.h:1.4 ircd-ircdev/include/dbuf.h:1.5 --- ircd-ircdev/include/dbuf.h:1.4 Mon Jan 10 04:21:59 2005 +++ ircd-ircdev/include/dbuf.h Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Interfaces and declarations for dealing with data buffers. - * @version $Id: dbuf.h,v 1.4 2005/01/10 12:21:59 zolty Exp $ + * @version $Id: dbuf.h,v 1.5 2005/10/26 14:54:43 zolty Exp $ */ #ifndef INCLUDED_dbuf_h #define INCLUDED_dbuf_h @@ -62,4 +62,5 @@ extern unsigned int dbuf_getmsg(struct DBuf *dyn, char *buf, unsigned int length); extern void dbuf_count_memory(size_t *allocated, size_t *used); + #endif /* INCLUDED_dbuf_h */ Index: ircd-ircdev/include/hash.h diff -u ircd-ircdev/include/hash.h:1.7 ircd-ircdev/include/hash.h:1.8 --- ircd-ircdev/include/hash.h:1.7 Sat Apr 2 11:47:34 2005 +++ ircd-ircdev/include/hash.h Wed Oct 26 07:54:43 2005 @@ -22,7 +22,7 @@ */ /** @file * @brief Hash table management APIs. - * @version $Id: hash.h,v 1.7 2005/04/02 19:47:34 zolty Exp $ + * @version $Id: hash.h,v 1.8 2005/10/26 14:54:43 zolty Exp $ */ #ifndef INCLUDED_hash_h #define INCLUDED_hash_h @@ -100,7 +100,7 @@ extern int addNickJupes(const char *nicks); extern void clearNickJupes(void); extern void stats_nickjupes(struct Client* to, const struct StatDesc* sd, - char* param); + char* param); extern void list_next_channels(struct Client *cptr); #endif /* INCLUDED_hash_h */ Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.14 ircd-ircdev/include/ircd_features.h:1.15 --- ircd-ircdev/include/ircd_features.h:1.14 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/include/ircd_features.h Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Public interfaces and declarations for dealing with configurable features. - * @version $Id: ircd_features.h,v 1.14 2005/10/25 09:52:43 zolty Exp $ + * @version $Id: ircd_features.h,v 1.15 2005/10/26 14:54:43 zolty Exp $ */ #ifndef INCLUDED_features_h #define INCLUDED_features_h @@ -67,7 +67,6 @@ FEAT_KILLCHASETIMELIMIT, FEAT_MAXCHANNELSPERUSER, FEAT_NICKLEN, - FEAT_AVBANLEN, FEAT_MAXBANS, FEAT_MAXSILES, @@ -124,7 +123,6 @@ FEAT_HIS_STATS_e, FEAT_HIS_STATS_f, FEAT_HIS_STATS_g, - FEAT_HIS_STATS_h, FEAT_HIS_STATS_i, FEAT_HIS_STATS_j, FEAT_HIS_STATS_J, Index: ircd-ircdev/include/msg.h diff -u ircd-ircdev/include/msg.h:1.13 ircd-ircdev/include/msg.h:1.14 --- ircd-ircdev/include/msg.h:1.13 Wed May 25 09:56:23 2005 +++ ircd-ircdev/include/msg.h Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Command and token declarations and structures. - * @version $Id: msg.h,v 1.13 2005/05/25 16:56:23 zolty Exp $ + * @version $Id: msg.h,v 1.14 2005/10/26 14:54:43 zolty Exp $ */ #ifndef INCLUDED_msg_h #define INCLUDED_msg_h @@ -343,9 +343,9 @@ #define TOK_ACCOUNT "AC" #define CMD_ACCOUNT MSG_ACCOUNT, TOK_ACCOUNT -#define MSG_ASLL "ASLL" /* ASLL */ -#define TOK_ASLL "LL" -#define CMD_ASLL MSG_ASLL, TOK_ASLL +#define MSG_ASLL "ASLL" /* ASLL */ +#define TOK_ASLL "LL" +#define CMD_ASLL MSG_ASLL, TOK_ASLL #define MSG_POST "POST" /* POST */ #define TOK_POST "POST" Index: ircd-ircdev/include/numeric.h diff -u ircd-ircdev/include/numeric.h:1.15 ircd-ircdev/include/numeric.h:1.16 --- ircd-ircdev/include/numeric.h:1.15 Thu Sep 1 04:25:42 2005 +++ ircd-ircdev/include/numeric.h Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Declarations of numeric replies and supporting functions. - * @version $Id: numeric.h,v 1.15 2005/09/01 11:25:42 zolty Exp $ + * @version $Id: numeric.h,v 1.16 2005/10/26 14:54:43 zolty Exp $ */ #ifndef INCLUDED_numeric_h #define INCLUDED_numeric_h @@ -66,9 +66,9 @@ #define RPL_MAP 15 /* Undernet extension */ #define RPL_MAPMORE 16 /* Undernet extension */ #define RPL_MAPEND 17 /* Undernet extension */ -#define RPL_APASSWARN_SET 30 /* Undernet extension */ -#define RPL_APASSWARN_SECRET 31 /* Undernet extension */ -#define RPL_APASSWARN_CLEAR 32 /* Undernet extension */ +#define RPL_APASSWARN_SET 30 /* Undernet extension */ +#define RPL_APASSWARN_SECRET 31 /* Undernet extension */ +#define RPL_APASSWARN_CLEAR 32 /* Undernet extension */ /* RPL_YOURID 42 IRCnet extension */ /* RPL_ATTEMPTINGJUNC 50 aircd extension */ /* RPL_ATTEMPTINGREROUTE 51 aircd extension */ @@ -106,7 +106,7 @@ /* RPL_STATSBLINE 220 Numerics List: Dalnet,unreal */ #define RPL_UMODEIS 221 /* RPL_SQLINE_NICK 222 Numerics List: Dalnet */ -#define RPL_STATSJLINE 222 /* Undernet extension */ +#define RPL_STATSJLINE 222 /* Undernet extension */ /* RPL_STATSELINE 223 dalnet */ /* RPL_STATSGLINE 223 unreal */ /* RPL_STATSFLINE 224 Hybrid extension,Dalnet */ @@ -121,12 +121,12 @@ #define RPL_STATSALINE 226 /* Hybrid, Undernet */ #define RPL_STATSQLINE 228 /* Undernet extension */ -/* RPL_SERVICEINFO 231 unused */ -/* RPL_ENDOFSERVICES 232 unused */ +/* RPL_SERVICEINFO 231 unused */ +/* RPL_ENDOFSERVICES 232 unused */ /* RPL_RULES 232 unreal */ -/* RPL_SERVICE 233 unused */ -/* RPL_SERVLIST 234 unused */ -/* RPL_SERVLISTEND 235 unused */ +/* RPL_SERVICE 233 unused */ +/* RPL_SERVLIST 234 unused */ +/* RPL_SERVLISTEND 235 unused */ #define RPL_STATSVERBOSE 236 /* Undernet verbose server list */ #define RPL_STATSENGINE 237 /* Undernet engine name */ @@ -161,7 +161,7 @@ #define RPL_ADMINLOC2 258 #define RPL_ADMINEMAIL 259 -/* RPL_TRACELOG 261 unused */ +/* RPL_TRACELOG 261 unused */ #define RPL_TRACEEND 262 /* efnet/IRCnet */ /* RPL_LOAD_THROTTLED 263 efnet/hybrid */ /* RPL_TRYAGAIN 263 Numerics List: IRCnet */ @@ -206,11 +206,11 @@ /* RPL_END_CHANINFO 299 aircd */ -/* RPL_NONE 300 unused */ +/* RPL_NONE 300 unused */ #define RPL_AWAY 301 #define RPL_USERHOST 302 #define RPL_ISON 303 -/* RPL_TEXT 304 unused */ +/* RPL_TEXT 304 unused */ #define RPL_UNAWAY 305 #define RPL_NOWAWAY 306 /* NotAway, aircd */ @@ -258,7 +258,7 @@ /* RPL_LISTSYNTAX 334 unreal */ /* RPL_CHANPASSOK 338 IRCnet extension (?)*/ #define RPL_WHOISACTUALLY 338 /* Undernet extension, dalnet */ -/* RPL_BADCHANPASS 339 IRCnet extension (?)*/ +/* RPL_BADCHANPASS 339 IRCnet extension (?) */ #define RPL_USERIP 340 /* Undernet extension */ #define RPL_INVITING 341 /* RPL_SUMMONING 342 removed from RFC1459 */ @@ -276,7 +276,7 @@ See also RPL_ENDOFWHO */ #define RPL_DELNAMREPLY 355 /* QuakeNet extension */ -/* RPL_KILLDONE 361 not used */ +/* RPL_KILLDONE 361 not used */ #define RPL_CLOSING 362 #define RPL_CLOSEEND 363 #define RPL_LINKS 364 @@ -288,7 +288,7 @@ #define RPL_INFO 371 #define RPL_MOTD 372 -#define RPL_INFOSTART 373 /* not used */ +/* RPL_INFOSTART 373 not used */ #define RPL_ENDOFINFO 374 #define RPL_MOTDSTART 375 #define RPL_ENDOFMOTD 376 @@ -303,8 +303,8 @@ #define RPL_YOUREOPER 381 #define RPL_REHASHING 382 /* RPL_YOURSERVICE 383 Numeric List: various */ -/* RPL_MYPORTIS 384 not used */ -/* RPL_NOTOPERANYMORE 385 Extension to RFC1459, not used */ +/* RPL_MYPORTIS 384 not used */ +/* RPL_NOTOPERANYMORE 385 Extension to RFC1459, not used */ /* RPL_QLIST 386 unreal */ /* RPL_ENDOFQLIST 387 unreal */ /* RPL_ALIST 388 unreal */ @@ -322,7 +322,7 @@ * Errors are in the range from 400-599 currently and are grouped by what * commands they come from. */ -/* ERR_FIRSTERROR 400 unused */ +/* ERR_FIRSTERROR 400 unused */ #define ERR_NOSUCHNICK 401 #define ERR_NOSUCHSERVER 402 #define ERR_NOSUCHCHANNEL 403 @@ -333,7 +333,6 @@ /* ERR_NOSUCHSERVICE 408 IRCnet */ /* ERR_NOCOLORSONCHAN 408 Dalnet */ #define ERR_NOORIGIN 409 - #define ERR_UNKNOWNCAPCMD 410 #define ERR_NORECIPIENT 411 #define ERR_NOTEXTTOSEND 412 @@ -455,12 +454,12 @@ #define ERR_TOOMANYUSERS 519 /* Undernet extension -Kev */ /* ERR_OPERONLY 520 unreal */ #define ERR_MASKTOOWIDE 520 /* Undernet extension -Kev */ -/* ERR_WHOTRUNC 520 austnet */ +/* ERR_WHOTRUNC 520 austnet */ #define ERR_NOSUCHGLINE 521 /* Undernet extension (new) */ /* ERR_LISTSYNTAX 521 dalnet ERR_WHOSYNTAX 522 dalnet ERR_WHOLIMEXCEED 523 dalnet */ -#define ERR_QUARANTINED 524 /* Undernet extension -Vampire */ +#define ERR_QUARANTINED 524 /* Undernet extension -Vampire */ #define ERR_NOTLOWEROPLEVEL 560 /* Undernet extension */ #define ERR_NOTMANAGER 561 /* Undernet extension */ Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.46 ircd-ircdev/include/patchlevel.h:1.47 --- ircd-ircdev/include/patchlevel.h:1.46 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/include/patchlevel.h Wed Oct 26 07:54:43 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.46 2005/10/25 09:52:43 zolty Exp $ + * $Id: patchlevel.h,v 1.47 2005/10/26 14:54:43 zolty Exp $ * */ -#define PATCHLEVEL "45" +#define PATCHLEVEL "46" #define RELEASE "1.0.alpha" Index: ircd-ircdev/include/s_conf.h diff -u ircd-ircdev/include/s_conf.h:1.13 ircd-ircdev/include/s_conf.h:1.14 --- ircd-ircdev/include/s_conf.h:1.13 Thu Sep 1 04:25:42 2005 +++ ircd-ircdev/include/s_conf.h Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file s_conf.h * @brief ircd configuration file API. - * @version $Id: s_conf.h,v 1.13 2005/09/01 11:25:42 zolty Exp $ + * @version $Id: s_conf.h,v 1.14 2005/10/26 14:54:43 zolty Exp $ */ #ifndef INCLUDED_s_conf_h #define INCLUDED_s_conf_h @@ -105,7 +105,7 @@ /** Local K-line structure. */ struct DenyConf { struct DenyConf* next; /**< Next DenyConf in #denyConfList. */ - char* hostmask; /**< Mask for IP or hostname. */ + char* hostmask; /**< Mask for IP or hostname. */ char* message; /**< Message to send to denied users. */ char* usermask; /**< Mask for client's username. */ char* realmask; /**< Mask for realname. */ Index: ircd-ircdev/include/s_user.h diff -u ircd-ircdev/include/s_user.h:1.9 ircd-ircdev/include/s_user.h:1.10 --- ircd-ircdev/include/s_user.h:1.9 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/include/s_user.h Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file s_user.h * @brief Miscellaneous user-related helper functions. - * @version $Id: s_user.h,v 1.9 2005/10/25 09:52:43 zolty Exp $ + * @version $Id: s_user.h,v 1.10 2005/10/26 14:54:43 zolty Exp $ */ #ifndef INCLUDED_s_user_h #define INCLUDED_s_user_h @@ -117,7 +117,7 @@ extern int set_nick_name(struct Client* cptr, struct Client* sptr, const char* nick, int parc, char* parv[], int flags); extern void send_umode_out(struct Client* cptr, struct Client* sptr, - struct Flags* old, int prop); + struct Flags* old, int prop); extern int whisper(struct Client* source, const char* nick, const char* channel, const char* text, int is_notice); extern void send_user_info(struct Client* to, char* names, int rpl, Index: ircd-ircdev/ircd/IPcheck.c diff -u ircd-ircdev/ircd/IPcheck.c:1.12 ircd-ircdev/ircd/IPcheck.c:1.13 --- ircd-ircdev/ircd/IPcheck.c:1.12 Thu Sep 1 04:25:42 2005 +++ ircd-ircdev/ircd/IPcheck.c Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Code to count users connected from particular IP addresses. - * @version $Id: IPcheck.c,v 1.12 2005/09/01 11:25:42 zolty Exp $ + * @version $Id: IPcheck.c,v 1.13 2005/10/26 14:54:43 zolty Exp $ */ #include "config.h" @@ -284,7 +284,6 @@ } /* Note that this also counts server connects. * It is hard and not interesting, to change that. - * * Refuse connection if it would overflow the counter. */ if (0 == ++entry->connected) @@ -311,7 +310,7 @@ /* * Don't refuse connection when we just rebooted the server */ -#ifndef NOTHROTTLE +#ifndef NOTHROTTLE assert(entry->connected > 0); --entry->connected; Debug((DEBUG_DNS, "IPcheck refusing local connection from %s: too fast.", ircd_ntoa(&entry->addr))); Index: ircd-ircdev/ircd/Makefile.in diff -u ircd-ircdev/ircd/Makefile.in:1.29 ircd-ircdev/ircd/Makefile.in:1.30 --- ircd-ircdev/ircd/Makefile.in:1.29 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/ircd/Makefile.in Wed Oct 26 07:54:43 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.29 2005/10/25 09:52:43 zolty Exp $ +# $Id: Makefile.in,v 1.30 2005/10/26 14:54:43 zolty Exp $ #### Start of system configuration section. #### @@ -58,7 +58,6 @@ MPATH = ${DPATH}/ircd.motd RPATH = ${DPATH}/remote.motd - CC = @CC@ CFLAGS = @CFLAGS@ CPPFLAGS = -I. -I.. -I${top_srcdir}/include @CPPFLAGS@ Index: ircd-ircdev/ircd/channel.c diff -u ircd-ircdev/ircd/channel.c:1.27 ircd-ircdev/ircd/channel.c:1.28 --- ircd-ircdev/ircd/channel.c:1.27 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/ircd/channel.c Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Channel management and maintanance - * @version $Id: channel.c,v 1.27 2005/10/25 09:52:43 zolty Exp $ + * @version $Id: channel.c,v 1.28 2005/10/26 14:54:43 zolty Exp $ */ #include "config.h" @@ -152,8 +152,8 @@ for (num_free = 0, ban = free_bans; ban; ban = ban->next) num_free++; send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG, ":Bans: inuse %zu(%zu) free %zu alloc %zu", - bans_inuse, bans_inuse * sizeof(*ban), num_free, bans_alloc); - } + bans_inuse, bans_inuse * sizeof(*ban), num_free, bans_alloc); +} /** return the struct Membership* that represents a client on a channel * This function finds a struct Membership* which holds the state about @@ -275,8 +275,7 @@ * the same time as if it had an Apass (but removing +i and +l), and * reopping the first user to rejoin. However, preventing net rides * requires a backwards-incompatible protocol change.. - */ - + */ if (!chptr->mode.apass[0]) /* If no Apass, destroy now. */ destruct_channel(chptr); else if (TStime() - chptr->creationtime < 172800) /* Channel younger than 48 hours? */ @@ -1069,7 +1068,7 @@ msgq_append(&me, mb, tbuf); new_mode = 0; } - else if (feat_oplevels && flag_cnt > 1 && last_oplevel != member->oplevel) + else if (feat_oplevels && flag_cnt > 1 && last_oplevel != member->oplevel) { /* * This can't be the first member of a (continued) BURST @@ -1669,7 +1668,7 @@ if (mbuf->mb_add == 0 && mbuf->mb_rem == 0 && mbuf->mb_count == 0) return 0; - /* Ok, if we were given the OPMODE flag or if it's a server, hide source + /* Ok, if we were given the OPMODE flag, or its a server, hide the source. */ if (mbuf->mb_dest & MODEBUF_DEST_OPMODE || IsServer(mbuf->mb_source) || IsMe(mbuf->mb_source)) app_source = &his; @@ -1869,7 +1868,7 @@ if (mbuf->mb_dest & MODEBUF_DEST_HACK4) sendto_opmask_butone(0, SNO_HACK4, "HACK(4): %s MODE %s %s%s%s%s%s%s " "[%Tu]", - cli_name(feature_bool(FEAT_HIS_SNOTICES) ? + cli_name(feature_bool(FEAT_HIS_SNOTICES) ? mbuf->mb_source : app_source), mbuf->mb_channel->chname, rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "", Index: ircd-ircdev/ircd/class.c diff -u ircd-ircdev/ircd/class.c:1.10 ircd-ircdev/ircd/class.c:1.11 --- ircd-ircdev/ircd/class.c:1.10 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/ircd/class.c Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of connection class handling functions. - * @version $Id: class.c,v 1.10 2005/10/25 09:52:43 zolty Exp $ + * @version $Id: class.c,v 1.11 2005/10/26 14:54:43 zolty Exp $ */ #include "config.h" @@ -304,4 +304,4 @@ send_reply(cptr, SND_EXPLICIT | RPL_STATSDEBUG, ":Classes: inuse: %d(%d)", connClassAllocCount, connClassAllocCount * sizeof(struct ConnectionClass)); -} +} \ No newline at end of file Index: ircd-ircdev/ircd/gline.c diff -u ircd-ircdev/ircd/gline.c:1.17 ircd-ircdev/ircd/gline.c:1.18 --- ircd-ircdev/ircd/gline.c:1.17 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/ircd/gline.c Wed Oct 26 07:54:43 2005 @@ -23,7 +23,7 @@ */ /** @file * @brief Implementation of Gline manipulation functions. - * @version $Id: gline.c,v 1.17 2005/10/25 09:52:43 zolty Exp $ + * @version $Id: gline.c,v 1.18 2005/10/26 14:54:43 zolty Exp $ */ #include "config.h" @@ -88,9 +88,9 @@ continue; ircd_snprintf(0, namebuf, sizeof(namebuf), "%s@%s", - cli_user(acptr)->username, cli_user(acptr)->host); + cli_user(acptr)->username, cli_user(acptr)->host); ircd_snprintf(0, ipbuf, sizeof(ipbuf), "%s@%s", cli_user(acptr)->username, - ircd_ntoa(&cli_ip(acptr))); + ircd_ntoa(&cli_ip(acptr))); if (!match(mask, namebuf) || !match(mask, ipbuf)) count++; @@ -145,10 +145,8 @@ { struct Gline *gline, *sgline, *after = 0; - if (!(flags & GLINE_BADCHAN)) { - /* search for overlapping glines first, skipping badchans and - * special $ glines. - */ + if (!(flags & GLINE_BADCHAN)) { /* search for overlapping glines first */ + for (gline = GlobalGlineList; gline; gline = sgline) { sgline = gline->gl_next; @@ -158,14 +156,14 @@ (gline->gl_host && !host) || (!gline->gl_host && host)) continue; else if (!mmatch(gline->gl_user, user) /* gline contains new mask */ - && (gline->gl_host == NULL || !mmatch(gline->gl_host, host))) { + && (gline->gl_host == NULL || !mmatch(gline->gl_host, host))) { if (expire <= gline->gl_expire) /* will expire before wider gline */ return 0; else after = gline; /* stick new gline after this one */ } else if (!mmatch(user, gline->gl_user) /* new mask contains gline */ - && (gline->gl_host==NULL || !mmatch(host, gline->gl_host)) - && gline->gl_expire <= expire) /* old expires before new */ + && (gline->gl_host==NULL || !mmatch(host, gline->gl_host)) + && gline->gl_expire <= expire) /* old expires before new */ gline_free(gline); /* save some memory */ } } @@ -269,7 +267,7 @@ /* let the ops know about it */ sendto_opmask_butone(0, SNO_GLINE, "G-line active for %s", - get_client_name(acptr, SHOW_IP)); + get_client_name(acptr, SHOW_IP)); /* and get rid of him */ if ((tval = exit_client_msg(cptr, acptr, &me, "G-lined (%s)", @@ -375,7 +373,7 @@ sendcmdto_serv_butone(sptr, CMD_GLINE, cptr, (GlineIsRemActive(gline) ? "* +%s%s%s %Tu :%s" : "* -%s%s%s"), - gline->gl_user, + gline->gl_user, gline->gl_host ? "@" : "", gline->gl_host ? gline->gl_host : "", gline->gl_expire - CurrentTime, gline->gl_reason); @@ -471,14 +469,15 @@ /* Inform ops... */ sendto_opmask_butone(0, ircd_strncmp(reason, "AUTO", 4) ? SNO_GLINE : - SNO_AUTO, "%s adding %s %s for %s%s%s, expiring at " - "%Tu: %s", - feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr) ? - cli_name(sptr) : cli_name((cli_user(sptr))->server), - flags & GLINE_LOCAL ? "local" : "global", - flags & GLINE_BADCHAN ? "BADCHAN" : "GLINE", user, - flags & (GLINE_BADCHAN|GLINE_REALNAME) ? "" : "@", - flags & (GLINE_BADCHAN|GLINE_REALNAME) ? "" : host, + SNO_AUTO, "%s adding %s %s for %s%s%s, expiring at " + "%Tu: %s", + (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ? + cli_name(sptr) : + cli_name((cli_user(sptr))->server), + (flags & GLINE_LOCAL) ? "local" : "global", + (flags & GLINE_BADCHAN) ? "BADCHAN" : "GLINE", user, + (flags & (GLINE_BADCHAN|GLINE_REALNAME)) ? "" : "@", + (flags & (GLINE_BADCHAN|GLINE_REALNAME)) ? "" : host, expire + TSoffset, reason); /* and log it */ @@ -537,19 +536,20 @@ /* Inform ops and log it */ sendto_opmask_butone(0, SNO_GLINE, "%s activating global %s for %s%s%s, " - "expiring at %Tu: %s", - feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr) ? - cli_name(sptr) : cli_name((cli_user(sptr))->server), - GlineIsBadChan(gline) ? "BADCHAN" : "GLINE", + "expiring at %Tu: %s", + (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ? + cli_name(sptr) : + cli_name((cli_user(sptr))->server), + GlineIsBadChan(gline) ? "BADCHAN" : "GLINE", gline->gl_user, gline->gl_host ? "@" : "", gline->gl_host ? gline->gl_host : "", - gline->gl_expire + TSoffset, gline->gl_reason); + gline->gl_expire + TSoffset, gline->gl_reason); log_write(LS_GLINE, L_INFO, LOG_NOSNOTICE, "%#C activating global %s for %s%s%s, expiring at %Tu: %s", sptr, GlineIsBadChan(gline) ? "BADCHAN" : "GLINE", gline->gl_user, - gline->gl_host ? "@" : "", - gline->gl_host ? gline->gl_host : "", + gline->gl_host ? "@" : "", + gline->gl_host ? gline->gl_host : "", gline->gl_expire + TSoffset, gline->gl_reason); if (!(flags & GLINE_LOCAL)) /* don't propagate local changes */ @@ -605,18 +605,19 @@ /* Inform ops and log it */ sendto_opmask_butone(0, SNO_GLINE, "%s %s %s for %s%s%s, expiring at %Tu: " "%s", - feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr) ? - cli_name(sptr) : cli_name((cli_user(sptr))->server), + (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ? + cli_name(sptr) : + cli_name((cli_user(sptr))->server), msg, GlineIsBadChan(gline) ? "BADCHAN" : "GLINE", - gline->gl_user, gline->gl_host ? "@" : "", + gline->gl_user, gline->gl_host ? "@" : "", gline->gl_host ? gline->gl_host : "", gline->gl_expire + TSoffset, gline->gl_reason); log_write(LS_GLINE, L_INFO, LOG_NOSNOTICE, "%#C %s %s for %s%s%s, expiring at %Tu: %s", sptr, msg, GlineIsBadChan(gline) ? "BADCHAN" : "GLINE", gline->gl_user, - gline->gl_host ? "@" : "", - gline->gl_host ? gline->gl_host : "", + gline->gl_host ? "@" : "", + gline->gl_host ? gline->gl_host : "", gline->gl_expire + TSoffset, gline->gl_reason); if (!(flags & GLINE_LOCAL)) /* don't propagate local changes */ @@ -681,14 +682,14 @@ (flags & GLINE_LASTMOD && !gline->gl_lastmod)) continue; else if (flags & GLINE_EXACT) { - if (((gline->gl_host && host && ircd_strcmp(gline->gl_host,host) == 0) - ||(!gline->gl_host && !host)) && + if (((gline->gl_host && host && ircd_strcmp(gline->gl_host, host) == 0) + || (!gline->gl_host && !host)) && (ircd_strcmp(gline->gl_user, user) == 0)) break; } else { - if (((gline->gl_host && host && match(gline->gl_host,host) == 0) - ||(!gline->gl_host && !host)) && - (match(gline->gl_user, user) == 0)) + if (((gline->gl_host && host && match(gline->gl_host, host) == 0) + || (!gline->gl_host && !host)) && + (match(gline->gl_user, user) == 0)) break; } } @@ -719,13 +720,13 @@ } if ((flags & GLINE_GLOBAL && gline->gl_flags & GLINE_LOCAL) || - (flags & GLINE_LASTMOD && !gline->gl_lastmod)) + (flags & GLINE_LASTMOD && !gline->gl_lastmod)) continue; if (GlineIsRealName(gline)) { - Debug((DEBUG_DEBUG,"realname gline: '%s' '%s'",gline->gl_user,cli_info(cptr))); + Debug((DEBUG_DEBUG,"realname gline: '%s' '%s'",gline->gl_user,cli_info(cptr))); if (match(gline->gl_user+2, cli_info(cptr)) != 0) - continue; + continue; } else { if (match(gline->gl_user, (cli_user(cptr))->username) != 0) @@ -785,9 +786,9 @@ else if (!GlineIsLocal(gline) && gline->gl_lastmod) sendcmdto_one(&me, CMD_GLINE, cptr, "* %c%s%s%s %Tu %Tu :%s", GlineIsRemActive(gline) ? '+' : '-', gline->gl_user, - gline->gl_host ? "@" : "", + gline->gl_host ? "@" : "", gline->gl_host ? gline->gl_host : "", - gline->gl_expire - CurrentTime, gline->gl_lastmod, + gline->gl_expire - CurrentTime, gline->gl_lastmod, gline->gl_reason); } @@ -817,7 +818,7 @@ sendcmdto_one(&me, CMD_GLINE, cptr, "* %c%s%s%s %Tu %Tu :%s", GlineIsRemActive(gline) ? '+' : '-', gline->gl_user, - gline->gl_host ? "@" : "", + gline->gl_host ? "@" : "", gline->gl_host ? gline->gl_host : "", gline->gl_expire - CurrentTime, gline->gl_lastmod, gline->gl_reason); @@ -844,7 +845,7 @@ /* send gline information along */ send_reply(sptr, RPL_GLIST, gline->gl_user, - gline->gl_host ? "@" : "", + gline->gl_host ? "@" : "", gline->gl_host ? gline->gl_host : "", gline->gl_expire + TSoffset, GlineIsLocal(gline) ? cli_name(&me) : "*", @@ -856,7 +857,7 @@ if (gline->gl_expire <= CurrentTime) gline_free(gline); else - send_reply(sptr, RPL_GLIST, gline->gl_user, + send_reply(sptr, RPL_GLIST, gline->gl_user, gline->gl_host ? "@" : "", gline->gl_host ? gline->gl_host : "", gline->gl_expire + TSoffset, @@ -900,8 +901,8 @@ gline_free(gline); else send_reply(sptr, RPL_STATSGLINE, 'G', gline->gl_user, - gline->gl_host ? "@" : "", - gline->gl_host ? gline->gl_host : "", + gline->gl_host ? "@" : "", + gline->gl_host ? gline->gl_host : "", gline->gl_expire + TSoffset, gline->gl_reason); } } Index: ircd-ircdev/ircd/hash.c diff -u ircd-ircdev/ircd/hash.c:1.12 ircd-ircdev/ircd/hash.c:1.13 --- ircd-ircdev/ircd/hash.c:1.12 Sun Jul 3 13:21:42 2005 +++ ircd-ircdev/ircd/hash.c Wed Oct 26 07:54:43 2005 @@ -22,7 +22,7 @@ */ /** @file * @brief Hash table management. - * @version $Id: hash.c,v 1.12 2005/07/03 20:21:42 zolty Exp $ + * @version $Id: hash.c,v 1.13 2005/10/26 14:54:43 zolty Exp $ * * This file used to use some very complicated hash function. Now it * uses CRC-32, but effectively remaps each input byte according to a @@ -509,6 +509,7 @@ /* Send all the matching channels in the bucket. */ for (chptr = channelTable[args->bucket]; chptr; chptr = chptr->hnext) { + /* Zoltan: es para que liste los canales con 0 usuarios (+r) */ if (chptr->users >= args->min_users && chptr->users < args->max_users && chptr->creationtime > args->min_time Index: ircd-ircdev/ircd/ircd.c diff -u ircd-ircdev/ircd/ircd.c:1.23 ircd-ircdev/ircd/ircd.c:1.24 --- ircd-ircdev/ircd/ircd.c:1.23 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/ircd/ircd.c Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Entry point and other initialization functions for the daemon. - * @version $Id: ircd.c,v 1.23 2005/10/25 09:52:43 zolty Exp $ + * @version $Id: ircd.c,v 1.24 2005/10/26 14:54:43 zolty Exp $ */ #include "config.h" @@ -87,6 +87,7 @@ * External stuff *--------------------------------------------------------------------------*/ extern void init_counters(void); +extern void init_isupport(void); extern void mem_dbg_initialise(void); /*---------------------------------------------------------------------------- @@ -364,7 +365,7 @@ Debug((DEBUG_DEBUG, "check_pings(%s)=status:%s limit: %d current: %d", cli_name(cptr), - IsPingSent(cptr) ? "[Ping Sent]" : "[]", + IsPingSent(cptr) ? "[Ping Sent]" : "[]", max_ping, (int)(CurrentTime - cli_lasttime(cptr)))); /* Ok, the thing that will happen most frequently, is that someone will @@ -516,9 +517,9 @@ debugmode = optarg; thisServer.bootopt |= BOOT_DEBUG; break; - + default: - printf("Usage: ircd [-f config] [-h servername] [-x loglevel] [-ntv] [-k [-c clispec]]\n" + printf("Usage: ircd [-f config] [-h servername] [-x loglevel] [-ntv] [-k [-c clispec]]\n" "\n -f config\t specify explicit configuration file" "\n -x loglevel\t set debug logging verbosity" "\n -n or -t\t don't detach" @@ -676,12 +677,12 @@ int fd; if ((fd = open("/dev/null", O_WRONLY)) < 0) { fprintf(stderr, "Unable to open /dev/null (to reserve fd 2): %s\n", - strerror(errno)); + strerror(errno)); return 8; } if (fd != 2 && dup2(fd, 2) < 0) { fprintf(stderr, "Unable to reserve fd 2; dup2 said: %s\n", - strerror(errno)); + strerror(errno)); return 8; } } @@ -771,4 +772,4 @@ event_loop(); return 0; -} +} \ No newline at end of file Index: ircd-ircdev/ircd/ircd_alloc.c diff -u ircd-ircdev/ircd/ircd_alloc.c:1.6 ircd-ircdev/ircd/ircd_alloc.c:1.7 --- ircd-ircdev/ircd/ircd_alloc.c:1.6 Tue Feb 15 08:31:51 2005 +++ ircd-ircdev/ircd/ircd_alloc.c Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief IRC daemon memory allocation functions. - * @version $Id: ircd_alloc.c,v 1.6 2005/02/15 16:31:51 zolty Exp $ + * @version $Id: ircd_alloc.c,v 1.7 2005/10/26 14:54:43 zolty Exp $ */ #include "config.h" @@ -102,5 +102,4 @@ (*noMemHandler)(); return t; } -#endif - +#endif \ No newline at end of file Index: ircd-ircdev/ircd/ircd_auth.c diff -u ircd-ircdev/ircd/ircd_auth.c:1.8 ircd-ircdev/ircd/ircd_auth.c:1.9 --- ircd-ircdev/ircd/ircd_auth.c:1.8 Thu Sep 1 04:25:42 2005 +++ ircd-ircdev/ircd/ircd_auth.c Wed Oct 26 07:54:43 2005 @@ -22,7 +22,7 @@ */ /** @file * @brief IAuth client implementation for an IRC server. - * @version $Id: ircd_auth.c,v 1.8 2005/09/01 11:25:42 zolty Exp $ + * @version $Id: ircd_auth.c,v 1.9 2005/10/26 14:54:43 zolty Exp $ */ #include "config.h" #include "client.h" @@ -413,7 +413,7 @@ if (!addr) { log_write(LS_IAUTH, L_NOTICE, 0, "IAuth connection to %s failed: host lookup failed", i_host(iauth)); } else { - memcpy(&i_addr(iauth).addr, &addr, sizeof(i_addr(iauth).addr)); + memcpy(&i_addr(iauth).addr, addr, sizeof(i_addr(iauth).addr)); if (!irc_in_addr_valid(&i_addr(iauth).addr)) { log_write(LS_IAUTH, L_NOTICE, 0, "IAuth connection to %s failed: host came back as unresolved", i_host(iauth)); return; Index: ircd-ircdev/ircd/ircd_crypt.c diff -u ircd-ircdev/ircd/ircd_crypt.c:1.5 ircd-ircdev/ircd/ircd_crypt.c:1.6 --- ircd-ircdev/ircd/ircd_crypt.c:1.5 Sun Jul 3 13:21:42 2005 +++ ircd-ircdev/ircd/ircd_crypt.c Wed Oct 26 07:54:43 2005 @@ -22,7 +22,7 @@ /** * @file * @brief Core password encryption routines. - * @version $Id: ircd_crypt.c,v 1.5 2005/07/03 20:21:42 zolty Exp $ + * @version $Id: ircd_crypt.c,v 1.6 2005/10/26 14:54:43 zolty Exp $ * * This is a new look crypto API for ircu, it can handle different * password formats by the grace of magic tokens at the beginning of the @@ -237,7 +237,7 @@ crypt_mechs_root->next = crypt_mechs_root->prev = NULL; /* temporary kludge until we're modular. manually call the - register funtions for crypt mechanisms */ + register functions for crypt mechanisms */ ircd_register_crypt_smd5(); ircd_register_crypt_plain(); ircd_register_crypt_native(); Index: ircd-ircdev/ircd/ircd_crypt_smd5.c diff -u ircd-ircdev/ircd/ircd_crypt_smd5.c:1.4 ircd-ircdev/ircd/ircd_crypt_smd5.c:1.5 --- ircd-ircdev/ircd/ircd_crypt_smd5.c:1.4 Mon Mar 21 10:39:07 2005 +++ ircd-ircdev/ircd/ircd_crypt_smd5.c Wed Oct 26 07:54:43 2005 @@ -22,7 +22,7 @@ /** * @file * @brief Routines for Salted MD5 passwords - * @version $Id: ircd_crypt_smd5.c,v 1.4 2005/03/21 18:39:07 zolty Exp $ + * @version $Id: ircd_crypt_smd5.c,v 1.5 2005/10/26 14:54:43 zolty Exp $ * * ircd_crypt_smd5 is largely taken from md5_crypt.c from the Linux PAM * source code. it's been modified to fit in with ircu and some of the @@ -77,7 +77,7 @@ * @return The Salted MD5 password of key and salt * * Erm does exactly what the brief comment says. If you think I'm writing a - * description of how MD5 works, you have another thing coming. Go and read + * description of how MD5 works, you have another think coming. Go and read * Applied Cryptography by Bruce Schneier. The only difference is we use a * salt at the beginning of the password to perturb it so that the same password * doesn't always produce the same hash. Index: ircd-ircdev/ircd/ircd_events.c diff -u ircd-ircdev/ircd/ircd_events.c:1.7 ircd-ircdev/ircd/ircd_events.c:1.8 --- ircd-ircdev/ircd/ircd_events.c:1.7 Sat Apr 2 11:47:35 2005 +++ ircd-ircdev/ircd/ircd_events.c Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of event loop mid-layer. - * @version $Id: ircd_events.c,v 1.7 2005/04/02 19:47:35 zolty Exp $ + * @version $Id: ircd_events.c,v 1.8 2005/10/26 14:54:43 zolty Exp $ */ #include "config.h" @@ -541,7 +541,6 @@ return; } gen_dequeue(timer); /* remove the timer from the queue */ - timer_enqueue(timer); /* re-queue the timer */ } Index: ircd-ircdev/ircd/ircd_features.c diff -u ircd-ircdev/ircd/ircd_features.c:1.16 ircd-ircdev/ircd/ircd_features.c:1.17 --- ircd-ircdev/ircd/ircd_features.c:1.16 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/ircd/ircd_features.c Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of configurable feature support. - * @version $Id: ircd_features.c,v 1.16 2005/10/25 09:52:43 zolty Exp $ + * @version $Id: ircd_features.c,v 1.17 2005/10/26 14:54:43 zolty Exp $ */ #include "config.h" @@ -436,7 +436,6 @@ F_B(HIS_STATS_e, 0, 1, 0), F_B(HIS_STATS_f, 0, 1, 0), F_B(HIS_STATS_g, 0, 1, 0), - F_B(HIS_STATS_h, 0, 1, 0), F_B(HIS_STATS_i, 0, 1, 0), F_B(HIS_STATS_j, 0, 1, 0), F_B(HIS_STATS_J, 0, 1, 0), Index: ircd-ircdev/ircd/ircd_log.c diff -u ircd-ircdev/ircd/ircd_log.c:1.12 ircd-ircdev/ircd/ircd_log.c:1.13 --- ircd-ircdev/ircd/ircd_log.c:1.12 Thu Sep 1 04:25:42 2005 +++ ircd-ircdev/ircd/ircd_log.c Wed Oct 26 07:54:43 2005 @@ -22,7 +22,7 @@ */ /** @file * @brief IRC logging implementation. - * @version $Id: ircd_log.c,v 1.12 2005/09/01 11:25:42 zolty Exp $ + * @version $Id: ircd_log.c,v 1.13 2005/10/26 14:54:43 zolty Exp $ */ #include "config.h" @@ -971,7 +971,7 @@ { if (logDesc[i].mark & LOG_MARK_FILE) /* report file */ send_reply(to, SND_EXPLICIT | RPL_STATSFLINE, "F LOG %s FILE %s", - logDesc[i].name, (logDesc[i].file && logDesc[i].file->file ? + logDesc[i].name, (logDesc[i].file && logDesc[i].file->file ? logDesc[i].file->file : "(terminal)")); if (logDesc[i].mark & LOG_MARK_FACILITY) /* report facility */ Index: ircd-ircdev/ircd/ircd_parser.y diff -u ircd-ircdev/ircd/ircd_parser.y:1.23 ircd-ircdev/ircd/ircd_parser.y:1.24 --- ircd-ircdev/ircd/ircd_parser.y:1.23 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/ircd/ircd_parser.y Wed Oct 26 07:54:43 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.23 2005/10/25 09:52:43 zolty Exp $ + * $Id: ircd_parser.y,v 1.24 2005/10/26 14:54:43 zolty Exp $ * */ %{ @@ -262,7 +262,8 @@ jupenick: NICK '=' QSTRING ';' { addNickJupes($3); - MyFree($3);}; + MyFree($3); +}; generalblock: GENERAL { @@ -355,8 +356,8 @@ struct ConnectionClass *c_class; add_class(name, tping, tconn, maxlinks, sendq); c_class = find_class(name); - c_class->default_umode = pass; MyFree(c_class->default_umode); + c_class->default_umode = pass; memcpy(&c_class->privs, &privs, sizeof(c_class->privs)); memcpy(&c_class->privs_dirty, &privs_dirty, sizeof(c_class->privs_dirty)); } @@ -493,7 +494,7 @@ }; connectmaxhops: MAXHOPS '=' expr ';' { - maxlinks = $3; + maxlinks = $3; }; connectauto: AUTOCONNECT '=' YES ';' { flags |= CONF_AUTOCONNECT; } | AUTOCONNECT '=' NO ';' { flags &= ~CONF_AUTOCONNECT; }; @@ -644,7 +645,7 @@ portmask: MASK '=' QSTRING ';' { MyFree(pass); - DupString(pass, $3); + pass = $3; }; portserver: SERVER '=' YES ';' @@ -767,7 +768,6 @@ } '{' killitems '}' ';' { if (dconf->usermask || dconf->hostmask ||dconf->realmask) { - if (dconf->hostmask != NULL) dconf->next = denyConfList; denyConfList = dconf; } Index: ircd-ircdev/ircd/ircd_relay.c diff -u ircd-ircdev/ircd/ircd_relay.c:1.8 ircd-ircdev/ircd/ircd_relay.c:1.9 --- ircd-ircdev/ircd/ircd_relay.c:1.8 Mon Jan 10 04:22:59 2005 +++ ircd-ircdev/ircd/ircd_relay.c Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Helper functions to relay various types of messages. - * @version $Id: ircd_relay.c,v 1.8 2005/01/10 12:22:59 zolty Exp $ + * @version $Id: ircd_relay.c,v 1.9 2005/10/26 14:54:43 zolty Exp $ * * There are four basic types of messages, each with four subtypes. * @@ -399,7 +399,7 @@ if (0 == (acptr = findNUser(name)) || !IsUser(acptr)) { send_reply(sptr, SND_EXPLICIT | ERR_NOSUCHNICK, "* :Target left %s. " "Failed to deliver: [%.20s]", feature_str(FEAT_NETWORK), - text); + text); return; } if (is_silenced(sptr, acptr)) @@ -567,4 +567,4 @@ IsServer(cli_from(sptr)) ? cli_from(sptr) : 0, host_mask ? MATCH_HOST : MATCH_SERVER, "%s :%s", mask, text); -} +} \ No newline at end of file Index: ircd-ircdev/ircd/ircd_res.c diff -u ircd-ircdev/ircd/ircd_res.c:1.11 ircd-ircdev/ircd/ircd_res.c:1.12 --- ircd-ircdev/ircd/ircd_res.c:1.11 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/ircd/ircd_res.c Wed Oct 26 07:54:43 2005 @@ -41,7 +41,7 @@ */ /** @file * @brief IRC resolver functions. - * @version $Id: ircd_res.c,v 1.11 2005/10/25 09:52:43 zolty Exp $ + * @version $Id: ircd_res.c,v 1.12 2005/10/26 14:54:43 zolty Exp $ */ #include "client.h" #include "ircd_alloc.h" @@ -145,7 +145,6 @@ static struct dlink request_list; static void rem_request(struct reslist *request); - static struct reslist *make_request(dns_callback_f callback, void *ctx); static void do_query_name(dns_callback_f callback, void *ctx, const char* name, struct reslist *request, int); @@ -307,7 +306,7 @@ if (when > t_expire(&res_timeout)) /* do nothing */; else if (t_onqueue(&res_timeout) && !(res_timeout.t_header.gh_flags & GEN_MARKED)) - timer_chg(&res_timeout, TT_ABSOLUTE, when); + timer_chg(&res_timeout, TT_ABSOLUTE, when); else timer_add(&res_timeout, timeout_resolver, NULL, TT_ABSOLUTE, when); } @@ -818,7 +817,7 @@ */ Debug((DEBUG_DNS, "Request %p has bad response (state %d type %d rcode %d)", request, request->state, request->type, header->rcode)); (*request->callback)(request->callback_ctx, NULL, NULL); - rem_request(request); + rem_request(request); } else { Index: ircd-ircdev/ircd/ircd_string.c diff -u ircd-ircdev/ircd/ircd_string.c:1.12 ircd-ircdev/ircd/ircd_string.c:1.13 --- ircd-ircdev/ircd/ircd_string.c:1.12 Mon Oct 17 07:02:32 2005 +++ ircd-ircdev/ircd/ircd_string.c Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of string operations. - * @version $Id: ircd_string.c,v 1.12 2005/10/17 14:02:32 zolty Exp $ + * @version $Id: ircd_string.c,v 1.13 2005/10/26 14:54:43 zolty Exp $ */ #include "config.h" @@ -32,7 +32,7 @@ #include "res.h" /* #include <assert.h> -- Now using assert in ircd_log.h */ -#include <regex.h> +#include <string.h> #include <sys/types.h> #include <netinet/in.h> Index: ircd-ircdev/ircd/jupe.c diff -u ircd-ircdev/ircd/jupe.c:1.6 ircd-ircdev/ircd/jupe.c:1.7 --- ircd-ircdev/ircd/jupe.c:1.6 Mon Jan 10 04:23:01 2005 +++ ircd-ircdev/ircd/jupe.c Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Implementation of juped server handling functions. - * @version $Id: jupe.c,v 1.6 2005/01/10 12:23:01 zolty Exp $ + * @version $Id: jupe.c,v 1.7 2005/10/26 14:54:43 zolty Exp $ */ #include "config.h" @@ -209,10 +209,10 @@ /* Inform ops and log it */ sendto_opmask_butone(0, SNO_NETWORK, "%s activating JUPE for %s, expiring " - "at %Tu: %s", - (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ? - cli_name(sptr) : - cli_name((cli_user(sptr))->server), + "at %Tu: %s", + (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ? + cli_name(sptr) : + cli_name((cli_user(sptr))->server), jupe->ju_server, jupe->ju_expire + TSoffset, jupe->ju_reason); @@ -263,9 +263,9 @@ /* Inform ops and log it */ sendto_opmask_butone(0, SNO_NETWORK, "%s %s JUPE for %s, expiring at %Tu: " "%s", - (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ? - cli_name(sptr) : - cli_name((cli_user(sptr))->server), + (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ? + cli_name(sptr) : + cli_name((cli_user(sptr))->server), JupeIsLocal(jupe) ? "removing local" : "deactivating", jupe->ju_server, jupe->ju_expire + TSoffset, jupe->ju_reason); Index: ircd-ircdev/ircd/list.c diff -u ircd-ircdev/ircd/list.c:1.9 ircd-ircdev/ircd/list.c:1.10 --- ircd-ircdev/ircd/list.c:1.9 Sun Jul 3 13:21:42 2005 +++ ircd-ircdev/ircd/list.c Wed Oct 26 07:54:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Singly and doubly linked list manipulation implementation. - * @version $Id: list.c,v 1.9 2005/07/03 20:21:42 zolty Exp $ + * @version $Id: list.c,v 1.10 2005/10/26 14:54:43 zolty Exp $ */ #include "config.h" @@ -90,7 +90,6 @@ connectionFreeList = con; connections.alloc++; } - } /** Allocate a new Client structure. @@ -417,7 +416,7 @@ assert(cli_prev(client) == prev); /* Verify that the list hasn't become circular */ assert(cli_next(client) != GlobalClientList); - assert(visited <= client.alloc); + assert(visited <= clients.alloc); /* Remember what should precede us */ prev = client; } Index: ircd-ircdev/ircd/m_burst.c diff -u ircd-ircdev/ircd/m_burst.c:1.15 ircd-ircdev/ircd/m_burst.c:1.16 --- ircd-ircdev/ircd/m_burst.c:1.15 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/ircd/m_burst.c Wed Oct 26 07:54:43 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: m_burst.c,v 1.15 2005/10/25 09:52:43 zolty Exp $ + * $Id: m_burst.c,v 1.16 2005/10/26 14:54:43 zolty Exp $ * */ @@ -403,7 +403,7 @@ strcpy(newban->who, "*"); */ newban->when = TStime(); - newban->flags = BAN_BURSTED; + newban->flags |= BAN_BURSTED; newban->next = 0; if (lp) lp->next = newban; /* link it in */ @@ -518,7 +518,7 @@ if (current_mode & CHFL_CHANOP) { if (chptr->mode.apass[0]) - nickpos += ircd_snprintf(0, nickstr + nickpos, sizeof(nickstr) - nickpos, "%u", oplevel); + nickpos += ircd_snprintf(0, nickstr + nickpos, sizeof(nickstr) - nickpos, "%u", oplevel); else nickstr[nickpos++] = 'o'; } @@ -546,8 +546,6 @@ member->status |= CHFL_BURST_JOINED | (current_mode & (CHFL_CHANOP|CHFL_VOICE)); SetOpLevel(member, oplevel); } - - #else nickstr[nickpos++] = ':'; /* add a specifier */ @@ -597,9 +595,9 @@ #endif #if defined(UNDERNET) if ((member->status & CHFL_CHANOP) && !(member->status & CHFL_BURST_ALREADY_OPPED)) - modebuf_mode_client(mbuf, MODE_ADD | CHFL_CHANOP, member->user, OpLevel(member)); - if ((member->status & CHFL_VOICE) && !(member->status & CHFL_BURST_ALREADY_VOICED)) - modebuf_mode_client(mbuf, MODE_ADD | CHFL_VOICE, member->user, OpLevel(member)); + modebuf_mode_client(mbuf, MODE_ADD | CHFL_CHANOP, member->user, OpLevel(member)); + if ((member->status & CHFL_VOICE) && !(member->status & CHFL_BURST_ALREADY_VOICED)) + modebuf_mode_client(mbuf, MODE_ADD | CHFL_VOICE, member->user, OpLevel(member)); #else if (member->status & CHFL_CHANOP) modebuf_mode_client(mbuf, MODE_ADD | CHFL_CHANOP, member->user, 0); @@ -608,17 +606,17 @@ #endif } else if (parse_flags & MODE_PARSE_WIPEOUT) { /* wipeout old ops */ #if defined(UNDERNET) - if (member->status & CHFL_CHANOP) - modebuf_mode_client(mbuf, MODE_DEL | CHFL_CHANOP, member->user, OpLevel(member)); - if (member->status & CHFL_VOICE) - modebuf_mode_client(mbuf, MODE_DEL | CHFL_VOICE, member->user, OpLevel(member)); + if (member->status & CHFL_CHANOP) + modebuf_mode_client(mbuf, MODE_DEL | CHFL_CHANOP, member->user, OpLevel(member)); + if (member->status & CHFL_VOICE) + modebuf_mode_client(mbuf, MODE_DEL | CHFL_VOICE, member->user, OpLevel(member)); #else if (member->status & CHFL_CHANOP) modebuf_mode_client(mbuf, MODE_DEL | CHFL_CHANOP, member->user, 0); if (member->status & CHFL_VOICE) modebuf_mode_client(mbuf, MODE_DEL | CHFL_VOICE, member->user, 0); #endif - member->status = (member->status + member->status = (member->status #if defined(UNDERNET) & ~(CHFL_CHANNEL_MANAGER | CHFL_CHANOP | CHFL_VOICE)) #elif defined(DDB) || defined(SERVICES) @@ -626,7 +624,7 @@ #else & ~(CHFL_CHANOP | CHFL_VOICE)) #endif - | CHFL_DEOPPED; + | CHFL_DEOPPED; } } @@ -641,7 +639,7 @@ DupString(bandup, lp->banstr); modebuf_mode_string(mbuf, MODE_DEL | MODE_BAN, - bandup, 1); /* let it free banstr */ + bandup, 1); *lp_p = lp->next; /* clip out of list */ free_ban(lp); continue; Index: ircd-ircdev/ircd/m_cap.c diff -u ircd-ircdev/ircd/m_cap.c:1.3 ircd-ircdev/ircd/m_cap.c:1.4 --- ircd-ircdev/ircd/m_cap.c:1.3 Mon Apr 11 01:45:00 2005 +++ ircd-ircdev/ircd/m_cap.c Wed Oct 26 07:54:43 2005 @@ -22,7 +22,7 @@ */ /** @file * @brief Capability negotiation commands - * @version $Id: m_cap.c,v 1.3 2005/04/11 08:45:00 zolty Exp $ + * @version $Id: m_cap.c,v 1.4 2005/10/26 14:54:43 zolty Exp $ */ #include "config.h" @@ -179,7 +179,7 @@ } loc += ircd_snprintf(0, capbuf + loc, sizeof(capbuf) - loc, "%s%s", - pfx, capab_list[i].name); + pfx, capab_list[i].name); } msgq_append(0, mb, "%s", capbuf); /* append capabilities to the final cmd */ @@ -215,7 +215,7 @@ memset(&rem, 0, sizeof(rem)); while (cl) { /* walk through the capabilities list... */ if (!(cap = find_cap(&cl, &neg)) /* look up capability... */ - || (!neg && (cap->flags & CAPFL_PROHIBIT)) /* is it prohibited? */ + || (!neg && (cap->flags & CAPFL_PROHIBIT)) /* is it prohibited? */ || (neg && (cap->flags & CAPFL_STICKY))) { /* is it sticky? */ sendcmdto_one(&me, CMD_CAP, sptr, "NAK :%s", caplist); return 0; /* can't complete requested op... */ @@ -289,6 +289,7 @@ if (!(cap->flags & CAPFL_PROTO)) CapClr(cli_active(sptr), cap->cap); } + send_caplist(sptr, 0, &cleared, "ACK"); return 0; } Index: ircd-ircdev/ircd/m_clearmode.c diff -u ircd-ircdev/ircd/m_clearmode.c:1.10 ircd-ircdev/ircd/m_clearmode.c:1.11 --- ircd-ircdev/ircd/m_clearmode.c:1.10 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/ircd/m_clearmode.c Wed Oct 26 07:54:43 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_clearmode.c,v 1.10 2005/10/25 09:52:43 zolty Exp $ + * $Id: m_clearmode.c,v 1.11 2005/10/26 14:54:43 zolty Exp $ * */ @@ -200,7 +200,7 @@ /* Drop channel operator status */ if (IsChanOp(member) && del_mode & MODE_CHANOP) { #if defined(UNDERNET) - modebuf_mode_client(&mbuf, MODE_DEL | MODE_CHANOP, member->user, MAXOPLEVEL + 1); + modebuf_mode_client(&mbuf, MODE_DEL | MODE_CHANOP, member->user, MAXOPLEVEL + 1); #else modebuf_mode_client(&mbuf, MODE_DEL | MODE_CHANOP, member->user, 0); #endif @@ -210,7 +210,7 @@ /* Drop voice */ if (HasVoice(member) && del_mode & MODE_VOICE) { #if defined(UNDERNET) - modebuf_mode_client(&mbuf, MODE_DEL | MODE_VOICE, member->user, MAXOPLEVEL + 1); + modebuf_mode_client(&mbuf, MODE_DEL | MODE_VOICE, member->user, MAXOPLEVEL + 1); #else modebuf_mode_client(&mbuf, MODE_DEL | MODE_VOICE, member->user, 0); #endif Index: ircd-ircdev/ircd/m_connect.c diff -u ircd-ircdev/ircd/m_connect.c:1.6 ircd-ircdev/ircd/m_connect.c:1.7 --- ircd-ircdev/ircd/m_connect.c:1.6 Mon Jan 10 04:23:01 2005 +++ ircd-ircdev/ircd/m_connect.c Wed Oct 26 07:54:43 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_connect.c,v 1.6 2005/01/10 12:23:01 zolty Exp $ + * $Id: m_connect.c,v 1.7 2005/10/26 14:54:43 zolty Exp $ * */ @@ -194,7 +194,7 @@ * Notify all operators about remote connect requests */ sendwallto_group_butone(&me, WALL_WALLOPS, 0, - "Remote CONNECT %s %s from %s", parv[1], + "Remote CONNECT %s %s from %s", parv[1], parv[2] ? parv[2] : "", get_client_name(sptr, HIDE_IP)); log_write(LS_NETWORK, L_INFO, 0, "CONNECT From %C : %s %s", sptr, parv[1], Index: ircd-ircdev/ircd/m_create.c diff -u ircd-ircdev/ircd/m_create.c:1.7 ircd-ircdev/ircd/m_create.c:1.8 --- ircd-ircdev/ircd/m_create.c:1.7 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/ircd/m_create.c Wed Oct 26 07:54:43 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_create.c,v 1.7 2005/10/25 09:52:43 zolty Exp $ + * $Id: m_create.c,v 1.8 2005/10/26 14:54:43 zolty Exp $ * */ @@ -174,7 +174,7 @@ MODEBUF_DEST_BOUNCE)); /* And bounce the mode */ #if defined(UNDERNET) - modebuf_mode_client(&mbuf, MODE_ADD | MODE_CHANOP, sptr, MAXOPLEVEL + 1); + modebuf_mode_client(&mbuf, MODE_ADD | MODE_CHANOP, sptr, MAXOPLEVEL + 1); #else modebuf_mode_client(&mbuf, MODE_ADD | MODE_CHANOP, sptr, 0); #endif Index: ircd-ircdev/ircd/m_destruct.c diff -u ircd-ircdev/ircd/m_destruct.c:1.6 ircd-ircdev/ircd/m_destruct.c:1.7 --- ircd-ircdev/ircd/m_destruct.c:1.6 Mon Mar 21 10:39:08 2005 +++ ircd-ircdev/ircd/m_destruct.c Wed Oct 26 07:54:43 2005 @@ -18,66 +18,9 @@ * 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_destruct.c,v 1.6 2005/03/21 18:39:08 zolty Exp $ + * $Id: m_destruct.c,v 1.7 2005/10/26 14:54:43 zolty Exp $ * */ - -/* - * m_functions execute protocol messages on this server: - * - * cptr is always NON-NULL, pointing to a *LOCAL* client - * structure (with an open socket connected!). This - * identifies the physical socket where the message - * originated (or which caused the m_function to be - * executed--some m_functions may call others...). - * - * sptr is the source of the message, defined by the - * prefix part of the message if present. If not - * or prefix not found, then sptr==cptr. - * - * (!IsServer(cptr)) => (cptr == sptr), because - * prefixes are taken *only* from servers... - * - * (IsServer(cptr)) - * (sptr == cptr) => the message didn't - * have the prefix. - * - * (sptr != cptr && IsServer(sptr) means - * the prefix specified servername. (?) - * - * (sptr != cptr && !IsServer(sptr) means - * that message originated from a remote - * user (not local). - * - * combining - * - * (!IsServer(sptr)) means that, sptr can safely - * taken as defining the target structure of the - * message in this server. - * - * *Always* true (if 'parse' and others are working correct): - * - * 1) sptr->from == cptr (note: cptr->from == cptr) - * - * 2) MyConnect(sptr) <=> sptr == cptr (e.g. sptr - * *cannot* be a local connection, unless it's - * actually cptr!). [MyConnect(x) should probably - * be defined as (x == x->from) --msa ] - * - * parc number of variable parameter strings (if zero, - * parv is allowed to be NULL) - * - * parv a NULL terminated list of parameter pointers, - * - * parv[0], sender (prefix string), if not present - * this points to an empty string. - * parv[1]...parv[parc-1] - * pointers to additional parameters - * parv[parc] == NULL, *always* - * - * note: it is guaranteed that parv[0]..parv[parc-1] are all - * non-NULL pointers. - */ #include "config.h" #include "channel.h" Index: ircd-ircdev/ircd/m_join.c diff -u ircd-ircdev/ircd/m_join.c:1.15 ircd-ircdev/ircd/m_join.c:1.16 --- ircd-ircdev/ircd/m_join.c:1.15 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/ircd/m_join.c Wed Oct 26 07:54:43 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.15 2005/10/25 09:52:43 zolty Exp $ + * $Id: m_join.c,v 1.16 2005/10/26 14:54:43 zolty Exp $ * */ @@ -90,7 +90,6 @@ 0); joinbuf_flush(&part); - } return chanlist; @@ -158,7 +157,7 @@ if (!(chptr = FindChannel(name))) { if (((name[0] == '&') && !feature_bool(FEAT_LOCAL_CHANNELS)) - || strlen(name) >= IRCD_MIN(CHANNELLEN, feature_int(FEAT_CHANNELLEN))) { + || strlen(name) >= IRCD_MIN(CHANNELLEN, feature_int(FEAT_CHANNELLEN))) { send_reply(sptr, ERR_NOSUCHCHANNEL, name); continue; } @@ -363,7 +362,7 @@ else { /* We have a valid channel? */ if ((member = find_member_link(chptr, sptr))) { - /* It is impossible to get here --Run */ + /* It is impossible to get here --Run */ if (!IsZombie(member)) /* already on channel */ continue; Index: ircd-ircdev/ircd/m_kick.c diff -u ircd-ircdev/ircd/m_kick.c:1.12 ircd-ircdev/ircd/m_kick.c:1.1... [truncated message content] |
From: Toni G. <zo...@us...> - 2005-10-25 11:27:29
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-10-25 11:27:21 UTC Modified files: ircd/test/Makefile.in Log message: Prueba ---------------------- diff included ---------------------- Index: ircd-ircdev/ircd/test/Makefile.in diff -u ircd-ircdev/ircd/test/Makefile.in:1.6 ircd-ircdev/ircd/test/Makefile.in:1.7 --- ircd-ircdev/ircd/test/Makefile.in:1.6 Tue Oct 25 02:52:43 2005 +++ ircd-ircdev/ircd/test/Makefile.in Tue Oct 25 04:27:10 2005 @@ -18,13 +18,14 @@ # 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.6 2005/10/25 09:52:43 zolty Exp $ +# $Id: Makefile.in,v 1.7 2005/10/25 11:27:10 zolty Exp $ top_srcdir = @top_srcdir@ srcdir = @srcdir@ VPATH = @srcdir@ CPPFLAGS = -I${top_srcdir}/include -I../.. CFLAGS = -g -Wall +LDFLAGS = CC = @CC@ TESTPROGS = \ ----------------------- End of diff ----------------------- |
From: Toni G. <zo...@us...> - 2005-10-25 09:53:03
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-10-25 09:52:53 UTC Modified files: ChangeLog ChangeLog.es RELEASE.NOTES RELEASE.NOTES.es doc/en/features.txt include/channel.h include/class.h include/ircd_features.h include/patchlevel.h include/s_stats.h include/s_user.h ircd/Makefile.in ircd/channel.c ircd/class.c ircd/client.c ircd/gline.c ircd/ircd.c ircd/ircd_features.c ircd/ircd_parser.y ircd/ircd_res.c ircd/m_burst.c ircd/m_clearmode.c ircd/m_create.c ircd/m_defaults.c ircd/m_gline.c ircd/m_invite.c ircd/m_join.c ircd/m_kick.c ircd/m_kill.c ircd/m_names.c ircd/m_proto.c ircd/m_stats.c ircd/m_topic.c ircd/m_version.c ircd/m_who.c ircd/m_whois.c ircd/parse.c ircd/s_conf.c ircd/s_misc.c ircd/s_numeric.c ircd/s_stats.c ircd/s_user.c ircd/test/Makefile.in Removed files: include/supported.h include/whocmds.h ircd/whocmds.c Log message: Author: zoltan <zo...@ir...> Log message: 2005-10-25 Toni García <zo...@ir...> 1.0.alpha45 * ISSUPORT dinámico ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.46 ircd-ircdev/ChangeLog:1.47 --- ircd-ircdev/ChangeLog:1.46 Mon Oct 17 07:02:32 2005 +++ ircd-ircdev/ChangeLog Tue Oct 25 02:52:43 2005 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.46 2005/10/17 14:02:32 zolty Exp $ +# $Id: ChangeLog,v 1.47 2005/10/25 09:52:43 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-10-25 Toni García <zo...@ir...> 1.0.alpha45 + * Dynamic ISSUPORT + 2005-10-17 Toni García <zo...@ir...> 1.0.alpha44 * Undernet synchronization Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.46 ircd-ircdev/ChangeLog.es:1.47 --- ircd-ircdev/ChangeLog.es:1.46 Mon Oct 17 07:02:32 2005 +++ ircd-ircdev/ChangeLog.es Tue Oct 25 02:52:43 2005 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.46 2005/10/17 14:02:32 zolty Exp $ +# $Id: ChangeLog.es,v 1.47 2005/10/25 09:52:43 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-10-25 Toni García <zo...@ir...> 1.0.alpha45 + * ISSUPORT dinámico + 2005-10-17 Toni García <zo...@ir...> 1.0.alpha44 * Sincronización Undernet Index: ircd-ircdev/RELEASE.NOTES diff -u ircd-ircdev/RELEASE.NOTES:1.3 ircd-ircdev/RELEASE.NOTES:1.4 --- ircd-ircdev/RELEASE.NOTES:1.3 Thu Sep 1 04:25:42 2005 +++ ircd-ircdev/RELEASE.NOTES Tue Oct 25 02:52:43 2005 @@ -1,5 +1,5 @@ Release notes for IRC-Dev IRCD version 1.0 -Last updated: 23 Apr 2005 +Last updated: 25 October 2005 Written by Toni Garcia <zo...@ir...> Based on earlier documents by Kev <kl...@mi...>, Braden <db...@ya...> and Michael Poole <md...@tr...> @@ -11,6 +11,16 @@ IPv6 support and oplevels) are not supported by old ircds. +Semantic Changes (TAKE NOTE): + +Channel keys and passwords (see the "oplevels" enhancement below) +listed in a JOIN are now only checked against the corresponding +channel. In an old ircd, "JOIN #a,#b key" would attempt to use "key" +as the key for both #a and #b. IRC-Dev IRCD will only attempt to use +it as the key for #a. IRC-Dev IRCD's behavior matches that documented +in RFC 1459. + + Enhancements: The configuration file format has changed to one that is easier to @@ -78,6 +88,11 @@ The server will no longer kick "net riders" in keyed (+k) channels if both sides of the net join have the same key. +IP masks (as used in bans, G-lines, etc) are now parsed in a more +forgiving manner. 127.0.0.0/8, 127.* and 127/8 are all accepted and +mean the same thing. Ambiguous expressions like 127/8 are interpreted +as IPv4 masks; to interpret it as an IPv6 mask, use 127:/8. + 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. @@ -175,6 +190,11 @@ when you join using those keys. Part of this channel protection is that you cannot be deopped in channel by someone who you opped. +IP masks (as used in bans, G-lines, etc) are now parsed in a more +forgiving manner. 127.0.0.0/8, 127.* and 127/8 are all accepted and +mean the same thing. Ambiguous expressions like 127/8 are interpreted +as IPv4 masks; to interpret it as an IPv6 mask, use 127:/8. + Configuration Changes: Index: ircd-ircdev/RELEASE.NOTES.es diff -u ircd-ircdev/RELEASE.NOTES.es:1.3 ircd-ircdev/RELEASE.NOTES.es:1.4 --- ircd-ircdev/RELEASE.NOTES.es:1.3 Thu Sep 1 04:25:42 2005 +++ ircd-ircdev/RELEASE.NOTES.es Tue Oct 25 02:52:43 2005 @@ -1,5 +1,5 @@ Notas de lanzamiento para IRCD de IRC-Dev version 1.0 -Ultima actualización: 23 Abril 2005 +Ultima actualización: 25 Octubre 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...> @@ -12,6 +12,17 @@ IPv6 y oplevels) no están soportadas por ircds viejos. +Cambios semántico (NOTA): + +Las contraseñas de canales (vease la implementación de "oplevels" +abajo) eumeradas en un JOIN ahora se comprueban solamente al canal +correspondiente. En un ircd viejo, "JOIN #a,#b key" procuraría +utilizar la "key" como la contraseña para ambos canales #a y #b. +El IRCD de IRC-Dev procurará utilizar solamente para la contraseña +del canal #a. El comportamiento del IRCD de IRC-Dev está documentado +en el RFC 1459. + + Implementaciones: El formato del archivo de la configuración ha cambiado a uno que es @@ -83,6 +94,11 @@ 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. +Las máscaras de IP (utilizadas en bans, G-lines, etc) ahora se analizan +de una manera más extensa. 127.0.0.0/8, 127.* y 127/8 son todos aceptadas +y significan la misma cosa. Expresiones ambiguas como 127/8 son interpretadas +como máscaras de IPv4, para interpretarlo como una máscara IPv6 use 127:/8. + 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. Index: ircd-ircdev/doc/en/features.txt diff -u ircd-ircdev/doc/en/features.txt:1.3 ircd-ircdev/doc/en/features.txt:1.4 --- ircd-ircdev/doc/en/features.txt:1.3 Thu Sep 1 04:25:42 2005 +++ ircd-ircdev/doc/en/features.txt Tue Oct 25 02:52:43 2005 @@ -1,4 +1,4 @@ -$Id: features.txt,v 1.3 2005/09/01 11:25:42 zolty Exp $ +$Id: features.txt,v 1.4 2005/10/25 09:52:43 zolty Exp $ Many of the old compile-time options are now configured through the server configuration file, ircd.conf. This file is intended to @@ -351,6 +351,12 @@ larger than the CHANNELLEN #define. Like the NICKLEN feature, this is intended to ease changes in channel name length across a network. +USER_GLIST +* Type: boolean +* Default: FALSE + +Optionally removes the ability to list glines by users +(ie /GLINE id...@ho..., shows reason, expiry time etc) AVBANLEN * Type: integer Index: ircd-ircdev/include/channel.h diff -u ircd-ircdev/include/channel.h:1.14 ircd-ircdev/include/channel.h:1.15 --- ircd-ircdev/include/channel.h:1.14 Mon Oct 17 07:02:32 2005 +++ ircd-ircdev/include/channel.h Tue Oct 25 02:52:43 2005 @@ -22,7 +22,7 @@ */ /** @file * @brief Channel management and maintenance. - * @version $Id: channel.h,v 1.14 2005/10/17 14:02:32 zolty Exp $ + * @version $Id: channel.h,v 1.15 2005/10/25 09:52:43 zolty Exp $ */ #ifndef INCLUDED_channel_h #define INCLUDED_channel_h @@ -376,6 +376,9 @@ char *mbma_string; /**< A string */ struct Client *mbma_client; /**< A client */ } mbm_arg; /**< The mode argument */ +#if defined(UNDERNET) + unsigned short mbm_oplevel; /**< Oplevel for a bounce */ +#endif } mb_modeargs[MAXMODEPARAMS]; /**< A mode w/args */ }; @@ -401,6 +404,9 @@ #define MB_UINT(mb, i) ((mb)->mb_modeargs[(i)].mbm_arg.mbma_uint) #define MB_STRING(mb, i) ((mb)->mb_modeargs[(i)].mbm_arg.mbma_string) #define MB_CLIENT(mb, i) ((mb)->mb_modeargs[(i)].mbm_arg.mbma_client) +#if defined(UNDERNET) +#define MB_OPLEVEL(mb, i) ((mb)->mb_modeargs[(i)].mbm_oplevel) +#endif /** A buffer represeting a list of joins to send */ struct JoinBuf { @@ -486,7 +492,7 @@ extern void modebuf_mode_string(struct ModeBuf *mbuf, unsigned int mode, char *string, int free); extern void modebuf_mode_client(struct ModeBuf *mbuf, unsigned int mode, - struct Client *client); + struct Client *client, int oplevel); extern int modebuf_flush(struct ModeBuf *mbuf); extern void modebuf_extract(struct ModeBuf *mbuf, char *buf); Index: ircd-ircdev/include/class.h diff -u ircd-ircdev/include/class.h:1.7 ircd-ircdev/include/class.h:1.8 --- ircd-ircdev/include/class.h:1.7 Wed Jun 22 00:54:29 2005 +++ ircd-ircdev/include/class.h Tue Oct 25 02:52:43 2005 @@ -22,7 +22,7 @@ */ /** @file * @brief Declarations and interfaces for handling connection classes. - * @version $Id: class.h,v 1.7 2005/06/22 07:54:29 zolty Exp $ + * @version $Id: class.h,v 1.8 2005/10/25 09:52:43 zolty Exp $ */ #ifndef INCLUDED_class_h #define INCLUDED_class_h @@ -89,6 +89,8 @@ #define ConfLinks(x) ((x)->conn_class->ref_count) /** Get default usermode for ConfItem \a x. */ #define ConfUmode(x) ((x)->conn_class->default_umode) +/** Find a valid configuration class by name. */ +#define find_class(name) do_find_class((name), 0) /* * Proto types @@ -100,7 +102,7 @@ extern void class_mark_delete(void); extern void class_delete_marked(void); -extern struct ConnectionClass *find_class(const char *name); +extern struct ConnectionClass *do_find_class(const char *name, int extras); extern struct ConnectionClass *make_class(void); extern void free_class(struct ConnectionClass * tmp); extern char *get_conf_class(const struct ConfItem *aconf); Index: ircd-ircdev/include/ircd_features.h diff -u ircd-ircdev/include/ircd_features.h:1.13 ircd-ircdev/include/ircd_features.h:1.14 --- ircd-ircdev/include/ircd_features.h:1.13 Thu Sep 1 04:25:42 2005 +++ ircd-ircdev/include/ircd_features.h Tue Oct 25 02:52:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Public interfaces and declarations for dealing with configurable features. - * @version $Id: ircd_features.h,v 1.13 2005/09/01 11:25:42 zolty Exp $ + * @version $Id: ircd_features.h,v 1.14 2005/10/25 09:52:43 zolty Exp $ */ #ifndef INCLUDED_features_h #define INCLUDED_features_h @@ -58,11 +58,10 @@ FEAT_HIDDEN_HOST, FEAT_HIDDEN_IP, FEAT_CONNEXIT_NOTICES, -#if defined(UNDERNET) FEAT_OPLEVELS, -#endif FEAT_LOCAL_CHANNELS, FEAT_TOPIC_BURST, + FEAT_USER_GLIST, /* features that probably should not be touched */ FEAT_KILLCHASETIMELIMIT, Index: ircd-ircdev/include/patchlevel.h diff -u ircd-ircdev/include/patchlevel.h:1.45 ircd-ircdev/include/patchlevel.h:1.46 --- ircd-ircdev/include/patchlevel.h:1.45 Mon Oct 17 07:02:32 2005 +++ ircd-ircdev/include/patchlevel.h Tue Oct 25 02:52:43 2005 @@ -17,12 +17,12 @@ * 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.45 2005/10/17 14:02:32 zolty Exp $ + * $Id: patchlevel.h,v 1.46 2005/10/25 09:52:43 zolty Exp $ * */ -#define PATCHLEVEL ".alpha44" +#define PATCHLEVEL "45" -#define RELEASE "1.0" +#define RELEASE "1.0.alpha" /* * Deliberate empty lines Index: ircd-ircdev/include/s_stats.h diff -u ircd-ircdev/include/s_stats.h:1.4 ircd-ircdev/include/s_stats.h:1.5 --- ircd-ircdev/include/s_stats.h:1.4 Mon Jan 10 04:22:00 2005 +++ ircd-ircdev/include/s_stats.h Tue Oct 25 02:52:43 2005 @@ -21,7 +21,7 @@ */ /** @file * @brief Report configuration lines and other statistics from this server. - * @version $Id: s_stats.h,v 1.4 2005/01/10 12:22:00 zolty Exp $ + * @version $Id: s_stats.h,v 1.5 2005/10/25 09:52:43 zolty Exp $ */ #ifndef INCLUDED_s_stats_h #define INCLUDED_s_stats_h @@ -55,8 +55,9 @@ #define STAT_FLAG_OPERONLY 0x01 /**< Oper-only stat */ #define STAT_FLAG_OPERFEAT 0x02 /**< Oper-only if the feature is true */ -#define STAT_FLAG_CASESENS 0x04 /**< Flag is case-sensitive */ -#define STAT_FLAG_VARPARAM 0x08 /**< May have an extra parameter */ +#define STAT_FLAG_LOCONLY 0x04 /**< Local user only */ +#define STAT_FLAG_CASESENS 0x08 /**< Flag is case-sensitive */ +#define STAT_FLAG_VARPARAM 0x10 /**< May have an extra parameter */ extern void stats_init(void); const struct StatDesc *stats_find(const char *name_or_char); Index: ircd-ircdev/include/s_user.h diff -u ircd-ircdev/include/s_user.h:1.8 ircd-ircdev/include/s_user.h:1.9 --- ircd-ircdev/include/s_user.h:1.8 Sun Jul 3 11:44:51 2005 +++ ircd-ircdev/include/s_user.h Tue Oct 25 02:52:43 2005 @@ -21,7 +21,7 @@ */ /** @file s_user.h * @brief Miscellaneous user-related helper functions. - * @version $Id: s_user.h,v 1.8 2005/07/03 18:44:51 zolty Exp $ + * @version $Id: s_user.h,v 1.9 2005/10/25 09:52:43 zolty Exp $ */ #ifndef INCLUDED_s_user_h #define INCLUDED_s_user_h @@ -146,6 +146,12 @@ extern void add_target(struct Client *sptr, void *target); extern unsigned int umode_make_snomask(unsigned int oldmask, char *arg, int what); + +extern void init_isupport(void); +extern void add_isupport(const char *name); +extern void add_isupport_i(const char *name, int value); +extern void add_isupport_s(const char *name, const char *value); +extern void del_isupport(const char *name); extern int send_supported(struct Client *cptr); #define NAMES_ALL 1 /**< List all users in channel */ Index: ircd-ircdev/include/supported.h diff -u ircd-ircdev/include/supported.h:1.9 ircd-ircdev/include/supported.h:removed --- ircd-ircdev/include/supported.h:1.9 Thu Sep 1 04:25:42 2005 +++ ircd-ircdev/include/supported.h Tue Oct 25 02:52:53 2005 @@ -1,90 +0,0 @@ -/* - * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/supported.h - * - * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> - * Copyright (C) 1999 Perry Lorier - * - * 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 - * - * $Id: supported.h,v 1.9 2005/09/01 11:25:42 zolty Exp $ - * - */ -#ifndef INCLUDED_supported_h -#define INCLUDED_supported_h - -/* - * Description: This file has the featureset that ircu announces on connecting - * a client. It's in this .h because it's likely to be appended - * to frequently and s_user.h is included by basically everyone. - */ -#include "channel.h" -#include "ircd_defs.h" - -/* - * 'Features' supported by this ircd - */ -#define FEATURES1 \ - "AWAYLEN=%i" \ - " MAXCHANNELLEN=%i" \ - " CHANNELLEN=%i" \ - " MAXNICKLEN=%i" \ - " NICKLEN=%i" \ - " TOPICLEN=%i" - -#define FEATURES2 \ - "CHANMODES=%s" \ - " CHANTYPES=%s" \ - " PREFIX=%s" \ - " STATUSMSG=%s" \ - -#define FEATURES3 \ - "MAXCHANNELS=%i" \ - " MAXBANS=%i" \ - " MAXTARGETS=%i" \ - " MODES=%i" \ - " SILENCE=%i" \ - " WATCH=%i" - -#define FEATURES4 \ - "CNOTICE" \ - " CPRIVMSG" \ - " MAP" \ - " USERIP" \ - " WALLCHOPS" \ - " WALLVOICES" \ - " WHOX" - -#define FEATURES5 "CHARMAPPING=%s" \ - " NETWORK=%s" \ - " FNC" \ - " SAFELIST" - - -#define FEATURESVALUES1 AWAYLEN, CHANNELLEN, feature_int(FEAT_CHANNELLEN), NICKLEN, feature_int(FEAT_NICKLEN), TOPICLEN - -#if defined(DDB) || defined(SERVICES) -#define FEATURESVALUES2 "b,k,l,imnpstrRDd", feature_bool(FEAT_LOCAL_CHANNELS) ? "#&" : "#", "(qov).@+", ".@+" -#else -#define FEATURESVALUES2 "b,k,l,imnpstRDd", feature_bool(FEAT_LOCAL_CHANNELS) ? "#&" : "#", "(ov)@+", "@+" -#endif - -#define FEATURESVALUES3 feature_int(FEAT_MAXCHANNELSPERUSER), feature_int(FEAT_MAXBANS), \ - MAXTARGETS, MAXMODEPARAMS, feature_int(FEAT_MAXSILES), \ - feature_int(FEAT_MAXWATCHS) - -#define FEATURESVALUES5 "rfc1459", feature_str(FEAT_NETWORK) - - -#endif /* INCLUDED_supported_h */ Index: ircd-ircdev/include/whocmds.h diff -u ircd-ircdev/include/whocmds.h:1.5 ircd-ircdev/include/whocmds.h:removed --- ircd-ircdev/include/whocmds.h:1.5 Mon Jan 10 04:22:00 2005 +++ ircd-ircdev/include/whocmds.h Tue Oct 25 02:52:53 2005 @@ -1,114 +0,0 @@ -/* - * IRC-Dev IRCD - An advanced and innovative IRC Daemon, include/whocmds.h - * - * Copyright (C) 2002-2005 IRC-Dev Development Team <de...@ir...> - * Copyright (C) 1990 Jarkko Oikarinen - * - * 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 whocmds.h - * @brief Support functions for /WHO-like commands. - * @version $Id: whocmds.h,v 1.5 2005/01/10 12:22:00 zolty Exp $ - */ -#ifndef INCLUDED_whocmds_h -#define INCLUDED_whocmds_h - -struct Client; -struct Channel; - - -/* - * m_who() - * m_who with support routines rewritten by Nemesi, August 1997 - * - Alghoritm have been flattened (no more recursive) - * - Several bug fixes - * - Strong performance improvement - * - Added possibility to have specific fields in the output - * See readme.who for further details. - */ - -/* Macros used only in here by m_who and its support functions */ - -#define WHOSELECT_OPER 1 /**< Flag for /WHO: Show IRC operators. */ -#define WHOSELECT_EXTRA 2 /**< Flag for /WHO: Pull rank to see users. */ - -#define WHO_FIELD_QTY 1 /**< Display query type. */ -#define WHO_FIELD_CHA 2 /**< Show common channel name. */ -#define WHO_FIELD_UID 4 /**< Show username. */ -#define WHO_FIELD_NIP 8 /**< Show IP address. */ -#define WHO_FIELD_HOS 16 /**< Show hostname. */ -#define WHO_FIELD_SER 32 /**< Show server. */ -#define WHO_FIELD_NIC 64 /**< Show nickname. */ -#define WHO_FIELD_FLA 128 /**< Show flags (away, oper, chanop, etc). */ -#define WHO_FIELD_DIS 256 /**< Show hop count (distance). */ -#define WHO_FIELD_REN 512 /**< Show realname (info). */ -#define WHO_FIELD_IDL 1024 /**< Show idle time. */ -#if defined(UNDERNET) -#define WHO_FIELD_ACC 2048 /**< Show account name. */ -#endif - -/** Default fields for /WHO */ -#define WHO_FIELD_DEF ( WHO_FIELD_NIC | WHO_FIELD_UID | WHO_FIELD_HOS | WHO_FIELD_SER ) - -/** Is \a ac plainly visible to \a s? - * @param[in] s Client trying to see \a ac. - * @param[in] ac Client being looked at. - */ -#define IS_VISIBLE_USER(s,ac) ((s==ac) || (!IsInvisible(ac))) - -/** Can \a s see \a ac by using the flags in \a b? - * @param[in] s Client trying to see \a ac. - * @param[in] ac Client being looked at. - * @param[in] b Bitset of extra flags (options: WHOSELECT_EXTRA). - */ -#define SEE_LUSER(s, ac, b) (IS_VISIBLE_USER(s, ac) || \ - ((b & WHOSELECT_EXTRA) && MyConnect(ac) && \ - (HasPriv((s), PRIV_SHOW_INVIS) || \ - HasPriv((s), PRIV_SHOW_ALL_INVIS)))) - -/** Can \a s see \a ac by using the flags in \a b? - * @param[in] s Client trying to see \a ac. - * @param[in] ac Client being looked at. - * @param[in] b Bitset of extra flags (options: WHOSELECT_EXTRA). - */ -#define SEE_USER(s, ac, b) (SEE_LUSER(s, ac, b) || \ - ((b & WHOSELECT_EXTRA) && \ - HasPriv((s), PRIV_SHOW_ALL_INVIS))) - -/** Should we show more clients to \a sptr? - * @param[in] sptr Client listing other users. - * @param[in,out] counter Default count for clients. - */ -#define SHOW_MORE(sptr, counter) (HasPriv(sptr, PRIV_UNLIMIT_QUERY) || (!(counter-- < 0)) ) - -/** Can \a s see \a chptr? - * @param[in] s Client trying to see \a chptr. - * @param[in] chptr Channel being looked at. - * @param[in] b Bitset of extra flags (options: WHOSELECT_EXTRA). - */ -#define SEE_CHANNEL(s, chptr, b) (!SecretChannel(chptr) || ((b & WHOSELECT_EXTRA) && HasPriv((s), PRIV_SEE_CHAN))) - -/** Maximum number of lines to send in response to a /WHOIS. */ -#define MAX_WHOIS_LINES 50 - -/* - * Prototypes - */ -extern void do_who(struct Client* sptr, struct Client* acptr, struct Channel* repchan, - int fields, char* qrt); -extern int count_users(char* mask); - -#endif /* INCLUDED_whocmds_h */ Index: ircd-ircdev/ircd/Makefile.in diff -u ircd-ircdev/ircd/Makefile.in:1.28 ircd-ircdev/ircd/Makefile.in:1.29 --- ircd-ircdev/ircd/Makefile.in:1.28 Mon Oct 17 07:02:32 2005 +++ ircd-ircdev/ircd/Makefile.in Tue Oct 25 02:52:43 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.28 2005/10/17 14:02:32 zolty Exp $ +# $Id: Makefile.in,v 1.29 2005/10/25 09:52:43 zolty Exp $ #### Start of system configuration section. #### @@ -236,7 +236,6 @@ uping.c \ userload.c \ watch.c \ - whocmds.c \ whowas.c \ y.tab.c @@ -403,32 +402,29 @@ # 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_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//" + ../include/match.h ../include/msg.h ../include/ircd_alloc.h \ + ../include/ircd_events.h ../include/ircd_features.h \ + ../include/ircd_log.h ../include/ircd_string.h ../include/ircd_chattr.h \ + ../include/s_debug.h ../include/s_user.h ../include/send.h 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_defs.h ../include/ircd_features.h ../include/ircd_log.h \ + ../include/ircd_handler.h ../include/capab.h ../include/ddb.h \ + ../config.h ../include/client.h ../include/destruct_event.h \ + ../include/hash.h ../include/ircd.h ../include/struct.h \ + ../include/ircd_alloc.h ../include/ircd_chattr.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/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/struct.h ../include/sys.h \ - ../include/whowas.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" + ../include/s_bsd.h ../include/s_conf.h ../include/s_debug.h \ + ../include/s_misc.h ../include/s_user.h ../include/send.h \ + ../include/struct.h ../include/sys.h ../include/whowas.h 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 \ @@ -437,7 +433,6 @@ ../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 \ @@ -446,7 +441,6 @@ ../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 \ @@ -454,20 +448,16 @@ ../include/ircd_alloc.h ../include/ircd_chattr.h \ ../include/ircd_string.h ../include/match.h ../include/s_bsd.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 -# 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 \ @@ -478,18 +468,17 @@ ../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/struct.h \ - ../include/msg.h ../include/numnicks.h ../include/whocmds.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" + ../include/msg.h ../include/numnicks.h 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/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//" + ../include/ircd.h ../include/struct.h ../include/match.h \ + ../include/msg.h ../include/numeric.h ../include/random.h \ + ../include/send.h ../include/struct.h ../include/sys.h \ + ../include/watch.h 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 \ @@ -508,11 +497,9 @@ ../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 \ @@ -524,19 +511,16 @@ ../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 \ @@ -547,9 +531,9 @@ ../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/struct.h ../include/sys.h ../include/whowas.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" + ../include/s_misc.h ../include/s_stats.h ../include/s_user.h \ + ../include/send.h ../include/struct.h ../include/sys.h \ + ../include/whowas.h 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 \ @@ -558,7 +542,6 @@ ../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/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 \ @@ -569,7 +552,6 @@ ../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 \ @@ -578,7 +560,6 @@ ../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 \ @@ -590,31 +571,25 @@ ../include/s_bsd.h ../include/s_debug.h ../include/s_stats.h \ ../include/ircd_features.h ../include/send.h ../include/sys.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/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_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 \ @@ -625,11 +600,9 @@ ../include/numeric.h ../include/numnicks.h ../include/s_bsd.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_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 \ @@ -641,7 +614,6 @@ ../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 \ @@ -654,7 +626,6 @@ ../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 \ @@ -663,7 +634,6 @@ ../include/ircd_reply.h ../include/msg.h ../include/numeric.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 \ @@ -672,7 +642,6 @@ ../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 \ @@ -680,7 +649,6 @@ ../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 \ @@ -692,7 +660,6 @@ ../include/match.h ../include/msg.h ../include/numeric.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 \ @@ -700,7 +667,6 @@ ../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 \ @@ -711,14 +677,12 @@ ../include/ircd_chattr.h ../include/list.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/s_conf.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 \ @@ -729,13 +693,11 @@ ../include/msg.h ../include/numeric.h ../include/numnicks.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 \ @@ -745,15 +707,12 @@ ../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 -# 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 \ ../include/capab.h ../include/ircd.h ../include/struct.h \ ../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//" + ../include/numnicks.h ../include/send.h ../include/version.h m_destruct.o: m_destruct.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 \ @@ -762,7 +721,6 @@ ../include/struct.h ../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/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_desynch.o: m_desynch.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 \ @@ -771,7 +729,6 @@ ../include/ircd_string.h ../include/ircd_chattr.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/s_bsd.h \ ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_die.o: m_die.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 \ @@ -779,7 +736,6 @@ ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/msg.h ../include/numeric.h \ ../include/numnicks.h ../include/s_bsd.h ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_endburst.o: m_endburst.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 \ @@ -788,7 +744,6 @@ ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/msg.h ../include/numeric.h \ ../include/numnicks.h ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_error.o: m_error.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 \ @@ -797,7 +752,6 @@ ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/numeric.h ../include/numnicks.h \ ../include/s_debug.h ../include/s_misc.h ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_get.o: m_get.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 \ @@ -806,7 +760,6 @@ ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/numeric.h ../include/numnicks.h \ ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_gline.o: m_gline.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 \ @@ -816,7 +769,6 @@ ../include/ircd_chattr.h ../include/match.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/s_conf.h \ ../include/client.h ../include/s_misc.h ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_help.o: m_help.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 \ @@ -824,7 +776,6 @@ ../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/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_info.o: m_info.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 \ @@ -834,7 +785,6 @@ ../include/numnicks.h ../include/s_misc.h ../include/s_user.h \ ../include/s_conf.h ../include/client.h ../include/send.h \ ../include/version.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_invite.o: m_invite.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 \ @@ -844,7 +794,6 @@ ../include/ircd_chattr.h ../include/list.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/s_user.h \ ../include/send.h ../include/struct.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_ison.o: m_ison.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 \ @@ -852,17 +801,16 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/msgq.h ../include/numeric.h \ ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_join.o: m_join.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/gline.h \ - ../include/hash.h ../include/ircd.h ../include/struct.h \ - ../include/ircd_chattr.h ../include/ircd_features.h \ - ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ - ../include/msg.h ../include/numeric.h ../include/numnicks.h \ - ../include/s_debug.h ../include/s_user.h ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" + ../include/ircd_handler.h ../include/capab.h ../include/ddb.h \ + ../config.h ../include/client.h ../include/gline.h ../include/hash.h \ + ../include/ircd.h ../include/struct.h ../include/ircd_chattr.h \ + ../include/ircd_features.h ../include/ircd_log.h \ + ../include/ircd_reply.h ../include/ircd_string.h ../include/msg.h \ + ../include/numeric.h ../include/numnicks.h ../include/s_debug.h \ + ../include/s_user.h ../include/send.h ../include/sys.h m_jupe.o: m_jupe.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 \ @@ -872,7 +820,6 @@ ../include/ircd_chattr.h ../include/match.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/s_conf.h \ ../include/client.h ../include/s_misc.h ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_kick.o: m_kick.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 \ @@ -881,7 +828,6 @@ ../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/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_kill.o: m_kill.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 \ @@ -891,7 +837,6 @@ ../include/ircd_string.h ../include/ircd_chattr.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/s_misc.h \ ../include/send.h ../include/whowas.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_links.o: m_links.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 \ @@ -901,7 +846,6 @@ ../include/ircd_chattr.h ../include/match.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/s_user.h \ ../include/send.h ../include/struct.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_list.o: m_list.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 \ @@ -911,7 +855,6 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/msg.h ../include/numeric.h ../include/numnicks.h \ ../include/s_bsd.h ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_lusers.o: m_lusers.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 \ @@ -922,7 +865,6 @@ ../include/numnicks.h ../include/querycmds.h ../include/ircd_features.h \ ../include/s_misc.h ../include/s_serv.h ../include/s_user.h \ ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_map.o: m_map.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 \ @@ -933,7 +875,6 @@ ../include/match.h ../include/msg.h ../include/numeric.h \ ../include/s_user.h ../include/s_serv.h ../include/send.h \ ../include/querycmds.h ../include/ircd_features.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_mode.o: m_mode.c ../config.h ../include/handlers.h ../include/channel.h \ ../include/ircd_defs.h ../include/res.h ../include/client.h \ ../include/dbuf.h ../include/msgq.h ../include/ircd_events.h \ @@ -943,7 +884,6 @@ ../include/ircd_chattr.h ../include/msg.h ../include/numeric.h \ ../include/numnicks.h ../include/s_conf.h ../include/client.h \ ../include/s_debug.h ../include/s_user.h ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_motd.o: m_motd.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 \ @@ -953,7 +893,6 @@ ../include/msg.h ../include/numeric.h ../include/numnicks.h \ ../include/s_conf.h ../include/client.h ../include/class.h \ ../include/s_user.h ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_names.o: m_names.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 \ @@ -962,7 +901,6 @@ ../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_nick.o: m_nick.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 \ @@ -973,7 +911,6 @@ ../include/msg.h ../include/numeric.h ../include/numnicks.h \ ../include/s_debug.h ../include/s_misc.h ../include/s_user.h \ ../include/send.h ../include/sys.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_notice.o: m_notice.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 \ @@ -981,7 +918,6 @@ ../include/ircd_relay.h ../include/ircd_reply.h \ ../include/ircd_string.h ../include/match.h ../include/msg.h \ ../include/numeric.h ../include/send.h ../include/handlers.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_oper.o: m_oper.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 \ @@ -993,7 +929,6 @@ ../include/numnicks.h ../include/querycmds.h ../include/ircd_features.h \ ../include/s_conf.h ../include/client.h ../include/s_debug.h \ ../include/s_user.h ../include/s_misc.h ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_opmode.o: m_opmode.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 \ @@ -1003,7 +938,6 @@ ../include/ircd_chattr.h ../include/msg.h ../include/numeric.h \ ../include/numnicks.h ../include/send.h ../include/s_conf.h \ ../include/client.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_part.o: m_part.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 \ @@ -1012,13 +946,11 @@ ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/numeric.h ../include/numnicks.h \ ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_pass.o: m_pass.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/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_ping.o: m_ping.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 \ @@ -1027,7 +959,6 @@ ../include/struct.h ../include/msg.h ../include/numeric.h \ ../include/numnicks.h ../include/opercmds.h ../include/s_debug.h \ ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_pong.o: m_pong.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 \ @@ -1036,7 +967,6 @@ ../include/ircd_chattr.h ../include/msg.h ../include/numeric.h \ ../include/numnicks.h ../include/opercmds.h ../include/s_user.h \ ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_privmsg.o: m_privmsg.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 \ @@ -1045,7 +975,6 @@ ../include/ircd_log.h ../include/ircd_relay.h ../include/ircd_reply.h \ ../include/ircd_string.h ../include/match.h ../include/msg.h \ ../include/numeric.h ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_privs.o: m_privs.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 \ @@ -1053,7 +982,6 @@ ../include/struct.h ../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/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_proto.o: m_proto.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 \ @@ -1061,9 +989,7 @@ ../include/ircd_log.h ../include/ircd_alloc.h ../include/ircd_chattr.h \ ../include/ircd_reply.h ../include/ircd_string.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/s_debug.h \ - ../include/s_misc.h ../include/send.h ../include/supported.h \ - ../include/channel.h ../include/version.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" + ../include/s_misc.h ../include/send.h ../include/version.h m_pseudo.o: m_pseudo.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 \ @@ -1074,7 +1000,6 @@ ../include/ircd_snprintf.h ../include/msg.h ../include/numeric.h \ ../include/numnicks.h ../include/s_conf.h ../include/client.h \ ../include/s_user.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_quit.o: m_quit.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 \ @@ -1082,7 +1007,6 @@ ../include/struct.h ../include/ircd_log.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/struct.h ../include/s_misc.h \ ../include/ircd_reply.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_rehash.o: m_rehash.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 \ @@ -1090,7 +1014,6 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/motd.h ../include/numeric.h \ ../include/s_conf.h ../include/client.h ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_reset.o: m_reset.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 \ @@ -1099,7 +1022,6 @@ ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/numeric.h ../include/numnicks.h \ ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_restart.o: m_restart.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 \ @@ -1107,7 +1029,6 @@ ../include/ircd_log.h ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/numeric.h ../include/numnicks.h \ ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_rping.o: m_rping.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 \ @@ -1116,7 +1037,6 @@ ../include/ircd_string.h ../include/ircd_chattr.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/opercmds.h \ ../include/s_user.h ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_rpong.o: m_rpong.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 \ @@ -1125,7 +1045,6 @@ ../include/ircd_string.h ../include/ircd_chattr.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/opercmds.h \ ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_server.o: m_server.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 \ @@ -1138,7 +1057,6 @@ ../include/s_bsd.h ../include/s_conf.h ../include/client.h \ ../include/s_debug.h ../include/s_misc.h ../include/s_serv.h \ ../include/send.h ../include/userload.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_set.o: m_set.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 \ @@ -1147,7 +1065,6 @@ ../include/ircd_reply.h ../include/ircd_string.h \ ../include/ircd_chattr.h ../include/numeric.h ../include/numnicks.h \ ../include/send.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_settime.o: m_settime.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 \ @@ -1157,7 +1074,6 @@ ../include/ircd_string.h ../include/ircd_chattr.h ../include/list.h \ ../include/msg.h ../include/numeric.h ../include/numnicks.h \ ../include/s_user.h ../include/send.h ../include/struct.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_silence.o: m_silence.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 \ @@ -1168,7 +1084,6 @@ ../include/ircd_chattr.h ../include/list.h ../include/msg.h \ ../include/numeric.h ../include/numnicks.h ../include/s_user.h \ ../include/send.h ../include/struct.h -# 1 "/usr/home/zoltan/ircd-ircdev/ircd//" m_squit.o: m_squit.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 \ @@ -1177,7 ... [truncated message content] |