]> git.pld-linux.org Git - packages/eggdrop.git/blob - eggdrop-ssl.patch
f4f96fe638a188869f53db12ca686239edc8ab30
[packages/eggdrop.git] / eggdrop-ssl.patch
1 diff -burN eggdrop1.6.17.orig/aclocal.m4 eggdrop1.6.17/aclocal.m4
2 --- eggdrop1.6.17.orig/aclocal.m4       2004-11-01 14:40:44.093457768 +0100
3 +++ eggdrop1.6.17/aclocal.m4    2004-11-01 14:41:51.767169800 +0100
4 @@ -37,6 +37,64 @@
5  ])
6  
7  
8 +dnl  EGG_SSL_CRAP()
9 +dnl
10 +AC_DEFUN(EGG_SSL_CRAP, [dnl
11 +#ssl checks - hoe
12 +AC_MSG_CHECKING(whether to include SSL support)
13 +AC_ARG_WITH(ssl,
14 +[  --with-ssl[=PATH]         Include SSL support (DIR is OpenSSL's install dir).],
15 +[
16 +  case "$withval" in
17 +    no)
18 +      AC_MSG_RESULT(no) ;;
19 +    yes)
20 +      AC_MSG_RESULT(yes)
21 +      AC_CHECK_LIB(ssl,SSL_accept,[AC_DEFINE(EGG_SSL_EXT)
22 +      SSL_LIBS="-lssl -lcrypto"],[AC_MSG_ERROR([You requested SSL support, but OpenSSL was not found. Please supply a pathname to OpenSSL])],-lcrypto)
23 +      ;;
24 +    *)
25 +dnl A whole whack of possible places where this might be
26 +      test -f $withval/openssl/ssl.h && SSL_INCLUDE="$withval"
27 +      test -f $withval/include/openssl/ssl.h && SSL_INCLUDE="$withval/include"
28 +
29 +      test -f $withval/lib/libssl.a && SSL_LIB="$withval/lib"
30 +      test -f $withval/lib/ssl/libssl.a && SSL_LIB="$withval/lib/ssl"
31 +      test -f $withval/lib/openssl/libssl.a && SSL_LIB="$withval/lib/openssl/ssl"
32 +      test -f $withval/libssl.a && SSL_LIB="$withval"
33 +      test -f $withval/ssl/libssl.a && SSL_LIB="$withval/ssl"
34 +      test -f $withval/openssl/libssl.a && SSL_LIB="$withval/openssl"
35 +
36 +      test -f $withval/lib/libcrypto.a && CRYPTO_LIB="$withval/lib"
37 +      test -f $withval/lib/ssl/libcrypto.a && CRYPTO_LIB="$withval/lib/ssl"
38 +      test -f $withval/lib/openssl/libcrypto.a && CRYPTO_LIB="$withval/lib/openssl/ssl"
39 +      test -f $withval/libcrypto.a && CRYPTO_LIB="$withval"
40 +      test -f $withval/ssl/libcrypto.a && CRYPTO_LIB="$withval/ssl"
41 +      test -f $withval/openssl/libcrypto.a && CRYPTO_LIB="$withval/openssl"
42 +
43 +      if test -n "$SSL_INCLUDE" && test -n "$SSL_LIB" && test -n "$CRYPTO_LIB"; then
44 +        SSL_LIBS="-lssl -lcrypto -L$SSL_LIB -L$CRYPTO_LIB";
45 +        AC_DEFINE([EGG_SSL_EXT], [], [SSL support])
46 +        AC_MSG_RESULT(yes)
47 +      else
48 +        AC_MSG_RESULT(no)
49 +        AC_MSG_ERROR([You requested SSL support, but OpenSSL was not found. Please supply a pathname to OpenSSL])
50 +      fi ;;
51 +  esac
52 +],[
53 +    AC_MSG_RESULT(will try to find)
54 +    AC_CHECK_LIB(ssl,SSL_accept,[AC_DEFINE(EGG_SSL_EXT)
55 +     SSL_LIBS="-lssl -lcrypto"],[AC_MSG_ERROR([OpenSSL was not found. Please supply a pathname to OpenSSL])],-lcrypto)
56 +    AC_CHECK_HEADERS("openssl/ssl.h",,[AC_MSG_ERROR([OpenSSL was not found. Please supply a pathname to OpenSSL])],)
57 +
58 +    AC_SUBST(SSL_LIBS)dnl
59 +    AC_SUBST(SSL_INCLUDE)dnl
60 +])
61 +
62 +#end of ssl checks - hoe (.16 by poci)
63 +])dnl
64 +
65 +
66  dnl EGG_MSG_CONFIGURE_END()
67  dnl
68  AC_DEFUN([EGG_MSG_CONFIGURE_END],
69 diff -burN eggdrop1.6.17.orig/config.h.in eggdrop1.6.17/config.h.in
70 --- eggdrop1.6.17.orig/config.h.in      2004-11-01 14:40:44.110455184 +0100
71 +++ eggdrop1.6.17/config.h.in   2004-11-01 14:41:51.769169496 +0100
72 @@ -30,6 +30,9 @@
73  /* Define to 1 if you have the `clock' function. */
74  #undef HAVE_CLOCK
75  
76 +/* Defines ssl mode  */
77 +#undef EGG_SSL_EXT
78 +
79  /* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
80     */
81  #undef HAVE_DIRENT_H
82 diff -burN eggdrop1.6.17.orig/configure eggdrop1.6.17/configure
83 --- eggdrop1.6.17.orig/configure        2004-11-01 14:40:44.098457008 +0100
84 +++ eggdrop1.6.17/configure     2004-11-01 14:43:30.021232912 +0100
85 @@ -315,7 +315,7 @@
86  # include <unistd.h>
87  #endif"
88  
89 -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 DESTDIR MOD_UPDIR LIBOBJS LTLIBOBJS'
90 +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 DESTDIR MOD_UPDIR LIBOBJS LTLIBOBJS'
91  ac_subst_files=''
92  
93  # Initialize some variables set by options.
94 @@ -856,6 +856,7 @@
95    --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
96    --with-tcllib=PATH      full path to Tcl library
97    --with-tclinc=PATH      full path to Tcl header
98 +  --with-ssl=PATH         Include SSL support (DIR is OpenSSL's install dir).
99  
100  Some influential environment variables:
101    CC          C compiler command
102 @@ -10100,6 +10101,374 @@
103  
104  
105  
106 +#ssl checks - hoe
107 +echo "$as_me:$LINENO: checking whether to include SSL support" >&5
108 +echo $ECHO_N "checking whether to include SSL support... $ECHO_C" >&6
109 +
110 +# Check whether --with-ssl or --without-ssl was given.
111 +if test "${with_ssl+set}" = set; then
112 +  withval="$with_ssl"
113 +
114 +  case "$withval" in
115 +    no)
116 +      echo "$as_me:$LINENO: result: no" >&5
117 +echo "${ECHO_T}no" >&6 ;;
118 +    yes)
119 +      echo "$as_me:$LINENO: result: yes" >&5
120 +echo "${ECHO_T}yes" >&6
121 +      echo "$as_me:$LINENO: checking for SSL_accept in -lssl" >&5
122 +echo $ECHO_N "checking for SSL_accept in -lssl... $ECHO_C" >&6
123 +if test "${ac_cv_lib_ssl_SSL_accept+set}" = set; then
124 +  echo $ECHO_N "(cached) $ECHO_C" >&6
125 +else
126 +  ac_check_lib_save_LIBS=$LIBS
127 +LIBS="-lssl -lcrypto $LIBS"
128 +cat >conftest.$ac_ext <<_ACEOF
129 +/* confdefs.h.  */
130 +_ACEOF
131 +cat confdefs.h >>conftest.$ac_ext
132 +cat >>conftest.$ac_ext <<_ACEOF
133 +/* end confdefs.h.  */
134 +
135 +/* Override any gcc2 internal prototype to avoid an error.  */
136 +#ifdef __cplusplus
137 +extern "C"
138 +#endif
139 +/* We use char because int might match the return type of a gcc2
140 +   builtin and then its argument prototype would still apply.  */
141 +char SSL_accept ();
142 +int
143 +main ()
144 +{
145 +SSL_accept ();
146 +  ;
147 +  return 0;
148 +}
149 +_ACEOF
150 +rm -f conftest.$ac_objext conftest$ac_exeext
151 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
152 +  (eval $ac_link) 2>conftest.er1
153 +  ac_status=$?
154 +  grep -v '^ *+' conftest.er1 >conftest.err
155 +  rm -f conftest.er1
156 +  cat conftest.err >&5
157 +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
158 +  (exit $ac_status); } &&
159 +        { ac_try='test -z "$ac_c_werror_flag"
160 +                        || test ! -s conftest.err'
161 +  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
162 +  (eval $ac_try) 2>&5
163 +  ac_status=$?
164 +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
165 +  (exit $ac_status); }; } &&
166 +        { ac_try='test -s conftest$ac_exeext'
167 +  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
168 +  (eval $ac_try) 2>&5
169 +  ac_status=$?
170 +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
171 +  (exit $ac_status); }; }; then
172 +  ac_cv_lib_ssl_SSL_accept=yes
173 +else
174 +  echo "$as_me: failed program was:" >&5
175 +sed 's/^/| /' conftest.$ac_ext >&5
176 +
177 +ac_cv_lib_ssl_SSL_accept=no
178 +fi
179 +rm -f conftest.err conftest.$ac_objext \
180 +      conftest$ac_exeext conftest.$ac_ext
181 +LIBS=$ac_check_lib_save_LIBS
182 +fi
183 +echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_accept" >&5
184 +echo "${ECHO_T}$ac_cv_lib_ssl_SSL_accept" >&6
185 +if test $ac_cv_lib_ssl_SSL_accept = yes; then
186 +  cat >>confdefs.h <<\_ACEOF
187 +#define EGG_SSL_EXT 1
188 +_ACEOF
189 +
190 +      SSL_LIBS="-lssl -lcrypto"
191 +else
192 +  { { echo "$as_me:$LINENO: error: You requested SSL support, but OpenSSL was not found. Please supply a pathname to OpenSSL" >&5
193 +echo "$as_me: error: You requested SSL support, but OpenSSL was not found. Please supply a pathname to OpenSSL" >&2;}
194 +   { (exit 1); exit 1; }; }
195 +fi
196 +
197 +      ;;
198 +    *)
199 +      test -f $withval/openssl/ssl.h && SSL_INCLUDE="$withval"
200 +      test -f $withval/include/openssl/ssl.h && SSL_INCLUDE="$withval/include"
201 +
202 +      test -f $withval/lib/libssl.a && SSL_LIB="$withval/lib"
203 +      test -f $withval/lib/ssl/libssl.a && SSL_LIB="$withval/lib/ssl"
204 +      test -f $withval/lib/openssl/libssl.a && SSL_LIB="$withval/lib/openssl/ssl"
205 +      test -f $withval/libssl.a && SSL_LIB="$withval"
206 +      test -f $withval/ssl/libssl.a && SSL_LIB="$withval/ssl"
207 +      test -f $withval/openssl/libssl.a && SSL_LIB="$withval/openssl"
208 +
209 +      test -f $withval/lib/libcrypto.a && CRYPTO_LIB="$withval/lib"
210 +      test -f $withval/lib/ssl/libcrypto.a && CRYPTO_LIB="$withval/lib/ssl"
211 +      test -f $withval/lib/openssl/libcrypto.a && CRYPTO_LIB="$withval/lib/openssl/ssl"
212 +      test -f $withval/libcrypto.a && CRYPTO_LIB="$withval"
213 +      test -f $withval/ssl/libcrypto.a && CRYPTO_LIB="$withval/ssl"
214 +      test -f $withval/openssl/libcrypto.a && CRYPTO_LIB="$withval/openssl"
215 +
216 +      if test -n "$SSL_INCLUDE" && test -n "$SSL_LIB" && test -n "$CRYPTO_LIB"; then
217 +        SSL_LIBS="-lssl -lcrypto -L$SSL_LIB -L$CRYPTO_LIB";
218 +        cat >>confdefs.h <<\_ACEOF
219 +#define EGG_SSL_EXT 1
220 +_ACEOF
221 +
222 +        echo "$as_me:$LINENO: result: yes" >&5
223 +echo "${ECHO_T}yes" >&6
224 +      else
225 +        echo "$as_me:$LINENO: result: no" >&5
226 +echo "${ECHO_T}no" >&6
227 +        { { echo "$as_me:$LINENO: error: You requested SSL support, but OpenSSL was not found. Please supply a pathname to OpenSSL" >&5
228 +echo "$as_me: error: You requested SSL support, but OpenSSL was not found. Please supply a pathname to OpenSSL" >&2;}
229 +   { (exit 1); exit 1; }; }
230 +      fi ;;
231 +  esac
232 +
233 +else
234 +
235 +    echo "$as_me:$LINENO: result: will try to find" >&5
236 +echo "${ECHO_T}will try to find" >&6
237 +    echo "$as_me:$LINENO: checking for SSL_accept in -lssl" >&5
238 +echo $ECHO_N "checking for SSL_accept in -lssl... $ECHO_C" >&6
239 +if test "${ac_cv_lib_ssl_SSL_accept+set}" = set; then
240 +  echo $ECHO_N "(cached) $ECHO_C" >&6
241 +else
242 +  ac_check_lib_save_LIBS=$LIBS
243 +LIBS="-lssl -lcrypto $LIBS"
244 +cat >conftest.$ac_ext <<_ACEOF
245 +/* confdefs.h.  */
246 +_ACEOF
247 +cat confdefs.h >>conftest.$ac_ext
248 +cat >>conftest.$ac_ext <<_ACEOF
249 +/* end confdefs.h.  */
250 +
251 +/* Override any gcc2 internal prototype to avoid an error.  */
252 +#ifdef __cplusplus
253 +extern "C"
254 +#endif
255 +/* We use char because int might match the return type of a gcc2
256 +   builtin and then its argument prototype would still apply.  */
257 +char SSL_accept ();
258 +int
259 +main ()
260 +{
261 +SSL_accept ();
262 +  ;
263 +  return 0;
264 +}
265 +_ACEOF
266 +rm -f conftest.$ac_objext conftest$ac_exeext
267 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
268 +  (eval $ac_link) 2>conftest.er1
269 +  ac_status=$?
270 +  grep -v '^ *+' conftest.er1 >conftest.err
271 +  rm -f conftest.er1
272 +  cat conftest.err >&5
273 +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
274 +  (exit $ac_status); } &&
275 +        { ac_try='test -z "$ac_c_werror_flag"
276 +                        || test ! -s conftest.err'
277 +  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
278 +  (eval $ac_try) 2>&5
279 +  ac_status=$?
280 +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
281 +  (exit $ac_status); }; } &&
282 +        { ac_try='test -s conftest$ac_exeext'
283 +  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
284 +  (eval $ac_try) 2>&5
285 +  ac_status=$?
286 +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
287 +  (exit $ac_status); }; }; then
288 +  ac_cv_lib_ssl_SSL_accept=yes
289 +else
290 +  echo "$as_me: failed program was:" >&5
291 +sed 's/^/| /' conftest.$ac_ext >&5
292 +
293 +ac_cv_lib_ssl_SSL_accept=no
294 +fi
295 +rm -f conftest.err conftest.$ac_objext \
296 +      conftest$ac_exeext conftest.$ac_ext
297 +LIBS=$ac_check_lib_save_LIBS
298 +fi
299 +echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_accept" >&5
300 +echo "${ECHO_T}$ac_cv_lib_ssl_SSL_accept" >&6
301 +if test $ac_cv_lib_ssl_SSL_accept = yes; then
302 +  cat >>confdefs.h <<\_ACEOF
303 +#define EGG_SSL_EXT 1
304 +_ACEOF
305 +
306 +     SSL_LIBS="-lssl -lcrypto"
307 +else
308 +  { { echo "$as_me:$LINENO: error: OpenSSL was not found. Please supply a pathname to OpenSSL" >&5
309 +echo "$as_me: error: OpenSSL was not found. Please supply a pathname to OpenSSL" >&2;}
310 +   { (exit 1); exit 1; }; }
311 +fi
312 +
313 +
314 +for ac_header in "openssl/ssl.h"
315 +do
316 +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
317 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
318 +  echo "$as_me:$LINENO: checking for $ac_header" >&5
319 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
320 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
321 +  echo $ECHO_N "(cached) $ECHO_C" >&6
322 +fi
323 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
324 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
325 +else
326 +  # Is the header compilable?
327 +echo "$as_me:$LINENO: checking $ac_header usability" >&5
328 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
329 +cat >conftest.$ac_ext <<_ACEOF
330 +/* confdefs.h.  */
331 +_ACEOF
332 +cat confdefs.h >>conftest.$ac_ext
333 +cat >>conftest.$ac_ext <<_ACEOF
334 +/* end confdefs.h.  */
335 +$ac_includes_default
336 +#include <$ac_header>
337 +_ACEOF
338 +rm -f conftest.$ac_objext
339 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
340 +  (eval $ac_compile) 2>conftest.er1
341 +  ac_status=$?
342 +  grep -v '^ *+' conftest.er1 >conftest.err
343 +  rm -f conftest.er1
344 +  cat conftest.err >&5
345 +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
346 +  (exit $ac_status); } &&
347 +        { ac_try='test -z "$ac_c_werror_flag"
348 +                        || test ! -s conftest.err'
349 +  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
350 +  (eval $ac_try) 2>&5
351 +  ac_status=$?
352 +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
353 +  (exit $ac_status); }; } &&
354 +        { ac_try='test -s conftest.$ac_objext'
355 +  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
356 +  (eval $ac_try) 2>&5
357 +  ac_status=$?
358 +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
359 +  (exit $ac_status); }; }; then
360 +  ac_header_compiler=yes
361 +else
362 +  echo "$as_me: failed program was:" >&5
363 +sed 's/^/| /' conftest.$ac_ext >&5
364 +
365 +ac_header_compiler=no
366 +fi
367 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
368 +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
369 +echo "${ECHO_T}$ac_header_compiler" >&6
370 +
371 +# Is the header present?
372 +echo "$as_me:$LINENO: checking $ac_header presence" >&5
373 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
374 +cat >conftest.$ac_ext <<_ACEOF
375 +/* confdefs.h.  */
376 +_ACEOF
377 +cat confdefs.h >>conftest.$ac_ext
378 +cat >>conftest.$ac_ext <<_ACEOF
379 +/* end confdefs.h.  */
380 +#include <$ac_header>
381 +_ACEOF
382 +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
383 +  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
384 +  ac_status=$?
385 +  grep -v '^ *+' conftest.er1 >conftest.err
386 +  rm -f conftest.er1
387 +  cat conftest.err >&5
388 +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
389 +  (exit $ac_status); } >/dev/null; then
390 +  if test -s conftest.err; then
391 +    ac_cpp_err=$ac_c_preproc_warn_flag
392 +    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
393 +  else
394 +    ac_cpp_err=
395 +  fi
396 +else
397 +  ac_cpp_err=yes
398 +fi
399 +if test -z "$ac_cpp_err"; then
400 +  ac_header_preproc=yes
401 +else
402 +  echo "$as_me: failed program was:" >&5
403 +sed 's/^/| /' conftest.$ac_ext >&5
404 +
405 +  ac_header_preproc=no
406 +fi
407 +rm -f conftest.err conftest.$ac_ext
408 +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
409 +echo "${ECHO_T}$ac_header_preproc" >&6
410 +
411 +# So?  What about this header?
412 +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
413 +  yes:no: )
414 +    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
415 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
416 +    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
417 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
418 +    ac_header_preproc=yes
419 +    ;;
420 +  no:yes:* )
421 +    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
422 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
423 +    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
424 +echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
425 +    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
426 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
427 +    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
428 +echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
429 +    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
430 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
431 +    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
432 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
433 +    (
434 +      cat <<\_ASBOX
435 +## -------------------------------- ##
436 +## Report this to bugs@eggheads.org ##
437 +## -------------------------------- ##
438 +_ASBOX
439 +    ) |
440 +      sed "s/^/$as_me: WARNING:     /" >&2
441 +    ;;
442 +esac
443 +echo "$as_me:$LINENO: checking for $ac_header" >&5
444 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
445 +if eval "test \"\${$as_ac_Header+set}\" = set"; then
446 +  echo $ECHO_N "(cached) $ECHO_C" >&6
447 +else
448 +  eval "$as_ac_Header=\$ac_header_preproc"
449 +fi
450 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
451 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
452 +
453 +fi
454 +if test `eval echo '${'$as_ac_Header'}'` = yes; then
455 +  cat >>confdefs.h <<_ACEOF
456 +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
457 +_ACEOF
458 +
459 +else
460 +  { { echo "$as_me:$LINENO: error: OpenSSL was not found. Please supply a pathname to OpenSSL" >&5
461 +echo "$as_me: error: OpenSSL was not found. Please supply a pathname to OpenSSL" >&2;}
462 +   { (exit 1); exit 1; }; }
463 +fi
464 +
465 +done
466 +
467 +
468 +
469 +fi;
470 +
471 +#end of ssl checks - hoe (.16 by poci)
472 +
473 +
474  
475  # Substitute Makefile variables.
476  
477 @@ -10811,6 +11180,8 @@
478  s,@TCLINCFN@,$TCLINCFN,;t t
479  s,@TCL_REQS@,$TCL_REQS,;t t
480  s,@TCL_LIBS@,$TCL_LIBS,;t t
481 +s,@SSL_LIBS@,$SSL_LIBS,;t t
482 +s,@SSL_INCLUDE@,$SSL_INCLUDE,;t t
483  s,@EGGVERSION@,$EGGVERSION,;t t
484  s,@DESTDIR@,$DESTDIR,;t t
485  s,@MOD_UPDIR@,$MOD_UPDIR,;t t
486 diff -burN eggdrop1.6.17.orig/configure.ac eggdrop1.6.17/configure.ac
487 --- eggdrop1.6.17.orig/configure.ac     2004-11-01 14:40:44.109455336 +0100
488 +++ eggdrop1.6.17/configure.ac  2004-11-01 14:41:51.866154752 +0100
489 @@ -148,6 +148,8 @@
490  EGG_TCL_LIB_REQS
491  EGG_TCL_LUSH
492  
493 +EGG_SSL_CRAP
494 +
495  
496  # Substitute Makefile variables.
497  EGG_SUBST_EGGVERSION
498 diff -burN eggdrop1.6.17.orig/disabled_modules eggdrop1.6.17/disabled_modules
499 --- eggdrop1.6.17.orig/disabled_modules 2004-11-01 14:40:44.110455184 +0100
500 +++ eggdrop1.6.17/disabled_modules      1970-01-01 01:00:00.000000000 +0100
501 @@ -1,12 +0,0 @@
502 -#  disabled_modules -- File which lists all Eggdrop modules that are
503 -#                      disabled by default.
504 -#
505 -#  $Id$
506 -#
507 -# Note:
508 -#   -  Lines which start with a '#' character are ignored.
509 -#   -  Every module name needs to be on its own line
510 -
511 -# Woobie only serves as an example for module programming. No need to
512 -# compile it for normal bots ...
513 -woobie
514 diff -burN eggdrop1.6.17.orig/eggdrop.conf.orig eggdrop1.6.17/eggdrop.conf.orig
515 --- eggdrop1.6.17.orig/eggdrop.conf.orig        2004-11-01 14:40:44.107455640 +0100
516 +++ eggdrop1.6.17/eggdrop.conf.orig     1970-01-01 01:00:00.000000000 +0100
517 @@ -1,1353 +0,0 @@
518 -#! /usr/bin/eggdrop
519 -# ^- This should contain a fully qualified path to your Eggdrop executable.
520 -#
521 -# $Id$
522 -#
523 -# This is a sample Eggdrop configuration file which includes all possible
524 -# settings that can be used to configure your bot.
525 -#
526 -# The pound signs (#) that you see at the beginning of some lines mean that
527 -# the remainder of that line is a comment, or just for your information. By
528 -# adding or deleting pound signs, you can comment or uncomment a setting,
529 -# respectively.
530 -#
531 -# Arguments for a command or setting may be inclosed in <>'s or []'s in the
532 -# example/description. Arguments in <>'s are required, while [] means optional.
533 -#
534 -# More detailed descriptions of all these settings can be found in
535 -# doc/settings/.
536 -
537 -
538 -
539 -##### BASIC SETTINGS #####
540 -
541 -# This setting defines the username the bot uses on IRC. This setting has
542 -# no effect if an ident daemon is running on your bot's machine.
543 -set username "lamest"
544 -
545 -# This setting defines which contact person should be shown in .status,
546 -# /msg help, and other places. You really should include this information.
547 -set admin "Lamer <email: lamer@lamest.lame.org>"
548 -
549 -# This setting is used only for info to share with others on your botnet.
550 -# Set this to the IRC network your bot is connected to.
551 -set network "I.didn't.edit.my.config.file.net"
552 -
553 -# This setting defines the timezone is your bot in. It's used for internal
554 -# routines as well as for logfile timestamping and scripting purposes.
555 -# The timezone string specifies the name of the timezone and must be three
556 -# or more alphabetic characters. For example, Central European Time(UTC+1)
557 -# should be "CET".
558 -set timezone "EST"
559 -
560 -# The offset setting specifies the time value to be added to the local
561 -# time to get Coordinated Universal Time (UTC aka GMT). The offset is
562 -# positive if the local timezone is west of the Prime Meridian and
563 -# negative if it is east. The value (in hours) must be between -23 and
564 -# 23. For example, if the timezone is UTC+1, the offset is -1.
565 -set offset "5"
566 -
567 -# If you don't want to use the timezone setting for scripting purposes only,
568 -# but instead everywhere possible, un-comment the following line.
569 -#set env(TZ) "$timezone $offset"
570 -
571 -# If you're using virtual hosting (your machine has more than 1 IP), you
572 -# may want to specify the particular IP to bind to. You can specify either
573 -# by hostname or by IP. You may also want to set the hostname here if
574 -# Eggdrop has trouble detecting it when it starts up.
575 -#set my-hostname "virtual.host.com"
576 -#set my-ip "99.99.0.0"
577 -
578 -# If you want to have your Eggdrop messages displayed in a language other
579 -# than English, change this setting to match your preference. An alternative
580 -# would be to set the environment variable EGG_LANG to that value.
581 -#
582 -# Languages included with Eggdrop: Danish, English, French, Finnish, German.
583 -#addlang "english"
584 -
585 -
586 -##### LOG FILES #####
587 -
588 -# Eggdrop is capable of logging various things, from channel chatter to
589 -# commands people use on the bot and file transfers. Logfiles are normally
590 -# kept for 24 hours. Afterwards, they will be renamed to "(logfile).yesterday".
591 -# After 48 hours, they will be overwritten by the logfile of the next day.
592 -#
593 -# Events are logged by certain categories. This way, you can specify
594 -# exactly what kind of events you want sent to various logfiles.
595 -#
596 -# Logfile flags:
597 -#   b - information about bot linking and userfile sharing
598 -#   c - commands
599 -#   d - misc debug information
600 -#   h - raw share traffic
601 -#   j - joins, parts, quits, and netsplits on the channel
602 -#   k - kicks, bans, and mode changes on the channel
603 -#   m - private msgs, notices and ctcps to the bot
604 -#   o - misc info, errors, etc (IMPORTANT STUFF)
605 -#   p - public text on the channel
606 -#   r - raw incoming server traffic
607 -#   s - server connects, disconnects, and notices
608 -#   t - raw botnet traffic
609 -#   v - raw outgoing server traffic
610 -#   w - wallops (make sure the bot sets +w in init-server)
611 -#   x - file transfers and file-area commands
612 -#
613 -# Note that modes d, h, r, t, and v can fill disk quotas quickly. There are
614 -# also eight user-defined levels (1-8) which can be used by Tcl scripts.
615 -#
616 -# Each logfile belongs to a certain channel. Events of type 'k', 'j', and 'p'
617 -# are logged to whatever channel they happened on. Most other events are
618 -# currently logged to every channel. You can make a logfile belong to all
619 -# channels by assigning it to channel "*".
620 -
621 -# This is the maximum number of logfiles allowed. This setting can be
622 -# increased; however, don't decrease it.
623 -set max-logs 5
624 -
625 -# This is the maximum size of your logfiles. Set it to 0 to disable.
626 -# This value is in kilobytes, so '550' would mean cycle logs when it
627 -# reaches the size of 550 kilobytes. Note that this only works if you
628 -# have keep-all-logs 0 (OFF).
629 -set max-logsize 0
630 -
631 -# This could be good if you have had problem with the logfile filling
632 -# your quota/hard disk or if you log +p and publish it to the web and
633 -# need more up-to-date info. Note that this setting might increase the
634 -# CPU usage of your bot (on the other hand it will decrease your mem usage).
635 -set quick-logs 0
636 -
637 -# This setting allows you the logging of raw incoming server traffic via
638 -# console/log flag 'r', raw outgoing server traffic via console/log mode 'v',
639 -# raw botnet traffic via console/log mode 't', and raw share traffic via
640 -# console/log mode 'h'. These flags can create a large security hole,
641 -# allowing people to see user passwords. This is now restricted to +n users
642 -# only. Please choose your owners with care.
643 -set raw-log 0
644 -
645 -# This creates a logfile named eggdrop.log containing private msgs/ctcps,
646 -# commands, errors, and misc. info from any channel.
647 -logfile mco * "logs/eggdrop.log"
648 -
649 -# This creates a logfile named lamest.log containing joins, parts,
650 -# netsplits, kicks, bans, mode changes, and public chat on the
651 -# channel #lamest.
652 -logfile jpk #lamest "logs/lamest.log"
653 -
654 -# Use this feature to timestamp entries in the log file.
655 -set log-time 1
656 -
657 -# If you want to keep your logfiles forever, turn this setting on. All
658 -# logfiles will get suffix ".[day, 2 digits][month, 3 letters][year, 4 digits]".
659 -# Note that your quota/hard-disk might be filled by this, so check your
660 -# logfiles often and download them.
661 -set keep-all-logs 0
662 -
663 -# If keep-all-logs is 1, this setting will define the suffix of the logfiles.
664 -# The default will result in a suffix like "04May2000". "%Y%m%d" will produce
665 -# the often used yyyymmdd format. Read the strftime manpages for more options.
666 -# NOTE: On systems which don't support strftime, the default format will
667 -# be used _always_.
668 -set logfile-suffix ".%d%b%Y"
669 -
670 -# You can specify when Eggdrop should switch logfiles and start fresh. You
671 -# must use military time for this setting. 300 is the default, and describes
672 -# 03:00 (AM).
673 -set switch-logfiles-at 300
674 -
675 -# "Writing user file..." and "Writing channel file..." messages won't be
676 -# logged anymore if this option is enabled.
677 -set quiet-save 0
678 -
679 -
680 -##### CONSOLE #####
681 -
682 -# This is the default console mode. It uses the same event flags as the log
683 -# files do. The console channel is automatically set to your "primary" channel,
684 -# which is set in the modules section of the config file. Masters can change
685 -# their console channel and modes with the '.console' command.
686 -
687 -set console "mkcobxs"
688 -
689 -
690 -##### FILES AND DIRECTORIES #####
691 -
692 -# Specify here the filename your userfile should be saved as.
693 -set userfile "LamestBot.user"
694 -
695 -# Specify here the filename Eggdrop will save its pid to. If no pidfile is
696 -# specified, pid.(botnet-nick) will be used.
697 -#set pidfile "pid.LamestBot"
698 -
699 -# If you want your userfile to be sorted upon saving, enable this setting.
700 -# This causes the bot to use bit more CPU when saving the usefile.
701 -set sort-users 0
702 -
703 -# Specify here where Eggdrop should look for help files. Don't modify this
704 -# setting unless you know what you're doing!
705 -set help-path "/usr/share/eggdrop/help/"
706 -
707 -# Specify here where Eggdrop should look for text files. This is used for
708 -# certain Tcl and DCC commands.
709 -set text-path "/usr/share/eggdrop/"
710 -
711 -# Set here a place to store temporary files.
712 -set temp-path "/tmp"
713 -
714 -# The MOTD (Message Of The day) is displayed when people dcc chat or telnet
715 -# to the bot. Look at doc/TEXT-SUBSTITUTIONS for options.
716 -set motd "/usr/share/eggdrop/motd"
717 -
718 -# This banner will be displayed on telnet connections. Look at
719 -# doc/TEXT-SUBSTITUTIONS for options.
720 -set telnet-banner "/usr/share/eggdrop/banner"
721 -
722 -# This specifies what permissions the user, channel, and notes files should
723 -# be set to. The octal values are the same as for the chmod system command.
724 -#
725 -# To remind you:
726 -#
727 -#          u  g  o           u  g  o           u  g  o
728 -#    0600  rw-------   0400  r--------   0200  -w-------    u - user
729 -#    0660  rw-rw----   0440  r--r-----   0220  -w--w----    g - group
730 -#    0666  rw-rw-rw-   0444  r--r--r--   0222  -w--w--w-    o - others
731 -#
732 -# Note that the default 0600 is the most secure one and should only be changed
733 -# if you need your files for shell scripting or other external applications.
734 -set userfile-perm 0600
735 -
736 -
737 -##### BOTNET/DCC/TELNET #####
738 -
739 -# Settings in this section should be unimportant for you until you deal
740 -# with botnets (multiple Eggdrops connected together to maximize efficiency).
741 -# You should read doc/BOTNET before modifying these settings.
742 -
743 -# If you want to use a different nickname on the botnet than you use on
744 -# IRC (i.e. if you're on an un-trusted botnet), un-comment the next line
745 -# and set it to the nick you would like to use.
746 -#set botnet-nick "LlamaBot"
747 -
748 -# This opens a telnet port by which you and other bots can interact with the
749 -# Eggdrop by telneting in.
750 -#
751 -# There are more options for the listen command in doc/tcl-commands.doc. Note
752 -# that if you are running more than one bot on the same machine, you will want
753 -# to space the telnet ports at LEAST 5 apart, although 10 is even better.
754 -#
755 -# Valid ports are typically anything between 1025 and 65535 assuming the
756 -# port is not already in use.
757 -#
758 -# If you would like the bot to listen for users and bots in separate ports,
759 -# use the following format:
760 -#
761 -#   listen 3333 bots
762 -#   listen 4444 users
763 -#
764 -# If you wish to use only one port, use this format:
765 -#
766 -#   listen 3333 all
767 -#
768 -# You need to un-comment this line and change the port number in order to open
769 -# the listen port. You should not keep this set to 3333.
770 -#listen 3333 all
771 -
772 -# This setting defines whether or not people can boot users on the Eggdrop
773 -# from other bots in your botnet. Valid settings are:
774 -#   0 - allow *no* outside boots
775 -#   1 - allow boots from sharebots
776 -#   2 - allow any boots
777 -set remote-boots 2
778 -
779 -# This setting prohibits remote bots from telling your Eggdrop to unlink from
780 -# share bots.
781 -set share-unlinks 1
782 -
783 -# This setting will drop telnet connections not matching a known host. It
784 -# greatly improves protection from IRCops, but makes it impossible to add
785 -# hosts on limbo (NOIRC) bots or have NEW as a valid login.
786 -set protect-telnet 0
787 -
788 -# This setting will make the bot ignore DCC chat requests which appear to
789 -# have bogus information on the grounds that the user may have been trying
790 -# to make the bot connect to somewhere that will get it into trouble, or
791 -# that the user has a broken client (like mIRC tends to do), in which case
792 -# the connect wouldn't work anyway. It's suggested that you turn this on.
793 -set dcc-sanitycheck 0
794 -
795 -# This settings defines a time in seconds that the bot should wait before
796 -# a dcc chat, telnet, or relay connection times out.
797 -set ident-timeout 5
798 -
799 -# Define here whether or not a +o user still needs the +p flag to dcc the bot.
800 -set require-p 0
801 -
802 -# If you want people allow to telnet in and type 'NEW' to become a new user,
803 -# set this to 1. This is similar to the 'hello' msg command. The protect-telnet
804 -# setting must be set to 0 to use this.
805 -set open-telnets 0
806 -
807 -# If you don't want Eggdrop to identify itself as an eggdrop on a telnet
808 -# connection, set this setting to 1. Eggdrop will display 'Nickname' instead.
809 -set stealth-telnets 0
810 -
811 -# If you want Eggdrop to display a banner when telneting in, set this setting
812 -# to 1. The telnet banner is set by 'set telnet-banner'.
813 -set use-telnet-banner 0
814 -
815 -# This settings defines a time in seconds that the bot should wait before
816 -# a dcc chat, telnet, or relay connection times out.
817 -set connect-timeout 15
818 -
819 -# Specify here the number of lines to accept from a user on the partyline
820 -# within 1 second before they are considered to be flooding and therefore
821 -# get booted.
822 -set dcc-flood-thr 3
823 -
824 -# Define here how many telnet connection attempts in how many seconds from
825 -# the same host constitute a flood. The correct format is Attempts:Seconds.
826 -set telnet-flood 5:60
827 -
828 -# If you want telnet-flood to apply even to +f users, set this setting to 1.
829 -set paranoid-telnet-flood 1
830 -
831 -# Set here the amount of seconds before giving up on hostname/address
832 -# lookup (you might want to increase this if you are on a slow network).
833 -set resolve-timeout 15
834 -
835 -
836 -##### MORE ADVANCED SETTINGS #####
837 -
838 -# Set this to your socks host if your Eggdrop sits behind a firewall. If
839 -# you use a Sun "telnet passthru" firewall, prefix the host with a '!'.
840 -#set firewall "!sun-barr.ebay:3666"
841 -
842 -# If you have a NAT firewall (you box has an IP in one of the following
843 -# ranges: 192.168.0.0-192.168.255.255, 172.16.0.0-172.31.255.255,
844 -# 10.0.0.0-10.255.255.255 and your firewall transparently changes your
845 -# address to a unique address for your box) or you have IP masquerading
846 -# between you and the rest of the world, and /dcc chat, /ctcp chat or
847 -# userfile sharing aren't working, enter your outside IP here. Do not
848 -# enter anything for my-ip or my-hostname if you use this setting.
849 -#set nat-ip "127.0.0.1"
850 -
851 -# If you want all dcc file transfers to use a particular portrange either
852 -# because you're behind a firewall, or for other security reasons, set it
853 -# here.
854 -#set reserved-portrange 2010:2020
855 -
856 -# Set the time in minutes that temporary ignores should last.
857 -set ignore-time 15
858 -
859 -# Define here what Eggdrop considers 'hourly'. All calls to it, including such
860 -# things as note notifying or userfile saving, are affected by this.
861 -# For example:
862 -#
863 -#   set hourly-updates 15
864 -#
865 -# The bot will save its userfile 15 minutes past every hour.
866 -set hourly-updates 00
867 -
868 -# Un-comment the next line and set the list of owners of the bot.
869 -# You NEED to change this setting.
870 -#set owner "MrLame, MrsLame"
871 -
872 -# Who should a note be sent to when new users are learned?
873 -set notify-newusers "$owner"
874 -
875 -# Enter the flags that all new users should get by default. See '.help whois'
876 -# on the partyline for a list of flags and their descriptions.
877 -set default-flags "hp"
878 -
879 -# Enter all user-defined fields that should be displayed in a '.whois'.
880 -# This will only be shown if the user has one of these extra fields.
881 -# You might prefer to comment this out and use the userinfo1.0.tcl script
882 -# which provides commands for changing all of these.
883 -set whois-fields "url birthday"
884 -
885 -# Enable this setting if you want your Eggdrop to die upon receiving a SIGHUP
886 -# kill signal. Otherwise, the Eggdrop will just save its userfile and rehash.
887 -set die-on-sighup 0
888 -
889 -# Enable this setting if you want your Eggdrop to die upon receiving a SIGTERM
890 -# kill signal. Otherwise, the Eggdrop will just save its userfile and rehash.
891 -set die-on-sigterm 1
892 -
893 -# Comment these two lines if you wish to enable the .tcl and .set commands.
894 -# If you select your owners wisely, you should be okay enabling these.
895 -unbind dcc n tcl *dcc:tcl
896 -unbind dcc n set *dcc:set
897 -
898 -# If you enable this setting, only permanent owners (owner setting) will be
899 -# able to use .tcl and .set. Moreover, if you want only let permanent owners
900 -# use .dump, then set this to 2.
901 -set must-be-owner 1
902 -
903 -# Comment out this line to add the 'simul' partyline command (owners can
904 -# manipulate other people on the party line). Please select owners wisely
905 -# and use this command ethically!
906 -unbind dcc n simul *dcc:simul
907 -
908 -# Set here the maximum number of dcc connections you will allow. You can
909 -# increase this later, but never decrease it.
910 -set max-dcc 50
911 -
912 -# Enable this setting if you want +d & +k users to use commands bound as -|-.
913 -set allow-dk-cmds 1
914 -
915 -# If your Eggdrop rejects bots that actually have already disconnected from
916 -# another hub, but the disconnect information has not yet spread over the
917 -# botnet due to lag, use this setting. The bot will wait dupwait-timeout
918 -# seconds before it checks again and then finally reject the bot.
919 -set dupwait-timeout 5
920 -
921 -# You MUST remove this line for your bot to start. This has been added to
922 -# prevent you from starting up a bot that is not fully configured. Bots
923 -# that have not been fully configured may join the wrong IRC network, the
924 -# wrong channels, or generally do things that you do not want. Please make
925 -# sure that you have double-checked every setting. There's also a similar line
926 -# lower down, just to make sure you're reading :)
927 -die "Please make sure you edit your config file completely."
928 -
929 -
930 -##### MODULES #####
931 -
932 -# Below are various settings for the modules included with Eggdrop.
933 -# PLEASE READ AND EDIT THEM CAREFULLY, even if you're an old hand at
934 -# Eggdrop, things change.
935 -
936 -# This path specifies the path were Eggdrop should look for its modules.
937 -# If you run the bot from the compilation directory, you will want to set
938 -# this to "". If you use 'make install' (like all good kiddies do ;), this
939 -# is a fine default. Otherwise, use your head :)
940 -set mod-path "/usr/lib/eggdrop/modules/"
941 -
942 -
943 -#### DNS MODULE ####
944 -
945 -# This module provides asynchronous dns support. This will avoid long
946 -# periods where the bot just hangs there, waiting for a hostname to
947 -# resolve, which will often let it timeout on all other connections.
948 -loadmodule dns
949 -
950 -
951 -#### CHANNELS MODULE ####
952 -
953 -# This module provides channel related support for the bot. Without it,
954 -# you won't be able to make the bot join a channel or save channel
955 -# specific userfile information.
956 -loadmodule channels
957 -
958 -# Enter here the filename where dynamic channel settings are stored.
959 -set chanfile "LamestBot.chan"
960 -
961 -# Set this setting to 1 if you want your bot to expire bans/exempts/invites set
962 -# by other opped bots on the channel.
963 -set force-expire 0
964 -
965 -# Set this setting to 1 if you want your bot to share user greets with other
966 -# bots on the channel if sharing user data.
967 -set share-greet 0
968 -
969 -# Set this setting to 1 if you want to allow users to store an info line.
970 -set use-info 1
971 -
972 -# The following settings are used as default values when you .+chan #chan or .tcl
973 -# channel add #chan. Look in the section below for explanation of every option.
974 -
975 -set global-flood-chan 10:60
976 -set global-flood-deop 3:10
977 -set global-flood-kick 3:10
978 -set global-flood-join 5:60
979 -set global-flood-ctcp 3:60
980 -set global-flood-nick 5:60
981 -set global-aop-delay 5:30
982 -set global-idle-kick 0
983 -set global-chanmode "nt"
984 -set global-stopnethack-mode 0
985 -set global-revenge-mode 0
986 -set global-ban-time 120
987 -set global-exempt-time 60
988 -set global-invite-time 60
989 -
990 -set global-chanset {
991 -        -autoop         -autovoice
992 -        -bitch          +cycle
993 -        +dontkickops    +dynamicbans
994 -        +dynamicexempts +dynamicinvites
995 -        -enforcebans    +greet
996 -        -inactive       -nodesynch
997 -        -protectfriends +protectops
998 -        -revenge        -revengebot
999 -        -secret         -seen
1000 -        +shared         +statuslog
1001 -        +userbans       +userexempts
1002 -        +userinvites    -protecthalfops
1003 -        -autohalfop
1004 -}
1005 -
1006 -# Add each static channel you want your bot to sit in using the following
1007 -# command. There are many different possible settings you can insert into
1008 -# this command, which are explained below.
1009 -#
1010 -#    channel add #lamest {
1011 -#      chanmode "+nt-likm"
1012 -#      idle-kick 0
1013 -#      stopnethack-mode 0
1014 -#      revenge-mode 0
1015 -#      ban-time 120
1016 -#      exempt-time 60
1017 -#      invite-time 60
1018 -#      aop-delay 5:30
1019 -#      need-op { putserv "PRIVMSG #lamest :op me cos i'm lame!" }
1020 -#      need-invite { putserv "PRIVMSG #lamest :let me in!" }
1021 -#      need-key { putserv "PRIVMSG #lamest :let me in!" }
1022 -#      need-unban { putserv "PRIVMSG #lamest :let me in!" }
1023 -#      need-limit { putserv "PRIVMSG #lamest :let me in!" }
1024 -#      flood-chan 10:60
1025 -#      flood-deop 3:10
1026 -#      flood-kick 3:10
1027 -#      flood-join 5:60
1028 -#      flood-ctcp 3:60
1029 -#      flood-nick 5:60
1030 -#    }
1031 -#
1032 -# chanmode +/-<modes>
1033 -#    This setting makes the bot enforce channel modes. It will always add
1034 -#    the +<modes> and remove the -<modes> modes.
1035 -# idle-kick 0
1036 -#    This setting will make the bot check every minute for idle
1037 -#    users. Set this to 0 to disable idle check.
1038 -#
1039 -# stopnethack-mode 0
1040 -#    This setting will make the bot de-op anyone who enters the channel
1041 -#    with serverops. There are seven different modes for this settings:
1042 -#       0 turn off,
1043 -#      1 isoptest (allow serverop if registered op)
1044 -#      2 wasoptest (allow serverop if op before split)
1045 -#      3 allow serverop if isop or wasop
1046 -#      4 allow serverop if isop and wasop.
1047 -#      5 If the channel is -bitch, see stopnethack-mode 3
1048 -#        If the channel is +bitch, see stopnethack-mode 1
1049 -#      6 If the channel is -bitch, see stopnethack-mode 2
1050 -#        If the channel is +bitch, see stopnethack-mode 4
1051 -#
1052 -# revenge-mode 0
1053 -#   This settings defines how the bot should punish bad users when
1054 -#   revenging. There are four possible settings:
1055 -#     0 Deop the user.
1056 -#     1 Deop the user and give them the +d flag for the channel.
1057 -#     2 Deop the user, give them the +d flag for the channel, and kick them.
1058 -#     3 Deop the user, give them the +d flag for the channel, kick, and ban them.
1059 -#
1060 -# ban-time 120
1061 -#   Set here how long temporary bans will last (in minutes). If you
1062 -#   set this setting to 0, the bot will never remove them.
1063 -#
1064 -# exempt-time 60
1065 -#   Set here how long temporary exempts will last (in minutes). If you
1066 -#   set this setting to 0, the bot will never remove them. The bot will
1067 -#   check the exempts every X minutes, but will not remove the exempt if
1068 -#   a ban is set on the channel that matches that exempt. Once the ban is
1069 -#   removed, then the exempt will be removed the next time the bot checks.
1070 -#   Please note that this is an IRCnet feature.
1071 -#
1072 -# invite-time 60
1073 -#   Set here how long temporary invites will last (in minutes). If you
1074 -#   set this setting to 0, the bot will never remove them. The bot will
1075 -#   check the invites every X minutes, but will not remove the invite if
1076 -#   a channel is set to +i. Once the channel is -i then the invite will be
1077 -#   removed the next time the bot checks. Please note that this is an IRCnet
1078 -#   feature.
1079 -#
1080 -# aop-delay (minimum:maximum)
1081 -# This is used for autoop, autohalfop, autovoice. If an op or voice joins a
1082 -# channel while another op or voice is pending, the bot will attempt to put
1083 -# both modes on one line.
1084 -#   aop-delay 0   No delay is used.
1085 -#   aop-delay X   An X second delay is used.
1086 -#   aop-delay X:Y A random delay between X and Y is used.
1087 -#
1088 -# need-op { putserv "PRIVMSG #lamest :op me cos i'm lame!" }
1089 -#    This setting will make the bot run the script enclosed in brackets
1090 -#    if it does not have ops. This must be shorter than 120 characters.
1091 -#    If you use scripts like getops.tcl or botnetop.tcl, you don't need
1092 -#    to set this setting.
1093 -#
1094 -# need-invite { putserv "PRIVMSG #lamest :let me in!" }
1095 -#    This setting will make the bot run the script enclosed in brackets
1096 -#    if it needs an invite to the channel. This must be shorter than 120
1097 -#    characters. If you use scripts like getops.tcl or botnetop.tcl, you
1098 -#    don't need to set this setting.
1099 -#
1100 -# need-key { putserv "PRIVMSG #lamest :let me in!" }
1101 -#    This setting will make the bot run the script enclosed in brackets
1102 -#    if it needs the key to the channel. This must be shorter than 120
1103 -#    characters. If you use scripts like getops.tcl or botnetop.tcl, you
1104 -#    don't need to set this setting
1105 -#
1106 -# need-unban { putserv "PRIVMSG #lamest :let me in!" }
1107 -#    This setting will make the bot run the script enclosed in brackets
1108 -#    if it needs to be unbanned on the channel. This must be shorter than
1109 -#    120 characters. If you use scripts like getops.tcl or botnetop.tcl,
1110 -#    you don't need to set this setting
1111 -#
1112 -# need-limit { putserv "PRIVMSG #lamest :let me in!" }
1113 -#    This setting will make the bot run the script enclosed in brackets
1114 -#    if it needs the limit to be raised on the channel. This must be
1115 -#    shorter than 120 characters. If you use scripts like getops.tcl or
1116 -#    botnetop.tcl, you don't need to set this setting
1117 -#
1118 -# flood-chan 10:60
1119 -#    Set here how many channel messages in how many seconds from one
1120 -#    host constitutes a flood. Setting this to 0 or 0:0 disables
1121 -#    flood protection for the channel.
1122 -#
1123 -# flood-deop 3:10
1124 -#    Set here how many deops in how many seconds from one host constitutes
1125 -#    a flood. Setting this to 0 or 0:0 disables deop flood protection for
1126 -#    the channel.
1127 -#
1128 -# flood-kick 3:10
1129 -#    Set here how many kicks in how many seconds from one host constitutes
1130 -#    a flood. Setting this to 0 or 0:0 disables kick flood protection for
1131 -#    the channel.
1132 -#
1133 -# flood-join 5:60
1134 -#    Set here how many joins in how many seconds from one host constitutes
1135 -#    a flood. Setting this to 0 or 0:0 disables join flood protection for
1136 -#    the channel.
1137 -#
1138 -# flood-ctcp 3:60
1139 -#    Set here how many channel ctcps in how many seconds from one host
1140 -#    constitutes a flood. Setting this to 0 or 0:0 disables ctcp flood
1141 -#    protection for the channel.
1142 -#
1143 -# flood-nick 5:60
1144 -#    Set here how many nick changes in how many seconds from one host
1145 -#    constitutes a flood. Setting this to 0 or 0:0 disables nick flood
1146 -#    protection for the channel.
1147 -#
1148 -# There are many different options for channels which you can
1149 -# define. They can be enabled or disabled using the channel set command by a
1150 -# plus or minus in front of them.
1151 -#
1152 -#   channel set #lamest +enforcebans +dynamicbans +userbans +dynamicexempts
1153 -#   channel set #lamest +userexempts +dynamicinvites +userinvites +protectops
1154 -#   channel set #lamest +protectfriends +statuslog +revenge -protecthalfops
1155 -#   channel set #lamest +revengebot +dontkickops +autovoice -autoop -autohalfop
1156 -#   channel set #lamest -bitch -secret -shared +greet +cycle
1157 -#
1158 -# A complete list of all available channel settings:
1159 -#
1160 -# enforcebans
1161 -#    When a ban is set, kick people who are on the channel and match
1162 -#    the ban?
1163 -#
1164 -# dynamicbans
1165 -#    Only activate bans on the channel when necessary? This keeps
1166 -#    the channel's ban list from getting excessively long. The bot
1167 -#    still remembers every ban, but it only activates a ban on the
1168 -#    channel when it sees someone join who matches that ban.
1169 -#
1170 -# userbans
1171 -#    Allow bans to be made by users directly? If turned off, the bot
1172 -#    will require all bans to be made through the bot's console.
1173 -#
1174 -# dynamicexempts
1175 -#    Only activate exempts on the channel when necessary? This keeps
1176 -#    the channel's exempt list from getting excessively long. The bot
1177 -#    still remembers every exempt, but it only activates a exempt on
1178 -#    the channel when it sees a ban set that matches the exempt. The
1179 -#    exempt remains active on the channel for as long as the ban is
1180 -#    still active.
1181 -#
1182 -# userexempts
1183 -#    Allow exempts to be made by users directly? If turned off, the
1184 -#    bot will require all exempts to be made through the bot's console.
1185 -#
1186 -# dynamicinvites
1187 -#    Only activate invites on the channel when necessary? This keeps
1188 -#    the channel's invite list from getting excessively long. The bot
1189 -#    still remembers every invite, but the invites are only activated
1190 -#    when the channel is set to invite only and a user joins after
1191 -#    requesting an invite. Once set, the invite remains until the
1192 -#    channel goes to -i.
1193 -#
1194 -# userinvites
1195 -#    Allow invites to be made by users directly? If turned off, the
1196 -#    bot will require all invites to be made through the bot's console.
1197 -#
1198 -# autoop
1199 -#    Op users with the +o flag as soon as they join the channel?
1200 -#    This is insecure and not recommended.
1201 -#
1202 -# autohalfop
1203 -#    Halfop users with the +l flag as soon as they join the channel?
1204 -#    This is insecure and not recommended.
1205 -#
1206 -# bitch
1207 -#    Only let users with +o) flag be opped on the channel?
1208 -#
1209 -# greet
1210 -#    Say a user's info line when they join the channel?
1211 -#
1212 -# protectops
1213 -#    Re-op a user with the +o flag if they get deopped?
1214 -#
1215 -# protecthalfops
1216 -#    Re-halfop a user with the +l flag if they get dehalfopped?
1217 -#
1218 -# protectfriends
1219 -#    Re-op a user with the +f flag if they get deopped?
1220 -#
1221 -# statuslog
1222 -#    Log the channel status line every 5 minutes? This shows the bot's
1223 -#    status on the channel (op, voice, etc.), the channel's modes, and
1224 -#    the number of +m/+o/+v/+n/+b/+e/+I users on the channel. A sample
1225 -#    status line follows:
1226 -#
1227 -#      [01:40] @#lamest (+istn) : [m/1 o/1 v/4 n/7 b/1 e/5 I/7]
1228 -#
1229 -# revenge
1230 -#    Remember people who deop/kick/ban the bot, valid ops, or friends
1231 -#    and punish them? Users with the +f flag are exempt from revenge.
1232 -#
1233 -# revengebot
1234 -#    This is similar to to the 'revenge' option, but it only triggers
1235 -#    if a bot gets deopped, kicked or banned.
1236 -#
1237 -# autovoice
1238 -#    Voice users with the +v flag when they join the channel?
1239 -#
1240 -# secret
1241 -#    Prevent this channel from being listed on the botnet?
1242 -#
1243 -# shared
1244 -#    Share channel-related user info for this channel?
1245 -#
1246 -# cycle
1247 -#    Cycle the channel when it has no ops?
1248 -#
1249 -# dontkickops
1250 -#    Do you want the bot not to be able to kick users who have the +o
1251 -#    flag, letting them kick-flood for instance to protect the channel
1252 -#    against clone attacks.
1253 -#
1254 -# inactive
1255 -#    This prevents the bot from joining the channel (or makes it leave
1256 -#    the channel if it is already there). It can be useful to make the
1257 -#    bot leave a channel without losing its settings, channel-specific
1258 -#    user flags, channel bans, and without affecting sharing.
1259 -#
1260 -# seen
1261 -#    Respond to seen requests in the channel?  The seen module must be
1262 -#    loaded for this to work.
1263 -#
1264 -# nodesynch
1265 -#    Allow non-ops to perform channel modes? This can stop the bot from
1266 -#    fighting with services such as ChanServ, or from kicking IRCops when
1267 -#    setting channel modes without having ops.
1268 -#
1269 -# Here is a shorter example:
1270 -#
1271 -#   channel add #botcentral {
1272 -#     chanmode "+mntisl 1"
1273 -#     idle-kick 1
1274 -#   }
1275 -#   channel set #botcentral +bitch +enforcebans -greet +revenge
1276 -
1277 -
1278 -#### SERVER MODULE ####
1279 -
1280 -# This module provides the core server support. You have to load this
1281 -# if you want your bot to come on IRC. Not loading this is equivalent
1282 -# to the old NO_IRC define.
1283 -loadmodule server
1284 -
1285 -# What is your network?
1286 -#   0 = EFnet
1287 -#   1 = IRCnet
1288 -#   2 = Undernet
1289 -#   3 = DALnet
1290 -#   4 = +e/+I/max-modes 20 Hybrid
1291 -#   5 = Others
1292 -set net-type 0
1293 -
1294 -# Set the nick the bot uses on IRC, and on the botnet unless you specify a
1295 -# separate botnet-nick, here.
1296 -set nick "Lamestbot"
1297 -
1298 -# Set the alternative nick which the bot uses on IRC if the nick specified
1299 -# by 'set nick' is unavailable. All '?' characters will be replaced by random
1300 -# numbers.
1301 -set altnick "Llamab?t"
1302 -
1303 -# Set what should be displayed in the real-name field for the bot on IRC.
1304 -set realname "/msg LamestBot hello"
1305 -
1306 -# This is a Tcl script to be run immediately after connecting to a server.
1307 -bind evnt - init-server evnt:init_server
1308 -
1309 -proc evnt:init_server {type} {
1310 -  global botnick
1311 -  putquick "MODE $botnick +i-ws"
1312 -}
1313 -
1314 -# Set the default port which should be used if none is specified with
1315 -# '.jump' or in 'set servers'.
1316 -set default-port 6667
1317 -
1318 -# This is the bot's server list. The bot will start at the first server listed,
1319 -# and cycle through them whenever it gets disconnected. You need to change these
1320 -# servers to YOUR network's servers.
1321 -#
1322 -# The format is:
1323 -#   server[:port[:password]]
1324 -#
1325 -# Both the port and password fields are optional; however, if you want to set a
1326 -# password you must also set a port. If a port isn't specified it will default to
1327 -# your default-port setting.
1328 -set servers {
1329 -  you.need.to.change.this:6667
1330 -  another.example.com:7000:password
1331 -}
1332 -
1333 -# This setting makes the bot try to get his original nickname back if its
1334 -# primary nickname is already in use.
1335 -set keep-nick 1
1336 -
1337 -# Set this to 1 if you don't want your the bot to strip a leading '~' on
1338 -# user@hosts.
1339 -set strict-host 0
1340 -
1341 -# This setting makes the bot squelch the error message when rejecting a DCC
1342 -# CHAT, SEND or message command. Normally, Eggdrop notifies the user that the
1343 -# command has been rejected because they don't have access. Note that sometimes
1344 -# IRC server operators detect bots that way.
1345 -set quiet-reject 1
1346 -
1347 -# If you want your bot to answer lower case ctcp requests (non rfc-
1348 -# compliant), set this setting to 1. mIRC will do this, most other
1349 -# clients will not.
1350 -set lowercase-ctcp 0
1351 -
1352 -# Set how many ctcps should be answered at once.
1353 -set answer-ctcp 3
1354 -
1355 -# Set here how many msgs in how many seconds from one host constitutes
1356 -# a flood. If you set this to 0:0, msg flood protection will be disabled.
1357 -set flood-msg 5:60
1358 -
1359 -# Set here how many ctcps in how many seconds from one host constitutes
1360 -# a flood. If you set this to 0:0, ctcp flood protection will be disabled.
1361 -set flood-ctcp 3:60
1362 -
1363 -# This settings makes the bot cycle forever through the server list until
1364 -# it successfully connects to one.
1365 -set never-give-up 1
1366 -
1367 -# This setting defines how long Eggdrop should wait before moving from one
1368 -# server to another on disconnect. If you set 0 here, Eggdrop will not wait
1369 -# at all and will connect instantly. Setting this too low could result in
1370 -# your bot being K:Lined.
1371 -set server-cycle-wait 60
1372 -
1373 -# Set here how long Eggdrop should wait for a response when connecting to a
1374 -# server before giving up and moving on to next server.
1375 -set server-timeout 60
1376 -
1377 -# If the number of servers on the net gets below this number, the bot
1378 -# will jump to a new server (it will assume it's on the losing end of
1379 -# a netsplit). Set this to 0 to turn off. If your bot is running on
1380 -# any major IRC network, this should probably be turned off.
1381 -set servlimit 0
1382 -
1383 -# Set this to 1 if Eggdrop should check for stoned servers? (where the
1384 -# server connection has died, but Eggdrop hasn't been notified yet).
1385 -set check-stoned 1
1386 -
1387 -# If you want your bot to exit the server if it receives an ERROR message,
1388 -# set this to 1.
1389 -set serverror-quit 1
1390 -
1391 -# Set here the maximum number of lines to queue to the server. If you're
1392 -# going to dump large chunks of text to people over IRC, you will probably
1393 -# want to raise this. 300 is fine for most people though.
1394 -set max-queue-msg 300
1395 -
1396 -# If you want Eggdrop to trigger binds for ignored users, set this to 1.
1397 -set trigger-on-ignore 0
1398 -
1399 -# Allow identical messages in the mode queue?
1400 -set double-mode 1
1401 -
1402 -# Allow identical messages in the server queue?
1403 -set double-server 1
1404 -
1405 -# Allow identical messages in the help queue?
1406 -set double-help 1
1407 -
1408 -# This optimizes the kick queue. It also traces nick changes and parts in
1409 -# the channel and changes the kick queue accordingly. There are three
1410 -# different options for this setting:
1411 -#   0 = Turn it off.
1412 -#   1 = Optimize the kick queue by summarizing kicks.
1413 -#   2 = Trace nick changes and parts on the channel and change the queue
1414 -#       accordingly. For example, bot will not try to kick users who have
1415 -#       already parted the channel.
1416 -# ATTENTION: Setting 2 is very CPU intensive.
1417 -set optimize-kicks 1
1418 -
1419 -# If your network supports more recipients per command then 1, you can
1420 -# change this behavior here. Set this to the number of recipients per
1421 -# command, or set this to 0 for unlimited.
1422 -set stack-limit 4
1423 -
1424 -### SERVER MODULE - OTHER NETWORKS (net-type 5) ###
1425 -
1426 -# This settings defines how umode +r is understood by Eggdrop. Some networks
1427 -# use +r to indicate a restricted connection. If this is your case, and you
1428 -# want your bot to leave restricted servers and jump to the next server on its
1429 -# list, then set it to 1.
1430 -#set check-mode-r 1
1431 -
1432 -# This setting allows you to specify the maximum nick-length supported by your
1433 -# network. The default setting is 9. The maximum supported length by Eggdrop
1434 -# is 32.
1435 -#set nick-len 9
1436 -
1437 -#### CTCP MODULE ####
1438 -
1439 -# This module provides the normal ctcp replies that you'd expect.
1440 -# Without it loaded, CTCP CHAT will not work. The server module
1441 -# is required for this module to function.
1442 -loadmodule ctcp
1443 -
1444 -# Set here how the ctcp module should answer ctcps. There are 3 possible
1445 -# operating modes:
1446 -#   0: Normal behavior is used.
1447 -#   1: The bot ignores all ctcps, except for CHAT and PING requests
1448 -#      by users with the +o flag.
1449 -#   2: Normal behavior is used, however the bot will not answer more
1450 -#      than X ctcps in Y seconds (defined by 'set flood-ctcp').
1451 -set ctcp-mode 0
1452 -
1453 -# There are also several variables to help make your bot less noticeable.
1454 -# They are: ctcp-version, ctcp-finger, and ctcp-userinfo. You can use set to set
1455 -# them to values you'd like.
1456 -
1457 -
1458 -#### IRC MODULE ####
1459 -
1460 -# This module provides basic IRC support for your bot. You have to
1461 -# load this if you want your bot to come on IRC. The server and channels
1462 -# modules must be loaded for this module to function.
1463 -loadmodule irc
1464 -
1465 -# Set this to 1 if you want to bounce all server bans.
1466 -set bounce-bans 1
1467 -
1468 -# Set this to 1 if you want to bounce all server exemptions (+e modes).
1469 -# This is disabled if use-exempts is disabled.
1470 -set bounce-exempts 0
1471 -
1472 -# Set this to 1 if you want to bounce all server invitations (+I modes).
1473 -# This is disabled if use-invites is disabled.
1474 -set bounce-invites 0
1475 -
1476 -# Set this to 1 if you want to bounce all server modes.
1477 -set bounce-modes 0
1478 -
1479 -# Set here the maximum number of bans you want the bot to set on a channel.
1480 -# Eggdrop will not place any more bans if this limit is reached. Undernet
1481 -# currently allows 45 bans, IRCnet allows 30, EFnet allows 100, and DALnet
1482 -# allows 100.
1483 -set max-bans 30
1484 -
1485 -# Set here the maximum number of exempts you want Eggdrop to set on a channel.
1486 -# Eggdrop will not place any more exempts if this limit is reached.
1487 -set max-exempts 20
1488 -
1489 -# Set here the maximum number of invites you want Eggdrop to set on a channel.
1490 -# Eggdrop will not place any more invites if this limit is reached.
1491 -set max-invites 20
1492 -
1493 -# There is a global limit for +b/+e/+I modes. This limit should be set to
1494 -# the same value as max-bans for networks that do not support +e/+I.
1495 -set max-modes 30
1496 -
1497 -# The following settings should be left commented unless the default values
1498 -# are being overridden. By default, exempts and invites are on for EFnet and
1499 -# IRCnet, but off for all other large networks. This behavior can be modified
1500 -# with the following 2 flags. If your network doesn't support +e/+I modes then
1501 -# you will be unable to use these features.
1502 -#
1503 -# Do you want to enable exempts (+e modes)?
1504 -#set use-exempts 0
1505 -
1506 -# Do you want to enable invites (+I modes)?
1507 -#set use-invites 0
1508 -
1509 -# Set this to 1 if you want the bot to kick for control character/ctcp
1510 -# avalanches to a channel. Remember that if it does, it won't ban them.
1511 -# This can start kick floods.
1512 -set kick-fun 0
1513 -
1514 -# Set this to 1 if you want the bot to ban for control character/ctcp
1515 -# avalanches to a channel. This can prevent kick floods, but it also can
1516 -# fill the banlist.
1517 -set ban-fun 0
1518 -
1519 -# If you want people to be able to add themselves to the bot's userlist
1520 -# with the default userflags (defined above in the config file) via the
1521 -# 'hello' msg command, set this to 1.
1522 -set learn-users 0
1523 -
1524 -# Set here the time (in seconds) to wait for someone to return from a netsplit
1525 -# (i.e. wasop will expire afterwards). Set this to 1500 on IRCnet since its
1526 -# nick delay stops after 30 minutes.
1527 -set wait-split 600
1528 -
1529 -# Set here the time (in seconds) that someone must have been off-channel
1530 -# before re-displaying their info line.
1531 -set wait-info 180
1532 -
1533 -# Set this to the maximum number of bytes to send in the arguments
1534 -# of modes sent to the server. Most servers default this to 200.
1535 -set mode-buf-length 200
1536 -
1537 -# Many IRCops find bots by seeing if they reply to 'hello' in a msg.
1538 -# You can change this to another word by un-commenting the following
1539 -# two lines and changing "myword" to the word wish to use instead of
1540 -# 'hello'. It must be a single word.
1541 -#unbind msg - hello *msg:hello
1542 -#bind msg - myword *msg:hello
1543 -
1544 -# Many takeover attempts occur due to lame users blindly /msg ident'ing to
1545 -# the bot and attempting to guess passwords. We now unbind this command by
1546 -# default to discourage them. You can enable these commands by commenting the
1547 -# following two lines.
1548 -unbind msg - ident *msg:ident
1549 -unbind msg - addhost *msg:addhost
1550 -
1551 -# Some IRC servers are using some non-standard op-like channel prefixes/modes.
1552 -# Define them here so the bot can recognize them. Just "@" should be fine for
1553 -# most networks. Un-comment the second line for some UnrealIRCds.
1554 -
1555 -set opchars "@"
1556 -#set opchars "@&~"
1557 -
1558 -# If you are so lame you want the bot to display peoples info lines, even
1559 -# when you are too lazy to add their chanrecs to a channel, set this to 1.
1560 -# *NOTE* This means *every* user with an info line will have their info
1561 -# line displayed on EVERY channel they join (provided they have been gone
1562 -# longer than wait-info).
1563 -set no-chanrec-info 0
1564 -
1565 -### IRC MODULE - IRCnet SPECIFIC FEATURES (net-type 1) ###
1566 -
1567 -# Attention: Use these settings *only* if you set 'net-type' to 1!
1568 -
1569 -# At the moment, the current IRCnet IRCd version (2.10) doesn't support the
1570 -# mixing of b, o and v modes with e and I modes. This might be changed in the
1571 -# future, so use 1 at the moment for this setting.
1572 -set prevent-mixing 1
1573 -
1574 -### IRC MODULE - OTHER NETWORKS (net-type 5) ###
1575 -
1576 -# Attention: Use these settings *only* if you set 'net-type' to 5!
1577 -
1578 -# If your network supports more users per kick command then 1, you can
1579 -# change this behavior here. Set this to the number of users to kick at
1580 -# once, or set this to 0 for all at once.
1581 -#set kick-method 1
1582 -
1583 -# Some networks allow you to stack lots of channel modes into one line.
1584 -# They're all guaranteed to support at least 3, so that's the default.
1585 -# If you know your network supports more, you may want to adjust this.
1586 -# This setting is limited to 6, although if you want to use a higher value,
1587 -# you can modify this by changing the value of MODES_PER_LINE_MAX in
1588 -# src/chan.h and recompiling the bot.
1589 -#set modes-per-line 3
1590 -
1591 -# Some networks don't include the +l limit and +k or -k key modes
1592 -# in the modes-per-line (see above) limitation. Set include-lk to 0 for
1593 -# these networks.
1594 -#set include-lk 1
1595 -
1596 -# Set this to 1 if your network uses IRCu2.10.01 specific /who requests.
1597 -# Eggdrop can, therefore, ask only for exactly what's needed.
1598 -#set use-354 0
1599 -
1600 -# If your network doesn't use rfc 1459 compliant string matching routines,
1601 -# set this to 0.
1602 -#set rfc-compliant 1
1603 -
1604 -
1605 -#### TRANSFER MODULE ####
1606 -
1607 -# The transfer module provides DCC SEND/GET support and userfile transfer
1608 -# support for userfile sharing. Un-comment the next line to load it if you
1609 -# need this functionality.
1610 -#loadmodule transfer
1611 -
1612 -# Set here the maximum number of simultaneous downloads to allow for
1613 -# each user.
1614 -set max-dloads 3
1615 -
1616 -# Set here the block size for dcc transfers. ircII uses 512 bytes,
1617 -# but admits that it may be too small. 1024 is standard these days.
1618 -# 0 is turbo-dcc (recommended).
1619 -set dcc-block 0
1620 -
1621 -# Enable this setting if you want to copy files into the /tmp directory
1622 -# before sending them. This is useful on most systems for file stability,
1623 -# but if your directories are NFS mounted, it's a pain, and you'll want
1624 -# to set this to 0. If you are low on disk space, you may also want to
1625 -# set this to 0.
1626 -set copy-to-tmp 1
1627 -
1628 -# Set here the time (in seconds) to wait before an inactive transfer times out.
1629 -set xfer-timeout 30
1630 -
1631 -
1632 -#### SHARE MODULE ####
1633 -
1634 -# This module provides userfile sharing support between two directly
1635 -# linked bots. The transfer and channels modules are required for this
1636 -# module to correctly function. Un-comment the following line to load
1637 -# the share module.
1638 -#loadmodule share
1639 -
1640 -# Settings in this section must be un-commented before setting.
1641 -
1642 -# When two bots get disconnected, this setting allows them to create a
1643 -# resync buffer which saves all changes done to the userfile during
1644 -# the disconnect. When they reconnect, they will not have to transfer
1645 -# the complete user file, but, instead, just send the resync buffer.
1646 -#
1647 -# NOTE: This has been known to cause loss of channel flags and other
1648 -# problems. Using this setting is not recommended.
1649 -#set allow-resync 0
1650 -
1651 -# This setting specifies how long to hold another bots resync data
1652 -# before flushing it.
1653 -#set resync-time 900
1654 -
1655 -# When sharing user lists, DON'T ACCEPT global flag changes from other bots?
1656 -# NOTE: The bot will still send changes made on the bot, it just won't accept
1657 -# any global flag changes from other bots. This overrides the private-globals
1658 -# setting (below).
1659 -#set private-global 0
1660 -
1661 -# When sharing user lists, if private-global isn't set, which global flag
1662 -# changes from other bots should be ignored?
1663 -#set private-globals "mnot"
1664 -
1665 -# When sharing user lists, which channel flags changes from other bots
1666 -# should be ignored?
1667 -#set private-chanflags "mn"
1668 -
1669 -# When sharing user lists, don't accept ANY userfile changes from other
1670 -# bots? Paranoid people should use this feature on their hub bot. This
1671 -# will force all userlist changes to be made via the hub.
1672 -#set private-user 0
1673 -
1674 -# When you have multilevel botnet, this option permits hub, to make changes,
1675 -# even when private-global, private-chanflags and/or private-user are set.
1676 -# NOTE: this option doesn't permit hub to force flags filtered by
1677 -# private-globals
1678 -#set permit-hub 1
1679 -
1680 -# This setting makes the bot discard its own bot records in favor of
1681 -# the ones sent by the hub.
1682 -# NOTE: No passwords or botflags are shared, only ports and
1683 -# address are added to sharing procedure. This only works with hubs that
1684 -# are v1.5.1 or higher.
1685 -#set override-bots 0
1686 -
1687 -
1688 -#### COMPRESS MODULE ####
1689 -
1690 -# This module provides provides support for file compression. This allows the
1691 -# bot to transfer compressed user files and therefore save a significant amount
1692 -# of bandwidth. The share module must be loaded to load this module. Un-comment
1693 -# the following line to the compress module.
1694 -#loadmodule compress
1695 -
1696 -# Allow compressed sending of user files? The user files are compressed with
1697 -# the compression level defined in `compress-level'.
1698 -set share-compressed 1
1699 -
1700 -# This is the default compression level used. These levels are the same as
1701 -# those used by GNU gzip.
1702 -#set compress-level 9
1703 -
1704 -
1705 -#### FILESYSTEM MODULE ####
1706 -
1707 -# This module provides an area within the bot where users can store and
1708 -# manage files. With this module, the bot is usable as a file server. The
1709 -# transfer module is required for this module to function. Un-comment
1710 -# the following line to load the filesys module.
1711 -#loadmodule filesys
1712 -
1713 -# Set here the 'root' directory for the file system.
1714 -set files-path "/home/mydir/filesys"
1715 -
1716 -# If you want to allow uploads, set this to the directory uploads
1717 -# should be put into. Set this to "" if you don't want people to
1718 -# upload files to your bot.
1719 -set incoming-path "/home/mydir/filesys/incoming"
1720 -
1721 -# If you don't want to have a central incoming directory, but instead
1722 -# want uploads to go to the current directory that a user is in, set
1723 -# this setting to 1.
1724 -set upload-to-pwd 0
1725 -
1726 -# Eggdrop creates a '.filedb' file in each subdirectory of your file area
1727 -# to keep track of its own file system information. If you can't do that (for
1728 -# example, if the dcc path isn't owned by you, or you just don't want it to do
1729 -# that) specify a path here where you'd like all of the database files to be
1730 -# stored instead.
1731 -set filedb-path ""
1732 -
1733 -# Set here the maximum number of people that can be in the file area at once.
1734 -# Setting this to 0 makes it effectively infinite.
1735 -set max-file-users 20
1736 -
1737 -# Set here the maximum allowable file size that will be received (in KB).
1738 -# Setting this to 0 makes it effectively infinite.
1739 -set max-filesize 1024
1740 -
1741 -
1742 -#### NOTES MODULE ####
1743 -
1744 -# This module provides support for storing of notes for users from each other.
1745 -# Note sending between currently online users is supported in the core, this is
1746 -# only for storing the notes for later retrieval.
1747 -loadmodule notes
1748 -
1749 -# Set here the filename where private notes between users are stored.
1750 -set notefile "LamestBot.notes"
1751 -
1752 -# Set here the maximum number of notes to allow to be stored for each user
1753 -# (to prevent flooding).
1754 -set max-notes 50
1755 -
1756 -# Set here how long (in days) to store notes before expiring them.
1757 -set note-life 60
1758 -
1759 -# Set this to 1 if you want to allow users to specify a forwarding address
1760 -# for forwarding notes to another account on another bot.
1761 -set allow-fwd 0
1762 -
1763 -# Set this to 1 if you want the bot to let people know hourly if they have
1764 -# any notes.
1765 -set notify-users 1
1766 -
1767 -# Set this to 1 if you want the bot to let people know on join if they have
1768 -# any notes.
1769 -set notify-onjoin 1
1770 -
1771 -# Comment out this next line. Otherwise, your bot won't start.
1772 -die "You didn't edit your config file completely like you were told, did you?"
1773 -
1774 -
1775 -#### CONSOLE MODULE ####
1776 -
1777 -# This module provides storage of console settings when you exit the
1778 -# bot or type .store on the partyline.
1779 -loadmodule console
1780 -
1781 -# Save users console settings automatically? Otherwise, they have
1782 -# to use the .store command.
1783 -set console-autosave 1
1784 -
1785 -# If a user doesn't have any console settings saved, which channel
1786 -# do you want them automatically put on?
1787 -set force-channel 0
1788 -
1789 -# Enable this setting if a user's global info line should be displayed
1790 -# when they join a botnet channel.
1791 -set info-party 0
1792 -
1793 -
1794 -#### WOOBIE MODULE ####
1795 -
1796 -# This is for demonstrative purposes only. If you are looking for starting
1797 -# point in writing modules, woobie is the right thing.
1798 -#loadmodule woobie
1799 -
1800 -
1801 -#### SEEN MODULE ####
1802 -
1803 -# This module provides very basic seen commands via msg, on channel or via dcc.
1804 -# This module works only for users in the bot's userlist. If you are looking for
1805 -# a better and more advanced seen module, try the gseen module by G'Quann. You
1806 -# can find it at http://www.visions-of-fantasy.de/gseen.mod/.
1807 -#loadmodule seen
1808 -
1809 -
1810 -#### BLOWFISH MODULE ####
1811 -
1812 -# IF YOU DON'T READ THIS YOU MAY RENDER YOUR USERFILE USELESS LATER
1813 -# Eggdrop encrypts its userfile, so users can have secure passwords.
1814 -# Please note that when you change your encryption method later (i.e.
1815 -# using other modules like a md5 module), you can't use your current
1816 -# userfile anymore. Eggdrop will not start without an encryption module.
1817 -#loadmodule blowfish
1818 -
1819 -
1820 -#### ASSOC MODULE ####
1821 -
1822 -# This module provides assoc support, i.e. naming channels on the botnet.
1823 -# You can load it by un-commenting the following line.
1824 -#loadmodule assoc
1825 -
1826 -
1827 -#### WIRE MODULE ####
1828 -
1829 -# This module provides all the standard .wire commands via dcc. It is an
1830 -# encrypted partyline communication tool, compatible with wire.tcl. An
1831 -# encryption module must be loaded to use this module. Un-comment the
1832 -# following line to load the wire module.
1833 -#loadmodule wire
1834 -
1835 -#### UPTIME MODULE ####
1836 -
1837 -# This module reports uptime statistics to http://uptime.eggheads.org.
1838 -# Go look and see what your uptime is! It takes about 9 hours to show up,
1839 -# so if your bot isn't listed, try again later. The server module must be
1840 -# loaded for this module to function.
1841 -#
1842 -# Information sent to the server includes the bot's uptime, botnet-nick,
1843 -# server, version, and IP address. This information is stored in a temporary
1844 -# logfile for debugging purposes only. The only publicly available information
1845 -# will be the bot's botnet-nick, version and uptime. If you do not wish for this
1846 -# information to be sent, comment out the following line.
1847 -loadmodule uptime
1848 -
1849 -##### SCRIPTS #####
1850 -
1851 -# This is a good place to load scripts to use with your bot.
1852 -
1853 -# This line loads script.tcl from the scripts directory inside your Eggdrop's
1854 -# directory. All scripts should be put there, although you can place them where
1855 -# you like as long as you can supply a fully qualified path to them.
1856 -#
1857 -# source /usr/share/eggdrop/scripts/script.tcl
1858 -
1859 -source /usr/share/eggdrop/scripts/alltools.tcl
1860 -source /usr/share/eggdrop/scripts/action.fix.tcl
1861 -
1862 -# Use this script for Tcl and Eggdrop downwards compatibility.
1863 -# NOTE: This can also cause problems with some newer scripts.
1864 -source /usr/share/eggdrop/scripts/compat.tcl
1865 -
1866 -# This script provides many useful informational functions, like setting
1867 -# users' URLs, e-mail address, ICQ numbers, etc. You can modify it to add
1868 -# extra entries.
1869 -source /usr/share/eggdrop/scripts/userinfo.tcl
1870 -loadhelp userinfo.help
1871 diff -burN eggdrop1.6.17.orig/Makefile eggdrop1.6.17/Makefile
1872 --- eggdrop1.6.17.orig/Makefile 2004-11-01 14:40:44.093457768 +0100
1873 +++ eggdrop1.6.17/Makefile      1970-01-01 01:00:00.000000000 +0100
1874 @@ -1,8 +0,0 @@
1875 -all:
1876 -       @echo ""
1877 -       @echo "Before you can compile your bot you have to configure it."
1878 -       @echo "Please start the configure script now:"
1879 -       @echo ""
1880 -       @echo " % ./configure"
1881 -       @echo ""
1882 -
1883 diff -burN eggdrop1.6.17.orig/Makefile.in eggdrop1.6.17/Makefile.in
1884 --- eggdrop1.6.17.orig/Makefile.in      2004-11-01 14:40:44.109455336 +0100
1885 +++ eggdrop1.6.17/Makefile.in   2004-11-01 14:41:51.766169952 +0100
1886 @@ -57,6 +57,8 @@
1887  RANLIB = @RANLIB@
1888  MOD_EXT = @MOD_EXT@
1889  XREQS = @TCL_REQS@
1890 +XSSL_LIBS = @SSL_LIBS@
1891 +XSSL_INCLUDE = @SSL_INCLUDE@
1892  TCLLIB = @TCLLIB@
1893  TCLLIBFN = @TCLLIBFN@
1894  
1895 @@ -89,7 +91,8 @@
1896  MAKE_MODEGG = $(MAKE) 'MAKE=$(MAKE)' 'CC=$(MOD_CC)' 'LD=$(MOD_LD)' \
1897  'STRIP=$(MOD_STRIP)' 'RANLIB=$(RANLIB)' 'CFLGS=$(CFLGS)' \
1898  'TCLLIB=$(TCLLIB)' 'TCLLIBFN=$(TCLLIBFN)' 'XREQS=$(XREQS)' \
1899 -'XLIBS=$(XLIBS)' 'EGGEXEC=$(EGGEXEC)' 'EGGBUILD=(standard build)' 'MODOBJS='
1900 +'XSSL_LIBS=$(XSSL_LIBS)' 'XLIBS=$(XLIBS)' 'EGGEXEC=$(EGGEXEC)' \
1901 +'XSSL_INCLUDE=$(XSSL_INCLUDE)' 'EGGBUILD=' 'MODOBJS='
1902  
1903  MAKE_MODULES = $(MAKE) 'MAKE=$(MAKE)' 'CC=$(SHLIB_CC)' 'LD=$(SHLIB_LD)' \
1904  'STRIP=$(SHLIB_STRIP)' 'CFLGS=$(CFLGS)' 'XLIBS=$(XLIBS)' 'MOD_EXT=$(MOD_EXT)' \
1905 @@ -99,12 +102,13 @@
1906  'STRIP=$(STRIP)' 'RANLIB=$(RANLIB)' 'CFLGS=$(CFLGS) -DSTATIC' \
1907  'TCLLIB=$(TCLLIB)' 'TCLLIBFN=$(TCLLIBFN)' 'XREQS=$(XREQS)' \
1908  'XLIBS=$(XLIBS)' 'EGGEXEC=$(EGGEXEC)' 'EGGBUILD=(static version)' \
1909 -'MODOBJS=mod/*.o'
1910 +'XSSL_INCLUDE=$(XSSL_INCLUDE)' 'XSSL_LIBS=$(XSSL_LIBS)' 'MODOBJS=mod/*.o'
1911  
1912  MAKE_DEBEGG = $(MAKE) 'MAKE=$(MAKE)' 'CC=$(MOD_CC)' 'LD=$(MOD_LD) -g' \
1913  'STRIP=touch' 'RANLIB=$(RANLIB)' 'CFLGS=-g3 $(DEBCFLAGS) $(CFLGS)' \
1914  'TCLLIB=$(TCLLIB)' 'TCLLIBFN=$(TCLLIBFN)' 'XREQS=$(XREQS)' \
1915 -'XLIBS=$(XLIBS)' 'EGGEXEC=$(EGGEXEC)' 'EGGBUILD=(debug version)' 'MODOBJS='
1916 +'XSSL_LIBS=$(XSSL_LIBS)' 'XLIBS=$(XLIBS)' 'EGGEXEC=$(EGGEXEC)' \
1917 +'XSSL_INCLUDE=$(XSSL_INCLUDE)' 'EGGBUILD=(debug version)' 'MODOBJS='
1918  
1919  MAKE_DEBMODULES = $(MAKE) 'MAKE=$(MAKE)' 'CC=$(SHLIB_CC)' 'LD=$(SHLIB_LD)' \
1920  'XLIBS=$(XLIBS)' 'STRIP=touch' 'CFLGS=-g3 $(DEBCFLAGS) $(CFLGS)' \
1921 @@ -113,7 +117,8 @@
1922  MAKE_SDEBUG = $(MAKE) 'MAKE=$(MAKE)' 'CC=$(CC)' 'LD=$(LD) -g' \
1923  'STRIP=touch' 'RANLIB=$(RANLIB)' 'CFLGS=-g3 $(DEBCFLAGS) -DSTATIC $(CFLGS)' \
1924  'TCLLIB=$(TCLLIB)' 'TCLLIBFN=$(TCLLIBFN)' 'XREQS=$(XREQS)' 'XLIBS=$(XLIBS)' \
1925 -'EGGEXEC=$(EGGEXEC)' 'EGGBUILD=(static debug version)' 'MODOBJS=mod/*.o'
1926 +'XSSL_INCLUDE=$(XSSL_INCLUDE)' 'XSSL_LIBS=$(XSSL_LIBS)' 'EGGEXEC=$(EGGEXEC)' \
1927 +'EGGBUILD=(static and debug version)' 'MODOBJS=mod/*.o'
1928  
1929  MAKE_DEPEND = $(MAKE) 'MAKE=$(MAKE)' 'CC=$(CC)' 'LD=$(LD)' \
1930  'STRIP=$(STRIP)' 'CFLGS=$(CFLGS)'
1931 diff -burN eggdrop1.6.17.orig/src/dcc.c eggdrop1.6.17/src/dcc.c
1932 --- eggdrop1.6.17.orig/src/dcc.c        2004-11-01 14:40:44.050464304 +0100
1933 +++ eggdrop1.6.17/src/dcc.c     2004-11-01 14:41:51.870154144 +0100
1934 @@ -32,7 +32,11 @@
1935  #include "tandem.h"
1936  
1937  /* Includes for botnet md5 challenge/response code <cybah> */
1938 +#ifndef EGG_SSL_EXT
1939  #include "md5/md5.h"
1940 +#else
1941 +#include "openssl/md5.h"
1942 +#endif
1943  
1944  extern struct userrec *userlist;
1945  extern struct chanset_t *chanset;
1946 diff -burN eggdrop1.6.17.orig/src/dccutil.c eggdrop1.6.17/src/dccutil.c
1947 --- eggdrop1.6.17.orig/src/dccutil.c    2004-11-01 14:40:44.053463848 +0100
1948 +++ eggdrop1.6.17/src/dccutil.c 2004-11-01 14:41:51.872153840 +0100
1949 @@ -33,6 +33,7 @@
1950  #include "chan.h"
1951  #include "modules.h"
1952  #include "tandem.h"
1953 +#include "net.h"
1954  
1955  extern struct dcc_t *dcc;
1956  extern int dcc_total, max_dcc, dcc_flood_thr, backgrd, copy_to_tmp, MAXSOCKS;
1957 diff -burN eggdrop1.6.17.orig/src/eggdrop.h eggdrop1.6.17/src/eggdrop.h
1958 --- eggdrop1.6.17.orig/src/eggdrop.h    2004-11-01 14:40:44.068461568 +0100
1959 +++ eggdrop1.6.17/src/eggdrop.h 2004-11-01 14:41:51.873153688 +0100
1960 @@ -616,17 +616,6 @@
1961  #define HELP_TEXT       2
1962  #define HELP_IRC        16
1963  
1964 -/* This is used by the net module to keep track of sockets and what's
1965 - * queued on them
1966 - */
1967 -typedef struct {
1968 -  int sock;
1969 -  short flags;
1970 -  char *inbuf;
1971 -  char *outbuf;
1972 -  unsigned long outbuflen;      /* Outbuf could be binary data  */
1973 -  unsigned long inbuflen;       /* Inbuf could be binary data   */
1974 -} sock_list;
1975  
1976  enum {
1977    EGG_OPTION_SET = 1,           /* Set option(s).               */
1978 diff -burN eggdrop1.6.17.orig/src/main.c eggdrop1.6.17/src/main.c
1979 --- eggdrop1.6.17.orig/src/main.c       2004-11-01 14:40:44.069461416 +0100
1980 +++ eggdrop1.6.17/src/main.c    2004-11-01 14:41:51.875153384 +0100
1981 @@ -161,6 +161,9 @@
1982  int cx_ptr = 0;
1983  #endif
1984  
1985 +#ifdef EGG_SSL_EXT
1986 +int clean_net();
1987 +#endif
1988  
1989  void fatal(const char *s, int recoverable)
1990  {
1991 @@ -171,6 +174,9 @@
1992    for (i = 0; i < dcc_total; i++)
1993      if (dcc[i].sock >= 0)
1994        killsock(dcc[i].sock);
1995 +  #ifdef EGG_SSL_EXT
1996 +  clean_net();
1997 +  #endif
1998    unlink(pid_file);
1999    if (!recoverable) {
2000      bg_send_quit(BG_ABORT);
2001 diff -burN eggdrop1.6.17.orig/src/Makefile.in eggdrop1.6.17/src/Makefile.in
2002 --- eggdrop1.6.17.orig/src/Makefile.in  2004-11-01 14:40:44.067461720 +0100
2003 +++ eggdrop1.6.17/src/Makefile.in       2004-11-01 14:41:51.868154448 +0100
2004 @@ -11,6 +11,8 @@
2005  INSTALL_PROGRAM = @INSTALL_PROGRAM@
2006  INSTALL_DATA = @INSTALL_DATA@
2007  INSTALL_SCRIPT = @INSTALL_SCRIPT@
2008 +XSSL_LIBS = @SSL_LIBS@
2009 +XSSL_INCLUDE = @SSL_INCLUDE@
2010  
2011  CC = @CC@
2012  LD = @CC@
2013 @@ -37,7 +39,7 @@
2014         @echo "Linking eggdrop $(EGGBUILD)."
2015         @echo ""
2016         @touch mod/mod.xlibs
2017 -       $(LD) -o ../$(EGGEXEC) $(eggdrop_objs) $(MODOBJS) $(XLIBS) md5/md5c.o compat/*.o `cat mod/mod.xlibs`
2018 +       $(LD) -o ../$(EGGEXEC) $(eggdrop_objs) $(MODOBJS) $(XLIBS) md5/md5c.o compat/*.o `cat mod/mod.xlibs` $(XSSL_LIBS) $(XSSL_INCLUDE)
2019         $(STRIP) ../$(EGGEXEC)
2020         @echo ""
2021         @echo "Successful compile: $(EGGEXEC)"
2022 diff -burN eggdrop1.6.17.orig/src/md5/md5c.c eggdrop1.6.17/src/md5/md5c.c
2023 --- eggdrop1.6.17.orig/src/md5/md5c.c   2004-11-01 14:40:43.906486192 +0100
2024 +++ eggdrop1.6.17/src/md5/md5c.c        2004-11-01 14:41:51.920146544 +0100
2025 @@ -17,9 +17,23 @@
2026  
2027  #include <string.h>
2028  
2029 +#ifndef EGG_SSL_EXT
2030  #include "md5.h"
2031 +#else
2032 +#include "openssl/md5.h"
2033 +#endif
2034 +
2035  #include "compat/compat.h"
2036  
2037 +typedef unsigned long MD5_u32plus;
2038 +
2039 +typedef struct {
2040 +       MD5_u32plus lo, hi;
2041 +       MD5_u32plus a, b, c, d;
2042 +       unsigned char buffer[64];
2043 +       MD5_u32plus block[16];
2044 +} MD5_CTX;
2045 +
2046  /*
2047   * The basic MD5 functions.
2048   *
2049 diff -burN eggdrop1.6.17.orig/src/md5/md5.h eggdrop1.6.17/src/md5/md5.h
2050 --- eggdrop1.6.17.orig/src/md5/md5.h    2004-11-01 14:40:43.905486344 +0100
2051 +++ eggdrop1.6.17/src/md5/md5.h 2004-11-01 14:41:51.876153232 +0100
2052 @@ -5,6 +5,9 @@
2053   * Written by Solar Designer <solar@openwall.com> in 2001, and placed in
2054   * the public domain.  See md5c.c for more information.
2055   */
2056 +#include "../config.h"
2057 +#ifndef EGG_SSL_EXT
2058 +
2059  
2060  #ifndef _MD5_H
2061  #define _MD5_H
2062 @@ -24,3 +27,4 @@
2063  extern void MD5_Final(unsigned char *result, MD5_CTX *ctx);
2064  
2065  #endif
2066 +#endif
2067 diff -burN eggdrop1.6.17.orig/src/mod/irc.mod/chan.c eggdrop1.6.17/src/mod/irc.mod/chan.c
2068 --- eggdrop1.6.17.orig/src/mod/irc.mod/chan.c   2004-11-01 14:40:44.040465824 +0100
2069 +++ eggdrop1.6.17/src/mod/irc.mod/chan.c        2004-11-01 14:41:51.953141528 +0100
2070 @@ -952,10 +952,10 @@
2071          q = strchr(p, ' ');
2072          if (q != NULL) {
2073            *q = 0;
2074 -          set_key(chan, p);
2075 +          set_keyegg(chan, p);
2076            strcpy(p, q + 1);
2077          } else {
2078 -          set_key(chan, p);
2079 +          set_keyegg(chan, p);
2080            *p = 0;
2081          }
2082        }
2083 diff -burN eggdrop1.6.17.orig/src/mod/irc.mod/irc.c eggdrop1.6.17/src/mod/irc.mod/irc.c
2084 --- eggdrop1.6.17.orig/src/mod/irc.mod/irc.c    2004-11-01 14:40:44.037466280 +0100
2085 +++ eggdrop1.6.17/src/mod/irc.mod/irc.c 2004-11-01 14:41:51.987136360 +0100
2086 @@ -256,7 +256,7 @@
2087  
2088  /* Set the key.
2089   */
2090 -static void set_key(struct chanset_t *chan, char *k)
2091 +static void set_keyegg(struct chanset_t *chan, char *k)
2092  {
2093    nfree(chan->channel.key);
2094    if (k == NULL) {
2095 diff -burN eggdrop1.6.17.orig/src/mod/irc.mod/irc.h eggdrop1.6.17/src/mod/irc.mod/irc.h
2096 --- eggdrop1.6.17.orig/src/mod/irc.mod/irc.h    2004-11-01 14:40:44.039465976 +0100
2097 +++ eggdrop1.6.17/src/mod/irc.mod/irc.h 2004-11-01 14:41:51.988136208 +0100
2098 @@ -69,7 +69,7 @@
2099  
2100  static void reset_chan_info(struct chanset_t *);
2101  static void recheck_channel(struct chanset_t *, int);
2102 -static void set_key(struct chanset_t *, char *);
2103 +static void set_keyegg(struct chanset_t *, char *);
2104  static void maybe_revenge(struct chanset_t *, char *, char *, int);
2105  static int detect_chan_flood(char *, char *, char *, struct chanset_t *, int,
2106                               char *);
2107 diff -burN eggdrop1.6.17.orig/src/mod/irc.mod/mode.c eggdrop1.6.17/src/mod/irc.mod/mode.c
2108 --- eggdrop1.6.17.orig/src/mod/irc.mod/mode.c   2004-11-01 14:40:44.041465672 +0100
2109 +++ eggdrop1.6.17/src/mod/irc.mod/mode.c        2004-11-01 14:41:51.991135752 +0100
2110 @@ -1128,7 +1128,7 @@
2111            }
2112            check_tcl_mode(nick, from, u, chan->dname, ms2, op);
2113            if (ms2[0] == '+') {
2114 -            set_key(chan, op);
2115 +            set_keyegg(chan, op);
2116              if (channel_active(chan))
2117                got_key(chan, nick, from, op);
2118            } else {
2119 @@ -1139,7 +1139,7 @@
2120                         !chan_master(user) && !match_my_nick(nick))
2121                  add_mode(chan, '+', 'k', chan->key_prot);
2122              }
2123 -            set_key(chan, NULL);
2124 +            set_keyegg(chan, NULL);
2125            }
2126            break;
2127          case 'o':
2128 diff -burN eggdrop1.6.17.orig/src/mod/module.h eggdrop1.6.17/src/mod/module.h
2129 --- eggdrop1.6.17.orig/src/mod/module.h 2004-11-01 14:40:43.926483152 +0100
2130 +++ eggdrop1.6.17/src/mod/module.h      2004-11-01 14:41:51.995135144 +0100
2131 @@ -471,13 +471,23 @@
2132  /* IPv6 leftovers: 286 */
2133  /* IPv6 leftovers: 287 */
2134  /* 288 - 291 */
2135 -/* IPv6 leftovers: 288 */
2136 +#ifdef EGG_SSL_EXT
2137 +#define net_switch_to_ssl ((int (*)(int))global[289])
2138 +#define use_ssl (*(int *)global[290]) /* kyotou */
2139 +#define strip_mirc_codes ((void (*)(int, char *))global[291])
2140 +#define check_ansi ((int (*) (char *))global[292])
2141 +#define oatoi ((int (*) (const char *))global[293])
2142 +/* 292 - 295 */
2143 +#define str_isdigit ((int (*) (const char *))global[294])
2144 +#define remove_crlf ((void (*)(char **))global[295])
2145 +#else
2146  #define strip_mirc_codes ((void (*)(int, char *))global[289])
2147  #define check_ansi ((int (*) (char *))global[290])
2148  #define oatoi ((int (*) (const char *))global[291])
2149  /* 292 - 295 */
2150  #define str_isdigit ((int (*) (const char *))global[292])
2151  #define remove_crlf ((void (*)(char **))global[293])
2152 +#endif
2153  
2154  /* hostmasking */
2155  #define maskhost(a,b) _maskhost((a),(b),1)
2156 diff -burN eggdrop1.6.17.orig/src/mod/server.mod/servmsg.c eggdrop1.6.17/src/mod/server.mod/servmsg.c
2157 --- eggdrop1.6.17.orig/src/mod/server.mod/servmsg.c     2004-11-01 14:40:43.987473880 +0100
2158 +++ eggdrop1.6.17/src/mod/server.mod/servmsg.c  2004-11-01 14:41:52.036128912 +0100
2159 @@ -1239,6 +1239,14 @@
2160        fatal("NO SERVERS WILL ACCEPT MY CONNECTION.", 0);
2161    } else {
2162      dcc[servidx].sock = serv;
2163 +       #ifdef EGG_SSL_EXT
2164 +       if (use_ssl) { /* kyotou */
2165 +               if (net_switch_to_ssl(serv)==0) {
2166 +                       putlog(LOG_SERV, "*", "SSL %s %s (Error while switching to SSL)", IRC_FAILEDCONNECT, dcc[servidx].host);
2167 +                       lostdcc(servidx);
2168 +               }
2169 +       }
2170 +       #endif
2171      /* Queue standard login */
2172      dcc[servidx].timeval = now;
2173      SERVER_SOCKET.timeout_val = &server_timeout;
2174 diff -burN eggdrop1.6.17.orig/src/modules.c eggdrop1.6.17/src/modules.c
2175 --- eggdrop1.6.17.orig/src/modules.c    2004-11-01 14:40:44.071461112 +0100
2176 +++ eggdrop1.6.17/src/modules.c 2004-11-01 14:41:52.041128152 +0100
2177 @@ -29,9 +29,17 @@
2178  #include "main.h"
2179  #include "modules.h"
2180  #include "tandem.h"
2181 +
2182 +#ifndef EGG_SSL_EXT
2183  #include "md5/md5.h"
2184 +#else
2185 +#include "openssl/md5.h"
2186 +#endif
2187 +
2188  #include "users.h"
2189  
2190 +#include "net.h"
2191 +
2192  #ifndef STATIC
2193  #  ifdef MOD_USE_SHL
2194  #    include <dl.h>
2195 @@ -94,6 +102,10 @@
2196             password_timeout, force_expire, protect_readonly, reserved_port_min,
2197             reserved_port_max, copy_to_tmp, quiet_reject;
2198  
2199 +#ifdef EGG_SSL_EXT
2200 +extern int      use_ssl; /* kyotou */
2201 +#endif
2202 +
2203  extern party_t *party;
2204  extern time_t now, online_since;
2205  extern tand_t *tandbot;
2206 @@ -128,6 +140,10 @@
2207  }
2208  #endif /* STATIC */
2209  
2210 +#ifdef EGG_SSL_EXT
2211 +int net_switch_to_ssl(int);
2212 +#endif
2213 +
2214  
2215  /* The null functions */
2216  void null_func()
2217 @@ -564,7 +580,13 @@
2218    (Function) 0,                   /* IPv6 leftovers: 286                 */
2219    (Function) 0,                   /* IPv6 leftovers: 287                 */
2220    /* 288 - 291 */
2221 +#ifdef EGG_SSL_EXT
2222    (Function) 0,                   /* IPv6 leftovers: 288                 */
2223 +  (Function) net_switch_to_ssl,
2224 +  (Function) & use_ssl, /* kyotou */
2225 +#else
2226 +  (Function) 0,                   /* IPv6 leftovers: 288                 */
2227 +#endif
2228    (Function) strip_mirc_codes,
2229    (Function) check_ansi,
2230    (Function) oatoi,
2231 diff -burN eggdrop1.6.17.orig/src/net.c eggdrop1.6.17/src/net.c
2232 --- eggdrop1.6.17.orig/src/net.c        2004-11-01 14:40:44.052464000 +0100
2233 +++ eggdrop1.6.17/src/net.c     2004-11-01 14:41:52.044127696 +0100
2234 @@ -34,6 +34,18 @@
2235  #  endif
2236  #endif
2237  
2238 +#ifdef EGG_SSL_EXT
2239 +#  ifndef EGG_SSL_INCS
2240 +#    include <openssl/ssl.h>
2241 +#    include <openssl/err.h>
2242 +#    include <openssl/rand.h>
2243 +#    define EGG_SSL_INCS 1
2244 +#  endif
2245 +#endif
2246 +
2247 +#include "net.h"
2248 +
2249 +
2250  extern struct dcc_t *dcc;
2251  extern int backgrd, use_stderr, resolve_timeout, dcc_total;
2252  extern unsigned long otraffic_irc_today, otraffic_bn_today, otraffic_dcc_today,
2253 @@ -46,7 +58,11 @@
2254  int firewallport = 1080;      /* Default port of socks 4/5 firewalls.         */
2255  char botuser[21] = "eggdrop"; /* Username of the user running the bot.        */
2256  int dcc_sanitycheck = 0;      /* Do some sanity checking on dcc connections.  */
2257 -
2258 +#ifdef EGG_SSL_EXT
2259 +SSL_CTX *ssl_ctx=NULL;
2260 +char   *tls_rand_file = NULL;
2261 +int     use_ssl = 0; /* kyotou */
2262 +#endif
2263  sock_list *socklist = NULL;   /* Enough to be safe.                           */
2264  int MAXSOCKS = 0;
2265  jmp_buf alarmret;             /* Env buffer for alarm() returns.              */
2266 @@ -70,6 +86,46 @@
2267    return ret;
2268  }
2269  
2270 +#ifdef EGG_SSL_EXT
2271 +int seed_PRNG(void)
2272 +{
2273 +    char stackdata[1024];
2274 +    static char rand_file[300];
2275 +    FILE *fh;
2276 +
2277 +#if OPENSSL_VERSION_NUMBER >= 0x00905100
2278 +    if (RAND_status())
2279 +       return 0;     /* PRNG already good seeded */
2280 +#endif
2281 +    /* if the device '/dev/urandom' is present, OpenSSL uses it by default.
2282 +     * check if it's present, else we have to make random data ourselfs.
2283 +     */
2284 +    if ((fh = fopen("/dev/urandom", "r"))) {
2285 +       fclose(fh);
2286 +       return 0;
2287 +    }
2288 +    if (RAND_file_name(rand_file, sizeof(rand_file)))
2289 +       tls_rand_file = rand_file;
2290 +    else
2291 +       return 1;
2292 +    if (!RAND_load_file(rand_file, 1024)) {
2293 +       /* no .rnd file found, create new seed */
2294 +       unsigned int c;
2295 +       c = time(NULL);
2296 +       RAND_seed(&c, sizeof(c));
2297 +       c = getpid();
2298 +       RAND_seed(&c, sizeof(c));
2299 +       RAND_seed(stackdata, sizeof(stackdata));
2300 +    }
2301 +#if OPENSSL_VERSION_NUMBER >= 0x00905100
2302 +    if (!RAND_status())
2303 +       return 2;   /* PRNG still badly seeded */
2304 +#endif
2305 +    return 0;
2306 +}
2307 +#endif
2308 +
2309 +
2310  /* Initialize the socklist
2311   */
2312  void init_net()
2313 @@ -78,8 +134,34 @@
2314  
2315    for (i = 0; i < MAXSOCKS; i++) {
2316      socklist[i].flags = SOCK_UNUSED;
2317 +#ifdef EGG_SSL_EXT
2318 +    socklist[i].ssl=NULL;
2319 +#endif
2320 +  }
2321 +#ifdef EGG_SSL_EXT
2322 +  /* good place to init ssl stuff */
2323 +  SSL_load_error_strings();
2324 +  OpenSSL_add_ssl_algorithms();
2325 +  ssl_ctx=SSL_CTX_new(SSLv23_client_method());
2326 +  if (!ssl_ctx)
2327 +  fatal("SSL_CTX_new() failed",0);
2328 +  if (seed_PRNG())
2329 +    fatal("Wasn't able to properly seed the PRNG!",0);
2330 +#endif
2331 +}
2332 +
2333 +#ifdef EGG_SSL_EXT
2334 +/* cleanup mess when quiting */
2335 +int clean_net() {
2336 +   if (ssl_ctx) {
2337 +       SSL_CTX_free(ssl_ctx);
2338 +       ssl_ctx = NULL;
2339    }
2340 +  if (tls_rand_file)
2341 +       RAND_write_file(tls_rand_file);
2342 + return 0;
2343  }
2344 +#endif
2345  
2346  int expmem_net()
2347  {
2348 @@ -289,6 +371,13 @@
2349  
2350    for (i = 0; i < MAXSOCKS; i++) {
2351      if ((socklist[i].sock == sock) && !(socklist[i].flags & SOCK_UNUSED)) {
2352 +#ifdef EGG_SSL_EXT
2353 +      if (socklist[i].ssl) {
2354 +       SSL_shutdown(socklist[i].ssl);
2355 +           SSL_free(socklist[i].ssl);
2356 +           socklist[i].ssl=NULL;
2357 +      }
2358 +#endif
2359        close(socklist[i].sock);
2360        if (socklist[i].inbuf != NULL) {
2361          nfree(socklist[i].inbuf);
2362 @@ -428,6 +517,63 @@
2363    return sock;
2364  }
2365  
2366 +#ifdef EGG_SSL_EXT
2367 +int net_switch_to_ssl(int sock) {
2368 +int err;
2369 +int i=0;
2370 +    debug0("net_switch_to_ssl()");
2371 +    while (i<MAXSOCKS) {
2372 +     if (socklist[i].sock==sock) {
2373 +      break;
2374 +     }
2375 +     i++;
2376 +    }
2377 +    if (i==MAXSOCKS) {
2378 +        debug0("Error while swithing to SSL - sock not found in list");
2379 +       return 0;
2380 +    }
2381 +
2382 +    if (socklist[i].ssl) {
2383 +        debug0("Error while swithing to SSL - already in ssl");
2384 +       return 0;
2385 +    }
2386 +    socklist[i].ssl = SSL_new(ssl_ctx);
2387 +    if (!socklist[i].ssl) {
2388 +        debug0("Error while swithing to SSL - SSL_new() error");
2389 +       return 0;
2390 +    }
2391 +
2392 +     SSL_set_fd(socklist[i].ssl, socklist[i].sock);
2393 +     err = SSL_connect(socklist[i].ssl);
2394 +
2395 +     while (err <= 0) {
2396 +        int errs;
2397 +        errs=SSL_get_error(socklist[i].ssl,err);
2398 +        if ((errs!=SSL_ERROR_WANT_READ)&&(errs!=SSL_ERROR_WANT_WRITE)&&
2399 +               (errs!=SSL_ERROR_WANT_X509_LOOKUP)) {
2400 +               putlog(LOG_DEBUG,"*", "SSL_connect() = %d, %s", err,
2401 +                       (char *)ERR_error_string(ERR_get_error(), NULL));
2402 +               SSL_shutdown(socklist[i].ssl);
2403 +               SSL_free(socklist[i].ssl);
2404 +               socklist[i].ssl = NULL;
2405 +               return 0;
2406 +        }
2407 +        usleep(1000);
2408 +        err = SSL_connect(socklist[i].ssl);
2409 +     }
2410 +
2411 +     if (err==1) {
2412 +      debug0("SSL_connect() success");
2413 +      return 1;
2414 +     }
2415 +     debug0("Error while SSL_connect()");
2416 +     SSL_shutdown(socklist[i].ssl);
2417 +     SSL_free(socklist[i].ssl);
2418 +     socklist[i].ssl = NULL;
2419 +     return 0;
2420 +}
2421 +#endif
2422 +
2423  /* Ordinary non-binary connection attempt */
2424  int open_telnet(char *server, int port)
2425  {
2426 @@ -639,6 +785,9 @@
2427      for (i = 0; i < MAXSOCKS; i++) {
2428        if ((!(socklist[i].flags & SOCK_UNUSED)) &&
2429            ((FD_ISSET(socklist[i].sock, &fd)) ||
2430 +#ifdef EGG_SSL_EXT
2431 +                 ((socklist[i].ssl)&&(SSL_pending(socklist[i].ssl))) ||
2432 +#endif
2433            ((socklist[i].sock == STDOUT) && (!backgrd) &&
2434            (FD_ISSET(STDIN, &fd))))) {
2435          if (socklist[i].flags & (SOCK_LISTEN | SOCK_CONNECT)) {
2436 @@ -663,7 +812,31 @@
2437          if ((socklist[i].sock == STDOUT) && !backgrd)
2438            x = read(STDIN, s, grab);
2439          else
2440 +#ifdef EGG_SSL_EXT
2441 +       {
2442 +        if (socklist[i].ssl) {
2443 +           x=SSL_read(socklist[i].ssl,s,grab);
2444 +          if (x < 0) {
2445 +           int err = SSL_get_error(socklist[i].ssl, x);
2446 +           x = -1;
2447 +           switch (err) {
2448 +               case SSL_ERROR_WANT_READ:
2449 +                   errno = EAGAIN;
2450 +                   break;
2451 +               case SSL_ERROR_WANT_WRITE:
2452 +                   errno = EAGAIN;
2453 +                   break;
2454 +               case SSL_ERROR_WANT_X509_LOOKUP:
2455 +                   errno = EAGAIN;
2456 +                   break;
2457 +               }
2458 +           }
2459 +        } else
2460            x = read(socklist[i].sock, s, grab);
2461 +       }
2462 +#else
2463 +         x = read(socklist[i].sock, s, grab);
2464 +#endif
2465          if (x <= 0) {           /* eof */
2466            if (errno != EAGAIN) { /* EAGAIN happens when the operation would
2467                                    * block on a non-blocking socket, if the
2468 @@ -956,6 +1129,26 @@
2469          socklist[i].outbuflen += len;
2470          return;
2471        }
2472 +#ifdef EGG_SSL_EXT
2473 +      if (socklist[i].ssl) {
2474 +       x=SSL_write(socklist[i].ssl,s,len);
2475 +          if (x < 0) {
2476 +           int err = SSL_get_error(socklist[i].ssl, x);
2477 +           x = -1;
2478 +           switch (err) {
2479 +               case SSL_ERROR_WANT_READ:
2480 +                       errno = EAGAIN;
2481 +                   break;
2482 +               case SSL_ERROR_WANT_WRITE:
2483 +                   errno = EAGAIN;
2484 +                   break;
2485 +               case SSL_ERROR_WANT_X509_LOOKUP:
2486 +                   errno = EAGAIN;
2487 +                   break;
2488 +               }
2489 +          }
2490 +      } else
2491 +#endif
2492        /* Try. */
2493        x = write(z, s, len);
2494        if (x == -1)
2495 @@ -1022,6 +1215,27 @@
2496          (socklist[i].outbuf != NULL) && (FD_ISSET(socklist[i].sock, &wfds))) {
2497        /* Trick tputs into doing the work */
2498        errno = 0;
2499 +#ifdef EGG_SSL_EXT
2500 +      if (socklist[i].ssl) {
2501 +          x = write(socklist[i].sock, socklist[i].outbuf,
2502 +               socklist[i].outbuflen);
2503 +          if (x < 0) {
2504 +           int err = SSL_get_error(socklist[i].ssl, x);
2505 +           x = -1;
2506 +           switch (err) {
2507 +               case SSL_ERROR_WANT_READ:
2508 +                   errno = EAGAIN;
2509 +                   break;
2510 +               case SSL_ERROR_WANT_WRITE:
2511 +                   errno = EAGAIN;
2512 +                   break;
2513 +               case SSL_ERROR_WANT_X509_LOOKUP:
2514 +                   errno = EAGAIN;
2515 +                   break;
2516 +               }
2517 +           }
2518 +       } else
2519 +#endif
2520        x = write(socklist[i].sock, socklist[i].outbuf, socklist[i].outbuflen);
2521        if ((x < 0) && (errno != EAGAIN)
2522  #ifdef EBADSLT
2523 diff -burN eggdrop1.6.17.orig/src/net.h eggdrop1.6.17/src/net.h
2524 --- eggdrop1.6.17.orig/src/net.h        1970-01-01 01:00:00.000000000 +0100
2525 +++ eggdrop1.6.17/src/net.h     2004-11-01 14:41:52.045127544 +0100
2526 @@ -0,0 +1,30 @@
2527 +#ifndef _EGG_NET_H
2528 +#define _EGG_NET_H
2529 +#ifdef EGG_SSL_EXT
2530 +# ifndef EGG_SSL_INCS
2531 +#  include <openssl/ssl.h>
2532 +#  include <openssl/err.h>
2533 +#  include <openssl/rand.h>
2534 +#  define EGG_SSL_INCS 1
2535 +# endif
2536 +#endif
2537 +
2538 +/* This is used by the net module to keep track of sockets and what's
2539 + * queued on them
2540 + */
2541 +typedef struct {
2542 +  int           sock;
2543 +#ifdef EGG_SSL_EXT
2544 +  SSL *ssl;
2545 +#endif
2546 +  short                 flags;
2547 +  char         *inbuf;
2548 +  char         *outbuf;
2549 +  unsigned long  outbuflen;    /* Outbuf could be binary data  */
2550 +  unsigned long         inbuflen;      /* Inbuf could be binary data   */
2551 +#ifdef USE_IPV6
2552 +  unsigned int af;
2553 +#endif /* USE_IPV6 */
2554 +} sock_list;
2555 +
2556 +#endif                         /* _EGG_NET_H */
2557 diff -burN eggdrop1.6.17.orig/src/patch.h eggdrop1.6.17/src/patch.h
2558 --- eggdrop1.6.17.orig/src/patch.h      2004-11-01 14:40:44.074460656 +0100
2559 +++ eggdrop1.6.17/src/patch.h   2004-11-01 14:42:19.178002720 +0100
2560 @@ -46,7 +46,9 @@
2561   *
2562   *
2563   */
2564 -/* PATCH GOES HERE */
2565 +#ifdef EGG_SSL_EXT
2566 +patch("SSL");
2567 +#endif
2568  /*
2569   *
2570   *
2571 diff -burN eggdrop1.6.17.orig/src/patch.h.orig eggdrop1.6.17/src/patch.h.orig
2572 --- eggdrop1.6.17.orig/src/patch.h.orig 2004-11-01 14:40:44.071461112 +0100
2573 +++ eggdrop1.6.17/src/patch.h.orig      1970-01-01 01:00:00.000000000 +0100
2574 @@ -1,200 +0,0 @@
2575 -/*
2576 - * patch.h
2577 - *   header file for adding patches to Eggdrop's version string
2578 - *
2579 - * PLACE YOUR PATCHES HERE...
2580 - *
2581 - * HOW TO DO IT:
2582 - *
2583 - * replace a  *** PATCH GOES HERE *** line with a patch("patchname");
2584 - * statement, leave the rest of the file alone, this allows better
2585 - * overlapping patches.
2586 - *
2587 - * $Id$
2588 - */
2589 -/*
2590 - * Copyright (C) 1997 Robey Pointer
2591 - * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Eggheads Development Team
2592 - *
2593 - * This program is free software; you can redistribute it and/or
2594 - * modify it under the terms of the GNU General Public License
2595 - * as published by the Free Software Foundation; either version 2
2596 - * of the License, or (at your option) any later version.
2597 - *
2598 - * This program is distributed in the hope that it will be useful,
2599 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
2600 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2601 - * GNU General Public License for more details.
2602 - *
2603 - * You should have received a copy of the GNU General Public License
2604 - * along with this program; if not, write to the Free Software
2605 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
2606 - */
2607 -#ifndef _EGG_PATCH_H
2608 -#define _EGG_PATCH_H
2609 -/*
2610 - *
2611 - *
2612 - */
2613 -patch("multilevel_sharing");
2614 -/*
2615 - *
2616 - *
2617 - */
2618 -/* PATCH GOES HERE */
2619 -/*
2620 - *
2621 - *
2622 - */
2623 -/* PATCH GOES HERE */
2624 -/*
2625 - *
2626 - *
2627 - */
2628 -/* PATCH GOES HERE */
2629 -/*
2630 - *
2631 - *
2632 - */
2633 -/* PATCH GOES HERE */
2634 -/*
2635 - *
2636 - *
2637 - */
2638 -/* PATCH GOES HERE */
2639 -/*
2640 - *
2641 - *
2642 - */
2643 -/* PATCH GOES HERE */
2644 -/*
2645 - *
2646 - *
2647 - */
2648 -/* PATCH GOES HERE */
2649 -/*
2650 - *
2651 - *
2652 - */
2653 -/* PATCH GOES HERE */
2654 -/*
2655 - *
2656 - *
2657 - */
2658 -/* PATCH GOES HERE */
2659 -/*
2660 - *
2661 - *
2662 - */
2663 -/* PATCH GOES HERE */
2664 -/*
2665 - *
2666 - *
2667 - */
2668 -/* PATCH GOES HERE */
2669 -/*
2670 - *
2671 - *
2672 - */
2673 -/* PATCH GOES HERE */
2674 -/*
2675 - *
2676 - *
2677 - */
2678 -/* PATCH GOES HERE */
2679 -/*
2680 - *
2681 - *
2682 - */
2683 -/* PATCH GOES HERE */
2684 -/*
2685 - *
2686 - *
2687 - */
2688 -/* PATCH GOES HERE */
2689 -/*
2690 - *
2691 - *
2692 - */
2693 -/* PATCH GOES HERE */
2694 -/*
2695 - *
2696 - *
2697 - */
2698 -/* PATCH GOES HERE */
2699 -/*
2700 - *
2701 - *
2702 - */
2703 -/* PATCH GOES HERE */
2704 -/*
2705 - *
2706 - *
2707 - */
2708 -/* PATCH GOES HERE */
2709 -/*
2710 - *
2711 - *
2712 - */
2713 -/* PATCH GOES HERE */
2714 -/*
2715 - *
2716 - *
2717 - */
2718 -/* PATCH GOES HERE */
2719 -/*
2720 - *
2721 - *
2722 - */
2723 -/* PATCH GOES HERE */
2724 -/*
2725 - *
2726 - *
2727 - */
2728 -/* PATCH GOES HERE */
2729 -/*
2730 - *
2731 - *
2732 - */
2733 -/* PATCH GOES HERE */
2734 -/*
2735 - *
2736 - *
2737 - */
2738 -/* PATCH GOES HERE */
2739 -/*
2740 - *
2741 - *
2742 - */
2743 -/* PATCH GOES HERE */
2744 -/*
2745 - *
2746 - *
2747 - */
2748 -/* PATCH GOES HERE */
2749 -/*
2750 - *
2751 - *
2752 - */
2753 -/* PATCH GOES HERE */
2754 -/*
2755 - *
2756 - *
2757 - */
2758 -/* PATCH GOES HERE */
2759 -/*
2760 - *
2761 - *
2762 - */
2763 -/* PATCH GOES HERE */
2764 -/*
2765 - *
2766 - *
2767 - */
2768 -/* PATCH GOES HERE */
2769 -/*
2770 - *
2771 - *
2772 - */
2773 -/* if that's not enough, maybe you should release a new version :) */
2774 -#endif /* _EGG_PATCH_H */
2775 diff -burN eggdrop1.6.17.orig/src/tcl.c eggdrop1.6.17/src/tcl.c
2776 --- eggdrop1.6.17.orig/src/tcl.c        2004-11-01 14:40:44.052464000 +0100
2777 +++ eggdrop1.6.17/src/tcl.c     2004-11-01 14:41:52.049126936 +0100
2778 @@ -45,6 +45,10 @@
2779  
2780  extern time_t online_since;
2781  
2782 +#ifdef EGG_SSL_EXT\r
2783 +extern int      use_ssl; /* kyotou */\r
2784 +#endif
2785 +
2786  extern char origbotname[], botuser[], motdfile[], admin[], userfile[],
2787              firewall[], helpdir[], notify_new[], hostname[], myip[], moddir[],
2788              tempdir[], owner[], network[], botnetnick[], bannerfile[],
2789 @@ -524,6 +528,9 @@
2790    {"enable-simul",          &enable_simul,         0}, /* compat */
2791    {"debug-output",          &debug_output,         0}, /* compat */
2792    {"use-console-r",         &use_console_r,        0}, /* compat */
2793 +#ifdef EGG_SSL_EXT\r
2794 +  {"use-ssl",                  &use_ssl,               0}, /* kyotou */\r
2795 +#endif
2796    {NULL,                    NULL,                  0}
2797  };
2798  
2799 diff -burN eggdrop1.6.17.orig/src/tclmisc.c eggdrop1.6.17/src/tclmisc.c
2800 --- eggdrop1.6.17.orig/src/tclmisc.c    2004-11-01 14:40:44.070461264 +0100
2801 +++ eggdrop1.6.17/src/tclmisc.c 2004-11-01 14:41:52.089120856 +0100
2802 @@ -26,7 +26,13 @@
2803  #include "main.h"
2804  #include "modules.h"
2805  #include "tandem.h"
2806 -#include "md5/md5.h"
2807 +\r
2808 +#ifndef EGG_SSL_EXT\r
2809 + #include "md5/md5.h"\r
2810 +#else\r
2811 +#include "openssl/md5.h"\r
2812 +#endif\r
2813 +
2814  
2815  #ifdef TIME_WITH_SYS_TIME
2816  #  include <sys/time.h>
This page took 0.292581 seconds and 3 git commands to generate.