diff -u eggdrop-1.6.19/debian/watch eggdrop-1.6.19/debian/watch --- eggdrop-1.6.19/debian/watch +++ eggdrop-1.6.19/debian/watch @@ -1,3 +1,3 @@ -version=2 +version=3 ftp://ftp.eggheads.org/pub/eggdrop/source/1.6/eggdrop(.*)\.tar\.gz debian uupdate diff -u eggdrop-1.6.19/debian/changelog eggdrop-1.6.19/debian/changelog --- eggdrop-1.6.19/debian/changelog +++ eggdrop-1.6.19/debian/changelog @@ -1,3 +1,15 @@ +eggdrop (1.6.19-1ubuntu1) intrepid; urgency=low + + * Merge from debian unstable (LP: #236620), remaining changes: + - debian/rules: Added check for SSL. + - debian/control: Added libssl-dev, updated Maintainer field + * Update SSL patch + - Droped debian/patches/eggdrop-1.6.18-ssl.patch + - Added debian/patches/eggdrop-1.6.19-ssl.patch + (http://www.egghelp.org/files/patches/eggdrop-1.6.19-ssl-rootie.patch.gz) + + -- Andres Rodriguez Mon, 18 Aug 2008 00:26:01 -0500 + eggdrop (1.6.19-1) unstable; urgency=low * New upstream release. @@ -19,6 +31,16 @@ -- Guilherme de S. Pastore Fri, 30 May 2008 16:20:00 -0300 +eggdrop (1.6.18-1.1ubuntu1) gutsy; urgency=low + + * Merge from Debian unstable (LP: #132222). Remaining Ubuntu changes: + - Added SSL patch from + http://www.egghelp.org/files/patches/eggdrop-1.6.18-ssl.patch.gz + debian/rules: Added check for SSL. + debian/control: Added libssl-dev, updated Maintainer field + + -- Cesare Tirabassi Mon, 13 Aug 2007 17:34:10 +0200 + eggdrop (1.6.18-1.1) unstable; urgency=high * Non-maintainer upload by secure testing team. @@ -26,6 +48,15 @@ -- Nico Golde Sun, 12 Aug 2007 16:42:31 +0200 +eggdrop (1.6.18-1ubuntu1) gutsy; urgency=low + + * Added SSL patch from + http://www.egghelp.org/files/patches/eggdrop-1.6.18-ssl.patch.gz + - debian/rules: Added check for SSL. + - debian/control: Added libssl-dev, updated Maintainer field + + -- Kees Cook Wed, 02 May 2007 11:59:09 -0700 + eggdrop (1.6.18-1) unstable; urgency=low * New upstream release (Closes: #369678). @@ -290,7 +321,7 @@ machine-independent data is in /usr/share/eggdrop -- Ian Eure Fri, 17 Nov 2000 11:43:49 -0800 - + eggdrop (1.3.28-2) unstable; urgency=low * Erm, let's try that again .. should actually work this time. @@ -382 +412,0 @@ - diff -u eggdrop-1.6.19/debian/control eggdrop-1.6.19/debian/control --- eggdrop-1.6.19/debian/control +++ eggdrop-1.6.19/debian/control @@ -1,8 +1,9 @@ Source: eggdrop Section: net -Build-Depends: tcl8.5-dev, libz-dev, debhelper (>> 4.1.0), cdbs Priority: extra -Maintainer: Guilherme de S. Pastore +Maintainer: Ubuntu MOTU Developers +XSBC-Original-Maintainer: Guilherme de S. Pastore +Build-Depends: tcl8.5-dev, libz-dev, debhelper (>> 4.1.0), cdbs, libssl-dev Standards-Version: 3.7.3 Homepage: http://www.eggheads.org/ diff -u eggdrop-1.6.19/debian/rules eggdrop-1.6.19/debian/rules --- eggdrop-1.6.19/debian/rules +++ eggdrop-1.6.19/debian/rules @@ -8,6 +8,7 @@ DEB_CONFIGURE_SCRIPT_ENV := DEB_INSTALL_MANPAGES_eggdrop-data := doc/man1/eggdrop.1 DEB_MAKE_INSTALL_TARGET := install prefix=$(DEB_DESTDIR)/usr +DEB_CONFIGURE_USER_FLAGS := --with-ssl configure/eggdrop:: $(MAKE) config only in patch2: unchanged: --- eggdrop-1.6.19.orig/debian/patches/eggdrop-1.6.19-ssl.patch +++ eggdrop-1.6.19/debian/patches/eggdrop-1.6.19-ssl.patch @@ -0,0 +1,1239 @@ +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/aclocal.m4 eggdrop-1.6.19-1ubuntu1.new/aclocal.m4 +--- eggdrop-1.6.19-1ubuntu1/aclocal.m4 2008-05-31 05:51:33.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/aclocal.m4 2008-06-24 17:29:06.000000000 -0500 +@@ -37,6 +37,64 @@ + ]) + + ++dnl EGG_SSL_CRAP() ++dnl ++AC_DEFUN(EGG_SSL_CRAP, [dnl ++#ssl checks ++AC_MSG_CHECKING(whether to include SSL support) ++AC_ARG_WITH(ssl, ++[ --with-ssl[=PATH] Include SSL support (DIR is OpenSSL's install dir).], ++[ ++ case "$withval" in ++ no) ++ AC_MSG_RESULT(no) ;; ++ yes) ++ AC_MSG_RESULT(yes) ++ AC_CHECK_LIB(ssl,SSL_accept,[AC_DEFINE(EGG_SSL_EXT) ++ SSL_LIBS="-lssl -lcrypto"],[AC_MSG_ERROR([You requested SSL support, but OpenSSL was not found. Please supply a pathname to OpenSSL])],-lcrypto) ++ ;; ++ *) ++dnl A whole whack of possible places where this might be ++ test -f $withval/openssl/ssl.h && SSL_INCLUDE="$withval" ++ test -f $withval/include/openssl/ssl.h && SSL_INCLUDE="$withval/include" ++ ++ test -f $withval/lib/libssl.a && SSL_LIB="$withval/lib" ++ test -f $withval/lib/ssl/libssl.a && SSL_LIB="$withval/lib/ssl" ++ test -f $withval/lib/openssl/libssl.a && SSL_LIB="$withval/lib/openssl/ssl" ++ test -f $withval/libssl.a && SSL_LIB="$withval" ++ test -f $withval/ssl/libssl.a && SSL_LIB="$withval/ssl" ++ test -f $withval/openssl/libssl.a && SSL_LIB="$withval/openssl" ++ ++ test -f $withval/lib/libcrypto.a && CRYPTO_LIB="$withval/lib" ++ test -f $withval/lib/ssl/libcrypto.a && CRYPTO_LIB="$withval/lib/ssl" ++ test -f $withval/lib/openssl/libcrypto.a && CRYPTO_LIB="$withval/lib/openssl/ssl" ++ test -f $withval/libcrypto.a && CRYPTO_LIB="$withval" ++ test -f $withval/ssl/libcrypto.a && CRYPTO_LIB="$withval/ssl" ++ test -f $withval/openssl/libcrypto.a && CRYPTO_LIB="$withval/openssl" ++ ++ if test -n "$SSL_INCLUDE" && test -n "$SSL_LIB" && test -n "$CRYPTO_LIB"; then ++ SSL_LIBS="-lssl -lcrypto -L$SSL_LIB -L$CRYPTO_LIB"; ++ AC_DEFINE(EGG_SSL_EXT) ++ AC_MSG_RESULT(yes) ++ else ++ AC_MSG_RESULT(no) ++ AC_MSG_ERROR([You requested SSL support, but OpenSSL was not found. Please supply a pathname to OpenSSL]) ++ fi ;; ++ esac ++],[ ++ AC_MSG_RESULT(will try to find) ++ AC_CHECK_LIB(ssl,SSL_accept,[AC_DEFINE(EGG_SSL_EXT) ++ SSL_LIBS="-lssl -lcrypto"],[AC_MSG_ERROR([OpenSSL was not found. Please supply a pathname to OpenSSL])],-lcrypto) ++ AC_CHECK_HEADERS("openssl/ssl.h",,[AC_MSG_ERROR([OpenSSL was not found. Please supply a pathname to OpenSSL])],) ++ ++ AC_SUBST(SSL_LIBS)dnl ++ AC_SUBST(SSL_INCLUDE)dnl ++]) ++ ++#end of ssl checks ++])dnl ++ ++ + dnl EGG_MSG_CONFIGURE_END() + dnl + AC_DEFUN([EGG_MSG_CONFIGURE_END], +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/config.h.in eggdrop-1.6.19-1ubuntu1.new/config.h.in +--- eggdrop-1.6.19-1ubuntu1/config.h.in 2008-05-31 05:51:33.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/config.h.in 2008-06-24 17:29:06.000000000 -0500 +@@ -33,6 +33,9 @@ + /* Define to 1 if you have the `clock' function. */ + #undef HAVE_CLOCK + ++/* Defines ssl mode */ ++#undef EGG_SSL_EXT ++ + /* Define to 1 if you have the header file, and it defines `DIR'. + */ + #undef HAVE_DIRENT_H +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/configure eggdrop-1.6.19-1ubuntu1.new/configure +--- eggdrop-1.6.19-1ubuntu1/configure 2008-05-31 05:51:33.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/configure 2008-06-24 17:29:06.000000000 -0500 +@@ -315,7 +315,7 @@ + # include + #endif" + +-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS egg_ac_parameters CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SET_MAKE RANLIB ac_ct_RANLIB LN_S HEAD_1 STRIP AWK BASENAME UNAME DEFAULT_MAKE MOD_EXT MODULE_XLIBS MOD_LD MOD_CC MOD_STRIP SHLIB_LD SHLIB_CC SHLIB_STRIP EGGEXEC TCLLIB TCLLIBFN TCLINC TCLINCFN TCL_REQS TCL_LIBS EGGVERSION DEST MOD_UPDIR LIBOBJS LTLIBOBJS' ++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS egg_ac_parameters CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SET_MAKE RANLIB ac_ct_RANLIB LN_S HEAD_1 STRIP AWK BASENAME UNAME DEFAULT_MAKE MOD_EXT MODULE_XLIBS MOD_LD MOD_CC MOD_STRIP SHLIB_LD SHLIB_CC SHLIB_STRIP EGGEXEC TCLLIB TCLLIBFN TCLINC TCLINCFN TCL_REQS TCL_LIBS SSL_LIBS SSL_INCLUDE EGGVERSION DEST MOD_UPDIR LIBOBJS LTLIBOBJS' + ac_subst_files='' + + # Initialize some variables set by options. +@@ -856,6 +856,7 @@ + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-tcllib=PATH full path to Tcl library + --with-tclinc=PATH full path to Tcl header ++ --with-ssl=PATH Include SSL support (DIR is OpenSSL's install dir). + + Some influential environment variables: + CC C compiler command +@@ -8471,6 +8472,374 @@ + rm -f conftest* + + ++#ssl checks ++echo "$as_me:$LINENO: checking whether to include SSL support" >&5 ++echo $ECHO_N "checking whether to include SSL support... $ECHO_C" >&6 ++ ++# Check whether --with-ssl or --without-ssl was given. ++if test "${with_ssl+set}" = set; then ++ withval="$with_ssl" ++ ++ case "$withval" in ++ no) ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ;; ++ yes) ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ echo "$as_me:$LINENO: checking for SSL_accept in -lssl" >&5 ++echo $ECHO_N "checking for SSL_accept in -lssl... $ECHO_C" >&6 ++if test "${ac_cv_lib_ssl_SSL_accept+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lssl -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 gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char SSL_accept (); ++int ++main () ++{ ++SSL_accept (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&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); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_ssl_SSL_accept=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_ssl_SSL_accept=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_accept" >&5 ++echo "${ECHO_T}$ac_cv_lib_ssl_SSL_accept" >&6 ++if test $ac_cv_lib_ssl_SSL_accept = yes; then ++ cat >>confdefs.h <<\_ACEOF ++#define EGG_SSL_EXT 1 ++_ACEOF ++ ++ SSL_LIBS="-lssl -lcrypto" ++else ++ { { echo "$as_me:$LINENO: error: You requested SSL support, but OpenSSL was not found. Please supply a pathname to OpenSSL" >&5 ++echo "$as_me: error: You requested SSL support, but OpenSSL was not found. Please supply a pathname to OpenSSL" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++ ;; ++ *) ++ test -f $withval/openssl/ssl.h && SSL_INCLUDE="$withval" ++ test -f $withval/include/openssl/ssl.h && SSL_INCLUDE="$withval/include" ++ ++ test -f $withval/lib/libssl.a && SSL_LIB="$withval/lib" ++ test -f $withval/lib/ssl/libssl.a && SSL_LIB="$withval/lib/ssl" ++ test -f $withval/lib/openssl/libssl.a && SSL_LIB="$withval/lib/openssl/ssl" ++ test -f $withval/libssl.a && SSL_LIB="$withval" ++ test -f $withval/ssl/libssl.a && SSL_LIB="$withval/ssl" ++ test -f $withval/openssl/libssl.a && SSL_LIB="$withval/openssl" ++ ++ test -f $withval/lib/libcrypto.a && CRYPTO_LIB="$withval/lib" ++ test -f $withval/lib/ssl/libcrypto.a && CRYPTO_LIB="$withval/lib/ssl" ++ test -f $withval/lib/openssl/libcrypto.a && CRYPTO_LIB="$withval/lib/openssl/ssl" ++ test -f $withval/libcrypto.a && CRYPTO_LIB="$withval" ++ test -f $withval/ssl/libcrypto.a && CRYPTO_LIB="$withval/ssl" ++ test -f $withval/openssl/libcrypto.a && CRYPTO_LIB="$withval/openssl" ++ ++ if test -n "$SSL_INCLUDE" && test -n "$SSL_LIB" && test -n "$CRYPTO_LIB"; then ++ SSL_LIBS="-lssl -lcrypto -L$SSL_LIB -L$CRYPTO_LIB"; ++ cat >>confdefs.h <<\_ACEOF ++#define EGG_SSL_EXT 1 ++_ACEOF ++ ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ { { echo "$as_me:$LINENO: error: You requested SSL support, but OpenSSL was not found. Please supply a pathname to OpenSSL" >&5 ++echo "$as_me: error: You requested SSL support, but OpenSSL was not found. Please supply a pathname to OpenSSL" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ;; ++ esac ++ ++else ++ ++ echo "$as_me:$LINENO: result: will try to find" >&5 ++echo "${ECHO_T}will try to find" >&6 ++ echo "$as_me:$LINENO: checking for SSL_accept in -lssl" >&5 ++echo $ECHO_N "checking for SSL_accept in -lssl... $ECHO_C" >&6 ++if test "${ac_cv_lib_ssl_SSL_accept+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lssl -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 gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char SSL_accept (); ++int ++main () ++{ ++SSL_accept (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&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); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_ssl_SSL_accept=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_ssl_SSL_accept=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_accept" >&5 ++echo "${ECHO_T}$ac_cv_lib_ssl_SSL_accept" >&6 ++if test $ac_cv_lib_ssl_SSL_accept = yes; then ++ cat >>confdefs.h <<\_ACEOF ++#define EGG_SSL_EXT 1 ++_ACEOF ++ ++ SSL_LIBS="-lssl -lcrypto" ++else ++ { { echo "$as_me:$LINENO: error: OpenSSL was not found. Please supply a pathname to OpenSSL" >&5 ++echo "$as_me: error: OpenSSL was not found. Please supply a pathname to OpenSSL" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++ ++for ac_header in "openssl/ssl.h" ++do ++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ++if eval "test \"\${$as_ac_Header+set}\" = set"; then ++ echo "$as_me:$LINENO: checking for $ac_header" >&5 ++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_Header+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&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 { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_header_compiler=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_header_compiler=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ++echo "${ECHO_T}$ac_header_compiler" >&6 ++ ++# Is the header present? ++echo "$as_me:$LINENO: checking $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 { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 ++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ ac_header_preproc=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_header_preproc=no ++fi ++rm -f conftest.err conftest.$ac_ext ++echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 ++echo "${ECHO_T}$ac_header_preproc" >&6 ++ ++# So? What about this header? ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) ++ { echo "$as_me:$LINENO: WARNING: $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 bugs@eggheads.org ## ++## -------------------------------- ## ++_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 eval "test \"\${$as_ac_Header+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ eval "$as_ac_Header=\$ac_header_preproc" ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&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 ++ ++else ++ { { echo "$as_me:$LINENO: error: OpenSSL was not found. Please supply a pathname to OpenSSL" >&5 ++echo "$as_me: error: OpenSSL was not found. Please supply a pathname to OpenSSL" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++done ++ ++ ++ ++fi; ++ ++#end of ssl checks ++ ++ + + for ac_func in vprintf + do +@@ -10827,6 +11196,8 @@ + s,@TCLINCFN@,$TCLINCFN,;t t + s,@TCL_REQS@,$TCL_REQS,;t t + s,@TCL_LIBS@,$TCL_LIBS,;t t ++s,@SSL_LIBS@,$SSL_LIBS,;t t ++s,@SSL_INCLUDE@,$SSL_INCLUDE,;t t + s,@EGGVERSION@,$EGGVERSION,;t t + s,@DEST@,$DEST,;t t + s,@MOD_UPDIR@,$MOD_UPDIR,;t t +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/configure.ac eggdrop-1.6.19-1ubuntu1.new/configure.ac +--- eggdrop-1.6.19-1ubuntu1/configure.ac 2008-05-31 05:51:33.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/configure.ac 2008-06-24 17:29:06.000000000 -0500 +@@ -150,6 +150,7 @@ + EGG_TCL_LIB_REQS + EGG_TCL_LUSH + ++EGG_SSL_CRAP + + # Substitute Makefile variables. + EGG_SUBST_EGGVERSION +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/Makefile.in eggdrop-1.6.19-1ubuntu1.new/Makefile.in +--- eggdrop-1.6.19-1ubuntu1/Makefile.in 2008-05-31 05:51:33.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/Makefile.in 2008-06-24 17:29:06.000000000 -0500 +@@ -57,6 +57,8 @@ + RANLIB = @RANLIB@ + MOD_EXT = @MOD_EXT@ + XREQS = @TCL_REQS@ ++XSSL_LIBS = @SSL_LIBS@ ++XSSL_INCLUDE = @SSL_INCLUDE@ + TCLLIB = @TCLLIB@ + TCLLIBFN = @TCLLIBFN@ + +@@ -89,7 +91,8 @@ + MAKE_MODEGG = $(MAKE) 'MAKE=$(MAKE)' 'CC=$(MOD_CC)' 'LD=$(MOD_LD)' \ + 'STRIP=$(MOD_STRIP)' 'RANLIB=$(RANLIB)' 'CFLGS=$(CFLGS)' \ + 'TCLLIB=$(TCLLIB)' 'TCLLIBFN=$(TCLLIBFN)' 'XREQS=$(XREQS)' \ +-'XLIBS=$(XLIBS)' 'EGGEXEC=$(EGGEXEC)' 'EGGBUILD=(standard build)' 'MODOBJS=' ++'XSSL_LIBS=$(XSSL_LIBS)' 'XLIBS=$(XLIBS)' 'EGGEXEC=$(EGGEXEC)' \ ++'XSSL_INCLUDE=$(XSSL_INCLUDE)' 'EGGBUILD=' 'MODOBJS=' + + MAKE_MODULES = $(MAKE) 'MAKE=$(MAKE)' 'CC=$(SHLIB_CC)' 'LD=$(SHLIB_LD)' \ + 'STRIP=$(SHLIB_STRIP)' 'CFLGS=$(CFLGS)' 'XLIBS=$(XLIBS)' 'MOD_EXT=$(MOD_EXT)' \ +@@ -99,12 +102,13 @@ + 'STRIP=$(STRIP)' 'RANLIB=$(RANLIB)' 'CFLGS=$(CFLGS) -DSTATIC' \ + 'TCLLIB=$(TCLLIB)' 'TCLLIBFN=$(TCLLIBFN)' 'XREQS=$(XREQS)' \ + 'XLIBS=$(XLIBS)' 'EGGEXEC=$(EGGEXEC)' 'EGGBUILD=(static version)' \ +-'MODOBJS=mod/*.o' ++'XSSL_INCLUDE=$(XSSL_INCLUDE)' 'XSSL_LIBS=$(XSSL_LIBS)' 'MODOBJS=mod/*.o' + + MAKE_DEBEGG = $(MAKE) 'MAKE=$(MAKE)' 'CC=$(MOD_CC)' 'LD=$(MOD_LD) -g' \ + 'STRIP=touch' 'RANLIB=$(RANLIB)' 'CFLGS=-g3 $(DEBCFLAGS) $(CFLGS)' \ + 'TCLLIB=$(TCLLIB)' 'TCLLIBFN=$(TCLLIBFN)' 'XREQS=$(XREQS)' \ +-'XLIBS=$(XLIBS)' 'EGGEXEC=$(EGGEXEC)' 'EGGBUILD=(debug version)' 'MODOBJS=' ++'XSSL_LIBS=$(XSSL_LIBS)' 'XLIBS=$(XLIBS)' 'EGGEXEC=$(EGGEXEC)' \ ++'XSSL_INCLUDE=$(XSSL_INCLUDE)' 'EGGBUILD=(debug version)' 'MODOBJS=' + + MAKE_DEBMODULES = $(MAKE) 'MAKE=$(MAKE)' 'CC=$(SHLIB_CC)' 'LD=$(SHLIB_LD)' \ + 'XLIBS=$(XLIBS)' 'STRIP=touch' 'CFLGS=-g3 $(DEBCFLAGS) $(CFLGS)' \ +@@ -113,7 +117,8 @@ + MAKE_SDEBUG = $(MAKE) 'MAKE=$(MAKE)' 'CC=$(CC)' 'LD=$(LD) -g' \ + 'STRIP=touch' 'RANLIB=$(RANLIB)' 'CFLGS=-g3 $(DEBCFLAGS) -DSTATIC $(CFLGS)' \ + 'TCLLIB=$(TCLLIB)' 'TCLLIBFN=$(TCLLIBFN)' 'XREQS=$(XREQS)' 'XLIBS=$(XLIBS)' \ +-'EGGEXEC=$(EGGEXEC)' 'EGGBUILD=(static debug version)' 'MODOBJS=mod/*.o' ++'XSSL_INCLUDE=$(XSSL_INCLUDE)' 'XSSL_LIBS=$(XSSL_LIBS)' 'EGGEXEC=$(EGGEXEC)' \ ++'EGGBUILD=(static and debug version)' 'MODOBJS=mod/*.o' + + MAKE_DEPEND = $(MAKE) 'MAKE=$(MAKE)' 'CC=$(CC)' + +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/dcc.c eggdrop-1.6.19-1ubuntu1.new/src/dcc.c +--- eggdrop-1.6.19-1ubuntu1/src/dcc.c 2008-05-31 05:51:35.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/dcc.c 2008-06-24 17:29:06.000000000 -0500 +@@ -32,7 +32,11 @@ + #include "tandem.h" + + /* Includes for botnet md5 challenge/response code */ ++#ifndef EGG_SSL_EXT + #include "md5/md5.h" ++#else ++#include "openssl/md5.h" ++#endif + + extern struct userrec *userlist; + extern struct chanset_t *chanset; +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/dccutil.c eggdrop-1.6.19-1ubuntu1.new/src/dccutil.c +--- eggdrop-1.6.19-1ubuntu1/src/dccutil.c 2008-05-31 05:51:35.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/dccutil.c 2008-06-24 17:29:06.000000000 -0500 +@@ -33,6 +33,7 @@ + #include "chan.h" + #include "modules.h" + #include "tandem.h" ++#include "net.h" + + extern struct dcc_t *dcc; + extern int dcc_total, max_dcc, dcc_flood_thr, backgrd, copy_to_tmp, MAXSOCKS; +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/eggdrop.h eggdrop-1.6.19-1ubuntu1.new/src/eggdrop.h +--- eggdrop-1.6.19-1ubuntu1/src/eggdrop.h 2008-05-31 05:51:35.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/eggdrop.h 2008-06-24 17:29:06.000000000 -0500 +@@ -616,17 +616,6 @@ + #define HELP_TEXT 2 + #define HELP_IRC 16 + +-/* This is used by the net module to keep track of sockets and what's +- * queued on them +- */ +-typedef struct { +- int sock; +- short flags; +- char *inbuf; +- char *outbuf; +- unsigned long outbuflen; /* Outbuf could be binary data */ +- unsigned long inbuflen; /* Inbuf could be binary data */ +-} sock_list; + + enum { + EGG_OPTION_SET = 1, /* Set option(s). */ +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/main.c eggdrop-1.6.19-1ubuntu1.new/src/main.c +--- eggdrop-1.6.19-1ubuntu1/src/main.c 2008-06-24 17:28:38.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/main.c 2008-06-24 17:29:06.000000000 -0500 +@@ -161,6 +161,9 @@ + int cx_ptr = 0; + #endif + ++#ifdef EGG_SSL_EXT ++int clean_net(); ++#endif + + void fatal(const char *s, int recoverable) + { +@@ -171,6 +174,9 @@ + for (i = 0; i < dcc_total; i++) + if (dcc[i].sock >= 0) + killsock(dcc[i].sock); ++ #ifdef EGG_SSL_EXT ++ clean_net(); ++ #endif + unlink(pid_file); + if (!recoverable) { + bg_send_quit(BG_ABORT); +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/Makefile.in eggdrop-1.6.19-1ubuntu1.new/src/Makefile.in +--- eggdrop-1.6.19-1ubuntu1/src/Makefile.in 2008-05-31 05:51:35.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/Makefile.in 2008-06-24 17:29:06.000000000 -0500 +@@ -11,6 +11,8 @@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++XSSL_LIBS = @SSL_LIBS@ ++XSSL_INCLUDE = @SSL_INCLUDE@ + + CC = @CC@ + LD = @CC@ +@@ -37,7 +39,7 @@ + @echo "Linking eggdrop $(EGGBUILD)." + @echo "" + @touch mod/mod.xlibs +- $(LD) -o ../$(EGGEXEC) $(eggdrop_objs) $(MODOBJS) $(XLIBS) md5/md5c.o compat/*.o `cat mod/mod.xlibs` ++ $(LD) -o ../$(EGGEXEC) $(eggdrop_objs) $(MODOBJS) $(XLIBS) md5/md5c.o compat/*.o `cat mod/mod.xlibs` $(XSSL_LIBS) $(XSSL_INCLUDE) + $(STRIP) ../$(EGGEXEC) + @echo "" + @echo "Successful compile: $(EGGEXEC)" +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/md5/md5c.c eggdrop-1.6.19-1ubuntu1.new/src/md5/md5c.c +--- eggdrop-1.6.19-1ubuntu1/src/md5/md5c.c 2008-05-31 05:51:36.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/md5/md5c.c 2008-06-24 17:29:06.000000000 -0500 +@@ -17,9 +17,23 @@ + + #include + ++#ifndef EGG_SSL_EXT + #include "md5.h" ++#else ++#include "openssl/md5.h" ++#endif ++ + #include "compat/compat.h" + ++typedef unsigned long MD5_u32plus; ++ ++typedef struct { ++ MD5_u32plus lo, hi; ++ MD5_u32plus a, b, c, d; ++ unsigned char buffer[64]; ++ MD5_u32plus block[16]; ++} MD5_CTX; ++ + /* + * The basic MD5 functions. + * +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/md5/md5.h eggdrop-1.6.19-1ubuntu1.new/src/md5/md5.h +--- eggdrop-1.6.19-1ubuntu1/src/md5/md5.h 2008-05-31 05:51:36.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/md5/md5.h 2008-06-24 17:29:06.000000000 -0500 +@@ -5,6 +5,9 @@ + * Written by Solar Designer in 2001, and placed in + * the public domain. See md5c.c for more information. + */ ++#include "../config.h" ++#ifndef EGG_SSL_EXT ++ + + #ifndef _MD5_H + #define _MD5_H +@@ -24,3 +27,4 @@ + extern void MD5_Final(unsigned char *result, MD5_CTX *ctx); + + #endif ++#endif +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/mod/compress.mod/compress.c eggdrop-1.6.19-1ubuntu1.new/src/mod/compress.mod/compress.c +--- eggdrop-1.6.19-1ubuntu1/src/mod/compress.mod/compress.c 2008-05-31 05:51:37.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/mod/compress.mod/compress.c 2008-06-24 17:29:06.000000000 -0500 +@@ -36,6 +36,8 @@ + #include "src/mod/module.h" + #include "share.mod/share.h" + ++#include ++ + #ifdef HAVE_MMAP + # undef panic + # include +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/mod/irc.mod/chan.c eggdrop-1.6.19-1ubuntu1.new/src/mod/irc.mod/chan.c +--- eggdrop-1.6.19-1ubuntu1/src/mod/irc.mod/chan.c 2008-05-31 05:51:38.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/mod/irc.mod/chan.c 2008-06-24 17:29:06.000000000 -0500 +@@ -965,10 +965,10 @@ + q = strchr(p, ' '); + if (q != NULL) { + *q = 0; +- set_key(chan, p); ++ set_keyegg(chan, p); + strcpy(p, q + 1); + } else { +- set_key(chan, p); ++ set_keyegg(chan, p); + *p = 0; + } + } +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/mod/irc.mod/irc.c eggdrop-1.6.19-1ubuntu1.new/src/mod/irc.mod/irc.c +--- eggdrop-1.6.19-1ubuntu1/src/mod/irc.mod/irc.c 2008-05-31 05:51:38.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/mod/irc.mod/irc.c 2008-06-24 17:29:06.000000000 -0500 +@@ -256,7 +256,7 @@ + + /* Set the key. + */ +-static void set_key(struct chanset_t *chan, char *k) ++static void set_keyegg(struct chanset_t *chan, char *k) + { + nfree(chan->channel.key); + if (k == NULL) { +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/mod/irc.mod/irc.h eggdrop-1.6.19-1ubuntu1.new/src/mod/irc.mod/irc.h +--- eggdrop-1.6.19-1ubuntu1/src/mod/irc.mod/irc.h 2008-05-31 05:51:38.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/mod/irc.mod/irc.h 2008-06-24 17:29:06.000000000 -0500 +@@ -69,7 +69,7 @@ + + static void reset_chan_info(struct chanset_t *); + static void recheck_channel(struct chanset_t *, int); +-static void set_key(struct chanset_t *, char *); ++static void set_keyegg(struct chanset_t *, char *); + static void maybe_revenge(struct chanset_t *, char *, char *, int); + static int detect_chan_flood(char *, char *, char *, struct chanset_t *, int, + char *); +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/mod/irc.mod/mode.c eggdrop-1.6.19-1ubuntu1.new/src/mod/irc.mod/mode.c +--- eggdrop-1.6.19-1ubuntu1/src/mod/irc.mod/mode.c 2008-05-31 05:51:38.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/mod/irc.mod/mode.c 2008-06-24 17:29:06.000000000 -0500 +@@ -1128,7 +1128,7 @@ + break; + } + if (ms2[0] == '+') { +- set_key(chan, op); ++ set_keyegg(chan, op); + if (channel_active(chan)) + got_key(chan, nick, from, op); + } else { +@@ -1139,7 +1139,7 @@ + !chan_master(user) && !match_my_nick(nick)) + add_mode(chan, '+', 'k', chan->key_prot); + } +- set_key(chan, NULL); ++ set_keyegg(chan, NULL); + } + check_tcl_mode(nick, from, u, chan->dname, ms2, op); + break; +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/mod/module.h eggdrop-1.6.19-1ubuntu1.new/src/mod/module.h +--- eggdrop-1.6.19-1ubuntu1/src/mod/module.h 2008-05-31 05:51:36.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/mod/module.h 2008-06-24 17:29:06.000000000 -0500 +@@ -471,13 +471,23 @@ + /* IPv6 leftovers: 286 */ + /* IPv6 leftovers: 287 */ + /* 288 - 291 */ +-/* IPv6 leftovers: 288 */ ++#ifdef EGG_SSL_EXT ++#define net_switch_to_ssl ((int (*)(int))global[289]) ++#define ssl_use (*(int *)global[290]) /* kyotou */ ++#define strip_mirc_codes ((void (*)(int, char *))global[291]) ++#define check_ansi ((int (*) (char *))global[292]) ++#define oatoi ((int (*) (const char *))global[293]) ++/* 292 - 295 */ ++#define str_isdigit ((int (*) (const char *))global[294]) ++#define remove_crlf ((void (*)(char **))global[295]) ++#else + #define strip_mirc_codes ((void (*)(int, char *))global[289]) + #define check_ansi ((int (*) (char *))global[290]) + #define oatoi ((int (*) (const char *))global[291]) + /* 292 - 295 */ + #define str_isdigit ((int (*) (const char *))global[292]) + #define remove_crlf ((void (*)(char **))global[293]) ++#endif + + /* hostmasking */ + #define maskhost(a,b) _maskhost((a),(b),1) +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/mod/server.mod/servmsg.c eggdrop-1.6.19-1ubuntu1.new/src/mod/server.mod/servmsg.c +--- eggdrop-1.6.19-1ubuntu1/src/mod/server.mod/servmsg.c 2008-05-31 05:51:38.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/mod/server.mod/servmsg.c 2008-06-24 17:29:06.000000000 -0500 +@@ -1293,6 +1293,14 @@ + fatal("NO SERVERS WILL ACCEPT MY CONNECTION.", 0); + } else { + dcc[servidx].sock = serv; ++ #ifdef EGG_SSL_EXT ++ if (ssl_use) { /* kyotou */ ++ if (net_switch_to_ssl(serv)==0) { ++ putlog(LOG_SERV, "*", "SSL %s %s (Error while switching to SSL)", IRC_FAILEDCONNECT, dcc[servidx].host); ++ lostdcc(servidx); ++ } ++ } ++ #endif + /* Queue standard login */ + dcc[servidx].timeval = now; + SERVER_SOCKET.timeout_val = &server_timeout; +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/modules.c eggdrop-1.6.19-1ubuntu1.new/src/modules.c +--- eggdrop-1.6.19-1ubuntu1/src/modules.c 2008-05-31 05:51:36.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/modules.c 2008-06-24 17:29:06.000000000 -0500 +@@ -29,9 +29,17 @@ + #include "main.h" + #include "modules.h" + #include "tandem.h" ++ ++#ifndef EGG_SSL_EXT + #include "md5/md5.h" ++#else ++#include "openssl/md5.h" ++#endif ++ + #include "users.h" + ++#include "net.h" ++ + #ifndef STATIC + # ifdef MOD_USE_SHL + # include +@@ -94,6 +102,10 @@ + password_timeout, force_expire, protect_readonly, reserved_port_min, + reserved_port_max, copy_to_tmp, quiet_reject; + ++#ifdef EGG_SSL_EXT ++extern int ssl_use; /* kyotou */ ++#endif ++ + extern party_t *party; + extern time_t now, online_since; + extern tand_t *tandbot; +@@ -128,6 +140,10 @@ + } + #endif /* STATIC */ + ++#ifdef EGG_SSL_EXT ++int net_switch_to_ssl(int); ++#endif ++ + + /* The null functions */ + void null_func() +@@ -564,7 +580,13 @@ + (Function) 0, /* IPv6 leftovers: 286 */ + (Function) 0, /* IPv6 leftovers: 287 */ + /* 288 - 291 */ ++#ifdef EGG_SSL_EXT + (Function) 0, /* IPv6 leftovers: 288 */ ++ (Function) net_switch_to_ssl, ++ (Function) & ssl_use, /* kyotou */ ++#else ++ (Function) 0, /* IPv6 leftovers: 288 */ ++#endif + (Function) strip_mirc_codes, + (Function) check_ansi, + (Function) oatoi, +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/net.c eggdrop-1.6.19-1ubuntu1.new/src/net.c +--- eggdrop-1.6.19-1ubuntu1/src/net.c 2008-05-31 05:51:36.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/net.c 2008-06-24 17:29:06.000000000 -0500 +@@ -52,6 +52,18 @@ + # endif + #endif + ++#ifdef EGG_SSL_EXT ++# ifndef EGG_SSL_INCS ++# include ++# include ++# include ++# define EGG_SSL_INCS 1 ++# endif ++#endif ++ ++#include "net.h" ++ ++ + extern struct dcc_t *dcc; + extern int backgrd, use_stderr, resolve_timeout, dcc_total; + extern unsigned long otraffic_irc_today, otraffic_bn_today, otraffic_dcc_today, +@@ -64,7 +76,11 @@ + int firewallport = 1080; /* Default port of socks 4/5 firewalls. */ + char botuser[21] = "eggdrop"; /* Username of the user running the bot. */ + int dcc_sanitycheck = 0; /* Do some sanity checking on dcc connections. */ +- ++#ifdef EGG_SSL_EXT ++SSL_CTX *ssl_ctx=NULL; ++char *tls_rand_file = NULL; ++int ssl_use = 0; /* kyotou */ ++#endif + sock_list *socklist = NULL; /* Enough to be safe. */ + int MAXSOCKS = 0; + sigjmp_buf alarmret; /* Env buffer for alarm() returns. */ +@@ -88,6 +104,46 @@ + return ret; + } + ++#ifdef EGG_SSL_EXT ++int seed_PRNG(void) ++{ ++ char stackdata[1024]; ++ static char rand_file[300]; ++ FILE *fh; ++ ++#if OPENSSL_VERSION_NUMBER >= 0x00905100 ++ if (RAND_status()) ++ return 0; /* PRNG already good seeded */ ++#endif ++ /* if the device '/dev/urandom' is present, OpenSSL uses it by default. ++ * check if it's present, else we have to make random data ourselfs. ++ */ ++ if ((fh = fopen("/dev/urandom", "r"))) { ++ fclose(fh); ++ return 0; ++ } ++ if (RAND_file_name(rand_file, sizeof(rand_file))) ++ tls_rand_file = rand_file; ++ else ++ return 1; ++ if (!RAND_load_file(rand_file, 1024)) { ++ /* no .rnd file found, create new seed */ ++ unsigned int c; ++ c = time(NULL); ++ RAND_seed(&c, sizeof(c)); ++ c = getpid(); ++ RAND_seed(&c, sizeof(c)); ++ RAND_seed(stackdata, sizeof(stackdata)); ++ } ++#if OPENSSL_VERSION_NUMBER >= 0x00905100 ++ if (!RAND_status()) ++ return 2; /* PRNG still badly seeded */ ++#endif ++ return 0; ++} ++#endif ++ ++ + /* Initialize the socklist + */ + void init_net() +@@ -96,8 +152,34 @@ + + for (i = 0; i < MAXSOCKS; i++) { + socklist[i].flags = SOCK_UNUSED; ++#ifdef EGG_SSL_EXT ++ socklist[i].ssl=NULL; ++#endif + } ++#ifdef EGG_SSL_EXT ++ /* good place to init ssl stuff */ ++ SSL_load_error_strings(); ++ OpenSSL_add_ssl_algorithms(); ++ ssl_ctx=SSL_CTX_new(SSLv23_client_method()); ++ if (!ssl_ctx) ++ fatal("SSL_CTX_new() failed",0); ++ if (seed_PRNG()) ++ fatal("Wasn't able to properly seed the PRNG!",0); ++#endif ++} ++ ++#ifdef EGG_SSL_EXT ++/* cleanup mess when quiting */ ++int clean_net() { ++ if (ssl_ctx) { ++ SSL_CTX_free(ssl_ctx); ++ ssl_ctx = NULL; ++ } ++ if (tls_rand_file) ++ RAND_write_file(tls_rand_file); ++ return 0; + } ++#endif + + int expmem_net() + { +@@ -307,6 +389,13 @@ + + for (i = 0; i < MAXSOCKS; i++) { + if ((socklist[i].sock == sock) && !(socklist[i].flags & SOCK_UNUSED)) { ++#ifdef EGG_SSL_EXT ++ if (socklist[i].ssl) { ++ SSL_shutdown(socklist[i].ssl); ++ SSL_free(socklist[i].ssl); ++ socklist[i].ssl=NULL; ++ } ++#endif + close(socklist[i].sock); + if (socklist[i].inbuf != NULL) { + nfree(socklist[i].inbuf); +@@ -448,6 +537,63 @@ + return sock; + } + ++#ifdef EGG_SSL_EXT ++int net_switch_to_ssl(int sock) { ++int err; ++int i=0; ++ debug0("net_switch_to_ssl()"); ++ while (i ++# include ++# include ++# define EGG_SSL_INCS 1 ++# endif ++#endif ++ ++/* This is used by the net module to keep track of sockets and what's ++ * queued on them ++ */ ++typedef struct { ++ int sock; ++#ifdef EGG_SSL_EXT ++ SSL *ssl; ++#endif ++ short flags; ++ char *inbuf; ++ char *outbuf; ++ unsigned long outbuflen; /* Outbuf could be binary data */ ++ unsigned long inbuflen; /* Inbuf could be binary data */ ++#ifdef USE_IPV6 ++ unsigned int af; ++#endif /* USE_IPV6 */ ++} sock_list; ++ ++#endif /* _EGG_NET_H */ +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/patch.h eggdrop-1.6.19-1ubuntu1.new/src/patch.h +--- eggdrop-1.6.19-1ubuntu1/src/patch.h 2008-05-31 05:51:36.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/patch.h 2008-06-24 17:29:06.000000000 -0500 +@@ -32,11 +32,9 @@ + */ + #ifndef _EGG_PATCH_H + #define _EGG_PATCH_H +-/* +- * +- * +- */ +-/* PATCH GOES HERE */ ++#ifdef EGG_SSL_EXT ++patch("SSL"); ++#endif + /* + * + * +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/tcl.c eggdrop-1.6.19-1ubuntu1.new/src/tcl.c +--- eggdrop-1.6.19-1ubuntu1/src/tcl.c 2008-05-31 05:51:36.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/tcl.c 2008-06-24 17:29:06.000000000 -0500 +@@ -44,6 +44,9 @@ + + + extern time_t online_since; ++#ifdef EGG_SSL_EXT ++extern int ssl_use; /* kyotou */ ++#endif + + extern char origbotname[], botuser[], motdfile[], admin[], userfile[], + firewall[], helpdir[], notify_new[], hostname[], myip[], moddir[], +@@ -522,6 +525,9 @@ + {"enable-simul", &enable_simul, 0}, /* compat */ + {"debug-output", &debug_output, 0}, /* compat */ + {"use-console-r", &use_console_r, 0}, /* compat */ ++#ifdef EGG_SSL_EXT ++ {"use-ssl", &ssl_use, 0}, /* kyotou */ ++#endif + {NULL, NULL, 0} + }; + +diff -Nur -x '*.orig' -x '*~' eggdrop-1.6.19-1ubuntu1/src/tclmisc.c eggdrop-1.6.19-1ubuntu1.new/src/tclmisc.c +--- eggdrop-1.6.19-1ubuntu1/src/tclmisc.c 2008-05-31 05:51:36.000000000 -0500 ++++ eggdrop-1.6.19-1ubuntu1.new/src/tclmisc.c 2008-06-24 17:29:06.000000000 -0500 +@@ -26,7 +26,12 @@ + #include "main.h" + #include "modules.h" + #include "tandem.h" ++ ++#ifndef EGG_SSL_EXT + #include "md5/md5.h" ++#else ++#include "openssl/md5.h" ++#endif + + #ifdef TIME_WITH_SYS_TIME + # include