diff -uNrd ircd-hybrid-7.0/ChangeLog.anynet anynet-3.0/ChangeLog.anynet
--- ircd-hybrid-7.0/ChangeLog.anynet	Wed Dec 31 19:00:00 1969
+++ anynet-3.0/ChangeLog.anynet	Wed Feb  4 16:41:14 2004
@@ -0,0 +1,78 @@
+-- anynet-3.0 (2004-02-03)
+
+* Fixed a bounds error in adns.
+* Added SSL client support, including support for STARTTLS.
+* Added support for 192 and 256-bit Blowfish and 128, 192, and 256-bit AES
+  to cryptlinks.
+* Made 168-bit Blowfish 168 bits instead of 192.
+* Updated default lengths.  (nick=20, topic=495)
+* Made the map module part of the standard module set.
+* Made the TBURST module part of the standard module set.
+* Updated example.conf to reflect new options and better defaults
+  for Anynet.
+* Updated Hybrid-team (as it's shown in /info.)
+* Added parenthesis to find_user_link() and FIND_AND_DELETE() macros to
+  remove ambiguity from preprocessed code.
+* Allow admins to see hidden channels.
+* Allow admins to see invisible users.
+* Allow admins to see nicknames for topics and bans in +a channels.
+* Allow admins to see ops in /names, /who, and /whois for +a channels.
+* Added +N for services clients to allow mode hacks, kicks, invites,
+  and messages.
+* Fixed type-punning warnings for count*memory functions.
+* Updated defaults.h to have better defaults for Anynet.
+* Added Client struct prototype in event.h to fix a warning when it gets
+  included without client.h.
+* Added __attribute__((format)) to SendIAuth, linebuf_putmsg, ilog,
+  and debug() when using GCC.
+* Cleaned up formatting errors that the format warnings turned up.
+* Added extended ISUPPORT numeric support code, conforming to
+  draft-brocklesby-03.
+* Prototype dlfunc() if we're providing our own.
+* Prorotyped set_no_delay() to quell a warning.
+* Added a timestamp field to the ConfItem struct (for GLINEs.)
+* Properly externed current_serial in send.h.
+* Added charsets and encodings to the .po files to suppress a warning.
+* Changed 'Quit: ' prefix on quit messages to surrounding double quotes.
+* Fixed type-punning warnings in m_cryptlink.c
+* Rewrote GLINE support.  New GLINEs are persistent (sent in netburst)
+  and can only be set by servers (e.g. services.)  Non-expiring GLINEs
+  (duration 0) are supported.  This is all more suitable for a small
+  network than the original 3-oper cooperative GLINE code.
+* Removed extraneous \ns from ilog()s in assorted places.
+* Fixed some warnings in the TBURST module.
+* Fixed reverse timestamp logic.
+* Allow non-opers to use the TRACE command.
+* Remove silly 'OPERWALL - ' header from oper wallops.
+* Fixed type-punning warnings in adns.c.
+* Allow opers to see +l parameter and admins to see +k parameter in
+  channel modes without being in the channel.
+* Changed code to show server mode source when hide_servers is off.
+* Fixed misuse of memcpy (arguments overlapped) in dynlink.c.
+* Made y.tab.o depend on setup.h so that it gets rebuilt when configure
+  is rerun.
+* Make ircd properly depend on libadns.a so that parallel builds work.
+* Fix unaligned long accesses in md5.c.
+* Fix a missing space in the invalid server command notice.
+* Don't send() directly to client sockets anymore if we can help it, even
+  for the connection notices--always use sendto_one so that SSL clients can
+  receive the data.
+* Fix time formats in s_debug.c.
+* Allow non-opers to see wallops.
+* Show port numbers in connect notices.
+* Made small network support the default.
+* Added +i status to WHO output.
+* Added smaller hash sizes for SMALL_NET mode
+* Fix a bug in the lexer that kept "*\n" in a multi-line comment from being
+  counted as a line (which screwed up the line numbers for errors.)
+* Fixed logging of IPv4 server connections when IPv6 support is enabled.
+* Made smalldate() use an ISO8601 formatted date.
+* Made code prepend the type of kill to the exit_client reason (e.g.
+  'G-lined: reason' or K-lined: reason') if kline reasons are on
+* Rearranged the doc/ directory a bit, moving EFnet-specific documentation
+  to efnet/.
+* Changed the 'ban list full' message to be slightly more generic, since
+  it's used for +I/+e as well.
+* Fixed a warning in cs_in6addr when we're compiling without debugging.
+* Changed m_message.c to allow broadcasts to everyone, instead of requiring
+  a TLD. (e.g. 'PRIVMSG $* :test' should work)
diff -uNrd ircd-hybrid-7.0/Hybrid-team anynet-3.0/Hybrid-team
--- ircd-hybrid-7.0/Hybrid-team	Mon Feb 17 21:15:59 2003
+++ anynet-3.0/Hybrid-team	Fri Jan 23 12:30:12 2004
@@ -59,5 +59,12 @@
 previous versions of this ircd and it's ancestors, too many to list
 here.
  
-Send bug fixes/complaints/rotten tomatoes to ircd-hybrid@the-project.org.
+Additionally, some fixes, enhancements, and extensions have been added
+for the Anynet IRC network by the Anynet team.
+The Anynet team consists of the following people:
+ 
+|Rain|, Ben Winslow <ircd-anynet@t.themuffin.net>
+Nifty, Matt Higgins <mhh@strategery.org>
+ 
+Send bug fixes/complaints/flaming goats to ircd-stuff@t.themuffin.net
 
diff -uNrd ircd-hybrid-7.0/adns/types.c anynet-3.0/adns/types.c
--- ircd-hybrid-7.0/adns/types.c	Tue Oct 29 21:56:17 2002
+++ anynet-3.0/adns/types.c	Wed Feb  4 13:28:27 2004
@@ -279,7 +279,10 @@
 
 #ifdef IPV6
 static adns_status cs_in6addr(vbuf *vb, const void *datap) {
-  const struct in6_addr *rrp= datap, rr= *rrp;
+#ifndef NDEBUG /* rain - quell warning if the assert() won't be here */
+  const struct in6_addr *rrp= datap;
+  const struct in6_addr rr= *rrp;
+#endif
   char ia[IP6STRLEN];
 
   assert(inetntop(AF_INET6, &rr, ia, IP6STRLEN) != NULL);
@@ -875,7 +878,9 @@
 	return adns_s_querydomainwrong;
     }
     pt = ip6;     
-    for(i = 32, x = 0; i >= 0; i--)
+
+    /* rain - changed i >= 0 to i > 0 to prevent an underrun */
+    for(i = 32, x = 0; i > 0; i--)
     {
 	if(x >= 3 && i > 2)
 	{
diff -uNrd ircd-hybrid-7.0/autoconf/configure.in anynet-3.0/autoconf/configure.in
--- ircd-hybrid-7.0/autoconf/configure.in	Sat May 31 03:30:23 2003
+++ anynet-3.0/autoconf/configure.in	Mon Feb  2 04:07:32 2004
@@ -316,6 +316,25 @@
 	AC_MSG_RESULT($cf_rlimit_type)
 fi
 
+dnl rain - SSL client support
+AC_MSG_CHECKING(whether you want SSL client support)
+AC_ARG_ENABLE(ssl-clients,
+[  --enable-ssl-clients         Enable SSL client support. (default)
+  --disable-ssl-clients        Disable SSL client support. ],
+[
+  case "$enableval" in
+  yes)
+    ac_cv_ssl_clients="yes"
+    ;;
+  no)
+    ac_cv_ssl_clients="no"
+    ;;
+  esac
+], [ac_cv_ssl_clients="yes"])
+AC_MSG_RESULT($ac_cv_ssl_clients)
+AC_SUBST(SSL_CLIENT_C)
+AC_SUBST(M_STARTTLS_C)
+
 dnl OpenSSL support
 AC_MSG_CHECKING(for OpenSSL)
 AC_ARG_ENABLE(openssl,
@@ -407,8 +426,16 @@
         AC_CHECK_LIB(crypto, RSA_free)
         if test "X$ac_cv_lib_crypto_RSA_free" = "Xyes"; then
             cf_openssl_ciphers=''
+            dnl rain - added 256, 192-bit BF checks
             AC_CHECK_FUNCS(EVP_bf_cfb,
-                cf_openssl_ciphers="${cf_openssl_ciphers}BF/168 BF/128 ")
+                cf_openssl_ciphers="${cf_openssl_ciphers}BF/256 BF/192 BF/168 BF/128 ")
+            dnl rain - added AES checks
+            AC_CHECK_FUNCS(EVP_aes_128_cfb,
+                cf_openssl_ciphers="${cf_openssl_ciphers}AES/128 ")
+            AC_CHECK_FUNCS(EVP_aes_192_cfb,
+                cf_openssl_ciphers="${cf_openssl_ciphers}AES/192 ")
+            AC_CHECK_FUNCS(EVP_aes_256_cfb,
+                cf_openssl_ciphers="${cf_openssl_ciphers}AES/256 ")
             AC_CHECK_FUNCS(EVP_cast5_cfb,
                 cf_openssl_ciphers="${cf_openssl_ciphers}CAST/128 ")
             AC_CHECK_FUNCS(EVP_idea_cfb,
@@ -422,6 +449,16 @@
         fi
         CPPFLAGS="$save_CPPFLAGS"
         SSL_LIBS="$SSL_LIBS -lcrypto"
+
+dnl rain - we have SSL and want SSL clients, do it
+        if test "X$ac_cv_ssl_clients" = "Xyes"; then
+		SSL_CLIENT_C="ssl_client.c"
+		M_STARTTLS_C="m_starttls.c"
+
+	        AC_DEFINE(SSL_CLIENT_SUPPORT)
+
+		SSL_LIBS="$SSL_LIBS -lssl"
+	fi
     else
         AC_MSG_RESULT(no - OpenSSL support disabled)
     fi
@@ -753,11 +790,15 @@
     IRC_CFLAGS="$IRC_CFLAGS"
     ;;
   esac
+], [
+dnl rain - default to small net
+    IRC_CFLAGS="$IRC_CFLAGS -DSMALL_NET=1"
 ])
 
-ac_cv_nicklen="9"
-ac_cv_maxclients="200"
-ac_cv_topiclen="120"
+dnl rain - updated these defaults to be sane for our network
+ac_cv_nicklen="20"
+ac_cv_maxclients="300"
+ac_cv_topiclen="495"
 
 dnl Nicklen
 AC_ARG_WITH(nicklen,
diff -uNrd ircd-hybrid-7.0/configure anynet-3.0/configure
--- ircd-hybrid-7.0/configure	Sat May 31 03:30:18 2003
+++ anynet-3.0/configure	Wed Feb  4 13:33:01 2004
@@ -1,310 +1,81 @@
 #! /bin/sh
+
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.53.
+# Generated automatically using autoconf version 2.13 
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
 #
-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-
-# NLS nuisances.
-# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
-    { $as_unset LANG || test "${LANG+set}" != set; } ||
-      { LANG=C; export LANG; }
-(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
-    { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
-      { LC_ALL=C; export LC_ALL; }
-(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
-    { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
-      { LC_TIME=C; export LC_TIME; }
-(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
-    { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
-      { LC_CTYPE=C; export LC_CTYPE; }
-(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
-    { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
-      { LANGUAGE=C; export LANGUAGE; }
-(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
-    { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
-      { LC_COLLATE=C; export LC_COLLATE; }
-(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
-    { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
-      { LC_NUMERIC=C; export LC_NUMERIC; }
-(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
-    { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
-      { LC_MESSAGES=C; export LC_MESSAGES; }
-
-
-# Name of the executable.
-as_me=`(basename "$0") 2>/dev/null ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conftest.sh
-  echo  "exit 0"   >>conftest.sh
-  chmod +x conftest.sh
-  if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conftest.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
+# Defaults:
+ac_help=
 ac_default_prefix=/usr/local
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
+# Any additions from configure.in:
 ac_default_prefix=/usr/local/ircd
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#if HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-#  include <stdint.h>
-# endif
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
+ac_help="$ac_help
+  --enable-ssl-clients         Enable SSL client support. (default)
+  --disable-ssl-clients        Disable SSL client support. "
+ac_help="$ac_help
+  --enable-openssl[=DIR]       Enable OpenSSL support (DIR optional).
+  --disable-openssl            Disable OpenSSL support. "
+ac_help="$ac_help
+  --enable-zlib                Enable zlib compression (used by ziplinks)
+  --disable-zlib               Disable zlib compression (used by ziplinks) "
+ac_help="$ac_help
+  --enable-profile             Enable profiling.
+  --disable-profile            Disable profiling(default). "
+ac_help="$ac_help
+  --enable-efence              Enable ElectricFence(memory debugger).
+  --disable-efence             Disable ElectricFence(default)."
+ac_help="$ac_help
+  --enable-block-alloc         Enable the block allocator(default)
+  --disable-block-alloc        Disable the block allocator(Only useful
+                               with ElectricFence)."
+ac_help="$ac_help
+  --enable-poll                Enable poll() support.
+  --disable-poll               Disable poll() support. "
+ac_help="$ac_help
+  --enable-select              Enable select() support.
+  --disable-select             Disable select() support. "
+ac_help="$ac_help
+  --enable-kqueue              Enable kqueue() support.
+  --disable-kqueue             Disable kqueue() support. "
+ac_help="$ac_help
+  --enable-devpoll             Enable /dev/poll support.
+  --disable-devpoll            Disable /dev/poll support. "
+ac_help="$ac_help
+  --enable-rtsigio             Enable SIGIO with RT Signals(Linux only).
+  --disable-rtsigio            Disable SIGIO with RT Signals(Linux only). "
+ac_help="$ac_help
+  --enable-ipv6                Enable IPV6 support.
+  --disable-ipv6               Disable IPV6 support. "
+ac_help="$ac_help
+  --enable-efnet               For IRCDs running on efnet. "
+ac_help="$ac_help
+  --enable-assert              Enable assert().
+  --disable-assert             Disable assert(). "
+ac_help="$ac_help
+  --enable-small-net           Enable small network support.
+  --disable-small-net          Disable small network support. "
+ac_help="$ac_help
+  --with-nicklen=LENGTH        Set the nick length to LENGTH. "
+ac_help="$ac_help
+  --with-maxclients=NUMBER     Set the maximum number of clients to NUMBER. "
+ac_help="$ac_help
+  --with-topiclen=NUMBER       Set the max topic length to NUMBER. "
+ac_help="$ac_help
+  --enable-shared-modules      Enable shared modules.
+  --disable-shared-modules     Disable shared modules. "
 
 # Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
 # The variables have the same names as the options, with
 # dashes changed to underlines.
-cache_file=/dev/null
+build=NONE
+cache_file=./config.cache
 exec_prefix=NONE
+host=NONE
 no_create=
+nonopt=NONE
 no_recursion=
 prefix=NONE
 program_prefix=NONE
@@ -313,15 +84,10 @@
 silent=
 site=
 srcdir=
+target=NONE
 verbose=
 x_includes=NONE
 x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
 bindir='${exec_prefix}/bin'
 sbindir='${exec_prefix}/sbin'
 libexecdir='${exec_prefix}/libexec'
@@ -335,9 +101,17 @@
 infodir='${prefix}/info'
 mandir='${prefix}/man'
 
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
 ac_prev=
 for ac_option
 do
+
   # If the previous option needs an argument, assign it.
   if test -n "$ac_prev"; then
     eval "$ac_prev=\$ac_option"
@@ -345,59 +119,59 @@
     continue
   fi
 
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
 
-  case $ac_option in
+  case "$ac_option" in
 
   -bindir | --bindir | --bindi | --bind | --bin | --bi)
     ac_prev=bindir ;;
   -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
+    bindir="$ac_optarg" ;;
 
   -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
+    ac_prev=build ;;
   -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
+    build="$ac_optarg" ;;
 
   -cache-file | --cache-file | --cache-fil | --cache-fi \
   | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
     ac_prev=cache_file ;;
   -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
   | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
+    cache_file="$ac_optarg" ;;
 
   -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
     ac_prev=datadir ;;
   -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
   | --da=*)
-    datadir=$ac_optarg ;;
+    datadir="$ac_optarg" ;;
 
   -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
 
   -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
       *) ac_optarg=yes ;;
     esac
-    eval "enable_$ac_feature='$ac_optarg'" ;;
+    eval "enable_${ac_feature}='$ac_optarg'" ;;
 
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
@@ -406,47 +180,95 @@
   -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
   | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
   | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
+    exec_prefix="$ac_optarg" ;;
 
   -gas | --gas | --ga | --g)
     # Obsolete; use --with-gas.
     with_gas=yes ;;
 
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
+  -help | --help | --hel | --he)
+    # Omit some internal or obsolete options to make the list less imposing.
+    # This message is too long to be a string in the A/UX 3.1 sh.
+    cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [same as prefix]
+  --bindir=DIR            user executables in DIR [EPREFIX/bin]
+  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
+  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
+  --datadir=DIR           read-only architecture-independent data in DIR
+                          [PREFIX/share]
+  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
+                          [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
+  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
+  --includedir=DIR        C header files in DIR [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
+  --infodir=DIR           info documentation in DIR [PREFIX/info]
+  --mandir=DIR            man documentation in DIR [PREFIX/man]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+  --program-transform-name=PROGRAM
+                          run sed PROGRAM on installed program names
+EOF
+    cat << EOF
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+EOF
+    if test -n "$ac_help"; then
+      echo "--enable and --with options recognized:$ac_help"
+    fi
+    exit 0 ;;
 
   -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
+    ac_prev=host ;;
   -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
+    host="$ac_optarg" ;;
 
   -includedir | --includedir | --includedi | --included | --include \
   | --includ | --inclu | --incl | --inc)
     ac_prev=includedir ;;
   -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
   | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
+    includedir="$ac_optarg" ;;
 
   -infodir | --infodir | --infodi | --infod | --info | --inf)
     ac_prev=infodir ;;
   -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
+    infodir="$ac_optarg" ;;
 
   -libdir | --libdir | --libdi | --libd)
     ac_prev=libdir ;;
   -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
+    libdir="$ac_optarg" ;;
 
   -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
   | --libexe | --libex | --libe)
     ac_prev=libexecdir ;;
   -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
   | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
+    libexecdir="$ac_optarg" ;;
 
   -localstatedir | --localstatedir | --localstatedi | --localstated \
   | --localstate | --localstat | --localsta | --localst \
@@ -455,19 +277,19 @@
   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
   | --localstate=* | --localstat=* | --localsta=* | --localst=* \
   | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir=$ac_optarg ;;
+    localstatedir="$ac_optarg" ;;
 
   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
     ac_prev=mandir ;;
   -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
+    mandir="$ac_optarg" ;;
 
   -nfp | --nfp | --nf)
     # Obsolete; use --without-fp.
     with_fp=no ;;
 
   -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
+  | --no-cr | --no-c)
     no_create=yes ;;
 
   -no-recursion | --no-recursion | --no-recursio | --no-recursi \
@@ -481,26 +303,26 @@
   -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
   | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
   | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
+    oldincludedir="$ac_optarg" ;;
 
   -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
     ac_prev=prefix ;;
   -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
+    prefix="$ac_optarg" ;;
 
   -program-prefix | --program-prefix | --program-prefi | --program-pref \
   | --program-pre | --program-pr | --program-p)
     ac_prev=program_prefix ;;
   -program-prefix=* | --program-prefix=* | --program-prefi=* \
   | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
+    program_prefix="$ac_optarg" ;;
 
   -program-suffix | --program-suffix | --program-suffi | --program-suff \
   | --program-suf | --program-su | --program-s)
     ac_prev=program_suffix ;;
   -program-suffix=* | --program-suffix=* | --program-suffi=* \
   | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
+    program_suffix="$ac_optarg" ;;
 
   -program-transform-name | --program-transform-name \
   | --program-transform-nam | --program-transform-na \
@@ -517,7 +339,7 @@
   | --program-transfo=* | --program-transf=* \
   | --program-trans=* | --program-tran=* \
   | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
+    program_transform_name="$ac_optarg" ;;
 
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil)
@@ -527,7 +349,7 @@
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
   | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
+    sbindir="$ac_optarg" ;;
 
   -sharedstatedir | --sharedstatedir | --sharedstatedi \
   | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
@@ -538,57 +360,58 @@
   | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
   | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
   | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
+    sharedstatedir="$ac_optarg" ;;
 
   -site | --site | --sit)
     ac_prev=site ;;
   -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
+    site="$ac_optarg" ;;
 
   -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
     ac_prev=srcdir ;;
   -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
+    srcdir="$ac_optarg" ;;
 
   -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
   | --syscon | --sysco | --sysc | --sys | --sy)
     ac_prev=sysconfdir ;;
   -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
   | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
+    sysconfdir="$ac_optarg" ;;
 
   -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
+    ac_prev=target ;;
   -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
+    target="$ac_optarg" ;;
 
   -v | -verbose | --verbose | --verbos | --verbo | --verb)
     verbose=yes ;;
 
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 2.13"
+    exit 0 ;;
 
   -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
     ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+    case "$ac_option" in
+      *=*) ;;
       *) ac_optarg=yes ;;
     esac
-    eval "with_$ac_package='$ac_optarg'" ;;
+    eval "with_${ac_package}='$ac_optarg'" ;;
 
   -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=no" ;;
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    eval "with_${ac_package}=no" ;;
 
   --x)
     # Obsolete; use --with-x.
@@ -599,110 +422,99 @@
     ac_prev=x_includes ;;
   -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
   | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
+    x_includes="$ac_optarg" ;;
 
   -x-libraries | --x-libraries | --x-librarie | --x-librari \
   | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
     ac_prev=x_libraries ;;
   -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
+    x_libraries="$ac_optarg" ;;
 
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
+  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
     ;;
 
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
-    export $ac_envvar ;;
-
   *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
     ;;
 
   esac
 done
 
 if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
 fi
 
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
 
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-              localstatedir libdir includedir oldincludedir infodir mandir
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 6>/dev/null
+else
+  exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
 do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
   esac
 done
 
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
+# NLS nuisances.
+# Only set these to C if already set.  These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
 
-test "$silent" = yes && exec 6>/dev/null
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
 
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=
 
 # Find the source files, if location was not specified.
 if test -z "$srcdir"; then
   ac_srcdir_defaulted=yes
   # Try the directory containing this script, then its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$0" : 'X\(//\)[^/]' \| \
-         X"$0" : 'X\(//\)$' \| \
-         X"$0" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+  ac_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
   srcdir=$ac_confdir
   if test ! -r $srcdir/$ac_unique_file; then
     srcdir=..
@@ -712,403 +524,13 @@
 fi
 if test ! -r $srcdir/$ac_unique_file; then
   if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-   { (exit 1); exit 1; }; }
+    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
   else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
   fi
 fi
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
-  cat <<_ACEOF
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --infodir=DIR          info documentation [PREFIX/info]
-  --mandir=DIR           man documentation [PREFIX/man]
-_ACEOF
-
-  cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-openssl=DIR       Enable OpenSSL support (DIR optional).
-  --disable-openssl            Disable OpenSSL support.
-  --enable-zlib                Enable zlib compression (used by ziplinks)
-  --disable-zlib               Disable zlib compression (used by ziplinks)
-  --enable-profile             Enable profiling.
-  --disable-profile            Disable profiling(default).
-  --enable-efence              Enable ElectricFence(memory debugger).
-  --disable-efence             Disable ElectricFence(default).
-  --enable-block-alloc         Enable the block allocator(default)
-  --disable-block-alloc        Disable the block allocator(Only useful
-                               with ElectricFence).
-  --enable-poll                Enable poll() support.
-  --disable-poll               Disable poll() support.
-  --enable-select              Enable select() support.
-  --disable-select             Disable select() support.
-  --enable-kqueue              Enable kqueue() support.
-  --disable-kqueue             Disable kqueue() support.
-  --enable-devpoll             Enable /dev/poll support.
-  --disable-devpoll            Disable /dev/poll support.
-  --enable-rtsigio             Enable SIGIO with RT Signals(Linux only).
-  --disable-rtsigio            Disable SIGIO with RT Signals(Linux only).
-  --enable-ipv6                Enable IPV6 support.
-  --disable-ipv6               Disable IPV6 support.
-  --enable-efnet               For IRCDs running on efnet.
-  --enable-assert              Enable assert().
-  --disable-assert             Disable assert().
-  --enable-small-net           Enable small network support.
-  --disable-small-net          Disable small network support.
-  --enable-shared-modules      Enable shared modules.
-  --disable-shared-modules     Disable shared modules.
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-nicklen=LENGTH        Set the nick length to LENGTH.
-  --with-maxclients=NUMBER     Set the maximum number of clients to NUMBER.
-  --with-topiclen=NUMBER       Set the max topic length to NUMBER.
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
-              headers in a nonstandard directory <include dir>
-  CPP         C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
-    ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f $ac_srcdir/configure.gnu; then
-      echo
-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
-    elif test -f $ac_srcdir/configure; then
-      echo
-      $SHELL $ac_srcdir/configure  --help=recursive
-    elif test -f $ac_srcdir/configure.ac ||
-           test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd $ac_popdir
-  done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
-  cat <<\_ACEOF
-
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.53.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell meta-characters.
-ac_configure_args=
-ac_sep=
-for ac_arg
-do
-  case $ac_arg in
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n ) continue ;;
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    continue ;;
-  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-    ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-  esac
-  case " $ac_configure_args " in
-    *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-    *) ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-       ac_sep=" " ;;
-  esac
-  # Get rid of the leading space.
-done
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-{
-  (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      sed -n \
-        "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
-    *)
-      sed -n \
-        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-}
-    echo
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      sed "/^$/d" confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core core.* *.core &&
-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-     ' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
 
-# Let the site file select an alternate cache file if it wants to.
 # Prefer explicitly selected file to automatically selected ones.
 if test -z "$CONFIG_SITE"; then
   if test "x$prefix" != xNONE; then
@@ -1119,102 +541,39 @@
 fi
 for ac_site_file in $CONFIG_SITE; do
   if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
+    echo "loading site script $ac_site_file"
     . "$ac_site_file"
   fi
 done
 
 if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
-    esac
-  fi
+  echo "loading cache $cache_file"
+  . $cache_file
 else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
-               sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-  eval ac_new_val="\$ac_env_${ac_var}_value"
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-        { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-        { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-        { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-        ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
+  echo "creating cache $cache_file"
+  > $cache_file
 fi
 
 ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
 
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
 
 
 
@@ -1228,22 +587,15 @@
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install.sh -c"
     break
-  elif test -f $ac_dir/shtool; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in autoconf $srcdir/autoconf" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in autoconf $srcdir/autoconf" >&2;}
-   { (exit 1); exit 1; }; }
+  { echo "configure: error: can not find install-sh or install.sh in autoconf $srcdir/autoconf" 1>&2; exit 1; }
 fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
 
-ac_config_headers="$ac_config_headers include/setup.h servlink/setup.h"
 
 
 
@@ -1253,628 +605,214 @@
 
 
 OLD_CFLAGS="$CFLAGS"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
+# Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  CC=$ac_ct_CC
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:612: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
 fi
 fi
-CC=$ac_cv_prog_CC
+CC="$ac_cv_prog_CC"
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  CC=$ac_ct_CC
+  echo "$ac_t""$CC" 1>&6
 else
-  CC="$ac_cv_prog_CC"
+  echo "$ac_t""no" 1>&6
 fi
 
-fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:642: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
   ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+        ac_prog_rejected=yes
+	continue
+      fi
+      ac_cv_prog_CC="cc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
 if test $ac_prog_rejected = yes; then
   # We found a bogon in the path, so make sure we never use it.
   set dummy $ac_cv_prog_CC
   shift
-  if test $# != 0; then
+  if test $# -gt 0; then
     # We chose a different compiler from the bogus one.
     # However, it has the same basename, so the bogon will be chosen
     # first if we set CC to just the basename; use the full file name.
     shift
-    set dummy "$as_dir/$ac_word" ${1+"$@"}
+    set dummy "$ac_dir/$ac_word" "$@"
     shift
     ac_cv_prog_CC="$@"
   fi
 fi
 fi
 fi
-CC=$ac_cv_prog_CC
+CC="$ac_cv_prog_CC"
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  echo "$ac_t""$CC" 1>&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
 fi
 
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  if test -z "$CC"; then
+    case "`uname -s`" in
+    *win32* | *WIN32*)
+      # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:693: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="cl"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
 fi
 fi
-CC=$ac_cv_prog_CC
+CC="$ac_cv_prog_CC"
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  echo "$ac_t""$CC" 1>&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    test -n "$CC" && break
-  done
+  echo "$ac_t""no" 1>&6
 fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
+ ;;
+    esac
   fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  test -n "$ac_ct_CC" && break
-done
-
-  CC=$ac_ct_CC
-fi
-
+  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
 fi
 
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:725: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
 
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
-     "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
+cat > conftest.$ac_ext << EOF
 
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+#line 736 "configure"
 #include "confdefs.h"
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output" >&5
-echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
-  (eval $ac_link_default) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Find the output, starting from the most likely.  This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-for ac_file in `ls a_out.exe a.exe conftest.exe 2>/dev/null;
-                ls a.out conftest 2>/dev/null;
-                ls a.* conftest.* 2>/dev/null`; do
-  case $ac_file in
-    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb | *.xSYM ) ;;
-    a.out ) # We found the default executable, but exeext='' is most
-            # certainly right.
-            break;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-          # FIXME: I believe we export ac_cv_exeext for Libtool --akim.
-          export ac_cv_exeext
-          break;;
-    * ) break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables" >&5
-echo "$as_me: error: C compiler cannot create executables" >&2;}
-   { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
-
-# Check the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
-  if { ac_try='./$ac_file'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    cross_compiling=no
+main(){return(0);}
+EOF
+if { (eval echo configure:741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  ac_cv_prog_cc_works=yes
+  # If we can't run a trivial program, we are probably using a cross compiler.
+  if (./conftest; exit) 2>/dev/null; then
+    ac_cv_prog_cc_cross=no
   else
-    if test "$cross_compiling" = maybe; then
-	cross_compiling=yes
-    else
-	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'." >&2;}
-   { (exit 1); exit 1; }; }
-    fi
+    ac_cv_prog_cc_cross=yes
   fi
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-rm -f a.out a.exe conftest$ac_cv_exeext
-ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
-  case $ac_file in
-    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-          export ac_cv_exeext
-          break;;
-    * ) break;;
-  esac
-done
 else
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link" >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link" >&2;}
-   { (exit 1); exit 1; }; }
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_prog_cc_works=no
 fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
 
-rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:767: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
 
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-if test "${ac_cv_objext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:772: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes;
 #endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:781: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile" >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile" >&2;}
-   { (exit 1); exit 1; }; }
+  ac_cv_prog_gcc=no
 fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_compiler_gnu=yes
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_compiler_gnu=no
+  GCC=
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:800: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
   ac_cv_prog_cc_g=yes
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_prog_cc_g=no
+  ac_cv_prog_cc_g=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest*
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
 if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
+  CFLAGS="$ac_save_CFLAGS"
 elif test $ac_cv_prog_cc_g = yes; then
   if test "$GCC" = yes; then
     CFLAGS="-g -O2"
@@ -1888,198 +826,66 @@
     CFLAGS=
   fi
 fi
-# Some people use a C++ compiler to compile C.  Since we use `exit',
-# in C++ we need to declare it.  In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
-  choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  for ac_declaration in \
-   ''\
-   '#include <stdlib.h>' \
-   'extern "C" void std::exit (int) throw (); using std::exit;' \
-   'extern "C" void std::exit (int); using std::exit;' \
-   'extern "C" void exit (int) throw ();' \
-   'extern "C" void exit (int);' \
-   'void exit (int);'
-do
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-$ac_declaration
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-continue
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_declaration
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  break
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
-  echo '#ifdef __cplusplus' >>confdefs.h
-  echo $ac_declaration      >>confdefs.h
-  echo '#endif'             >>confdefs.h
-fi
-
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 CFLAGS="$OLD_CFLAGS"
 
 SGS=no
-echo "$as_me:$LINENO: checking if we are using TenDRA or MIPSpro" >&5
-echo $ECHO_N "checking if we are using TenDRA or MIPSpro... $ECHO_C" >&6
+echo $ac_n "checking if we are using TenDRA or MIPSpro""... $ac_c" 1>&6
+echo "configure:835: checking if we are using TenDRA or MIPSpro" >&5
 case `$CC -version 2>&1` in
   *TenDRA*)
-    echo "$as_me:$LINENO: result: success! We will be using TenDRA." >&5
-echo "${ECHO_T}success! We will be using TenDRA." >&6
+    echo "$ac_t""success! We will be using TenDRA." 1>&6
     TenDRA=yes
     SGS=yes
     ;;
   *MIPSpro*)
-    echo "$as_me:$LINENO: result: success! We will be using MIPSpro." >&5
-echo "${ECHO_T}success! We will be using MIPSpro." >&6
+    echo "$ac_t""success! We will be using MIPSpro." 1>&6
     MIPSpro=yes
     SGS=yes
     ;;
   *)
-    echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+    echo "$ac_t""no" 1>&6
     TenDRA=no
     MIPSpro=no
     ;;
 esac
-echo "$as_me:$LINENO: checking if we are using Sun WorkShop/Forte" >&5
-echo $ECHO_N "checking if we are using Sun WorkShop/Forte... $ECHO_C" >&6
+echo $ac_n "checking if we are using Sun WorkShop/Forte""... $ac_c" 1>&6
+echo "configure:854: checking if we are using Sun WorkShop/Forte" >&5
 case `$CC -V 2>&1` in
   *Sun*WorkShop*)
-    echo "$as_me:$LINENO: result: success! We are using Sun WorkShop/Forte." >&5
-echo "${ECHO_T}success! We are using Sun WorkShop/Forte." >&6
+    echo "$ac_t""success! We are using Sun WorkShop/Forte." 1>&6
     SunWorkShop=yes
     SGS=yes
     ;;
   *Forte*Developer*)
-    echo "$as_me:$LINENO: result: success! We are using Sun WorkShop/Forte." >&5
-echo "${ECHO_T}success! We are using Sun WorkShop/Forte." >&6
+    echo "$ac_t""success! We are using Sun WorkShop/Forte." 1>&6
     SunWorkShop=yes
     SGS=yes
     ;;
   *)
-    echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+    echo "$ac_t""no" 1>&6
     SunWorkShop=no
     ;;
 esac
-echo "$as_me:$LINENO: checking if we are using Apple GCC" >&5
-echo $ECHO_N "checking if we are using Apple GCC... $ECHO_C" >&6
+echo $ac_n "checking if we are using Apple GCC""... $ac_c" 1>&6
+echo "configure:872: checking if we are using Apple GCC" >&5
 case `$CC -v 2>&1 | tail -1` in
   *Apple*)
-    echo "$as_me:$LINENO: result: success! We are using GCC from Apple." >&5
-echo "${ECHO_T}success! We are using GCC from Apple." >&6
+    echo "$ac_t""success! We are using GCC from Apple." 1>&6
     AppleGCC=yes
     ;;
   *)
-    echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+    echo "$ac_t""no" 1>&6
     AppleGCC=no
     ;;
 esac
 
-echo "$as_me:$LINENO: checking if your compiler supports the SVR4 Software Generation System interfaces" >&5
-echo $ECHO_N "checking if your compiler supports the SVR4 Software Generation System interfaces... $ECHO_C" >&6
+echo $ac_n "checking if your compiler supports the SVR4 Software Generation System interfaces""... $ac_c" 1>&6
+echo "configure:885: checking if your compiler supports the SVR4 Software Generation System interfaces" >&5
 if test "$SGS" = "yes"; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+  echo "$ac_t""yes" 1>&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
 fi
 
 if test "x$GCC" = "xyes"; then
@@ -2110,8 +916,7 @@
 
 case `uname -s` in
         HP-UX*)
-                echo "$as_me:$LINENO: result: HP-UX found - Assuming HPUX C compiler cc" >&5
-echo "${ECHO_T}HP-UX found - Assuming HPUX C compiler cc" >&6
+                echo "$ac_t""HP-UX found - Assuming HPUX C compiler cc" 1>&6  
 		IRC_CFLAGS="$IRC_CFLAGS +e"
 		HPUX=yes
 		;;
@@ -2123,43 +928,38 @@
 esac
 
 
-echo "$as_me:$LINENO: checking how to generate dependancy info" >&5
-echo $ECHO_N "checking how to generate dependancy info... $ECHO_C" >&6
+echo $ac_n "checking how to generate dependancy info""... $ac_c" 1>&6
+echo "configure:933: checking how to generate dependancy info" >&5
 if test "$SunWorkShop" = "yes"; then
-  echo "$as_me:$LINENO: result: Sun WorkShop/Forte using $CC -xM" >&5
-echo "${ECHO_T}Sun WorkShop/Forte using $CC -xM" >&6
+  echo "$ac_t""Sun WorkShop/Forte using $CC -xM" 1>&6
   MKDEP="$CC -xM"
 fi
 if test "$HPUX" = "yes"; then
-  echo "$as_me:$LINENO: result: HP-UX C Compiler using makedepend" >&5
-echo "${ECHO_T}HP-UX C Compiler using makedepend" >&6
+  echo "$ac_t""HP-UX C Compiler using makedepend" 1>&6
   MKDEP="makedepend"
 fi
 if test "x$MKDEP" = "x"; then
-  echo "$as_me:$LINENO: result: assuming $CC -MM" >&5
-echo "${ECHO_T}assuming $CC -MM" >&6
-  MKDEP="$CC -MM"
+  echo "$ac_t""assuming $CC -MM" 1>&6
+  MKDEP="$CC -MM"	
 fi
 
 
 
 
-echo "$as_me:$LINENO: checking for /dev/null" >&5
-echo $ECHO_N "checking for /dev/null... $ECHO_C" >&6
+echo $ac_n "checking for /dev/null""... $ac_c" 1>&6
+echo "configure:951: checking for /dev/null" >&5
 if test -c /dev/null ; then
-  cat >>confdefs.h <<\_ACEOF
+  cat >> confdefs.h <<\EOF
 #define PATH_DEVNULL "/dev/null"
-_ACEOF
+EOF
 
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+  echo "$ac_t""yes" 1>&6
 else
-  cat >>confdefs.h <<\_ACEOF
+  cat >> confdefs.h <<\EOF
 #define PATH_DEVNULL "devnull.log"
-_ACEOF
+EOF
 
-  echo "$as_me:$LINENO: result: no - using devnull.log" >&5
-echo "${ECHO_T}no - using devnull.log" >&6
+  echo "$ac_t""no - using devnull.log" 1>&6
 fi
 
 
@@ -2167,455 +967,331 @@
   IRC_CFLAGS="$IRC_CFLAGS $CPPFLAGS"
 fi
 
+echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
+echo "configure:972: checking for POSIXized ISC" >&5
+if test -d /etc/conf/kconfig.d &&
+  grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
+then
+  echo "$ac_t""yes" 1>&6
+  ISC=yes # If later tests want to check for ISC.
+  cat >> confdefs.h <<\EOF
+#define _POSIX_SOURCE 1
+EOF
 
-echo "$as_me:$LINENO: checking for library containing strerror" >&5
-echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6
-if test "${ac_cv_search_strerror+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-ac_cv_search_strerror=no
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char strerror ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-strerror ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_search_strerror="none required"
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-if test "$ac_cv_search_strerror" = no; then
-  for ac_lib in cposix; do
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-    cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char strerror ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-strerror ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_search_strerror="-l$ac_lib"
-break
+  if test "$GCC" = yes; then
+    CC="$CC -posix"
+  else
+    CC="$CC -Xp"
+  fi
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-  done
-fi
-LIBS=$ac_func_search_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5
-echo "${ECHO_T}$ac_cv_search_strerror" >&6
-if test "$ac_cv_search_strerror" != no; then
-  test "$ac_cv_search_strerror" = "none required" || LIBS="$ac_cv_search_strerror $LIBS"
-
+  echo "$ac_t""no" 1>&6
+  ISC=
 fi
 
-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \${MAKE}" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:993: checking whether ${MAKE-make} sets \${MAKE}" >&5
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.make <<\_ACEOF
+  cat > conftestmake <<\EOF
 all:
 	@echo 'ac_maketemp="${MAKE}"'
-_ACEOF
+EOF
 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
 if test -n "$ac_maketemp"; then
   eval ac_cv_prog_make_${ac_make}_set=yes
 else
   eval ac_cv_prog_make_${ac_make}_set=no
 fi
-rm -f conftest.make
+rm -f conftestmake
 fi
 if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+  echo "$ac_t""yes" 1>&6
   SET_MAKE=
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
 # Extract the first word of "rm", so it can be a program name with args.
 set dummy rm; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_RM+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1022: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_RM'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  case $RM in
-  [\\/]* | ?:[\\/]*)
+  case "$RM" in
+  /*)
   ac_cv_path_RM="$RM" # Let the user override the test with a path.
   ;;
+  ?:/*)			 
+  ac_cv_path_RM="$RM" # Let the user override the test with a dos path.
+  ;;
   *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_RM="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
   ;;
 esac
 fi
-RM=$ac_cv_path_RM
-
+RM="$ac_cv_path_RM"
 if test -n "$RM"; then
-  echo "$as_me:$LINENO: result: $RM" >&5
-echo "${ECHO_T}$RM" >&6
+  echo "$ac_t""$RM" 1>&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
 fi
 
 # Extract the first word of "cp", so it can be a program name with args.
 set dummy cp; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_CP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1057: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_CP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  case $CP in
-  [\\/]* | ?:[\\/]*)
+  case "$CP" in
+  /*)
   ac_cv_path_CP="$CP" # Let the user override the test with a path.
   ;;
+  ?:/*)			 
+  ac_cv_path_CP="$CP" # Let the user override the test with a dos path.
+  ;;
   *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_CP="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
   ;;
 esac
 fi
-CP=$ac_cv_path_CP
-
+CP="$ac_cv_path_CP"
 if test -n "$CP"; then
-  echo "$as_me:$LINENO: result: $CP" >&5
-echo "${ECHO_T}$CP" >&6
+  echo "$ac_t""$CP" 1>&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
 fi
 
 # Extract the first word of "mv", so it can be a program name with args.
 set dummy mv; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_MV+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1092: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_MV'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  case $MV in
-  [\\/]* | ?:[\\/]*)
+  case "$MV" in
+  /*)
   ac_cv_path_MV="$MV" # Let the user override the test with a path.
   ;;
+  ?:/*)			 
+  ac_cv_path_MV="$MV" # Let the user override the test with a dos path.
+  ;;
   *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_MV="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
   ;;
 esac
 fi
-MV=$ac_cv_path_MV
-
+MV="$ac_cv_path_MV"
 if test -n "$MV"; then
-  echo "$as_me:$LINENO: result: $MV" >&5
-echo "${ECHO_T}$MV" >&6
+  echo "$ac_t""$MV" 1>&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
 fi
 
 # Extract the first word of "ln", so it can be a program name with args.
 set dummy ln; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_LN+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1127: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_LN'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  case $LN in
-  [\\/]* | ?:[\\/]*)
+  case "$LN" in
+  /*)
   ac_cv_path_LN="$LN" # Let the user override the test with a path.
   ;;
+  ?:/*)			 
+  ac_cv_path_LN="$LN" # Let the user override the test with a dos path.
+  ;;
   *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_LN="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_LN="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
   ;;
 esac
 fi
-LN=$ac_cv_path_LN
-
+LN="$ac_cv_path_LN"
 if test -n "$LN"; then
-  echo "$as_me:$LINENO: result: $LN" >&5
-echo "${ECHO_T}$LN" >&6
+  echo "$ac_t""$LN" 1>&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
 fi
 
 # Extract the first word of "sed", so it can be a program name with args.
 set dummy sed; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_SED+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1162: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_SED'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  case $SED in
-  [\\/]* | ?:[\\/]*)
+  case "$SED" in
+  /*)
   ac_cv_path_SED="$SED" # Let the user override the test with a path.
   ;;
+  ?:/*)			 
+  ac_cv_path_SED="$SED" # Let the user override the test with a dos path.
+  ;;
   *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_SED="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
   ;;
 esac
 fi
-SED=$ac_cv_path_SED
-
+SED="$ac_cv_path_SED"
 if test -n "$SED"; then
-  echo "$as_me:$LINENO: result: $SED" >&5
-echo "${ECHO_T}$SED" >&6
+  echo "$ac_t""$SED" 1>&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
 fi
 
 # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1197: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_AR'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  case $AR in
-  [\\/]* | ?:[\\/]*)
+  case "$AR" in
+  /*)
   ac_cv_path_AR="$AR" # Let the user override the test with a path.
   ;;
+  ?:/*)			 
+  ac_cv_path_AR="$AR" # Let the user override the test with a dos path.
+  ;;
   *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_AR="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
   ;;
 esac
 fi
-AR=$ac_cv_path_AR
-
+AR="$ac_cv_path_AR"
 if test -n "$AR"; then
-  echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6
+  echo "$ac_t""$AR" 1>&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
 fi
 
 # Extract the first word of "ld", so it can be a program name with args.
 set dummy ld; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_LD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1232: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  case $LD in
-  [\\/]* | ?:[\\/]*)
+  case "$LD" in
+  /*)
   ac_cv_path_LD="$LD" # Let the user override the test with a path.
   ;;
+  ?:/*)			 
+  ac_cv_path_LD="$LD" # Let the user override the test with a dos path.
+  ;;
   *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_LD="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_LD="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
   ;;
 esac
 fi
-LD=$ac_cv_path_LD
-
+LD="$ac_cv_path_LD"
 if test -n "$LD"; then
-  echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6
+  echo "$ac_t""$LD" 1>&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
 fi
 
 for ac_prog in 'bison -y' byacc
 do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
+# Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_YACC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1269: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$YACC"; then
   ac_cv_prog_YACC="$YACC" # Let the user override the test.
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_YACC="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_YACC="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
 fi
 fi
-YACC=$ac_cv_prog_YACC
+YACC="$ac_cv_prog_YACC"
 if test -n "$YACC"; then
-  echo "$as_me:$LINENO: result: $YACC" >&5
-echo "${ECHO_T}$YACC" >&6
+  echo "$ac_t""$YACC" 1>&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
 fi
 
-  test -n "$YACC" && break
+test -n "$YACC" && break
 done
 test -n "$YACC" || YACC="yacc"
 
@@ -2626,546 +1302,208 @@
 # SunOS /usr/etc/install
 # IRIX /sbin/install
 # AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
 # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:1311: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-        if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-          if test $ac_prog = install &&
-            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-            # AIX install.  It has an incompatible calling convention.
-            :
-          elif test $ac_prog = install &&
-            grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-            # program-specific install script used by HP pwplus--don't use.
-            :
-          else
-            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-            break 3
-          fi
-        fi
+    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
+  for ac_dir in $PATH; do
+    # Account for people who put trailing slashes in PATH elements.
+    case "$ac_dir/" in
+    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    *)
+      # OSF1 and SCO ODT 3.0 have their own names for install.
+      # Don't use installbsd from OSF since it installs stuff as root
+      # by default.
+      for ac_prog in ginstall scoinst install; do
+        if test -f $ac_dir/$ac_prog; then
+	  if test $ac_prog = install &&
+            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  else
+	    ac_cv_path_install="$ac_dir/$ac_prog -c"
+	    break 2
+	  fi
+	fi
       done
-    done
-    ;;
-esac
-done
-
+      ;;
+    esac
+  done
+  IFS="$ac_save_IFS"
 
 fi
   if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
+    INSTALL="$ac_cv_path_install"
   else
     # As a last resort, use the slow shell script.  We don't cache a
     # path for INSTALL within a source directory, because that will
     # break other packages using the cache if that directory is
     # removed, or if the path is relative.
-    INSTALL=$ac_install_sh
+    INSTALL="$ac_install_sh"
   fi
 fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
+echo "$ac_t""$INSTALL" 1>&6
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 # It thinks the first close brace ends the variable substitution.
 test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
 
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-for ac_prog in flex lex
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_LEX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+# Extract the first word of "flex", so it can be a program name with args.
+set dummy flex; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1366: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$LEX"; then
   ac_cv_prog_LEX="$LEX" # Let the user override the test.
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_LEX="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_LEX="flex"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_LEX" && ac_cv_prog_LEX="lex"
 fi
 fi
-LEX=$ac_cv_prog_LEX
+LEX="$ac_cv_prog_LEX"
 if test -n "$LEX"; then
-  echo "$as_me:$LINENO: result: $LEX" >&5
-echo "${ECHO_T}$LEX" >&6
+  echo "$ac_t""$LEX" 1>&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
 fi
 
-  test -n "$LEX" && break
-done
-test -n "$LEX" || LEX=":"
-
 if test -z "$LEXLIB"
 then
-  echo "$as_me:$LINENO: checking for yywrap in -lfl" >&5
-echo $ECHO_N "checking for yywrap in -lfl... $ECHO_C" >&6
-if test "${ac_cv_lib_fl_yywrap+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  case "$LEX" in
+  flex*) ac_lib=fl ;;
+  *) ac_lib=l ;;
+  esac
+  echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
+echo "configure:1400: checking for yywrap in -l$ac_lib" >&5
+ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lfl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  ac_save_LIBS="$LIBS"
+LIBS="-l$ac_lib  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1408 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char yywrap ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-yywrap ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_fl_yywrap=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_fl_yywrap=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_fl_yywrap" >&5
-echo "${ECHO_T}$ac_cv_lib_fl_yywrap" >&6
-if test $ac_cv_lib_fl_yywrap = yes; then
-  LEXLIB="-lfl"
-else
-  echo "$as_me:$LINENO: checking for yywrap in -ll" >&5
-echo $ECHO_N "checking for yywrap in -ll... $ECHO_C" >&6
-if test "${ac_cv_lib_l_yywrap+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ll  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
+    builtin and then its argument prototype would still apply.  */
+char yywrap();
 
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char yywrap ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-yywrap ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_l_yywrap=yes
+int main() {
+yywrap()
+; return 0; }
+EOF
+if { (eval echo configure:1419: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_l_yywrap=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_l_yywrap" >&5
-echo "${ECHO_T}$ac_cv_lib_l_yywrap" >&6
-if test $ac_cv_lib_l_yywrap = yes; then
-  LEXLIB="-ll"
-fi
-
-fi
-
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
 
-if test "x$LEX" != "x:"; then
-  echo "$as_me:$LINENO: checking lex output file root" >&5
-echo $ECHO_N "checking lex output file root... $ECHO_C" >&6
-if test "${ac_cv_prog_lex_root+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # The minimal lex program is just a single line: %%.  But some broken lexes
-# (Solaris, I think it was) want two %% lines, so accommodate them.
-cat >conftest.l <<_ACEOF
-%%
-%%
-_ACEOF
-{ (eval echo "$as_me:$LINENO: \"$LEX conftest.l\"") >&5
-  (eval $LEX conftest.l) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-if test -f lex.yy.c; then
-  ac_cv_prog_lex_root=lex.yy
-elif test -f lexyy.c; then
-  ac_cv_prog_lex_root=lexyy
-else
-  { { echo "$as_me:$LINENO: error: cannot find output from $LEX; giving up" >&5
-echo "$as_me: error: cannot find output from $LEX; giving up" >&2;}
-   { (exit 1); exit 1; }; }
 fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_lex_root" >&5
-echo "${ECHO_T}$ac_cv_prog_lex_root" >&6
-rm -f conftest.l
-LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
-
-echo "$as_me:$LINENO: checking whether yytext is a pointer" >&5
-echo $ECHO_N "checking whether yytext is a pointer... $ECHO_C" >&6
-if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # POSIX says lex can declare yytext either as a pointer or an array; the
-# default is implementation-dependent. Figure out which it is, since
-# not all implementations provide the %pointer and %array declarations.
-ac_cv_prog_lex_yytext_pointer=no
-echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
-ac_save_LIBS=$LIBS
-LIBS="$LIBS $LEXLIB"
-cat >conftest.$ac_ext <<_ACEOF
-`cat $LEX_OUTPUT_ROOT.c`
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_lex_yytext_pointer=yes
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LEXLIB="-l$ac_lib"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_save_LIBS
-rm -f "${LEX_OUTPUT_ROOT}.c"
-
+  echo "$ac_t""no" 1>&6
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_lex_yytext_pointer" >&5
-echo "${ECHO_T}$ac_cv_prog_lex_yytext_pointer" >&6
-if test $ac_cv_prog_lex_yytext_pointer = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define YYTEXT_POINTER 1
-_ACEOF
 
 fi
 
-fi
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1444: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
 fi
 fi
-RANLIB=$ac_cv_prog_RANLIB
+RANLIB="$ac_cv_prog_RANLIB"
 if test -n "$RANLIB"; then
-  echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  RANLIB=$ac_ct_RANLIB
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX			-qlanglvl=ansi
-# Ultrix and OSF/1	-std1
-# HP-UX 10.20 and later	-Ae
-# HP-UX older versions	-Aa -D_HPUX_SOURCE
-# SVR4			-Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_stdc=$ac_arg
-break
+  echo "$ac_t""$RANLIB" 1>&6
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
-
+  echo "$ac_t""no" 1>&6
 fi
 
-case "x$ac_cv_prog_cc_stdc" in
-  x|xno)
-    echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
-  *)
-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-    CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-echo "$as_me:$LINENO: checking for inline" >&5
-echo $ECHO_N "checking for inline... $ECHO_C" >&6
-if test "${ac_cv_c_inline+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for inline""... $ac_c" 1>&6
+echo "configure:1472: checking for inline" >&5
+if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 1479 "configure"
 #include "confdefs.h"
-#ifndef __cplusplus
-static $ac_kw int static_foo () {return 0; }
-$ac_kw int foo () {return 0; }
-#endif
 
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+int main() {
+} $ac_kw foo() {
+; return 0; }
+EOF
+if { (eval echo configure:1486: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest*
 done
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
-echo "${ECHO_T}$ac_cv_c_inline" >&6
-case $ac_cv_c_inline in
+
+echo "$ac_t""$ac_cv_c_inline" 1>&6
+case "$ac_cv_c_inline" in
   inline | yes) ;;
-  no)
-cat >>confdefs.h <<\_ACEOF
-#define inline
-_ACEOF
+  no) cat >> confdefs.h <<\EOF
+#define inline 
+EOF
  ;;
-  *)  cat >>confdefs.h <<_ACEOF
+  *)  cat >> confdefs.h <<EOF
 #define inline $ac_cv_c_inline
-_ACEOF
+EOF
  ;;
 esac
 
@@ -3176,268 +1514,192 @@
         localstatedir='${prefix}'
 fi
 
-
-echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
-echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6
-if test "${ac_cv_lib_socket_socket+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
+echo "configure:1519: checking for socket in -lsocket" >&5
+ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
+  ac_save_LIBS="$LIBS"
 LIBS="-lsocket  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 1527 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char socket ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-socket ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_socket_socket=yes
+    builtin and then its argument prototype would still apply.  */
+char socket();
+
+int main() {
+socket()
+; return 0; }
+EOF
+if { (eval echo configure:1538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_socket_socket=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5
-echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6
-if test $ac_cv_lib_socket_socket = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSOCKET 1
-_ACEOF
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo socket | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
 
   LIBS="-lsocket $LIBS"
 
+else
+  echo "$ac_t""no" 1>&6
 fi
 
 
 
 
-echo "$as_me:$LINENO: checking for crypt" >&5
-echo $ECHO_N "checking for crypt... $ECHO_C" >&6
-if test "${ac_cv_func_crypt+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for crypt""... $ac_c" 1>&6
+echo "configure:1569: checking for crypt" >&5
+if eval "test \"`echo '$''{'ac_cv_func_crypt'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 1574 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char crypt (); below.  */
+    which can conflict with char crypt(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char crypt ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char crypt();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_crypt) || defined (__stub___crypt)
 choke me
 #else
-f = crypt;
+crypt();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_crypt=yes
+; return 0; }
+EOF
+if { (eval echo configure:1597: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_crypt=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_crypt=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_crypt=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_crypt" >&5
-echo "${ECHO_T}$ac_cv_func_crypt" >&6
-if test $ac_cv_func_crypt = yes; then
+
+if eval "test \"`echo '$ac_cv_func_'crypt`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   :
 else
-
-echo "$as_me:$LINENO: checking for crypt in -ldescrypt" >&5
-echo $ECHO_N "checking for crypt in -ldescrypt... $ECHO_C" >&6
-if test "${ac_cv_lib_descrypt_crypt+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for crypt in -ldescrypt""... $ac_c" 1>&6
+echo "configure:1615: checking for crypt in -ldescrypt" >&5
+ac_lib_var=`echo descrypt'_'crypt | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
+  ac_save_LIBS="$LIBS"
 LIBS="-ldescrypt  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 1623 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char crypt ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-crypt ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_descrypt_crypt=yes
+    builtin and then its argument prototype would still apply.  */
+char crypt();
+
+int main() {
+crypt()
+; return 0; }
+EOF
+if { (eval echo configure:1634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_descrypt_crypt=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_descrypt_crypt" >&5
-echo "${ECHO_T}$ac_cv_lib_descrypt_crypt" >&6
-if test $ac_cv_lib_descrypt_crypt = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBDESCRYPT 1
-_ACEOF
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo descrypt | sed -e 's/^a-zA-Z0-9_/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
 
   LIBS="-ldescrypt $LIBS"
 
 else
-
-echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5
-echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6
-if test "${ac_cv_lib_crypt_crypt+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
+echo "configure:1660: checking for crypt in -lcrypt" >&5
+ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
+  ac_save_LIBS="$LIBS"
 LIBS="-lcrypt  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 1668 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char crypt ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-crypt ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_crypt_crypt=yes
+    builtin and then its argument prototype would still apply.  */
+char crypt();
+
+int main() {
+crypt()
+; return 0; }
+EOF
+if { (eval echo configure:1679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_crypt_crypt=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
-echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6
-if test $ac_cv_lib_crypt_crypt = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBCRYPT 1
-_ACEOF
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo crypt | sed -e 's/^a-zA-Z0-9_/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
 
   LIBS="-lcrypt $LIBS"
 
+else
+  echo "$ac_t""no" 1>&6
 fi
 
 fi
@@ -3445,226 +1707,134 @@
 fi
 
 
-echo "$as_me:$LINENO: checking for library containing gettext" >&5
-echo $ECHO_N "checking for library containing gettext... $ECHO_C" >&6
-if test "${ac_cv_search_gettext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+
+echo $ac_n "checking for library containing gettext""... $ac_c" 1>&6
+echo "configure:1713: checking for library containing gettext" >&5
+if eval "test \"`echo '$''{'ac_cv_search_gettext'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_func_search_save_LIBS=$LIBS
-ac_cv_search_gettext=no
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_gettext="no"
+cat > conftest.$ac_ext <<EOF
+#line 1720 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char gettext ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-gettext ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+    builtin and then its argument prototype would still apply.  */
+char gettext();
+
+int main() {
+gettext()
+; return 0; }
+EOF
+if { (eval echo configure:1731: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
   ac_cv_search_gettext="none required"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-if test "$ac_cv_search_gettext" = no; then
-  for ac_lib in intl; do
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-    cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+rm -f conftest*
+test "$ac_cv_search_gettext" = "no" && for i in intl; do
+LIBS="-l$i  $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1742 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char gettext ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-gettext ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_search_gettext="-l$ac_lib"
+    builtin and then its argument prototype would still apply.  */
+char gettext();
+
+int main() {
+gettext()
+; return 0; }
+EOF
+if { (eval echo configure:1753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  ac_cv_search_gettext="-l$i"
 break
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-  done
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 fi
-LIBS=$ac_func_search_save_LIBS
+rm -f conftest*
+done
+LIBS="$ac_func_search_save_LIBS"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_search_gettext" >&5
-echo "${ECHO_T}$ac_cv_search_gettext" >&6
-if test "$ac_cv_search_gettext" != no; then
-  test "$ac_cv_search_gettext" = "none required" || LIBS="$ac_cv_search_gettext $LIBS"
 
+echo "$ac_t""$ac_cv_search_gettext" 1>&6
+if test "$ac_cv_search_gettext" != "no"; then
+  test "$ac_cv_search_gettext" = "none required" || LIBS="$ac_cv_search_gettext $LIBS"
+  
+else :
+  
 fi
-
 if test "X$ac_cv_search_gettext" = "Xno"; then
     save_LIBS="$LIBS"
     LIBS="$LIBS -L/usr/local/lib"
     unset ac_cv_search_gettext
-    echo "$as_me:$LINENO: checking for library containing gettext" >&5
-echo $ECHO_N "checking for library containing gettext... $ECHO_C" >&6
-if test "${ac_cv_search_gettext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+    
+echo $ac_n "checking for library containing gettext""... $ac_c" 1>&6
+echo "configure:1779: checking for library containing gettext" >&5
+if eval "test \"`echo '$''{'ac_cv_search_gettext'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_func_search_save_LIBS=$LIBS
-ac_cv_search_gettext=no
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_gettext="no"
+cat > conftest.$ac_ext <<EOF
+#line 1786 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char gettext ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-gettext ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+    builtin and then its argument prototype would still apply.  */
+char gettext();
+
+int main() {
+gettext()
+; return 0; }
+EOF
+if { (eval echo configure:1797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
   ac_cv_search_gettext="none required"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-if test "$ac_cv_search_gettext" = no; then
-  for ac_lib in intl; do
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-    cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+rm -f conftest*
+test "$ac_cv_search_gettext" = "no" && for i in intl; do
+LIBS="-l$i  $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1808 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char gettext ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-gettext ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_search_gettext="-l$ac_lib"
+    builtin and then its argument prototype would still apply.  */
+char gettext();
+
+int main() {
+gettext()
+; return 0; }
+EOF
+if { (eval echo configure:1819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  ac_cv_search_gettext="-l$i"
 break
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-  done
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 fi
-LIBS=$ac_func_search_save_LIBS
+rm -f conftest*
+done
+LIBS="$ac_func_search_save_LIBS"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_search_gettext" >&5
-echo "${ECHO_T}$ac_cv_search_gettext" >&6
-if test "$ac_cv_search_gettext" != no; then
-  test "$ac_cv_search_gettext" = "none required" || LIBS="$ac_cv_search_gettext $LIBS"
 
+echo "$ac_t""$ac_cv_search_gettext" 1>&6
+if test "$ac_cv_search_gettext" != "no"; then
+  test "$ac_cv_search_gettext" = "none required" || LIBS="$ac_cv_search_gettext $LIBS"
+  
+else :
+  
 fi
-
     if test "X$ac_cv_search_gettext" != "Xno"; then
         gettext_libs="-L/usr/local/lib"
         gettext_incl="-I/usr/local/include"
@@ -3672,423 +1842,251 @@
     LIBS="$save_LIBS"
 fi
 
-echo "$as_me:$LINENO: checking ld flags needed for gettext" >&5
-echo $ECHO_N "checking ld flags needed for gettext... $ECHO_C" >&6
-if test "${cf_cv_gettext_libs+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking ld flags needed for gettext""... $ac_c" 1>&6
+echo "configure:1847: checking ld flags needed for gettext" >&5
+if eval "test \"`echo '$''{'cf_cv_gettext_libs'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-   cf_cv_gettext_libs="$gettext_libs"
+   cf_cv_gettext_libs="$gettext_libs" 
 fi
-echo "$as_me:$LINENO: result: $cf_cv_gettext_libs" >&5
-echo "${ECHO_T}$cf_cv_gettext_libs" >&6
-echo "$as_me:$LINENO: checking cpp flags needed for gettext" >&5
-echo $ECHO_N "checking cpp flags needed for gettext... $ECHO_C" >&6
-if test "${cf_cv_gettext_incl+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+
+echo "$ac_t""$cf_cv_gettext_libs" 1>&6
+echo $ac_n "checking cpp flags needed for gettext""... $ac_c" 1>&6
+echo "configure:1856: checking cpp flags needed for gettext" >&5
+if eval "test \"`echo '$''{'cf_cv_gettext_incl'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-   cf_cv_gettext_incl="$gettext_incl"
+   cf_cv_gettext_incl="$gettext_incl" 
 fi
-echo "$as_me:$LINENO: result: $cf_cv_gettext_incl" >&5
-echo "${ECHO_T}$cf_cv_gettext_incl" >&6
+
+echo "$ac_t""$cf_cv_gettext_incl" 1>&6
 
 LIBS="$LIBS $cf_cv_gettext_libs"
 CPPFLAGS="$CPPFLAGS $cf_cv_gettext_incl"
 
-
 for ac_func in gettext
 do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:1871: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 1876 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
+    which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+; return 0; }
+EOF
+if { (eval echo configure:1899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
 else
-
-echo "$as_me:$LINENO: checking for gettext in -lintl" >&5
-echo $ECHO_N "checking for gettext in -lintl... $ECHO_C" >&6
-if test "${ac_cv_lib_intl_gettext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
+echo "configure:1921: checking for gettext in -lintl" >&5
+ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
+  ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 1929 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char gettext ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-gettext ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_intl_gettext=yes
+    builtin and then its argument prototype would still apply.  */
+char gettext();
+
+int main() {
+gettext()
+; return 0; }
+EOF
+if { (eval echo configure:1940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_intl_gettext=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_intl_gettext" >&5
-echo "${ECHO_T}$ac_cv_lib_intl_gettext" >&6
-if test $ac_cv_lib_intl_gettext = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBINTL 1
-_ACEOF
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo intl | sed -e 's/^a-zA-Z0-9_/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
 
   LIBS="-lintl $LIBS"
 
+else
+  echo "$ac_t""no" 1>&6
 fi
 
 fi
 done
 
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:1972: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
+    # This must be in double quotes, not single quotes, because CPP may get
+  # substituted into the Makefile and "${CC-cc}" will confuse make.
+  CPP="${CC-cc} -E"
   # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  # not just through cpp.
+  cat > conftest.$ac_ext <<EOF
+#line 1987 "configure"
 #include "confdefs.h"
 #include <assert.h>
-                     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1993: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  rm -rf conftest*
+  CPP="${CC-cc} -E -traditional-cpp"
+  cat > conftest.$ac_ext <<EOF
+#line 2004 "configure"
 #include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2010: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
 else
-  echo "$as_me: failed program was:" >&5
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  rm -rf conftest*
+  CPP="${CC-cc} -nologo -E"
+  cat > conftest.$ac_ext <<EOF
+#line 2021 "configure"
 #include "confdefs.h"
 #include <assert.h>
-                     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2027: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  # Broken: fails on valid input.
-continue
+  rm -rf conftest*
+  CPP=/lib/cpp
 fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
+rm -f conftest*
 fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  # Passes both tests.
-ac_preproc_ok=:
-break
+rm -f conftest*
 fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
+rm -f conftest*
+  ac_cv_prog_CPP="$CPP"
+fi
+  CPP="$ac_cv_prog_CPP"
 else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check" >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
-   { (exit 1); exit 1; }; }
+  ac_cv_prog_CPP="$CPP"
 fi
+echo "$ac_t""$CPP" 1>&6
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:2052: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2057 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
 #include <string.h>
 #include <float.h>
-
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2065: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
   ac_cv_header_stdc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
+  rm -rf conftest*
   ac_cv_header_stdc=no
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest*
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 2082 "configure"
 #include "confdefs.h"
 #include <string.h>
-
-_ACEOF
+EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "memchr" >/dev/null 2>&1; then
   :
 else
+  rm -rf conftest*
   ac_cv_header_stdc=no
 fi
 rm -f conftest*
@@ -4097,16 +2095,16 @@
 
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 2100 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
-
-_ACEOF
+EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "free" >/dev/null 2>&1; then
   :
 else
+  rm -rf conftest*
   ac_cv_header_stdc=no
 fi
 rm -f conftest*
@@ -4115,303 +2113,118 @@
 
 if test $ac_cv_header_stdc = yes; then
   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
+if test "$cross_compiling" = yes; then
   :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2121 "configure"
 #include "confdefs.h"
 #include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
-                     || ('j' <= (c) && (c) <= 'r') \
-                     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
 #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-        || toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:2132: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
   :
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-( exit $ac_status )
-ac_cv_header_stdc=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_header_stdc=no
 fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -fr conftest*
 fi
+
 fi
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
 
-cat >>confdefs.h <<\_ACEOF
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+  cat >> confdefs.h <<\EOF
 #define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-                  inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+EOF
 
 fi
 
-done
-
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_header in inttypes.h sys/resource.h sys/param.h unistd.h errno.h string.h strings.h sys/syslog.h stdlib.h stddef.h getopt.h
+for ac_hdr in inttypes.h sys/resource.h sys/param.h unistd.h errno.h string.h strings.h sys/syslog.h stdlib.h stddef.h getopt.h
 do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2159: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_header_compiler=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2164 "configure"
 #include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2169: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc in
-  yes:no )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
-  no:yes )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=$ac_header_preproc"
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
+rm -f conftest*
 fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
 fi
-
 done
 
 
 
 
-echo "$as_me:$LINENO: checking whether string.h and strings.h may both be included" >&5
-echo $ECHO_N "checking whether string.h and strings.h may both be included... $ECHO_C" >&6
-if test "${gcc_cv_header_string+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking whether string.h and strings.h may both be included""... $ac_c" 1>&6
+echo "configure:2199: checking whether string.h and strings.h may both be included" >&5
+if eval "test \"`echo '$''{'gcc_cv_header_string'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2204 "configure"
 #include "confdefs.h"
 #include <string.h>
 #include <strings.h>
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
+int main() {
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+; return 0; }
+EOF
+if { (eval echo configure:2212: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
   gcc_cv_header_string=yes
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-gcc_cv_header_string=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  gcc_cv_header_string=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: $gcc_cv_header_string" >&5
-echo "${ECHO_T}$gcc_cv_header_string" >&6
+
+echo "$ac_t""$gcc_cv_header_string" 1>&6
 if test $gcc_cv_header_string = yes; then
- cat >>confdefs.h <<\_ACEOF
+ cat >> confdefs.h <<\EOF
 #define STRING_WITH_STRINGS 1
-_ACEOF
+EOF
 
 fi
 
@@ -4420,478 +2233,297 @@
 
 
 
-	echo "$as_me:$LINENO: checking for socklen_t" >&5
-echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6
-	if test "${have_socklen_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+	echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
+echo "configure:2238: checking for socklen_t" >&5
+	if eval "test \"`echo '$''{'have_socklen_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-
-		cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  
+		cat > conftest.$ac_ext <<EOF
+#line 2244 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 			#include <sys/socket.h>
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
+int main() {
 socklen_t xxx = 75;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+; return 0; }
+EOF
+if { (eval echo configure:2252: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
   have_socklen_t=yes
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-have_socklen_t=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  have_socklen_t=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
+rm -f conftest*
+	
 fi
 
-	echo "$as_me:$LINENO: result: $have_socklen_t" >&5
-echo "${ECHO_T}$have_socklen_t" >&6
+	echo "$ac_t""$have_socklen_t" 1>&6
 	if test "$have_socklen_t" = yes; then
-		cat >>confdefs.h <<\_ACEOF
+		cat >> confdefs.h <<\EOF
 #define HAVE_SOCKLEN_T 1
-_ACEOF
+EOF
 
 	fi
 
 
-if test "${ac_cv_header_stdarg_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for stdarg.h" >&5
-echo $ECHO_N "checking for stdarg.h... $ECHO_C" >&6
-if test "${ac_cv_header_stdarg_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdarg_h" >&5
-echo "${ECHO_T}$ac_cv_header_stdarg_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking stdarg.h usability" >&5
-echo $ECHO_N "checking stdarg.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <stdarg.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
+ac_safe=`echo "stdarg.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for stdarg.h""... $ac_c" 1>&6
+echo "configure:2276: checking for stdarg.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_header_compiler=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking stdarg.h presence" >&5
-echo $ECHO_N "checking stdarg.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2281 "configure"
 #include "confdefs.h"
 #include <stdarg.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2286: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc in
-  yes:no )
-    { echo "$as_me:$LINENO: WARNING: stdarg.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: stdarg.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: stdarg.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: stdarg.h: proceeding with the preprocessor's result" >&2;};;
-  no:yes )
-    { echo "$as_me:$LINENO: WARNING: stdarg.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: stdarg.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: stdarg.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: stdarg.h: check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: stdarg.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: stdarg.h: proceeding with the preprocessor's result" >&2;};;
-esac
-echo "$as_me:$LINENO: checking for stdarg.h" >&5
-echo $ECHO_N "checking for stdarg.h... $ECHO_C" >&6
-if test "${ac_cv_header_stdarg_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_stdarg_h=$ac_header_preproc
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdarg_h" >&5
-echo "${ECHO_T}$ac_cv_header_stdarg_h" >&6
-
+rm -f conftest*
 fi
-if test $ac_cv_header_stdarg_h = yes; then
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   :
 else
-  { { echo "$as_me:$LINENO: error: ** stdarg.h could not be found - ircd-hybrid will not compile without it **" >&5
-echo "$as_me: error: ** stdarg.h could not be found - ircd-hybrid will not compile without it **" >&2;}
-   { (exit 1); exit 1; }; }
+  echo "$ac_t""no" 1>&6
+{ echo "configure: error: ** stdarg.h could not be found - ircd-hybrid will not compile without it **" 1>&2; exit 1; }
 fi
 
 
-
-
-
 for ac_func in strlcat strlcpy
 do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2312: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2317 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
+    which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+; return 0; }
+EOF
+if { (eval echo configure:2340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
 
-
 for ac_func in socketpair
 do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2368: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2373 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
+    which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+; return 0; }
+EOF
+if { (eval echo configure:2396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
 
-
 for ac_func in snprintf
 do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2424: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2429 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
+    which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+; return 0; }
+EOF
+if { (eval echo configure:2452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
  have_snprintf=1
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
-
 for ac_func in vsnprintf
 do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2479: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2484 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
+    which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+; return 0; }
+EOF
+if { (eval echo configure:2507: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
  have_vsnprintf=1
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
@@ -4903,319 +2535,237 @@
 fi
 
 
-
 for ac_func in mmap
 do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2542: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2547 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
+    which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+; return 0; }
+EOF
+if { (eval echo configure:2570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
 
-echo "$as_me:$LINENO: checking for nanosleep" >&5
-echo $ECHO_N "checking for nanosleep... $ECHO_C" >&6
-if test "${ac_cv_func_nanosleep+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for nanosleep""... $ac_c" 1>&6
+echo "configure:2596: checking for nanosleep" >&5
+if eval "test \"`echo '$''{'ac_cv_func_nanosleep'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2601 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char nanosleep (); below.  */
+    which can conflict with char nanosleep(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char nanosleep ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char nanosleep();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_nanosleep) || defined (__stub___nanosleep)
 choke me
 #else
-f = nanosleep;
+nanosleep();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_nanosleep=yes
+; return 0; }
+EOF
+if { (eval echo configure:2624: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_nanosleep=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_nanosleep=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_nanosleep=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_nanosleep" >&5
-echo "${ECHO_T}$ac_cv_func_nanosleep" >&6
-if test $ac_cv_func_nanosleep = yes; then
+
+if eval "test \"`echo '$ac_cv_func_'nanosleep`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   :
 else
-  echo "$as_me:$LINENO: checking for nanosleep in -lrt" >&5
-echo $ECHO_N "checking for nanosleep in -lrt... $ECHO_C" >&6
-if test "${ac_cv_lib_rt_nanosleep+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for nanosleep in -lrt""... $ac_c" 1>&6
+echo "configure:2642: checking for nanosleep in -lrt" >&5
+ac_lib_var=`echo rt'_'nanosleep | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
+  ac_save_LIBS="$LIBS"
 LIBS="-lrt  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 2650 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char nanosleep ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-nanosleep ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_rt_nanosleep=yes
+    builtin and then its argument prototype would still apply.  */
+char nanosleep();
+
+int main() {
+nanosleep()
+; return 0; }
+EOF
+if { (eval echo configure:2661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_rt_nanosleep=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_rt_nanosleep" >&5
-echo "${ECHO_T}$ac_cv_lib_rt_nanosleep" >&6
-if test $ac_cv_lib_rt_nanosleep = yes; then
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   LIBS="${LIBS} -lrt"
 else
-  echo "$as_me:$LINENO: checking for nanosleep in -lposix4" >&5
-echo $ECHO_N "checking for nanosleep in -lposix4... $ECHO_C" >&6
-if test "${ac_cv_lib_posix4_nanosleep+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for nanosleep in -lposix4""... $ac_c" 1>&6
+echo "configure:2680: checking for nanosleep in -lposix4" >&5
+ac_lib_var=`echo posix4'_'nanosleep | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
+  ac_save_LIBS="$LIBS"
 LIBS="-lposix4  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 2688 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char nanosleep ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-nanosleep ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_posix4_nanosleep=yes
+    builtin and then its argument prototype would still apply.  */
+char nanosleep();
+
+int main() {
+nanosleep()
+; return 0; }
+EOF
+if { (eval echo configure:2699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_posix4_nanosleep=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_posix4_nanosleep" >&5
-echo "${ECHO_T}$ac_cv_lib_posix4_nanosleep" >&6
-if test $ac_cv_lib_posix4_nanosleep = yes; then
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   LIBS="${LIBS} -lposix4"
-
+      		
+else
+  echo "$ac_t""no" 1>&6
 fi
 
 fi
 
 fi
 
-if test x$ac_cv_func_nanosleep = xno && test x$ac_cv_lib_posix4_nanosleep = xno  && test x$ac_cv_lib_rt_nanosleep = xno
-then
-	echo "$as_me:$LINENO: result: \"nanosleep not found..using select for delay\"" >&5
-echo "${ECHO_T}\"nanosleep not found..using select for delay\"" >&6
+if test x$ac_cv_func_nanosleep = xno && test x$ac_cv_lib_posix4_nanosleep = xno  && test x$ac_cv_lib_rt_nanosleep = xno 
+then	
+	echo "$ac_t"""nanosleep not found..using select for delay"" 1>&6
 else
-	cat >>confdefs.h <<\_ACEOF
+	cat >> confdefs.h <<\EOF
 #define HAVE_NANOSLEEP 1
-_ACEOF
+EOF
 
 fi
 
 cpp_flags_backup="$CPPFLAGS"
 CPPFLAGS="$CPPFLAGS -dM"
-echo "$as_me:$LINENO: checking for getrlimit max open files parameter" >&5
-echo $ECHO_N "checking for getrlimit max open files parameter... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+echo $ac_n "checking for getrlimit max open files parameter""... $ac_c" 1>&6
+echo "configure:2737: checking for getrlimit max open files parameter" >&5
+cat > conftest.$ac_ext <<EOF
+#line 2739 "configure"
 #include "confdefs.h"
 #include <sys/resource.h>
-
-_ACEOF
+EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "RLIMIT_FDMAX" >/dev/null 2>&1; then
+  rm -rf conftest*
   cf_rlimit_type="RLIMIT_FDMAX"
 fi
 rm -f conftest*
 
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 2751 "configure"
 #include "confdefs.h"
 #include <sys/resource.h>
-
-_ACEOF
+EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "RLIMIT_NOFILE" >/dev/null 2>&1; then
+  rm -rf conftest*
   cf_rlimit_type="RLIMIT_NOFILE"
 fi
 rm -f conftest*
 
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 2763 "configure"
 #include "confdefs.h"
 #include <sys/resource.h>
-
-_ACEOF
+EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "RLIMIT_OPEN_MAX" >/dev/null 2>&1; then
+  rm -rf conftest*
   cf_rlimit_type="RLIMIT_OPEN_MAX"
 fi
 rm -f conftest*
@@ -5223,23 +2773,46 @@
 CPPFLAGS="$cpp_flags_backup"
 unset cpp_flags_backup
 if test "x$cf_rlimit_type" != "x"; then
-	cat >>confdefs.h <<_ACEOF
+	cat >> confdefs.h <<EOF
 #define RLIMIT_FD_MAX $cf_rlimit_type
-_ACEOF
+EOF
 
-	echo "$as_me:$LINENO: result: $cf_rlimit_type" >&5
-echo "${ECHO_T}$cf_rlimit_type" >&6
+	echo "$ac_t""$cf_rlimit_type" 1>&6
 fi
 
-echo "$as_me:$LINENO: checking for OpenSSL" >&5
-echo $ECHO_N "checking for OpenSSL... $ECHO_C" >&6
+echo $ac_n "checking whether you want SSL client support""... $ac_c" 1>&6
+echo "configure:2785: checking whether you want SSL client support" >&5
+# Check whether --enable-ssl-clients or --disable-ssl-clients was given.
+if test "${enable_ssl_clients+set}" = set; then
+  enableval="$enable_ssl_clients"
+  
+  case "$enableval" in
+  yes)
+    ac_cv_ssl_clients="yes"
+    ;;
+  no)
+    ac_cv_ssl_clients="no"
+    ;;
+  esac
+
+else
+  ac_cv_ssl_clients="yes"
+fi
+
+echo "$ac_t""$ac_cv_ssl_clients" 1>&6
+
+
+
+echo $ac_n "checking for OpenSSL""... $ac_c" 1>&6
+echo "configure:2808: checking for OpenSSL" >&5
 # Check whether --enable-openssl or --disable-openssl was given.
 if test "${enable_openssl+set}" = set; then
   enableval="$enable_openssl"
-   cf_enable_openssl=$enableval
+   cf_enable_openssl=$enableval 
 else
-   cf_enable_openssl="auto"
-fi;
+   cf_enable_openssl="auto" 
+fi
+
 
 if test "X$cf_enable_openssl" != "Xno" ; then
   cf_openssl_basedir=""
@@ -5269,18 +2842,15 @@
     fi
   fi
       if test "X$cf_openssl_basedir" != "X" ; then
-    echo "$as_me:$LINENO: result: $cf_openssl_basedir" >&5
-echo "${ECHO_T}$cf_openssl_basedir" >&6
+    echo "$ac_t""$cf_openssl_basedir" 1>&6
     cf_enable_openssl="yes"
   else
-    echo "$as_me:$LINENO: result: not found.  Please check your path." >&5
-echo "${ECHO_T}not found.  Please check your path." >&6
+    echo "$ac_t""not found.  Please check your path." 1>&6
     cf_enable_openssl="no"
   fi
   unset cf_openssl_basedir
 else
-    echo "$as_me:$LINENO: result: disabled" >&5
-echo "${ECHO_T}disabled" >&6
+    echo "$ac_t""disabled" 1>&6
 fi
 
 save_CPPFLAGS="$CPPFLAGS"
@@ -5288,13 +2858,13 @@
 save_LIBS="$LIBS"
 LIBS="$LIBS $SSL_LIBS"
 if test "X$cf_enable_openssl" != "Xno"; then
-        echo "$as_me:$LINENO: checking for OpenSSL 0.9.6 or above" >&5
-echo $ECHO_N "checking for OpenSSL 0.9.6 or above... $ECHO_C" >&6
+        echo $ac_n "checking for OpenSSL 0.9.6 or above""... $ac_c" 1>&6
+echo "configure:2863: checking for OpenSSL 0.9.6 or above" >&5
     if test "$cross_compiling" = yes; then
   cf_openssl_version_ok='no'
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2868 "configure"
 #include "confdefs.h"
 
 #include <openssl/opensslv.h>
@@ -5306,717 +2876,699 @@
   }
   exit(1);
 }
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+    
+EOF
+if { (eval echo configure:2882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
   cf_openssl_version_ok='yes'
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-( exit $ac_status )
-cf_openssl_version_ok='no'
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  cf_openssl_version_ok='no'
 fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -fr conftest*
 fi
 
+
     if test "X$cf_openssl_version_ok" = "Xyes"; then
-        echo "$as_me:$LINENO: result: ok" >&5
-echo "${ECHO_T}ok" >&6
+        echo "$ac_t""ok" 1>&6
                 save_CPPFLAGS="$CPPFLAGS"
         CPPFLAGS="$CPPFLAGS $SSL_LIBS"
-
-echo "$as_me:$LINENO: checking for RSA_free in -lcrypto" >&5
-echo $ECHO_N "checking for RSA_free in -lcrypto... $ECHO_C" >&6
-if test "${ac_cv_lib_crypto_RSA_free+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+        echo $ac_n "checking for RSA_free in -lcrypto""... $ac_c" 1>&6
+echo "configure:2900: checking for RSA_free in -lcrypto" >&5
+ac_lib_var=`echo crypto'_'RSA_free | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
+  ac_save_LIBS="$LIBS"
 LIBS="-lcrypto  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 2908 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char RSA_free ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-RSA_free ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_crypto_RSA_free=yes
+    builtin and then its argument prototype would still apply.  */
+char RSA_free();
+
+int main() {
+RSA_free()
+; return 0; }
+EOF
+if { (eval echo configure:2919: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_crypto_RSA_free=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_RSA_free" >&5
-echo "${ECHO_T}$ac_cv_lib_crypto_RSA_free" >&6
-if test $ac_cv_lib_crypto_RSA_free = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBCRYPTO 1
-_ACEOF
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo crypto | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
 
   LIBS="-lcrypto $LIBS"
 
+else
+  echo "$ac_t""no" 1>&6
 fi
 
         if test "X$ac_cv_lib_crypto_RSA_free" = "Xyes"; then
             cf_openssl_ciphers=''
-
-for ac_func in EVP_bf_cfb
+                        for ac_func in EVP_bf_cfb
 do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2951: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2956 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
+    which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+; return 0; }
+EOF
+if { (eval echo configure:2979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
- cf_openssl_ciphers="${cf_openssl_ciphers}BF/168 BF/128 "
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ cf_openssl_ciphers="${cf_openssl_ciphers}BF/256 BF/192 BF/168 BF/128 "
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
+                        for ac_func in EVP_aes_128_cfb
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3006: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3011 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
-for ac_func in EVP_cast5_cfb
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3034: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ cf_openssl_ciphers="${cf_openssl_ciphers}AES/128 "
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+            for ac_func in EVP_aes_192_cfb
 do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3061: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3066 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
+    which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
 #endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ cf_openssl_ciphers="${cf_openssl_ciphers}AES/192 "
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+            for ac_func in EVP_aes_256_cfb
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3116: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3121 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
 #endif
-int
-main ()
-{
+
+; return 0; }
+EOF
+if { (eval echo configure:3144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ cf_openssl_ciphers="${cf_openssl_ciphers}AES/256 "
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+            for ac_func in EVP_cast5_cfb
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3171: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3176 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+; return 0; }
+EOF
+if { (eval echo configure:3199: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
  cf_openssl_ciphers="${cf_openssl_ciphers}CAST/128 "
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
-
-for ac_func in EVP_idea_cfb
+            for ac_func in EVP_idea_cfb
 do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3226: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3231 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
+    which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+; return 0; }
+EOF
+if { (eval echo configure:3254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
  cf_openssl_ciphers="${cf_openssl_ciphers}IDEA/128 "
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
-
-for ac_func in EVP_rc5_32_12_16_cfb
+            for ac_func in EVP_rc5_32_12_16_cfb
 do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3281: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3286 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
+    which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+; return 0; }
+EOF
+if { (eval echo configure:3309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
  cf_openssl_ciphers="${cf_openssl_ciphers}RC5.16/128 RC5.12/128 RC5.8/128 "
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
-
-for ac_func in EVP_des_ede3_cfb
+            for ac_func in EVP_des_ede3_cfb
 do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3336: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3341 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
+    which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+; return 0; }
+EOF
+if { (eval echo configure:3364: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
  cf_openssl_ciphers="${cf_openssl_ciphers}3DES/168 "
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
-
-for ac_func in EVP_des_cfb
+            for ac_func in EVP_des_cfb
 do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3391: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3396 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
+    which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+; return 0; }
+EOF
+if { (eval echo configure:3419: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
  cf_openssl_ciphers="${cf_openssl_ciphers}DES/56 "
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
         fi
         CPPFLAGS="$save_CPPFLAGS"
         SSL_LIBS="$SSL_LIBS -lcrypto"
+
+        if test "X$ac_cv_ssl_clients" = "Xyes"; then
+		SSL_CLIENT_C="ssl_client.c"
+		M_STARTTLS_C="m_starttls.c"
+
+	        cat >> confdefs.h <<\EOF
+#define SSL_CLIENT_SUPPORT 1
+EOF
+
+
+		SSL_LIBS="$SSL_LIBS -lssl"
+	fi
     else
-        echo "$as_me:$LINENO: result: no - OpenSSL support disabled" >&5
-echo "${ECHO_T}no - OpenSSL support disabled" >&6
+        echo "$ac_t""no - OpenSSL support disabled" 1>&6
     fi
 fi
 CPPFLAGS="$save_CPPFLAGS"
 LIBS="$save_LIBS"
 
-echo "$as_me:$LINENO: checking if you want to try to use zlib" >&5
-echo $ECHO_N "checking if you want to try to use zlib... $ECHO_C" >&6
+echo $ac_n "checking if you want to try to use zlib""... $ac_c" 1>&6
+echo "configure:3466: checking if you want to try to use zlib" >&5
 # Check whether --enable-zlib or --disable-zlib was given.
 if test "${enable_zlib+set}" = set; then
   enableval="$enable_zlib"
-   cf_enable_zlib=$enableval
+   cf_enable_zlib=$enableval 
 else
-   cf_enable_zlib='yes'
-fi;
-echo "$as_me:$LINENO: result: $cf_enable_zlib" >&5
-echo "${ECHO_T}$cf_enable_zlib" >&6
+   cf_enable_zlib='yes' 
+fi
+
+echo "$ac_t""$cf_enable_zlib" 1>&6
 
 case "$cf_enable_zlib" in
   yes)
-
-echo "$as_me:$LINENO: checking for deflate in -lz" >&5
-echo $ECHO_N "checking for deflate in -lz... $ECHO_C" >&6
-if test "${ac_cv_lib_z_deflate+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+    echo $ac_n "checking for deflate in -lz""... $ac_c" 1>&6
+echo "configure:3480: checking for deflate in -lz" >&5
+ac_lib_var=`echo z'_'deflate | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
+  ac_save_LIBS="$LIBS"
 LIBS="-lz  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 3488 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char deflate ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-deflate ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_z_deflate=yes
+    builtin and then its argument prototype would still apply.  */
+char deflate();
+
+int main() {
+deflate()
+; return 0; }
+EOF
+if { (eval echo configure:3499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_z_deflate=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_z_deflate" >&5
-echo "${ECHO_T}$ac_cv_lib_z_deflate" >&6
-if test $ac_cv_lib_z_deflate = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBZ 1
-_ACEOF
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo z | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
 
   LIBS="-lz $LIBS"
 
+else
+  echo "$ac_t""no" 1>&6
 fi
 
-    echo "$as_me:$LINENO: checking for zlibVersion" >&5
-echo $ECHO_N "checking for zlibVersion... $ECHO_C" >&6
-if test "${ac_cv_func_zlibVersion+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+    echo $ac_n "checking for zlibVersion""... $ac_c" 1>&6
+echo "configure:3527: checking for zlibVersion" >&5
+if eval "test \"`echo '$''{'ac_cv_func_zlibVersion'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3532 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char zlibVersion (); below.  */
+    which can conflict with char zlibVersion(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char zlibVersion ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char zlibVersion();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_zlibVersion) || defined (__stub___zlibVersion)
 choke me
 #else
-f = zlibVersion;
+zlibVersion();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_zlibVersion=yes
+; return 0; }
+EOF
+if { (eval echo configure:3555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_zlibVersion=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_zlibVersion=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_zlibVersion=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_zlibVersion" >&5
-echo "${ECHO_T}$ac_cv_func_zlibVersion" >&6
-if test $ac_cv_func_zlibVersion = yes; then
+
+if eval "test \"`echo '$ac_cv_func_'zlibVersion`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   :
 else
-  { echo "$as_me:$LINENO: WARNING: zlib 1.0.2 or higher required for ZIPLINK support" >&5
-echo "$as_me: WARNING: zlib 1.0.2 or higher required for ZIPLINK support" >&2;}
+  echo "$ac_t""no" 1>&6
+echo "configure: warning: zlib 1.0.2 or higher required for ZIPLINK support" 1>&2
 fi
 
     ;;
@@ -6024,152 +3576,112 @@
     ;;
   *)
     LIBS="$LIBS -L$cf_enable_zlib"
-
-echo "$as_me:$LINENO: checking for deflate in -lz" >&5
-echo $ECHO_N "checking for deflate in -lz... $ECHO_C" >&6
-if test "${ac_cv_lib_z_deflate+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+    echo $ac_n "checking for deflate in -lz""... $ac_c" 1>&6
+echo "configure:3581: checking for deflate in -lz" >&5
+ac_lib_var=`echo z'_'deflate | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
+  ac_save_LIBS="$LIBS"
 LIBS="-lz  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 3589 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char deflate ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-deflate ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_z_deflate=yes
+    builtin and then its argument prototype would still apply.  */
+char deflate();
+
+int main() {
+deflate()
+; return 0; }
+EOF
+if { (eval echo configure:3600: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_z_deflate=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_z_deflate" >&5
-echo "${ECHO_T}$ac_cv_lib_z_deflate" >&6
-if test $ac_cv_lib_z_deflate = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBZ 1
-_ACEOF
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo z | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
 
   LIBS="-lz $LIBS"
 
+else
+  echo "$ac_t""no" 1>&6
 fi
 
-    echo "$as_me:$LINENO: checking for zlibVersion" >&5
-echo $ECHO_N "checking for zlibVersion... $ECHO_C" >&6
-if test "${ac_cv_func_zlibVersion+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+    echo $ac_n "checking for zlibVersion""... $ac_c" 1>&6
+echo "configure:3628: checking for zlibVersion" >&5
+if eval "test \"`echo '$''{'ac_cv_func_zlibVersion'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3633 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char zlibVersion (); below.  */
+    which can conflict with char zlibVersion(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char zlibVersion ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char zlibVersion();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_zlibVersion) || defined (__stub___zlibVersion)
 choke me
 #else
-f = zlibVersion;
+zlibVersion();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_zlibVersion=yes
+; return 0; }
+EOF
+if { (eval echo configure:3656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_zlibVersion=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_zlibVersion=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_zlibVersion=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_zlibVersion" >&5
-echo "${ECHO_T}$ac_cv_func_zlibVersion" >&6
-if test $ac_cv_func_zlibVersion = yes; then
+
+if eval "test \"`echo '$ac_cv_func_'zlibVersion`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   :
 else
-  { echo "$as_me:$LINENO: WARNING: zlib 1.0.2 or higher required for ZIPLINK support" >&5
-echo "$as_me: WARNING: zlib 1.0.2 or higher required for ZIPLINK support" >&2;}
+  echo "$ac_t""no" 1>&6
+echo "configure: warning: zlib 1.0.2 or higher required for ZIPLINK support" 1>&2
 fi
 
     ;;
 esac
 
 
-echo "$as_me:$LINENO: checking if you want to do a profile build" >&5
-echo $ECHO_N "checking if you want to do a profile build... $ECHO_C" >&6
+echo $ac_n "checking if you want to do a profile build""... $ac_c" 1>&6
+echo "configure:3681: checking if you want to do a profile build" >&5
 # Check whether --enable-profile or --disable-profile was given.
 if test "${enable_profile+set}" = set; then
   enableval="$enable_profile"
-
+  
   case "$enableval" in
   yes)
     ac_cv_profile="yes"
@@ -6180,17 +3692,17 @@
     ;;
   esac
 
-fi;
-echo "$as_me:$LINENO: result: $ac_cv_profile" >&5
-echo "${ECHO_T}$ac_cv_profile" >&6
+fi
 
+echo "$ac_t""$ac_cv_profile" 1>&6
 
-echo "$as_me:$LINENO: checking if you want ElectricFence" >&5
-echo $ECHO_N "checking if you want ElectricFence... $ECHO_C" >&6
+
+echo $ac_n "checking if you want ElectricFence""... $ac_c" 1>&6
+echo "configure:3702: checking if you want ElectricFence" >&5
 # Check whether --enable-efence or --disable-efence was given.
 if test "${enable_efence+set}" = set; then
   enableval="$enable_efence"
-
+  
   case "$enableval" in
   yes)
     ac_cv_efence="yes"
@@ -6204,39 +3716,39 @@
     ;;
   esac
 
-fi;
-echo "$as_me:$LINENO: result: $ac_cv_efence" >&5
-echo "${ECHO_T}$ac_cv_efence" >&6
+fi
 
+echo "$ac_t""$ac_cv_efence" 1>&6
 
-echo "$as_me:$LINENO: checking if you want the block allocator" >&5
-echo $ECHO_N "checking if you want the block allocator... $ECHO_C" >&6
+
+echo $ac_n "checking if you want the block allocator""... $ac_c" 1>&6
+echo "configure:3726: checking if you want the block allocator" >&5
 # Check whether --enable-block-alloc or --disable-block-alloc was given.
 if test "${enable_block_alloc+set}" = set; then
   enableval="$enable_block_alloc"
-
+  
   case "$enableval" in
   yes)
     ac_cv_balloc="yes"
     ;;
   no)
     ac_cv_balloc="no"
-    cat >>confdefs.h <<\_ACEOF
+    cat >> confdefs.h <<\EOF
 #define NOBALLOC 1
-_ACEOF
+EOF
 
     ;;
   esac
 
-fi;
-echo "$as_me:$LINENO: result: $ac_cv_balloc" >&5
-echo "${ECHO_T}$ac_cv_balloc" >&6
+fi
+
+echo "$ac_t""$ac_cv_balloc" 1>&6
 
 
 # Check whether --enable-poll or --disable-poll was given.
 if test "${enable_poll+set}" = set; then
   enableval="$enable_poll"
-
+  
   case "$enableval" in
   yes)
     echo "Forcing poll() to be enabled"
@@ -6248,12 +3760,13 @@
     ;;
   esac
 
-fi;
+fi
+
 
 # Check whether --enable-select or --disable-select was given.
 if test "${enable_select+set}" = set; then
   enableval="$enable_select"
-
+  
   case "$enableval" in
   yes)
     echo "Forcing select() to be enabled"
@@ -6265,12 +3778,13 @@
     ;;
   esac
 
-fi;
+fi
+
 
 # Check whether --enable-kqueue or --disable-kqueue was given.
 if test "${enable_kqueue+set}" = set; then
   enableval="$enable_kqueue"
-
+  
   case "$enableval" in
   yes)
     echo "Forcing kqueue() to be enabled"
@@ -6282,12 +3796,13 @@
   ;;
 esac
 
-fi;
+fi
+
 
 # Check whether --enable-devpoll or --disable-devpoll was given.
 if test "${enable_devpoll+set}" = set; then
   enableval="$enable_devpoll"
-
+  
   case "$enableval" in
   yes)
     echo "Forcing /dev/poll to be enabled"
@@ -6299,12 +3814,13 @@
   ;;
 esac
 
-fi;
+fi
+
 
 # Check whether --enable-rtsigio or --disable-rtsigio was given.
 if test "${enable_rtsigio+set}" = set; then
   enableval="$enable_rtsigio"
-
+  
   case "$enableval" in
   yes)
     echo "Forcing Linux RT Sigio to be enabled"
@@ -6315,47 +3831,51 @@
   ;;
 esac
 
-fi;
+fi
 
-if test $ac_cv_c_compiler_gnu = yes; then
-    echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5
-echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
-if test "${ac_cv_prog_gcc_traditional+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+
+if test $ac_cv_prog_gcc = yes; then
+    echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
+echo "configure:3840: checking whether ${CC-cc} needs -traditional" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
     ac_pattern="Autoconf.*'x'"
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3846 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
-_ACEOF
+EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "$ac_pattern" >/dev/null 2>&1; then
+  rm -rf conftest*
   ac_cv_prog_gcc_traditional=yes
 else
+  rm -rf conftest*
   ac_cv_prog_gcc_traditional=no
 fi
 rm -f conftest*
 
 
   if test $ac_cv_prog_gcc_traditional = no; then
-    cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+    cat > conftest.$ac_ext <<EOF
+#line 3864 "configure"
 #include "confdefs.h"
 #include <termio.h>
 Autoconf TCGETA
-_ACEOF
+EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "$ac_pattern" >/dev/null 2>&1; then
+  rm -rf conftest*
   ac_cv_prog_gcc_traditional=yes
 fi
 rm -f conftest*
 
   fi
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5
-echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
+
+echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6
   if test $ac_cv_prog_gcc_traditional = yes; then
     CC="$CC -traditional"
   fi
@@ -6363,318 +3883,234 @@
 
 
 
-echo "$as_me:$LINENO: checking for u_int32_t" >&5
-echo $ECHO_N "checking for u_int32_t... $ECHO_C" >&6
-if test "${ac_cv_type_u_int32_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for u_int32_t""... $ac_c" 1>&6
+echo "configure:3888: checking for u_int32_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_u_int32_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3893 "configure"
 #include "confdefs.h"
-$ac_includes_default
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
 #endif
-int
-main ()
-{
-if ((u_int32_t *) 0)
-  return 0;
-if (sizeof (u_int32_t))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])u_int32_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  rm -rf conftest*
   ac_cv_type_u_int32_t=yes
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_type_u_int32_t=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+  rm -rf conftest*
+  ac_cv_type_u_int32_t=no
 fi
-echo "$as_me:$LINENO: result: $ac_cv_type_u_int32_t" >&5
-echo "${ECHO_T}$ac_cv_type_u_int32_t" >&6
-if test $ac_cv_type_u_int32_t = yes; then
-  :
-else
+rm -f conftest*
 
-cat >>confdefs.h <<_ACEOF
+fi
+echo "$ac_t""$ac_cv_type_u_int32_t" 1>&6
+if test $ac_cv_type_u_int32_t = no; then
+  cat >> confdefs.h <<\EOF
 #define u_int32_t unsigned int
-_ACEOF
+EOF
 
 fi
 
 
-echo "$as_me:$LINENO: checking for uintptr_t" >&5
-echo $ECHO_N "checking for uintptr_t... $ECHO_C" >&6
-if test "${ac_cv_type_uintptr_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for uintptr_t""... $ac_c" 1>&6
+echo "configure:3922: checking for uintptr_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_uintptr_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3927 "configure"
 #include "confdefs.h"
-$ac_includes_default
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
 #endif
-int
-main ()
-{
-if ((uintptr_t *) 0)
-  return 0;
-if (sizeof (uintptr_t))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])uintptr_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  rm -rf conftest*
   ac_cv_type_uintptr_t=yes
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_type_uintptr_t=no
+  rm -rf conftest*
+  ac_cv_type_uintptr_t=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_uintptr_t" 1>&6
+if test $ac_cv_type_uintptr_t = no; then
+  cat >> confdefs.h <<\EOF
+#define uintptr_t 
+EOF
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_type_uintptr_t" >&5
-echo "${ECHO_T}$ac_cv_type_uintptr_t" >&6
 
 
 rm -f conftest conftest.f
-echo "$as_me:$LINENO: checking for poll" >&5
-echo $ECHO_N "checking for poll... $ECHO_C" >&6
-if test "${ac_cv_func_poll+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for poll""... $ac_c" 1>&6
+echo "configure:3957: checking for poll" >&5
+if eval "test \"`echo '$''{'ac_cv_func_poll'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3962 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char poll (); below.  */
+    which can conflict with char poll(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char poll ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char poll();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_poll) || defined (__stub___poll)
 choke me
 #else
-f = poll;
+poll();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_poll=yes
+; return 0; }
+EOF
+if { (eval echo configure:3985: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_poll=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_poll=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_poll=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_poll" >&5
-echo "${ECHO_T}$ac_cv_func_poll" >&6
-if test $ac_cv_func_poll = yes; then
+
+if eval "test \"`echo '$ac_cv_func_'poll`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   ac_cv_func_poll="yes"
+else
+  echo "$ac_t""no" 1>&6
 fi
 
 
 
 
 if test "$ac_cv_func_kqueue" = "yes" ; then
-
-for ac_func in kevent
+	for ac_func in kevent
 do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:4011: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 4016 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
+    which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+; return 0; }
+EOF
+if { (eval echo configure:4039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-  kqueue_func="yes"
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+  kqueue_func="yes" 
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
 	if test "X$kqueue_func" = "X" ; then
-		{ echo "$as_me:$LINENO: WARNING: ** kevent() not found - not building kqueue support **" >&5
-echo "$as_me: WARNING: ** kevent() not found - not building kqueue support **" >&2;}
+		echo "configure: warning: ** kevent() not found - not building kqueue support **" 1>&2
 	else
                 SELECT_TYPE="kqueue"
-                cat >>confdefs.h <<\_ACEOF
+                cat >> confdefs.h <<\EOF
 #define USE_KQUEUE 1
-_ACEOF
+EOF
 
 	fi
 fi
 if test "$SELECT_TYPE" != "kqueue" ; then
 	if test "$ac_cv_func_devpoll" = "yes" ; then
                 SELECT_TYPE="devpoll"
-                cat >>confdefs.h <<\_ACEOF
+                cat >> confdefs.h <<\EOF
 #define HAVE_DEVPOLL 1
-_ACEOF
+EOF
 
-                cat >>confdefs.h <<\_ACEOF
+                cat >> confdefs.h <<\EOF
 #define USE_DEVPOLL 1
-_ACEOF
+EOF
 
 	elif test "$ac_cv_func_rtsigio" = "yes" ; then
 		SELECT_TYPE="sigio"
-		cat >>confdefs.h <<\_ACEOF
+		cat >> confdefs.h <<\EOF
 #define USE_SIGIO 1
-_ACEOF
+EOF
 
 	elif test "$ac_cv_func_poll" = "yes" ; then
                 SELECT_TYPE="poll"
-                cat >>confdefs.h <<\_ACEOF
+                cat >> confdefs.h <<\EOF
 #define USE_POLL 1
-_ACEOF
+EOF
 
 	elif test "$ac_cv_func_select" = "yes" ; then
                 SELECT_TYPE="select"
-                cat >>confdefs.h <<\_ACEOF
+                cat >> confdefs.h <<\EOF
 #define USE_SELECT 1
-_ACEOF
+EOF
 
         else
-		{ echo "$as_me:$LINENO: WARNING: poll and kevent not found and none explicitly declared; defaulting to select()" >&5
-echo "$as_me: WARNING: poll and kevent not found and none explicitly declared; defaulting to select()" >&2;}
+		echo "configure: warning: poll and kevent not found and none explicitly declared; defaulting to select()" 1>&2
                 SELECT_TYPE="select"
-                cat >>confdefs.h <<\_ACEOF
+                cat >> confdefs.h <<\EOF
 #define USE_SELECT 1
-_ACEOF
+EOF
 
 	fi
 fi
 echo "Using ${SELECT_TYPE} for select loop."
-cat >>confdefs.h <<_ACEOF
+cat >> confdefs.h <<EOF
 #define SELECT_TYPE "$SELECT_TYPE"
-_ACEOF
+EOF
 
 
 
@@ -6682,9 +4118,9 @@
 	echo "Building with gettext."
 	MSGFMT="msgfmt -o"
 	SUBDIR_MESSAGES="messages"
-        cat >>confdefs.h <<\_ACEOF
+        cat >> confdefs.h <<\EOF
 #define HAVE_GETTEXT 1
-_ACEOF
+EOF
 
 else
 	MSGFMT="echo"
@@ -6694,15 +4130,16 @@
 # Check whether --enable-ipv6 or --disable-ipv6 was given.
 if test "${enable_ipv6+set}" = set; then
   enableval="$enable_ipv6"
-   ac_cv_ipv6=$enableval
+   ac_cv_ipv6=$enableval 
 else
-   ac_cv_ipv6='no'
-fi;
+   ac_cv_ipv6='no' 
+fi
+
 
 if test "$ac_cv_ipv6" = "yes" ; then
-	cat >>confdefs.h <<\_ACEOF
+	cat >> confdefs.h <<\EOF
 #define IPV6 1
-_ACEOF
+EOF
 
 	echo "Using IPv6 support"
 fi
@@ -6711,16 +4148,17 @@
 # Check whether --enable-efnet or --disable-efnet was given.
 if test "${enable_efnet+set}" = set; then
   enableval="$enable_efnet"
-   ac_cv_efnet=$enableval
+   ac_cv_efnet=$enableval 
 else
-   ac_cv_efnet='no'
-fi;
+   ac_cv_efnet='no' 
+fi
+
 
 
 if test "$ac_cv_efnet" = "yes"; then
-    cat >>confdefs.h <<\_ACEOF
+    cat >> confdefs.h <<\EOF
 #define EFNET 1
-_ACEOF
+EOF
 
     echo "Building ircd for use with efnet"
 fi
@@ -6730,7 +4168,7 @@
 # Check whether --enable-assert or --disable-assert was given.
 if test "${enable_assert+set}" = set; then
   enableval="$enable_assert"
-
+  
   case "$enableval" in
   yes)
     echo "Enabling assert() code."
@@ -6742,7 +4180,8 @@
     ;;
   esac
 
-fi;
+fi
+
 
 IRC_CFLAGS="$IRC_CFLAGS $ac_cv_assert"
 
@@ -6754,7 +4193,7 @@
 # Check whether --enable-small-net or --disable-small-net was given.
 if test "${enable_small_net+set}" = set; then
   enableval="$enable_small_net"
-
+  
   case "$enableval" in
   yes)
     echo "Enabling small net code."
@@ -6766,17 +4205,21 @@
     ;;
   esac
 
-fi;
+else
+  
+    IRC_CFLAGS="$IRC_CFLAGS -DSMALL_NET=1"
+
+fi
 
-ac_cv_nicklen="9"
-ac_cv_maxclients="200"
-ac_cv_topiclen="120"
 
+ac_cv_nicklen="20"
+ac_cv_maxclients="300"
+ac_cv_topiclen="495"
 
 # Check whether --with-nicklen or --without-nicklen was given.
 if test "${with_nicklen+set}" = set; then
   withval="$with_nicklen"
-
+  
 	echo $withval
   if test "$withval" = "no"; then
 	ac_cv_nicklen="9"
@@ -6784,63 +4227,62 @@
 	ac_cv_nicklen="$withval"
   fi
 
-fi;
-echo "$as_me:$LINENO: result: \"Setting NICKLEN to $ac_cv_nicklen\"" >&5
-echo "${ECHO_T}\"Setting NICKLEN to $ac_cv_nicklen\"" >&6
-cat >>confdefs.h <<_ACEOF
-#define NICKLEN (${ac_cv_nicklen}+1)
-_ACEOF
+fi
 
+echo "$ac_t"""Setting NICKLEN to $ac_cv_nicklen"" 1>&6
+cat >> confdefs.h <<EOF
+#define NICKLEN (${ac_cv_nicklen}+1)
+EOF
 
 
 # Check whether --with-maxclients or --without-maxclients was given.
 if test "${with_maxclients+set}" = set; then
   withval="$with_maxclients"
-
+  
   if test "$withval" = "no"; then
 	ac_cv_maxclients="200"
   else
 	ac_cv_maxclients="$withval"
   fi
 
-fi;
-echo "$as_me:$LINENO: result: \"Setting MAX_CLIENTS to $ac_cv_maxclients\"" >&5
-echo "${ECHO_T}\"Setting MAX_CLIENTS to $ac_cv_maxclients\"" >&6
-cat >>confdefs.h <<_ACEOF
-#define MAX_CLIENTS ${ac_cv_maxclients}
-_ACEOF
+fi
 
+echo "$ac_t"""Setting MAX_CLIENTS to $ac_cv_maxclients"" 1>&6
+cat >> confdefs.h <<EOF
+#define MAX_CLIENTS ${ac_cv_maxclients}
+EOF
 
 
 # Check whether --with-topiclen or --without-topiclen was given.
 if test "${with_topiclen+set}" = set; then
   withval="$with_topiclen"
-
+  
   if test "$withval" = "no"; then
 	ac_cv_topiclen="120"
   else
 	ac_cv_topiclen="$withval"
   fi
 
-fi;
-echo "$as_me:$LINENO: result: \"Setting TOPICLEN to $ac_cv_topiclen\"" >&5
-echo "${ECHO_T}\"Setting TOPICLEN to $ac_cv_topiclen\"" >&6
-cat >>confdefs.h <<_ACEOF
+fi
+
+echo "$ac_t"""Setting TOPICLEN to $ac_cv_topiclen"" 1>&6
+cat >> confdefs.h <<EOF
 #define TOPICLEN ${ac_cv_topiclen}
-_ACEOF
+EOF
 
 
 # Check whether --enable-shared-modules or --disable-shared-modules was given.
 if test "${enable_shared_modules+set}" = set; then
   enableval="$enable_shared_modules"
-
+  
   if test "$enableval" = "no"; then
 	ac_cv_shared_modules="no"
   else
 	ac_cv_shared_modules="yes"
   fi
 
-fi;
+fi
+
 
 if test "$ac_cv_profile" = "yes" &&
    test "$ac_cv_shared_modules" != "no"; then
@@ -6855,9 +4297,9 @@
 	MOD_TARGET="libmodules.a"
 	MODULES_LIBS="../modules/libmodules.a"
 	SEDOBJ="-e s/.so:/.o:/"
-	cat >>confdefs.h <<\_ACEOF
+	cat >> confdefs.h <<\EOF
 #define STATIC_MODULES 1
-_ACEOF
+EOF
 
 else
 	echo "Checking for shared module support"
@@ -6865,388 +4307,233 @@
 	MODULES_LIBS=""
 	MOD_TARGET="shared_modules"
 	SEDOBJ="-e s/.o:/.so:/"
-
-        echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
-if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+        
+        echo $ac_n "checking for shl_load""... $ac_c" 1>&6
+echo "configure:4313: checking for shl_load" >&5
+if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 4318 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.  */
+    which can conflict with char shl_load(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char shl_load ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char shl_load();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_shl_load) || defined (__stub___shl_load)
 choke me
 #else
-f = shl_load;
+shl_load();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_shl_load=yes
+; return 0; }
+EOF
+if { (eval echo configure:4341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_shl_load=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_shl_load=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_shl_load=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6
-if test $ac_cv_func_shl_load = yes; then
 
-                        cat >>confdefs.h <<\_ACEOF
+if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
+                        cat >> confdefs.h <<\EOF
 #define HAVE_SHL_LOAD 1
-_ACEOF
+EOF
 
                         ac_cv_have_shl_load='yes'
-
+                
 else
-  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
+echo "configure:4365: checking for shl_load in -ldld" >&5
+ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
+  ac_save_LIBS="$LIBS"
 LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 4373 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char shl_load ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dld_shl_load=yes
+    builtin and then its argument prototype would still apply.  */
+char shl_load();
+
+int main() {
+shl_load()
+; return 0; }
+EOF
+if { (eval echo configure:4384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_dld_shl_load=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
-if test $ac_cv_lib_dld_shl_load = yes; then
-  cat >>confdefs.h <<\_ACEOF
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
 #define HAVE_SHL_LOAD 1
-_ACEOF
+EOF
 
 else
+  echo "$ac_t""no" 1>&6
 
                 ac_cv_have_shl_load='no'
                 echo "shl_load could not be found"
-
+                
 fi
 
 fi
 
 
         if test "$ac_cv_have_shl_load" = "no"; then
-            if test "${ac_cv_header_mach_o_dyld_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for mach-o/dyld.h" >&5
-echo $ECHO_N "checking for mach-o/dyld.h... $ECHO_C" >&6
-if test "${ac_cv_header_mach_o_dyld_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_mach_o_dyld_h" >&5
-echo "${ECHO_T}$ac_cv_header_mach_o_dyld_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking mach-o/dyld.h usability" >&5
-echo $ECHO_N "checking mach-o/dyld.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <mach-o/dyld.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
+            ac_safe=`echo "mach-o/dyld.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for mach-o/dyld.h""... $ac_c" 1>&6
+echo "configure:4417: checking for mach-o/dyld.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_header_compiler=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking mach-o/dyld.h presence" >&5
-echo $ECHO_N "checking mach-o/dyld.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 4422 "configure"
 #include "confdefs.h"
 #include <mach-o/dyld.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:4427: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc in
-  yes:no )
-    { echo "$as_me:$LINENO: WARNING: mach-o/dyld.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: mach-o/dyld.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: mach-o/dyld.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: mach-o/dyld.h: proceeding with the preprocessor's result" >&2;};;
-  no:yes )
-    { echo "$as_me:$LINENO: WARNING: mach-o/dyld.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: mach-o/dyld.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: mach-o/dyld.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: mach-o/dyld.h: check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: mach-o/dyld.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: mach-o/dyld.h: proceeding with the preprocessor's result" >&2;};;
-esac
-echo "$as_me:$LINENO: checking for mach-o/dyld.h" >&5
-echo $ECHO_N "checking for mach-o/dyld.h... $ECHO_C" >&6
-if test "${ac_cv_header_mach_o_dyld_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_mach_o_dyld_h=$ac_header_preproc
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_mach_o_dyld_h" >&5
-echo "${ECHO_T}$ac_cv_header_mach_o_dyld_h" >&6
-
+rm -f conftest*
 fi
-if test $ac_cv_header_mach_o_dyld_h = yes; then
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   :
 else
+  echo "$ac_t""no" 1>&6
 
-        echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
-if test "${ac_cv_func_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+        echo $ac_n "checking for dlopen""... $ac_c" 1>&6
+echo "configure:4448: checking for dlopen" >&5
+if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 4453 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.  */
+    which can conflict with char dlopen(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char dlopen();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_dlopen) || defined (__stub___dlopen)
 choke me
 #else
-f = dlopen;
+dlopen();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_dlopen=yes
+; return 0; }
+EOF
+if { (eval echo configure:4476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_dlopen=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_dlopen=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_dlopen=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6
-if test $ac_cv_func_dlopen = yes; then
 
+if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+     
                         ac_cv_have_dlopen='yes'
-
+                
 else
-  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
+echo "configure:4496: checking for dlopen in -ldl" >&5
+ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
+  ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 4504 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dl_dlopen=yes
+    builtin and then its argument prototype would still apply.  */
+char dlopen();
+
+int main() {
+dlopen()
+; return 0; }
+EOF
+if { (eval echo configure:4515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_dl_dlopen=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
-if test $ac_cv_lib_dl_dlopen = yes; then
+rm -f conftest*
+LIBS="$ac_save_LIBS"
 
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
                         ac_cv_have_dlopen='yes'
-
+                
 else
-
+  echo "$ac_t""no" 1>&6
+   
                         ac_cv_have_dlopen='no'
-
+                
 fi
 
 fi
@@ -7254,965 +4541,516 @@
 
 fi
 
-
         fi
         if test "$ac_cv_have_dlopen" = "no"; then
-            { { echo "$as_me:$LINENO: error: shared module support could not be found - try running configure with --disable-shared-modules" >&5
-echo "$as_me: error: shared module support could not be found - try running configure with --disable-shared-modules" >&2;}
-   { (exit 1); exit 1; }; }
+            { echo "configure: error: shared module support could not be found - try running configure with --disable-shared-modules" 1>&2; exit 1; }
         fi
-
-echo "$as_me:$LINENO: checking for dlsym in -ldl" >&5
-echo $ECHO_N "checking for dlsym in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlsym+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+		echo $ac_n "checking for dlsym in -ldl""... $ac_c" 1>&6
+echo "configure:4550: checking for dlsym in -ldl" >&5
+ac_lib_var=`echo dl'_'dlsym | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
+  ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 4558 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlsym ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-dlsym ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dl_dlsym=yes
+    builtin and then its argument prototype would still apply.  */
+char dlsym();
+
+int main() {
+dlsym()
+; return 0; }
+EOF
+if { (eval echo configure:4569: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_dl_dlsym=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlsym" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlsym" >&6
-if test $ac_cv_lib_dl_dlsym = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBDL 1
-_ACEOF
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo dl | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
 
   LIBS="-ldl $LIBS"
 
+else
+  echo "$ac_t""no" 1>&6
 fi
 
-
-for ac_func in dlopen
+	for ac_func in dlopen
 do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:4599: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 4604 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
+    which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+; return 0; }
+EOF
+if { (eval echo configure:4627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
-
-for ac_func in dlfunc
+	for ac_func in dlfunc
 do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:4654: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 4659 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
+    which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+; return 0; }
+EOF
+if { (eval echo configure:4682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
-
-
-for ac_header in mach-o/dyld.h dlfcn.h
+	for ac_hdr in mach-o/dyld.h dlfcn.h
 do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:4710: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_header_compiler=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 4715 "configure"
 #include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:4720: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc in
-  yes:no )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
-  no:yes )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=$ac_header_preproc"
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
+rm -f conftest*
 fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
 fi
-
 done
 
 
 	# The GNU linker requires the -export-dynamic option to make
 	# all symbols visible in the dynamic symbol table.
 	hold_ldflags=$LDFLAGS
-	echo "$as_me:$LINENO: checking for the ld -export-dynamic flag" >&5
-echo $ECHO_N "checking for the ld -export-dynamic flag... $ECHO_C" >&6
+	echo $ac_n "checking for the ld -export-dynamic flag""... $ac_c" 1>&6
+echo "configure:4751: checking for the ld -export-dynamic flag" >&5
 	LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
-	cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+	cat > conftest.$ac_ext <<EOF
+#line 4754 "configure"
 #include "confdefs.h"
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
+int main() {
 int i;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+; return 0; }
+EOF
+if { (eval echo configure:4761: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
   found=yes
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-found=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  found=no
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 	LDFLAGS=$hold_ldflags
-	echo "$as_me:$LINENO: result: $found" >&5
-echo "${ECHO_T}$found" >&6
+	echo "$ac_t""$found" 1>&6
 	if test $found = yes; then
 		LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
 	fi
 
-	echo "$as_me:$LINENO: checking for compiler option to produce PIC" >&5
-echo $ECHO_N "checking for compiler option to produce PIC... $ECHO_C" >&6
+	echo $ac_n "checking for compiler option to produce PIC""... $ac_c" 1>&6
+echo "configure:4778: checking for compiler option to produce PIC" >&5
 				if test "$SGS" = "yes"; then
-		echo "$as_me:$LINENO: result: SVR4 Software Generation System interfaces: -KPIC -DPIC -G" >&5
-echo "${ECHO_T}SVR4 Software Generation System interfaces: -KPIC -DPIC -G" >&6
+		echo "$ac_t""SVR4 Software Generation System interfaces: -KPIC -DPIC -G" 1>&6
 		PICFLAGS="-KPIC -DPIC -G"
 	fi
 	if test "$AppleGCC" = "yes"; then
-		echo "$as_me:$LINENO: result: Darwin or Mac OS X - Assuming you want to make Mach-O bundles: -fno-common -bundle -flat_namespace -undefined suppress" >&5
-echo "${ECHO_T}Darwin or Mac OS X - Assuming you want to make Mach-O bundles: -fno-common -bundle -flat_namespace -undefined suppress" >&6
+		echo "$ac_t""Darwin or Mac OS X - Assuming you want to make Mach-O bundles: -fno-common -bundle -flat_namespace -undefined suppress" 1>&6
 		PICFLAGS="-fno-common -bundle -flat_namespace -undefined suppress"
 	fi
 								if test "$HPUX" = "yes"; then
-		echo "$as_me:$LINENO: result: HP-UX - Assuming HPUX C compiler cc: +z -r -q -n +ESfic" >&5
-echo "${ECHO_T}HP-UX - Assuming HPUX C compiler cc: +z -r -q -n +ESfic" >&6
+		echo "$ac_t""HP-UX - Assuming HPUX C compiler cc: +z -r -q -n +ESfic" 1>&6
 		PICFLAGS="+z -r -q -n +ESfic -c"
 		MOD_TARGET="hpux_shared"
 		LDFLAGS="${LDFLAGS} -Wl,-E"
 	fi
 	if test -z "$PICFLAGS"; then
-		if test "$ac_cv_c_compiler_gnu" = "yes"; then
-			echo "$as_me:$LINENO: result: gcc: -fPIC -DPIC -shared" >&5
-echo "${ECHO_T}gcc: -fPIC -DPIC -shared" >&6
+		if test "$ac_cv_prog_gcc" = "yes"; then
+			echo "$ac_t""gcc: -fPIC -DPIC -shared" 1>&6
 			PICFLAGS="-fPIC -DPIC -shared"
 			if test "$OSF" = "yes"; then
 				echo "OSF Discovered: Adding -Wl,-expect_unresolved -Wl,* to compiler flags"
 				PICFLAGS="$PICFLAGS -Wl,-expect_unresolved -Wl,*"
 			fi
 		else
-			echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-			{ { echo "$as_me:$LINENO: error: could not find a way to produce position independent code. Try ./configure  --disable-shared-modules" >&5
-echo "$as_me: error: could not find a way to produce position independent code. Try ./configure  --disable-shared-modules" >&2;}
-   { (exit 1); exit 1; }; }
+			echo "$ac_t""no" 1>&6
+			{ echo "configure: error: could not find a way to produce position independent code. Try ./configure  --disable-shared-modules" 1>&2; exit 1; }
 		fi
 	fi
-
+	
 
 	nlist_lib=""
-	echo "$as_me:$LINENO: checking for nlist" >&5
-echo $ECHO_N "checking for nlist... $ECHO_C" >&6
-if test "${ac_cv_func_nlist+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+	echo $ac_n "checking for nlist""... $ac_c" 1>&6
+echo "configure:4810: checking for nlist" >&5
+if eval "test \"`echo '$''{'ac_cv_func_nlist'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 4815 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char nlist (); below.  */
+    which can conflict with char nlist(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char nlist ();
-char (*f) ();
+    builtin and then its argument prototype would still apply.  */
+char nlist();
+
+int main() {
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_nlist) || defined (__stub___nlist)
 choke me
 #else
-f = nlist;
+nlist();
 #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_nlist=yes
+; return 0; }
+EOF
+if { (eval echo configure:4838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_nlist=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_nlist=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_nlist=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_nlist" >&5
-echo "${ECHO_T}$ac_cv_func_nlist" >&6
-if test $ac_cv_func_nlist = yes; then
+
+if eval "test \"`echo '$ac_cv_func_'nlist`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   :
 else
-  echo "$as_me:$LINENO: checking for nlist in -ldl" >&5
-echo $ECHO_N "checking for nlist in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_nlist+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for nlist in -ldl""... $ac_c" 1>&6
+echo "configure:4856: checking for nlist in -ldl" >&5
+ac_lib_var=`echo dl'_'nlist | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
+  ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 4864 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char nlist ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-nlist ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dl_nlist=yes
+    builtin and then its argument prototype would still apply.  */
+char nlist();
+
+int main() {
+nlist()
+; return 0; }
+EOF
+if { (eval echo configure:4875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_dl_nlist=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_nlist" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_nlist" >&6
-if test $ac_cv_lib_dl_nlist = yes; then
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   nlist_lib="-ldl"
 else
-  echo "$as_me:$LINENO: checking for nlist in -lelf" >&5
-echo $ECHO_N "checking for nlist in -lelf... $ECHO_C" >&6
-if test "${ac_cv_lib_elf_nlist+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for nlist in -lelf""... $ac_c" 1>&6
+echo "configure:4894: checking for nlist in -lelf" >&5
+ac_lib_var=`echo elf'_'nlist | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
+  ac_save_LIBS="$LIBS"
 LIBS="-lelf  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 4902 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char nlist ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-nlist ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_elf_nlist=yes
+    builtin and then its argument prototype would still apply.  */
+char nlist();
+
+int main() {
+nlist()
+; return 0; }
+EOF
+if { (eval echo configure:4913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_elf_nlist=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_elf_nlist" >&5
-echo "${ECHO_T}$ac_cv_lib_elf_nlist" >&6
-if test $ac_cv_lib_elf_nlist = yes; then
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   nlist_lib="-lelf"
 else
-  { echo "$as_me:$LINENO: WARNING: ** cannot locate nlist() **" >&5
-echo "$as_me: WARNING: ** cannot locate nlist() **" >&2;}
+  echo "$ac_t""no" 1>&6
+echo "configure: warning: ** cannot locate nlist() **" 1>&2
 fi
 
-
+		
 fi
 
-
+	
 fi
 
 
-                        	if test "${ac_cv_header_libelf_nlist_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for libelf/nlist.h" >&5
-echo $ECHO_N "checking for libelf/nlist.h... $ECHO_C" >&6
-if test "${ac_cv_header_libelf_nlist_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_libelf_nlist_h" >&5
-echo "${ECHO_T}$ac_cv_header_libelf_nlist_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking libelf/nlist.h usability" >&5
-echo $ECHO_N "checking libelf/nlist.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <libelf/nlist.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
+                        	ac_safe=`echo "libelf/nlist.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for libelf/nlist.h""... $ac_c" 1>&6
+echo "configure:4943: checking for libelf/nlist.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_header_compiler=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking libelf/nlist.h presence" >&5
-echo $ECHO_N "checking libelf/nlist.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 4948 "configure"
 #include "confdefs.h"
 #include <libelf/nlist.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:4953: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc in
-  yes:no )
-    { echo "$as_me:$LINENO: WARNING: libelf/nlist.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: libelf/nlist.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: libelf/nlist.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: libelf/nlist.h: proceeding with the preprocessor's result" >&2;};;
-  no:yes )
-    { echo "$as_me:$LINENO: WARNING: libelf/nlist.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: libelf/nlist.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: libelf/nlist.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: libelf/nlist.h: check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: libelf/nlist.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: libelf/nlist.h: proceeding with the preprocessor's result" >&2;};;
-esac
-echo "$as_me:$LINENO: checking for libelf/nlist.h" >&5
-echo $ECHO_N "checking for libelf/nlist.h... $ECHO_C" >&6
-if test "${ac_cv_header_libelf_nlist_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_libelf_nlist_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_libelf_nlist_h" >&5
-echo "${ECHO_T}$ac_cv_header_libelf_nlist_h" >&6
-
-fi
-if test $ac_cv_header_libelf_nlist_h = yes; then
-   nlist_h="libelf/nlist.h"
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
 fi
-
-
-	if test "${ac_cv_header_elf_nlist_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for elf/nlist.h" >&5
-echo $ECHO_N "checking for elf/nlist.h... $ECHO_C" >&6
-if test "${ac_cv_header_elf_nlist_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_elf_nlist_h" >&5
-echo "${ECHO_T}$ac_cv_header_elf_nlist_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking elf/nlist.h usability" >&5
-echo $ECHO_N "checking elf/nlist.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <elf/nlist.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+   nlist_h="libelf/nlist.h" 
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_header_compiler=no
+  echo "$ac_t""no" 1>&6
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
 
-# Is the header present?
-echo "$as_me:$LINENO: checking elf/nlist.h presence" >&5
-echo $ECHO_N "checking elf/nlist.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+	ac_safe=`echo "elf/nlist.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for elf/nlist.h""... $ac_c" 1>&6
+echo "configure:4976: checking for elf/nlist.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4981 "configure"
 #include "confdefs.h"
 #include <elf/nlist.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:4986: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc in
-  yes:no )
-    { echo "$as_me:$LINENO: WARNING: elf/nlist.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: elf/nlist.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: elf/nlist.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: elf/nlist.h: proceeding with the preprocessor's result" >&2;};;
-  no:yes )
-    { echo "$as_me:$LINENO: WARNING: elf/nlist.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: elf/nlist.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: elf/nlist.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: elf/nlist.h: check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: elf/nlist.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: elf/nlist.h: proceeding with the preprocessor's result" >&2;};;
-esac
-echo "$as_me:$LINENO: checking for elf/nlist.h" >&5
-echo $ECHO_N "checking for elf/nlist.h... $ECHO_C" >&6
-if test "${ac_cv_header_elf_nlist_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_elf_nlist_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_elf_nlist_h" >&5
-echo "${ECHO_T}$ac_cv_header_elf_nlist_h" >&6
-
-fi
-if test $ac_cv_header_elf_nlist_h = yes; then
-   nlist_h="elf/nlist.h"
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
 fi
-
-
-	if test "${ac_cv_header_nlist_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for nlist.h" >&5
-echo $ECHO_N "checking for nlist.h... $ECHO_C" >&6
-if test "${ac_cv_header_nlist_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_nlist_h" >&5
-echo "${ECHO_T}$ac_cv_header_nlist_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking nlist.h usability" >&5
-echo $ECHO_N "checking nlist.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <nlist.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+   nlist_h="elf/nlist.h" 
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_header_compiler=no
+  echo "$ac_t""no" 1>&6
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
 
-# Is the header present?
-echo "$as_me:$LINENO: checking nlist.h presence" >&5
-echo $ECHO_N "checking nlist.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+	ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for nlist.h""... $ac_c" 1>&6
+echo "configure:5009: checking for nlist.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 5014 "configure"
 #include "confdefs.h"
 #include <nlist.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:5019: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc in
-  yes:no )
-    { echo "$as_me:$LINENO: WARNING: nlist.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: nlist.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: nlist.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: nlist.h: proceeding with the preprocessor's result" >&2;};;
-  no:yes )
-    { echo "$as_me:$LINENO: WARNING: nlist.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: nlist.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: nlist.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: nlist.h: check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: nlist.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: nlist.h: proceeding with the preprocessor's result" >&2;};;
-esac
-echo "$as_me:$LINENO: checking for nlist.h" >&5
-echo $ECHO_N "checking for nlist.h... $ECHO_C" >&6
-if test "${ac_cv_header_nlist_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_nlist_h=$ac_header_preproc
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_nlist_h" >&5
-echo "${ECHO_T}$ac_cv_header_nlist_h" >&6
-
+rm -f conftest*
 fi
-if test $ac_cv_header_nlist_h = yes; then
-   nlist_h="nlist.h"
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+   nlist_h="nlist.h" 
+else
+  echo "$ac_t""no" 1>&6
 fi
 
-
 	if test x"$nlist_h" = "x"; then
-		{ echo "$as_me:$LINENO: WARNING: ** cannot locate an nlist.h **" >&5
-echo "$as_me: WARNING: ** cannot locate an nlist.h **" >&2;}
-		{ echo "$as_me:$LINENO: WARNING: ** cannot check for extra underscores prepended to symbol names - nlist.h is missing **" >&5
-echo "$as_me: WARNING: ** cannot check for extra underscores prepended to symbol names - nlist.h is missing **" >&2;}
-		{ echo "$as_me:$LINENO: WARNING: ** assuming no underscores prepend symbol names **" >&5
-echo "$as_me: WARNING: ** assuming no underscores prepend symbol names **" >&2;}
-		cat >>confdefs.h <<_ACEOF
+		echo "configure: warning: ** cannot locate an nlist.h **" 1>&2
+		echo "configure: warning: ** cannot check for extra underscores prepended to symbol names - nlist.h is missing **" 1>&2
+		echo "configure: warning: ** assuming no underscores prepend symbol names **" 1>&2
+		cat >> confdefs.h <<EOF
 #define SYMBOL_PREFIX ""
-_ACEOF
+EOF
 
 	else
-		echo "$as_me:$LINENO: checking for extra underscores prepended to symbol names" >&5
-echo $ECHO_N "checking for extra underscores prepended to symbol names... $ECHO_C" >&6
-		if test "${symbol_underscores+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+		echo $ac_n "checking for extra underscores prepended to symbol names""... $ac_c" 1>&6
+echo "configure:5050: checking for extra underscores prepended to symbol names" >&5
+		if eval "test \"`echo '$''{'symbol_underscores'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-
+  
 cat << EOF > conftest.c
 	#include <$nlist_h>
 	#include <stdio.h>
@@ -8258,84 +5096,65 @@
 EOF
 		$CC $CPPFLAGS $IRC_CFLAGS -o conftest conftest.c $nlist_lib >/dev/null 2>&1
 		symbol_underscores=`./conftest conftest`
-		echo "$as_me:$LINENO: result: $symbol_underscores" >&5
-echo "${ECHO_T}$symbol_underscores" >&6
+		echo "$ac_t""$symbol_underscores" 1>&6
 		$RM -f conftest conftest.c
-
+		
 fi
 
-		cat >>confdefs.h <<_ACEOF
+		cat >> confdefs.h <<EOF
 #define SYMBOL_PREFIX "${symbol_underscores}"
-_ACEOF
+EOF
 
 	fi
 fi
 
 
 if test "$ac_cv_efence" = "yes"; then
-
-echo "$as_me:$LINENO: checking for malloc in -lefence" >&5
-echo $ECHO_N "checking for malloc in -lefence... $ECHO_C" >&6
-if test "${ac_cv_lib_efence_malloc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+	echo $ac_n "checking for malloc in -lefence""... $ac_c" 1>&6
+echo "configure:5115: checking for malloc in -lefence" >&5
+ac_lib_var=`echo efence'_'malloc | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_check_lib_save_LIBS=$LIBS
+  ac_save_LIBS="$LIBS"
 LIBS="-lefence  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
+cat > conftest.$ac_ext <<EOF
+#line 5123 "configure"
 #include "confdefs.h"
-
 /* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 /* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char malloc ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-malloc ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_efence_malloc=yes
+    builtin and then its argument prototype would still apply.  */
+char malloc();
+
+int main() {
+malloc()
+; return 0; }
+EOF
+if { (eval echo configure:5134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_efence_malloc=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_efence_malloc" >&5
-echo "${ECHO_T}$ac_cv_lib_efence_malloc" >&6
-if test $ac_cv_lib_efence_malloc = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBEFENCE 1
-_ACEOF
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo efence | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
 
   LIBS="-lefence $LIBS"
 
+else
+  echo "$ac_t""no" 1>&6
 fi
 
 fi
@@ -8357,1059 +5176,422 @@
 
 
 
-ac_config_files="$ac_config_files Makefile iauth/Makefile iauth/source/Makefile servlink/Makefile contrib/Makefile src/Makefile adns/Makefile include/Makefile messages/Makefile messages/translations/Makefile modules/Makefile tools/Makefile doc/Makefile help/Makefile"
-cat >confcache <<\_ACEOF
+trap '' 1 2 15
+cat > confcache <<\EOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
+# scripts and configure runs.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
 #
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
 #
-# `ac_cv_env_foo' variables (set or unset) will be overriden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
+EOF
 # The following way of writing the cache mishandles newlines in values,
 # but we know of no workaround that is simple, portable, and efficient.
 # So, don't put newlines in cache variables' values.
 # Ultrix sh set writes to stderr and can't be redirected directly,
 # and sets the high bit in the cache file unless we assign to the vars.
-{
-  (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-        "s/'/'\\\\''/g;
-    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;;
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n \
-        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-} |
-  sed '
-     t clear
-     : clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if cmp -s $cache_file confcache; then :; else
+(set) 2>&1 |
+  case `(ac_space=' '; set | grep ac_space) 2>&1` in
+  *ac_space=\ *)
+    # `set' does not quote correctly, so add quotes (double-quote substitution
+    # turns \\\\ into \\, and sed turns \\ into \).
+    sed -n \
+      -e "s/'/'\\\\''/g" \
+      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+    ;;
+  *)
+    # `set' quotes correctly as required by POSIX, so do not add quotes.
+    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+    ;;
+  esac >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
   if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-    cat confcache >$cache_file
+    echo "updating cache $cache_file"
+    cat confcache > $cache_file
   else
     echo "not updating unwritable cache $cache_file"
   fi
 fi
 rm -f confcache
 
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
 test "x$prefix" = xNONE && prefix=$ac_default_prefix
 # Let make expand exec_prefix.
 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
 if test "x$srcdir" = x.; then
-  ac_vpsub='/^[ 	]*VPATH[ 	]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ 	]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ 	]*$//;
-}'
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
 fi
 
-DEFS=-DHAVE_CONFIG_H
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
 
+DEFS=-DHAVE_CONFIG_H
 
+# Without the "./", some shells look in PATH for config.status.
 : ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
 # Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
 # Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-
-# NLS nuisances.
-# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
-    { $as_unset LANG || test "${LANG+set}" != set; } ||
-      { LANG=C; export LANG; }
-(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
-    { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
-      { LC_ALL=C; export LC_ALL; }
-(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
-    { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
-      { LC_TIME=C; export LC_TIME; }
-(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
-    { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
-      { LC_CTYPE=C; export LC_CTYPE; }
-(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
-    { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
-      { LANGUAGE=C; export LANGUAGE; }
-(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
-    { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
-      { LC_COLLATE=C; export LC_COLLATE; }
-(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
-    { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
-      { LC_NUMERIC=C; export LC_NUMERIC; }
-(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
-    { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
-      { LC_MESSAGES=C; export LC_MESSAGES; }
-
-
-# Name of the executable.
-as_me=`(basename "$0") 2>/dev/null ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conftest.sh
-  echo  "exit 0"   >>conftest.sh
-  chmod +x conftest.sh
-  if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conftest.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.53.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number, then exit
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-                   instantiate the configuration file FILE
-  --header=FILE[:TEMPLATE]
-                   instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.53,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
-_ACEOF
+# configure, is in ./config.log if it exists.
 
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
 do
-  case $1 in
-  --*=*)
-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-    shift
-    set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
-    shift
-    ;;
-  -*);;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_need_defaults=false;;
-  esac
-
-  case $1 in
-  # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
+  case "\$ac_option" in
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
-    exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    shift
-    CONFIG_FILES="$CONFIG_FILES $1"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $1"
-    ac_need_defaults=false;;
-
-  # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1" ;;
-
-  esac
-  shift
-done
-
-_ACEOF
-
-
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-  "iauth/Makefile" ) CONFIG_FILES="$CONFIG_FILES iauth/Makefile" ;;
-  "iauth/source/Makefile" ) CONFIG_FILES="$CONFIG_FILES iauth/source/Makefile" ;;
-  "servlink/Makefile" ) CONFIG_FILES="$CONFIG_FILES servlink/Makefile" ;;
-  "contrib/Makefile" ) CONFIG_FILES="$CONFIG_FILES contrib/Makefile" ;;
-  "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
-  "adns/Makefile" ) CONFIG_FILES="$CONFIG_FILES adns/Makefile" ;;
-  "include/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
-  "messages/Makefile" ) CONFIG_FILES="$CONFIG_FILES messages/Makefile" ;;
-  "messages/translations/Makefile" ) CONFIG_FILES="$CONFIG_FILES messages/translations/Makefile" ;;
-  "modules/Makefile" ) CONFIG_FILES="$CONFIG_FILES modules/Makefile" ;;
-  "tools/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
-  "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
-  "help/Makefile" ) CONFIG_FILES="$CONFIG_FILES help/Makefile" ;;
-  "include/setup.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/setup.h" ;;
-  "servlink/setup.h" ) CONFIG_HEADERS="$CONFIG_HEADERS servlink/setup.h" ;;
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
   esac
 done
 
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-fi
-
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-: ${TMPDIR=/tmp}
-{
-  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=$TMPDIR/cs$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
-   { (exit 1); exit 1; }
-}
-
-_ACEOF
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
 
-cat >>$CONFIG_STATUS <<_ACEOF
+trap 'rm -fr `echo "\
+ Makefile                       \
+ iauth/Makefile                 \
+ iauth/source/Makefile          \
+ servlink/Makefile              \
+ contrib/Makefile               \
+ src/Makefile                   \
+ adns/Makefile                  \
+ include/Makefile               \
+ messages/Makefile              \
+ messages/translations/Makefile \
+ modules/Makefile               \
+ tools/Makefile                 \
+ doc/Makefile                   \
+ help/Makefile                  \
+ include/setup.h servlink/setup.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
 
-#
-# CONFIG_FILES section.
-#
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@CC@%$CC%g
+s%@MKDEP@%$MKDEP%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@RM@%$RM%g
+s%@CP@%$CP%g
+s%@MV@%$MV%g
+s%@LN@%$LN%g
+s%@SED@%$SED%g
+s%@AR@%$AR%g
+s%@LD@%$LD%g
+s%@YACC@%$YACC%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@LEX@%$LEX%g
+s%@LEXLIB@%$LEXLIB%g
+s%@RANLIB@%$RANLIB%g
+s%@CPP@%$CPP%g
+s%@SNPRINTF_C@%$SNPRINTF_C%g
+s%@SSL_CLIENT_C@%$SSL_CLIENT_C%g
+s%@M_STARTTLS_C@%$M_STARTTLS_C%g
+s%@SELECT_SRC@%$SELECT_SRC%g
+s%@PICFLAGS@%$PICFLAGS%g
+s%@MODULES_DEFINE@%$MODULES_DEFINE%g
+s%@MODULES_LIBS@%$MODULES_LIBS%g
+s%@MOD_TARGET@%$MOD_TARGET%g
+s%@SSL_INCLUDES@%$SSL_INCLUDES%g
+s%@SSL_LIBS@%$SSL_LIBS%g
+s%@INCDEP@%$INCDEP%g
+s%@SUBDIR_MESSAGES@%$SUBDIR_MESSAGES%g
+s%@MSGFMT@%$MSGFMT%g
+s%@IRC_CFLAGS@%$IRC_CFLAGS%g
+s%@SEDOBJ@%$SEDOBJ%g
 
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@PACKAGE@,$PACKAGE,;t t
-s,@VERSION@,$VERSION,;t t
-s,@CC@,$CC,;t t
-s,@CFLAGS@,$CFLAGS,;t t
-s,@LDFLAGS@,$LDFLAGS,;t t
-s,@CPPFLAGS@,$CPPFLAGS,;t t
-s,@ac_ct_CC@,$ac_ct_CC,;t t
-s,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@MKDEP@,$MKDEP,;t t
-s,@SET_MAKE@,$SET_MAKE,;t t
-s,@RM@,$RM,;t t
-s,@CP@,$CP,;t t
-s,@MV@,$MV,;t t
-s,@LN@,$LN,;t t
-s,@SED@,$SED,;t t
-s,@AR@,$AR,;t t
-s,@LD@,$LD,;t t
-s,@YACC@,$YACC,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@LEX@,$LEX,;t t
-s,@LEXLIB@,$LEXLIB,;t t
-s,@LEX_OUTPUT_ROOT@,$LEX_OUTPUT_ROOT,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@CPP@,$CPP,;t t
-s,@SNPRINTF_C@,$SNPRINTF_C,;t t
-s,@SELECT_SRC@,$SELECT_SRC,;t t
-s,@PICFLAGS@,$PICFLAGS,;t t
-s,@MODULES_DEFINE@,$MODULES_DEFINE,;t t
-s,@MODULES_LIBS@,$MODULES_LIBS,;t t
-s,@MOD_TARGET@,$MOD_TARGET,;t t
-s,@SSL_INCLUDES@,$SSL_INCLUDES,;t t
-s,@SSL_LIBS@,$SSL_LIBS,;t t
-s,@INCDEP@,$INCDEP,;t t
-s,@SUBDIR_MESSAGES@,$SUBDIR_MESSAGES,;t t
-s,@MSGFMT@,$MSGFMT,;t t
-s,@IRC_CFLAGS@,$IRC_CFLAGS,;t t
-s,@SEDOBJ@,$SEDOBJ,;t t
 CEOF
+EOF
 
-_ACEOF
+cat >> $CONFIG_STATUS <<\EOF
 
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+  if test $ac_beg -gt 1; then
+    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+  else
+    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+  fi
+  if test ! -s conftest.s$ac_file; then
+    ac_more_lines=false
+    rm -f conftest.s$ac_file
+  else
+    if test -z "$ac_sed_cmds"; then
+      ac_sed_cmds="sed -f conftest.s$ac_file"
     else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-  	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-  	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
+      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
     fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
+    ac_file=`expr $ac_file + 1`
+    ac_beg=$ac_end
+    ac_end=`expr $ac_end + $ac_max_sed_cmds`
   fi
-fi # test -n "$CONFIG_FILES"
+done
+if test -z "$ac_sed_cmds"; then
+  ac_sed_cmds=cat
+fi
+EOF
 
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-        cat >$tmp/stdin
-        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
+cat >> $CONFIG_STATUS <<EOF
 
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$ac_file" : 'X\(//\)[^/]' \| \
-         X"$ac_file" : 'X\(//\)$' \| \
-         X"$ac_file" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { case "$ac_dir" in
-  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
-  *)                      as_incr_dir=.;;
-esac
-as_dummy="$ac_dir"
-for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
-  case $as_mkdir_dir in
-    # Skip DOS drivespec
-    ?:) as_incr_dir=$as_mkdir_dir ;;
-    *)
-      as_incr_dir=$as_incr_dir/$as_mkdir_dir
-      test -d "$as_incr_dir" ||
-        mkdir "$as_incr_dir" ||
-	{ { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }
-    ;;
+CONFIG_FILES=\${CONFIG_FILES-"\
+ Makefile                       \
+ iauth/Makefile                 \
+ iauth/source/Makefile          \
+ servlink/Makefile              \
+ contrib/Makefile               \
+ src/Makefile                   \
+ adns/Makefile                  \
+ include/Makefile               \
+ messages/Makefile              \
+ messages/translations/Makefile \
+ modules/Makefile               \
+ tools/Makefile                 \
+ doc/Makefile                   \
+ help/Makefile                  \
+"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
   esac
-done; }
 
-  ac_builddir=.
+  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
 
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
 
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
   *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
-
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
   esac
 
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-                                     sed 's,.*/,,'` by configure."
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-         # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-         echo $f;;
-      *) # Relative
-         if test -f "$f"; then
-           # Build tree
-           echo $f
-         elif test -f "$srcdir/$f"; then
-           # Source tree
-           echo $srcdir/$f
-         else
-           # /dev/null tree
-           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-         fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
+  case "$ac_given_INSTALL" in
+  [/$]*) INSTALL="$ac_given_INSTALL" ;;
+  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+  esac
 
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
 
-#
-# CONFIG_HEADER section.
-#
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
 
 # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
 # NAME is the cpp macro being defined and VALUE is the value it is being given.
 #
 # ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
-ac_dB='[ 	].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
-ac_uB='$,\1#\2define\3'
+ac_dA='s%^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
+ac_dB='\([ 	][ 	]*\)[^ 	]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uB='\([ 	]\)%\1#\2define\3'
 ac_uC=' '
-ac_uD=',;t'
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
 
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+if test "${CONFIG_HEADERS+set}" != set; then
+EOF
+cat >> $CONFIG_STATUS <<EOF
+  CONFIG_HEADERS="include/setup.h servlink/setup.h"
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+fi
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-        cat >$tmp/stdin
-        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
   esac
 
-  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
+  echo creating $ac_file
 
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-         # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-         echo $f;;
-      *) # Relative
-         if test -f "$f"; then
-           # Build tree
-           echo $f
-         elif test -f "$srcdir/$f"; then
-           # Source tree
-           echo $srcdir/$f
-         else
-           # /dev/null tree
-           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-         fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-  # Remove the trailing spaces.
-  sed 's/[ 	]*$//' $ac_file_inputs >$tmp/in
+  rm -f conftest.frag conftest.in conftest.out
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  cat $ac_file_inputs > conftest.in
 
-_ACEOF
+EOF
 
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h.  The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status.  Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-# Using a here document instead of a string reduces the quoting nightmare.
-# Putting comments in sed scripts is not portable.
-#
-# `end' is used to avoid that the second main sed command (meant for
-# 0-ary CPP macros) applies to n-ary macro definitions.
-# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\_ACEOF
-s/[\\&,]/\\&/g
-s,[\\$`],\\&,g
-t clear
-: clear
-s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	(][^ 	(]*\)\(([^)]*)\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
-t end
-s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	][^ 	]*\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-: end
-_ACEOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless.  Nevertheless, we may not want to
-# sort them, since we want the *last* AC-DEFINE to be honored.
-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f confdef2sed.sed
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h.  And first:
+# Protect against being on the right side of a sed subst in config.status.
+# Protect against being in an unquoted here document in config.status.
+rm -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+rm -f conftest.hdr
 
 # This sed command replaces #undef with comments.  This is necessary, for
 # example, in the case of _POSIX_SOURCE, which is predefined and required
 # on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\_ACEOF
-s,^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-_ACEOF
+cat >> conftest.vals <<\EOF
+s%^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
 
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo '  if egrep "^[ 	]*#[ 	]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo '  :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
-do
-  # Write a limited-size here document to $tmp/defines.sed.
-  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#define' lines.
-  echo '/^[ 	]*#[ 	]*define/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
-  echo 'CEOF
-  sed -f $tmp/defines.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
-  rm -f conftest.defines
-  mv conftest.tail conftest.defines
-done
-rm -f conftest.defines
-echo '  fi # egrep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
 
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
 rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
+while :
 do
-  # Write a limited-size here document to $tmp/undefs.sed.
-  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#undef'
-  echo '/^[ 	]*#[ 	]*undef/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+  ac_lines=`grep -c . conftest.vals`
+  # grep -c gives empty output for an empty file on some AIX systems.
+  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+  # Write a limited-size here document to conftest.frag.
+  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
   echo 'CEOF
-  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
-  rm -f conftest.undefs
-  mv conftest.tail conftest.undefs
+  sed -f conftest.frag conftest.in > conftest.out
+  rm -f conftest.in
+  mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+  rm -f conftest.vals
+  mv conftest.tail conftest.vals
 done
-rm -f conftest.undefs
+rm -f conftest.vals
 
-cat >>$CONFIG_STATUS <<\_ACEOF
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    echo "/* Generated by configure.  */" >$tmp/config.h
+cat >> $CONFIG_STATUS <<\EOF
+  rm -f conftest.frag conftest.h
+  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
+  cat conftest.in >> conftest.h
+  rm -f conftest.in
+  if cmp -s $ac_file conftest.h 2>/dev/null; then
+    echo "$ac_file is unchanged"
+    rm -f conftest.h
   else
-    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
-  fi
-  cat $tmp/in >>$tmp/config.h
-  rm -f $tmp/in
-  if test x"$ac_file" != x-; then
-    if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
-      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$ac_file" : 'X\(//\)[^/]' \| \
-         X"$ac_file" : 'X\(//\)$' \| \
-         X"$ac_file" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-      { case "$ac_dir" in
-  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
-  *)                      as_incr_dir=.;;
-esac
-as_dummy="$ac_dir"
-for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
-  case $as_mkdir_dir in
-    # Skip DOS drivespec
-    ?:) as_incr_dir=$as_mkdir_dir ;;
-    *)
-      as_incr_dir=$as_incr_dir/$as_mkdir_dir
-      test -d "$as_incr_dir" ||
-        mkdir "$as_incr_dir" ||
-	{ { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }
-    ;;
-  esac
-done; }
-
-      rm -f $ac_file
-      mv $tmp/config.h $ac_file
+    # Remove last slash and all that follows it.  Not all systems have dirname.
+      ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+      if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+      # The file is in a subdirectory.
+      test ! -d "$ac_dir" && mkdir "$ac_dir"
     fi
-  else
-    cat $tmp/config.h
-    rm -f $tmp/config.h
+    rm -f $ac_file
+    mv conftest.h $ac_file
   fi
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
+fi; done
 
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
+EOF
+cat >> $CONFIG_STATUS <<EOF
 
+EOF
+cat >> $CONFIG_STATUS <<\EOF
 
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
-fi
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
 
 
 if test "X${cf_openssl_ciphers}" != "X"; then
@@ -9426,5 +5608,4 @@
         echo ""
 fi
 
-echo "$as_me:$LINENO: result: \"Server is configured with NICKLEN=$ac_cv_nicklen and MAX_CLIENTS=$ac_cv_maxclients\"" >&5
-echo "${ECHO_T}\"Server is configured with NICKLEN=$ac_cv_nicklen and MAX_CLIENTS=$ac_cv_maxclients\"" >&6
+echo "$ac_t"""Server is configured with NICKLEN=$ac_cv_nicklen and MAX_CLIENTS=$ac_cv_maxclients"" 1>&6
diff -uNrd ircd-hybrid-7.0/contrib/m_map.c anynet-3.0/contrib/m_map.c
--- ircd-hybrid-7.0/contrib/m_map.c	Fri May 24 19:48:34 2002
+++ anynet-3.0/contrib/m_map.c	Wed Dec 31 19:00:00 1969
@@ -1,156 +0,0 @@
-/*
- *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
- *  m_map.c: Sends an Undernet compatible map to a user.
- *
- *  Copyright (C) 2002 by the past and present ircd coders, and others.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
- *  USA
- *
- *  $Id: m_map.c,v 1.12 2002/05/24 23:48:34 androsyn Exp $
- */
-
-#include "stdinc.h"
-#include "client.h"
-#include "modules.h"
-#include "handlers.h"
-#include "numeric.h"
-#include "send.h"
-#include "s_conf.h"
-
-#define USER_COL       50 /* display | Users: %d at col 50 */
-
-static void m_map(struct Client *client_p, struct Client *source_p,
-                    int parc, char *parv[]);
-static void mo_map(struct Client *client_p, struct Client *source_p,
-                    int parc, char *parv[]);
-static void dump_map(struct Client *client_p,struct Client *root, char *pbuf);
-
-struct Message map_msgtab = {
-  "MAP", 0, 0, 0, 0, MFLG_SLOW, 0,
-  {m_unregistered, m_map, m_ignore, mo_map}
-};
-
-#ifndef STATIC_MODULES
-void _modinit(void)
-{
-  mod_add_cmd(&map_msgtab);
-}
-
-void _moddeinit(void)
-{
-  mod_del_cmd(&map_msgtab);
-}
-
-const char *_version = "$Revision: 1.12 $";
-#endif
-
-static char buf[BUFSIZE];
-
-/* m_map
-**	parv[0] = sender prefix
-*/
-static void m_map(struct Client *client_p, struct Client *source_p,
-                    int parc, char *parv[])
-{
-  if (!ConfigServerHide.flatten_links)
-  {
-    dump_map(client_p,&me,buf);
-    sendto_one(client_p, form_str(RPL_MAPEND), me.name, client_p->name);
-    return;
-  }
-
-  m_not_oper(client_p,source_p,parc,parv);
-  return;
-}
-
-/*
-** mo_map
-**      parv[0] = sender prefix
-*/
-static void mo_map(struct Client *client_p, struct Client *source_p,
-                    int parc, char *parv[])
-{
-  dump_map(client_p,&me,buf);
-  sendto_one(client_p, form_str(RPL_MAPEND), me.name, client_p->name);
-}
-
-/*
-** dump_map
-**   dumps server map, called recursively.
-*/
-static void dump_map(struct Client *client_p,struct Client *root_p, char *pbuf)
-{
-  int cnt = 0, i = 0, len;
-  int users = 0;
-  struct Client *server_p,*user_p;
-        
-  *pbuf= '\0';
-       
-  strncat(pbuf,root_p->name,BUFSIZE - ((size_t) pbuf - (size_t) buf));
-  len = strlen(buf);
-  buf[len] = ' ';
-	
-  if (len < USER_COL)
-  {
-     for (i = len+1; i < USER_COL; i++)
-     {
-       buf[i] = '-';
-     }
-  }
-	
-  /* FIXME: add serv->usercnt */
-  for( user_p = root_p->serv->users; user_p; user_p = user_p->lnext )
-    users++;
-        
-  snprintf(buf + USER_COL, BUFSIZE - USER_COL,
-           " | Users: %5d (%4.1f%%)", users,
-           100 * (float) users / (float) Count.total);
-        
-  sendto_one(client_p, form_str(RPL_MAP),me.name,client_p->name,buf);
-        
-  if ((server_p = root_p->serv->servers))
-  {
-    for (; server_p; server_p = server_p->lnext)
-    {
-      cnt++;
-    }
-    
-    if (cnt)
-    {
-      if (pbuf > buf + 3)
-      {
-        pbuf[-2] = ' ';
-        if (pbuf[-3] == '`')
-          pbuf[-3] = ' ';
-      }
-    }
-  }
-  for (i = 1,server_p = root_p->serv->servers; server_p; server_p=server_p->lnext)
-  {
-    *pbuf = ' ';
-    if (i < cnt)
-      *(pbuf + 1) = '|';
-    else
-      *(pbuf + 1) = '`';
-      
-    *(pbuf + 2) = '-';
-    *(pbuf + 3) = ' ';
-    dump_map(client_p,server_p,pbuf+4);
- 
-    i++;
-   }
-}
-
diff -uNrd ircd-hybrid-7.0/contrib/m_tburst.c anynet-3.0/contrib/m_tburst.c
--- ircd-hybrid-7.0/contrib/m_tburst.c	Wed Dec 18 00:33:29 2002
+++ anynet-3.0/contrib/m_tburst.c	Wed Dec 31 19:00:00 1969
@@ -1,162 +0,0 @@
-/*  contrib/m_tburst.c
- *  Copyright (C) 2002 Hybrid Development Team
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are
- *  met:
- *
- *  1.Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  2.Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  3.The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- *  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- *  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *  DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
- *  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- *  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- *  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- *  IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- *  POSSIBILITY OF SUCH DAMAGE.
- *
- *  $Id: m_tburst.c,v 1.12 2002/12/18 05:33:29 db Exp $
- */
-
-#include "stdinc.h"
-#include "handlers.h"
-#include "client.h"
-#include "common.h"
-#include "ircd.h"
-#include "send.h"
-#include "msg.h"
-#include "modules.h"
-#include "hook.h"
-#include "hash.h"
-#include "s_serv.h"
-#include "s_conf.h"
-
-
-/* TBURST_PROPAGATE
- *
- * If this is defined, when we receive a TBURST thats successful
- * (ie: our topic changes), the TBURST will be propagated to other
- * servers that support TBURST
- */
-#define TBURST_PROPAGATE
-
-
-
-static void ms_tburst(struct Client *, struct Client *, int, char **);
-static void set_topic(struct Client *, struct Channel *, 
-		      time_t, char *, char *);
-static void set_tburst_capab();
-static void unset_tburst_capab();
-int send_tburst(struct hook_burst_channel *);
-
-struct Message tburst_msgtab = {
-  "TBURST", 0, 0, 6, 0, MFLG_SLOW, 0,
-  {m_ignore, m_ignore, ms_tburst, m_ignore}
-};
-
-#ifndef STATIC_MODULES
-void
-_modinit(void)
-{
-  mod_add_cmd(&tburst_msgtab);
-  hook_add_hook("burst_channel", (hookfn *)send_tburst);
-  set_tburst_capab();
-}
-
-void
-_moddeinit(void)
-{
-  mod_del_cmd(&tburst_msgtab);
-  hook_del_hook("burst_channel", (hookfn *)send_tburst);
-  unset_tburst_capab();
-}
-
-const char *_version = "$Revision: 1.12 $";
-#endif
-
-/* ms_tburst()
- * 
- *      parv[0] = sender prefix
- *      parv[1] = channel timestamp
- *      parv[2] = channel
- *      parv[3] = topic timestamp
- *      parv[4] = topic setter
- *      parv[5] = topic
- */
-static void ms_tburst(struct Client *client_p, struct Client *source_p,
-                    int parc, char *parv[])
-{
-  struct Channel *chptr;
-  time_t newchannelts;
-  time_t newtopicts;
-
-  newchannelts = atol(parv[1]);
-  newtopicts = atol(parv[3]);
-
-  if((chptr = hash_find_channel(parv[2])))
-  {
-    if(chptr->channelts < newchannelts)
-      return;
-
-    else if(chptr->channelts == newchannelts)
-    {
-      if(chptr->topic == NULL || (chptr->topic_time > newtopicts))
-	set_topic(source_p, chptr, newtopicts, parv[4], parv[5]);
-      else
-	return;
-    }
-
-    else
-      set_topic(source_p, chptr, newtopicts, parv[4], parv[5]);
-  }
-}
-
-static void set_topic(struct Client *source_p, struct Channel *chptr, 
-		      time_t newtopicts, char *topicwho, char *topic)
-{
-  set_channel_topic(chptr, topic, topicwho, newtopicts);
-
-  sendto_channel_local(ALL_MEMBERS, chptr, ":%s TOPIC %s :%s",
-		       ConfigServerHide.hide_servers ? me.name : me.name,
-		       chptr->chname, chptr->topic == NULL ? "" : chptr->topic);
-
-#ifdef TBURST_PROPAGATE
-  sendto_server(source_p, NULL, chptr, CAP_TBURST, NOCAPS, NOFLAGS,
-		":%s TBURST %ld %s %ld %s :%s",
-		me.name, chptr->channelts, chptr->chname,
-		chptr->topic_time, 
-                chptr->topic_info == NULL ? "" : chptr->topic_info,
-                chptr->topic == NULL ? "" : chptr->topic);
-#endif
-}
-
-static void set_tburst_capab()
-{
-  default_server_capabs |= CAP_TBURST;
-}
-
-static void unset_tburst_capab()
-{
-  default_server_capabs &= ~CAP_TBURST;
-}
-
-int send_tburst(struct hook_burst_channel *data)
-{
-  if(data->chptr->topic != NULL && IsCapable(data->client, CAP_TBURST))
-    sendto_one(data->client, ":%s TBURST %ld %s %ld %s :%s",
-               me.name, data->chptr->channelts, data->chptr->chname,
-	       data->chptr->topic_time, data->chptr->topic_info, 
-	       data->chptr->topic);
-
-  return 0;
-}
diff -uNrd ircd-hybrid-7.0/doc/convertconf-example.conf anynet-3.0/doc/convertconf-example.conf
--- ircd-hybrid-7.0/doc/convertconf-example.conf	Sat May 31 03:30:25 2003
+++ anynet-3.0/doc/convertconf-example.conf	Wed Feb  4 13:11:39 2004
@@ -17,17 +17,23 @@
 };
 
 /* shared {}: users that are allowed to remote kline (OLD U:) */
+/*
+ * shared blocks also define non-hub servers that are allowed to set
+ * G-lines.  Hubs are always allowed to set G-lines because they need
+ * to be able to propogate them.  G-lines from non-shared leaves are
+ * dropped, and a warning is issued.
+ */
 shared {
 	/* name: the server the user must be on to set klines.  If this is not
 	 * specified, the user will be allowed to kline from all servers.
 	 */
-	name = "irc2.some.server";
+	name = "services.anynet.org";
 
 	/* user: the user@host mask that is allowed to set klines.  If this is
 	 * not specified, all users on the server above will be allowed to set
 	 * a remote kline.
 	 */
-	user = "oper@my.host.is.spoofed";
+	#user = "na@for.glines";
 };
 
 /* kill {}: users that are not allowed to connect (OLD K:)
@@ -52,19 +58,19 @@
 };
 
 /* resv {}: nicks and channels users may not use/join (OLD Q:) */
-resv {
-        /* reason: the reason for the proceeding resv's */
-        reason = "There are no services on this network";
-
-	/* resv: the nicks and channels users may not join/use */
-	nick = "nickserv";
-	nick = "chanserv";
-	channel = "#services";
-
-	/* resv: wildcard masks are also supported in nicks only */
-	reason = "Clone bots";
-	nick = "clone*";
-};
+#resv {
+#        /* reason: the reason for the proceeding resv's */
+#        reason = "There are no services on this network";
+#
+#	/* resv: the nicks and channels users may not join/use */
+#	nick = "nickserv";
+#	nick = "chanserv";
+#	channel = "#services";
+#
+#	/* resv: wildcard masks are also supported in nicks only */
+#	reason = "Clone bots";
+#	nick = "clone*";
+#};
 
 /* gecos {}:  The X: replacement, used for banning users based on their
  * "realname".  The action may be either:
@@ -87,7 +93,7 @@
 gecos {
 	name = "*http*";
 	reason = "Spambot";
-	action = silent;
+	action = warn;
 };
 
 /* The channel block contains options pertaining to channels */
@@ -115,7 +121,7 @@
 	 * or deopped by sending mode changes.  This can cause a flood and
 	 * could potentially be abused.
 	 */
-	use_anonops = no;
+	use_anonops = yes;
 
         /* vchans: permit virtual channels, multiple copies of the same
 	 * channel name.  read doc/vchans.txt for more details
@@ -125,7 +131,7 @@
         use_vchans = yes;
 
 	/* vchans oper only: only allow opers to create vchans via /cjoin */
-	vchans_oper_only = yes;
+	vchans_oper_only = no;
 
 	/* knock: Allows users to request an invite to a channel that
 	 * is locked somehow (+ikl).  If the channel is +p or you are banned
@@ -150,7 +156,7 @@
         quiet_on_ban = yes;
 
         /* max bans: maximum number of +b/e/I modes in a channel */
-        max_bans = 25;
+        max_bans = 30;
 
         /* splitcode: the ircd will check every 60s as to whether splitmode
 	 * should be disabled or not, so there may be a delay between a
@@ -181,7 +187,6 @@
 	oper_pass_resv = yes;
 };
 
-
 /* The serverhide block contains the options regarding serverhiding */
 serverhide {
 	/* flatten links: this option will show all servers in /links appear
@@ -213,7 +218,7 @@
 	disable_remote_commands = no;
 
 	/* disable local channels: prevent users from joining &channels.
-	 * This is extreme, but its still a flaw in serverhide.  It will
+	 * This is extreme, but it is still a flaw in serverhide.  It will
 	 * however remove far more from users than it will give back in
 	 * security.
 	 */
@@ -244,7 +249,7 @@
 	 * without a '.' in them.  this will add one to the end.  only needed
 	 * for older servers.
 	 */
-        dot_in_ip6_addr = yes;
+        dot_in_ip6_addr = no;
         
         /* min nonwildcard: the minimum non wildcard characters in k/d/g lines
 	 * placed via the server.  klines hand placed are exempt from limits.
@@ -265,16 +270,16 @@
         /* anti spam time: the minimum time a user must be connected before
 	 * custom quit messages are allowed.
 	 */
-        anti_spam_exit_message_time = 5 minutes;
+        anti_spam_exit_message_time = 1 minute;
 
 	/* ts delta: the time delta allowed between server clocks before
 	 * a warning is given, or before the link is dropped.  all servers
 	 * should run ntpdate/rdate to keep clocks in sync
 	 */
-	ts_warn_delta = 30 seconds;
-	ts_max_delta = 5 minutes;
+	ts_warn_delta = 15 seconds;
+	ts_max_delta = 90 seconds;
 
-	/* client exit: prepend a users quit message with "Client exit: " */
+	/* client exit: add quotes around user-supplied quote messages */
 	client_exit = yes;
 
 	/* kline reason: show the user the reason why they are k/d/glined 
@@ -297,7 +302,7 @@
 	warn_no_nline = yes;
 
 	/* stats o oper only: make stats o (opers) oper only */
-	stats_o_oper_only=yes;
+	stats_o_oper_only=no;
 
 	/* stats P oper only: make stats P (ports) oper only */
 	stats_P_oper_only=no;
@@ -314,7 +319,7 @@
 	 *     masked: show users first matching auth block
 	 *     no:     show users all auth blocks.
 	 */
-	stats_k_oper_only=masked;
+	stats_k_oper_only=no;
                                     
 	/* caller id wait: time between notifying a +g user that somebody
 	 * is messaging them.
@@ -329,7 +334,7 @@
 	/* pace wait: time between more intensive commands
 	 * (ADMIN, INFO, LIST, LUSERS, MOTD, STATS, VERSION)
 	 */
-	pace_wait = 10 seconds;
+	pace_wait = 2 seconds;
 
 	/* short motd: send clients a notice telling them to read the motd
 	 * instead of forcing a motd to clients who may simply ignore it.
@@ -344,12 +349,14 @@
 	/* no oper flood: increase flood limits for opers. */
 	no_oper_flood = yes;
 
+	/* true no oper flood: completely eliminate flood limits for opers
+         * and for clients with can_flood = yes in their auth {} blocks
+	 */
+	true_no_oper_flood = yes;
+
 	/* glines: enable glines, network wide temp klines */
 	glines = yes;
 
-	/* gline time: the amount of time a gline will remain before exiring */
-	gline_time = 1 day;
-
 	/* idletime: the maximum amount of time a user may idle before
 	 * they are disconnected
 	 */
@@ -360,7 +367,7 @@
 	 */
 	maximum_links = 1;
 
-	/* REMOVE ME.  The following line checks youve been reading. */
+	/* REMOVE ME.  The following line checks you've been reading. */
 	havent_read_conf = 1;
 	
 	/* logfiles: the logfiles to use for user connects, /oper uses,
@@ -371,21 +378,30 @@
 	fname_foperlog = "logs/foperlog";
 
 	/* max targets: the maximum amount of targets in a single 
-	 * PRIVMSG/NOTICE.  set to 0 for unlimited targets.
+	 * PRIVMSG/NOTICE.  set to 999 NOT 0 for unlimited.
 	 */
-	max_targets = 4;
+	max_targets = 8;
 
 	/* client flood: maximum number of lines in a clients queue before
 	 * they are dropped for flooding.
 	 */
 	client_flood = 20;
 
+        /* use help: whether an improved help system per command is available
+         * to users.  If this is disabled, users will just be shown a command
+         * list.
+         *
+         * this is non-caching and the help file will be read per command
+         * which should be an adverse consideration for large servers.
+         */
+        use_help = yes;
+
 	/* message locale: the default message locale if gettext() is enabled
 	 * and working.
 	 * Use "custom" for the (in)famous Hybrid custom messages.
 	 * Use "standard" for the compiled in defaults.
 	 */
-	message_locale = "custom";
+	message_locale = "standard";
 
 	/* usermodes configurable: a list of usermodes for the options below
 	 *
@@ -404,28 +420,29 @@
 	 * +u - unauth     - See unauthorized client notices
 	 * +w - wallop     - See server generated WALLOPS
 	 * +x - external   - See remote server connection and split notices
-	 * +y - spy        - See LINKS, STATS, TRACE notices etc.
+	 * +y - spy        - See LINKS, STATS, TRACE notices etc. (if enabled)
 	 * +z - operwall   - See oper generated WALLOPS
 	 */
 	 
 	/* oper only umodes: usermodes only opers may set */
-	oper_only_umodes = bots, cconn, debug, full, skill, nchange, 
-                     rej, spy, external, operwall, locops, unauth;
+	oper_only_umodes = bots, cconn, debug, full, nchange, 
+                     rej, spy, operwall, locops, unauth;
 
 	/* oper umodes: default usermodes opers get when they /oper */
-	oper_umodes = locops, servnotice, operwall, wallop;
+	oper_umodes = full, skill, locops, servnotice, operwall, wallop,
+		external;
 
 	/* servlink path: path to 'servlink' program used by ircd to handle
 	 * encrypted/compressed server <-> server links.
 	 *
 	 * only define if servlink is not in same directory as ircd itself.
 	 */
-	#servlink_path = "/usr/local/ircd/bin/servlink";
+	#servlink_path = "bin/servlink";
 
 	/* default cipher: default cipher to use for cryptlink when none is
 	 * specified in connect block.
 	 */
-	#default_cipher_preference = "BF/128";
+	#default_cipher_preference = "BF/168";
 
 	/* use egd: if your system does not have *random devices yet you
 	 * want to use OpenSSL and encrypted links, enable this.  Beware -
@@ -452,15 +469,15 @@
 	 * Offers protection against flooders who reconnect quickly.  
 	 * Set to 0 to disable.
 	 */
-	throttle_time = 10;
+	throttle_time = 0;
 };
 
 modules {
 	/* module path: paths to search for modules specified below and 
 	 * in /modload.
 	 */
-	path = "/usr/local/ircd/modules";
-	path = "/usr/local/ircd/modules/autoload";
+	path = "modules";
+	path = "modules/autoload";
 
 	/* module: the name of a module to load on startup/rehash */
 	#module = "some_module.so";
diff -uNrd ircd-hybrid-7.0/doc/efnet/example.efnet.conf anynet-3.0/doc/efnet/example.efnet.conf
--- ircd-hybrid-7.0/doc/efnet/example.efnet.conf	Wed Dec 31 19:00:00 1969
+++ anynet-3.0/doc/efnet/example.efnet.conf	Sat May 31 03:30:25 2003
@@ -0,0 +1,957 @@
+/* doc/example.efnet.conf - ircd-hybrid-7 EFnet Example configuration file
+ *
+ * $Id: example.efnet.conf,v 7.9.2.1 2003/05/31 07:30:25 lusky Exp $
+ */
+
+/* IMPORTANT NOTES:
+ *
+ * class {} blocks MUST be specified before anything that uses them.  That
+ * means they must be defined before auth {} and before connect {}.
+ *
+ * auth {} blocks MUST be specified in order of precedence.  The first one
+ * that matches a user will be used.  So place spoofs first, then specials,
+ * then general access, then restricted.
+ *
+ * Both shell style (#) and C style comments are supported.
+ *
+ * Files may be included by either:
+ *        .include "filename"
+ *        .include <filename>
+ *
+ * Times/durations are written as:
+ *        12 hours 30 minutes 1 second
+ *        
+ * Valid units of time:
+ *        month, week, day, hour, minute, second
+ *
+ * Valid units of size:
+ *        megabyte/mbyte/mb, kilobyte/kbyte/kb, byte
+ *
+ * Sizes and times may be singular or plural.  
+ */ 
+
+/* EFNET NOTE:
+ * 
+ * This configuration file is a BASIC configuration file for use
+ * on EFnet.  You MUST still take the time to set this file up
+ * properly.
+ *
+ * DISCLAIMER: This file was submitted by Disciple@EFnet and has
+ *             since been modified by the Hybrid team.
+ */
+ 
+ /* serverinfo {}:  Contains information about the server. (OLD M:) */
+serverinfo {
+	/* name: the name of our server */
+	name = "efnet.irc";
+
+	/* description: the description of our server.  '[' and ']' may not
+	 * be used here for compatibility with older servers.
+	 */
+	description = "ircd-hybrid-7 EFnet Server";
+
+	/* network info: the name and description of the network this server
+	 * is on.  Shown in the 005 reply and used with serverhiding.
+	 */
+	network_name = "EFnet";
+	network_desc = "Eris Free Network";
+
+	/* hub: allow this server to act as a hub and have multiple servers
+	 * connected to it.
+	 */
+	hub = no;
+
+	/* vhost: the IP to bind to when we connect outward to ipv4 servers.
+	 * This should be an ipv4 IP only.
+	 */
+	#vhost = "192.169.0.1";
+
+	/* vhost6: the IP to bind to when we connect outward to ipv6 servers.
+	 * This should be an ipv6 IP only.
+	 */
+	#vhost6 = "3ffe:80e8:546::2";
+
+	/* max clients: the maximum number of clients allowed to connect */
+	max_clients = 512;
+
+	/* rsa key: the path to the file containing our rsa key for cryptlink.
+	 *
+	 * Example command to store a 2048 bit RSA keypair in
+	 * rsa.key, and the public key in rsa.pub:
+	 * 
+	 * 	openssl genrsa -out rsa.key 2048
+	 *	openssl rsa -in rsa.key -pubout -out rsa.pub
+	 *	chown <ircd-user>.<ircd.group> rsa.key rsa.pub
+	 *	chmod 0600 rsa.key
+	 *	chmod 0644 rsa.pub
+	 */
+	#rsa_private_key_file = "/usr/local/ircd/etc/rsa.key";
+};
+
+/* admin {}: contains admin information about the server. (OLD A:) */
+admin {
+	name = "EFnet Admin";
+	description = "Main Server Administrator";
+	email = "<irc-admin@efnet.irc>";
+};
+
+/* logging {}: contains information about logfiles. */
+logging {
+	/* log level: the amount of detail to log in ircd.log.  The
+	 * higher, the more information is logged.  May be changed
+	 * once the server is running via /quote SET LOG.  Either:
+	 * L_CRIT, L_ERROR, L_WARN, L_NOTICE, L_TRACE, L_INFO or L_DEBUG
+	 */
+	log_level = L_INFO;
+};
+
+/* class {}: contain information about classes for users (OLD Y:) */
+class {
+	/* name: the name of the class.  classes are text now */
+	name = "users";
+
+	/* ping time: how often a client must reply to a PING from the
+	 * server before they are dropped.
+	 */
+	ping_time = 90 seconds;
+
+	/* number per ip: the number of users per host allowed to connect */
+	number_per_ip = 2;
+
+	/* max number: the maximum number of users allowed in this class */
+	max_number = 100;
+
+	/* sendq: the amount of data allowed in a clients queue before
+	 * they are dropped.
+	 */
+	sendq = 100 kbytes;
+};
+
+class {
+	name = "restricted";
+	ping_time = 90 seconds;
+	number_per_ip = 1;
+	max_number = 100;
+	sendq = 60kb;
+};
+
+class {
+	name = "opers";
+	/* contrary to seeming popular belief, setting ping time
+	 * higher for an oper is NOT doing them a favour.
+	 * Since if a link is dead its dead and it means
+	 * you have to use another nick long enough to kill the old one :-)
+	 * Its much better to use a fairly standard 90 second ping time
+	 */
+	ping_time = 90 seconds;
+	number_per_ip = 10;
+	max_number = 100;
+	sendq = 1 mbyte;
+};
+
+class {
+	name = "server";
+	/* Same thing here.  Its a fallacy to thing increasing
+	 * ping time for servers is a "good idea." all it leads to
+	 * is "ghosting" on one end. Not a good idea.
+	 */
+	ping_time = 90 seconds;
+
+	/* connectfreq: only used in server classes.  specifies the delay
+	 * between autoconnecting to servers.
+	 * 
+	 * Both comstud and I recommend 10 minutes a few years ago.
+	 * 15 minutes might be right now. The reason you don't want it too
+	 * low is, you make the servers reconnect too quickly with 
+	 * a large sendq, and they _will_ nick collide. badly. 5 minutes
+	 * IS way too short.
+	 */
+	connectfreq = 15 minutes;
+
+	/* max number: the amount of servers to autoconnect to */
+	max_number = 1;
+
+	/* sendq: On big nets this needs to be a reasonably large value
+  	 */
+	sendq = 15 megabytes;
+};
+
+/* listen {}: contain information about the ports ircd listens on (OLD P:) */
+listen {
+	/* port: the specific port to listen on.  if no host is specified
+	 * before, it will listen on all available IPs.
+	 *
+	 * ports are separated via a comma, a range may be specified using ".."
+	 */
+	
+	/* port: listen on all available IPs, ports 6665 to 6669 */
+	port = 6665 .. 6669;
+
+	/* host: set a specific IP/host the ports after the line will listen 
+	 * on.  This may be ipv4 or ipv6.
+	 */
+	host = "1.2.3.4";
+	port = 7000, 7001;
+
+	host = "3ffe:1234:a:b:c::d";
+        port = 7002;
+};
+
+/* auth {}: allow users to connect to the ircd (OLD I:) */
+auth {
+	/* user: the user@host allowed to connect.  multiple IPv4/IPv6 user 
+	 * lines are permitted per auth block.
+	 */
+	user = "*@172.16.0.0/12";
+	user = "*test@123D:B567:*";
+
+	/* password: an optional password that is required to use this block */
+	password = "letmein";
+	
+	/* spoof: fake the users host to be be this.  This is free-form,
+	 * just do everyone a favour and dont abuse it. (OLD I: = flag)
+	 */
+        spoof = "I.still.hate.packets";
+
+        /* spoof notice: enable spoofing notification to admins (default yes) */
+        spoof_notice = yes;
+
+	/* exceed limit: allow a user to exceed class limits (OLD I: > flag) */
+	exceed_limit = yes;
+
+	/* kline exempt: exempt this user from k/glines (OLD I: ^ flag) */
+	kline_exempt = yes;
+
+	/* gline exempt: exempt this user from glines (OLD I: _ flag) */
+	gline_exempt = yes;
+
+	/* no tilde: remove ~ from a user with no ident (OLD I: - flag) */
+	no_tilde = yes;
+	
+	/* class: the class the user is placed in */
+	class = "opers";
+};
+
+auth {
+	/* redirect: the server and port to redirect a user to.  A user does
+	 * not have to obey the redirection, the ircd just suggests to them
+	 * an alternative server.
+	 */
+	redirserv = "irc.fi";
+	redirport = 6667;
+	
+	user = "*.fi";
+
+	/* class: a class is required even though it is not used */
+	class = "users";
+};
+
+auth {
+	user = "*@*";
+	class = "users";
+	
+	/* restricted: stop the client sending mode changes */
+	#restricted = yes;
+
+	/* have ident: require the user has identd to connect (OLD I: + flag) */
+	have_ident = yes;
+};
+
+/* operator {}: defines ircd operators. (OLD O:)
+ * ircd-hybrid no longer supports local operators, privileges are
+ * controlled via flags.
+ */
+operator {
+	/* name: the name of the oper */
+	name = "god";
+
+	/* user: the user@host required for this operator.  CIDR is not
+	 * supported.  multiple user="" lines are supported.
+	 */
+	user = "*god@*";
+	user = "*@127.0.0.1";
+
+	/* password: the password required to oper.  By default this will
+	 * need to be encrypted using 'mkpasswd'.  MD5 is supported.
+	 */
+	password = "crYpTpwH3r3"
+
+	/* rsa key: the public key for this oper when using Challenge.
+	 * A password should not be defined when this is used, see 
+	 * doc/challenge.txt for more information.
+	 */
+	#rsa_public_key_file = "/usr/local/ircd/etc/oper.pub";
+
+	/* class: the class the oper joins when they successfully /oper */
+	class = "opers";
+
+	/* privileges: controls the activities and commands an oper are 
+	 * allowed to do on the server.  All options default to no.
+	 * Available options:
+	 *
+	 * global_kill:  allows remote users to be /KILL'd (OLD 'O' flag)
+	 * remote:       allows remote SQUIT and CONNECT   (OLD 'R' flag)
+	 * kline:        allows KILL, KLINE and DLINE      (OLD 'K' flag)
+	 * unkline:      allows UNKLINE and UNDLINE        (OLD 'U' flag)
+	 * gline:        allows GLINE                      (OLD 'G' flag)
+	 * nick_changes: allows oper to see nickchanges    (OLD 'N' flag)
+	 *               via usermode +n
+	 * rehash:       allows oper to REHASH config      (OLD 'H' flag)
+	 * die:          allows DIE and RESTART            (OLD 'D' flag)
+	 * admin:        gives admin privileges.  admins
+	 *               may (un)load modules and see the
+	 *               real IPs of servers and spoofed
+         *               users IP.
+	 */
+	global_kill = yes;
+	remote = yes;
+	kline = yes;
+	unkline = yes;
+	gline = yes;
+	die = yes;
+	rehash = yes;
+	nick_changes = yes;
+	admin = yes;
+};
+
+/* connect {}: controls servers we connect to (OLD C:, N:, H:, L:) */
+connect {
+	/* name: the name of the server */
+	name = "irc.uplink.com";
+
+	/* host: the host or IP to connect to.  If a hostname is used it
+	 * must match the reverse dns of the server.
+	 */
+	host = "192.168.0.1";
+
+	/* passwords: the passwords we send (OLD C:) and accept (OLD N:).
+	 * The remote server will have these passwords reversed.
+	 */
+	send_password = "password";		# OLD C:
+	accept_password = "anotherpassword";	# OLD N:
+
+	/* encrypted: controls whether the accept_password above has been
+	 * encrypted.  (OLD CRYPT_LINK_PASSWORD now optional per connect)
+	 */
+	encrypted = no;
+
+	/* port: the port to connect to this server on (OLD P:) */
+	port = 6666;
+
+	/* hub mask: the mask of servers that this server may hub. Multiple
+	 * entries are permitted (OLD H:)
+	 */
+	hub_mask = "*";
+
+	/* leaf mask: the mask of servers this server may not hub.  Multiple
+	 * entries are permitted.  Useful for forbidding EU -> US -> EU routes.
+         * (OLD L:)	
+         */
+	#leaf_mask = "*.uk";
+
+	/* class: the class this server is in */
+	class = "server";
+
+	/* autoconnect: controls whether we autoconnect to this server or not,
+	 * dependent on class limits.
+	 */
+	autoconn = no;
+	
+	/* compressed: controls whether traffic is compressed via ziplinks.
+	 * By default this is disabled (OLD c: (lowercased))
+	 */
+	#compressed = yes;
+
+	/* lazylink: controls whether this server is a LazyLink.  LazyLink 
+	 * servers may NOT hub.  see doc/LazyLinks.as.implemented.txt
+	 *
+	 * EFnet Note: With this enabled, you download a connect burst
+ 	 *             as it is needed, instead of all at once.  This
+	 *             could allow servers on much smaller lines (T1s)
+         *             to link a server. It also could allow a server
+	 *	       on a DoS'ed link to stay connected.
+	 *	       This makes client servers
+	 *	       cheaper to run. EFnet needs more client servers.
+	 */
+	#lazylink = no;
+
+	/* masking: the servername we pretend to be when we connect */
+	#fakename = "*.arpa";
+};
+
+connect {
+	name = "encrypted.auth.example";
+	host = "some.host.somewhere";
+	port = 6667;
+
+	/* cryptlink: enable full encryption for all data passing between our
+	 * server and this link and rsa authentication.
+	 */
+	cryptlink = yes;
+
+	/* rsa key: the path to the public keyfile of the server.  Used instead
+	 * of passwords.
+	 */
+	rsa_public_key_file = "etc/remote.server.keyfile";
+
+	/* cipher preference: set the preferred cipher for this link
+	 *
+	 * Available ciphers are:
+	 *      BF/168 BF/128 CAST/128 IDEA/128 RC5.16/128 
+	 *      RC5.12/128 RC5.8/128 3DES/168 DES/56
+	 *
+	 * NOTE:  Some ciphers may not be supported by your OpenSSL.
+	 *        Check the output from 'configure' for available ciphers.
+	 * 
+	 * NOTE2: To help you decide what cipher to use, tools/encspeed
+	 *        will show you approximately how fast each cipher is.
+	 *        However, blowfish is fast and secure, and is probably
+	 *        a good default for most situations.
+	 *
+	 * NOTE3: Default if none is set is BF/128
+	 *
+	 * The cipher *MUST* be the same in both directions.  If you
+	 * set a cipher preference, your uplink must set the same cipher,
+	 * else it will not link.
+	 */
+	#cipher_preference = "BF/168";
+};
+
+connect {
+        name = "ipv6.some.server";
+        host = "3ffd:dead:beef::1";
+        send_password = "password";
+        accept_password = "password";
+        port = 6666;
+
+	/* aftype: controls whether the connection uses "ipv4" or "ipv6".
+	 * Default is ipv4.
+	 */
+	aftype = ipv6;
+        class = "server";
+};
+
+/* shared {}: users that are allowed to remote kline (OLD U:) 
+ *
+ * EFnet Note: This can be effectively used for remote klines.
+ *             Please note that there is no password authentication
+ *             for users setting remote klines.  You must also be
+ *             /oper'd in order to issue a remote kline. 
+ */
+shared {
+	/* name: the server the user must be on to set klines.  If this is not
+	 * specified, the user will be allowed to kline from all servers.
+	 */
+	name = "irc2.some.server";
+
+	/* user: the user@host mask that is allowed to set klines.  If this is
+	 * not specified, all users on the server above will be allowed to set
+	 * a remote kline.
+	 */
+	user = "oper@my.host.is.spoofed";
+};
+
+/* kill {}: users that are not allowed to connect (OLD K:)
+ * Oper issued klines will be added to the specified kline config
+ */
+kill {
+	user = "bad@*.hacked.edu";
+	reason = "Obviously hacked account";
+};
+
+/* deny {}: IPs that are not allowed to connect (OLD D:) (before DNS/ident
+ * lookup) Oper issued dlines will be added to the specified dline config
+ */
+deny {
+	ip = "10.0.1.0/24";
+	reason = "Reconnecting vhosted bots";
+};
+
+/* exempt {}: IPs that are exempt from deny {} and Dlines. (OLD d:) 
+ *
+ * EFnet Note: exempt {} blocks are NOT hidden, so do NOT exempt
+ *             EFnet server IP's.
+ */
+exempt {
+	ip = "192.168.0.0/16";
+};
+
+/* resv {}: nicks and channels users may not use/join (OLD Q:) */
+resv {
+        /* reason: the reason for the proceeding resv's */
+        reason = "There are no services on this network";
+
+	/* resv: the nicks and channels users may not join/use */
+	nick = "nickserv";
+	nick = "chanserv";
+        nick = "operserv";
+        nick = "JUPES";
+        nick = "JUPE";
+        nick = "CH?NF?X"; 		# CHANFIX (services.int)
+        /* These are totally optional, but may be a good idea */
+	nick = "oper";
+	nick = "ircop";
+	nick = "op";
+	nick = "ident";
+	nick = "pass";
+	channel = "#jupedchan";
+
+	/* resv: wildcard masks are also supported in nicks only */
+	reason = "Clone bots";
+	nick = "clone*";
+};
+
+/* gecos {}:  The X: replacement, used for banning users based on their
+ * "realname".  The action may be either:
+ *      warn:   allow client to connect, but send message to opers
+ *      reject: drop clients but also send message to opers.
+ *      silent: silently drop clients who match.
+ */
+gecos {
+	name = "*sex*";
+	reason = "Possible spambot";
+	action = warn;
+};
+
+gecos {
+	name = "sub7server";
+	reason = "Trojan drone";
+	action = reject;
+};
+
+gecos {
+	name = "*http*";
+	reason = "Spambot";
+	action = silent;
+};
+
+/* The channel block contains options pertaining to channels */
+channel {
+	/* invex: Enable/disable channel mode +I, a n!u@h list of masks
+	 * that can join a +i channel without an invite.
+ 	 * 
+	 * EFNet Note: This should NOT be run on EFnet.	
+	 * N.B. This will not cause any desync problems at all
+	 * if accidentally left enabled, but should not be enabled on efnet.
+         */
+	use_invex = no;			# Don't enable this on EFnet
+
+	/* except: Enable/disable channel mode +e, a n!u@h list of masks
+	 * that can join a channel through a ban (+b).
+	 *
+         * EFNet Note: This should NOT be run on EFnet.
+         */
+	use_except = no;		# Don't enable this on EFnet
+
+        /* halfops: Enable/disable channel mode "+h <nick>", this allows
+	 * users to perform all channel functions except +/-o and kick
+	 * opped users.
+ 	 *
+         * EFNet Note: This should NOT be run on EFnet.	
+         */
+        use_halfops = no;		# Don't enable this on EFnet
+
+	/* anonops: Enable/disable channel mode +a.  This hides the people
+	 * who are opped in the channel from people who are unopped.
+	 *
+	 * The ircd will 'sync' the users oplists when they become opped
+	 * or deopped by sending mode changes.  This can cause a flood and
+	 * could potentially be abused.
+  	 *
+	 * EFNet Note: This should NOT be run on EFnet.	
+         */
+	use_anonops = no;		# Don't enable this on EFnet
+
+        /* vchans: permit virtual channels, multiple copies of the same
+	 * channel name.  read doc/vchans.txt for more details
+	 *
+         * If you ./configure'd with --enable-efnet, the code for this
+         * feature will not be compiled into the ircd
+         *
+         * EFNet Note: This should NOT be run on EFnet. However
+	 * even if it was, it is completely transparent to the rest
+	 * of the network. vchans are just normal channels to the rest
+	 * of the network.
+         */
+        use_vchans = no;		# Don't enable this on EFnet
+
+	/* vchans oper only: only allow opers to create vchans via /cjoin */
+	vchans_oper_only = yes;
+
+	/* knock: Allows users to request an invite to a channel that
+	 * is locked somehow (+ikl).  If the channel is +p or you are banned
+	 * the knock will not be sent.
+	 *
+         * EFnet Note:  This seems to be used mostly by European servers
+	 *		and not North American ones.
+         *              Please feel free to disable this
+         *              if you do not want to run channel knock.
+	 *		channel knock allows an user to "/quote knock #channel"
+	 *		to ask for an invite. It is typically used in eu-efnet
+	 *		to ask for an invite to #eu-opers.
+	 *		An user who is banned will not have their knock
+	 *		sent to channel. It is paced, so knock will not
+	 *		a flood.
+         */
+	use_knock = yes;
+
+	/* knock delay: The amount of time a user must wait between issuing
+	 * the knock command.
+	 */
+	knock_delay = 1 minute;
+
+	/* knock channel delay: How often a knock to any specific channel
+	 * is permitted, regardless of the user sending the knock.
+	 */
+	knock_delay_channel = 1 minute;
+
+	/* max chans: The maximum number of channels a user can join/be on. */
+	max_chans_per_user = 25;
+
+        /* quiet on ban: stop banned people talking in channels. */
+        quiet_on_ban = yes;
+
+        /* max bans: maximum number of +b/e/I modes in a channel */
+        max_bans = 25;
+
+        /* splitcode: the ircd will check every 60s as to whether splitmode
+	 * should be disabled or not, so there may be a delay between a
+	 * netsplit ending and splitmode ending.
+	 *
+	 * both split users and split servers must be true to enter splitmode
+	 * 
+	 * you may force splitmode to be permanent by /quote set splitmode on
+	 */
+
+	/* split users: when the usercount is lower than this level, consider
+	 * ourselves split.  this must be set for automatic splitmode
+	 */
+	default_split_user_count = 10000;
+
+	/* split servers: when the servercount is lower than this, consider
+	 * ourselves split.  this must be set for automatic splitmode
+	 */
+	default_split_server_count = 10;
+
+	/* split no create: disallow users creating channels on split. */
+	no_create_on_split = no;
+
+	/* split: no join: disallow users joining channels at all on a split */
+	no_join_on_split = no;
+
+	/* oper pass resv: allow opers to over-ride RESVs on nicks/channels */
+	oper_pass_resv = yes;
+};
+
+
+/* The serverhide block contains the options regarding serverhiding */
+serverhide {
+	/* flatten links: this option will show all servers in /links appear
+	 * that they are linked to this current server
+  	 * 	
+         * EFnet Note:  While this is not a requirement on EFnet, it
+         *              may be a good idea. Except, its useless
+	 * 	        unless the entire net runs it.
+ 	 */
+	flatten_links = yes;
+
+	/* links delay: how often to update the links file when it is
+	 * flattened.
+	 */
+	links_delay = 5 minutes;
+
+	/* hidden: hide this server from a /links output on servers that
+	 * support it.  this allows hub servers to be hidden etc.
+	 */
+        hidden = no;
+
+	/* disable hidden: prevent servers hiding themselves from a
+	 * /links ouput.
+	 */
+	disable_hidden = no;
+
+	/* hide servers: hide remote servernames everywhere and instead use
+	 * network_name and network_desc.
+	 */
+	hide_servers = no;
+
+	/* disable remote: disable users doing commands on remote servers */
+	disable_remote_commands = no;
+
+	/* disable local channels: prevent users from joining &channels.
+	 * This is extreme, but it is still a flaw in serverhide.  It will
+	 * however remove far more from users than it will give back in
+	 * security.
+	 */
+	disable_local_channels = no;
+};
+
+/* The general block contains many of the options that were once compiled
+ * in options in config.h.  The general block is read at start time.
+ */
+general {
+	/* floodcount: the default value of floodcount that is configurable
+	 * via /quote set floodcount.  This is the amount of lines a user
+	 * may send to any other user/channel in one second.
+	 */
+        default_floodcount = 10;
+
+	/* failed oper notice: send a notice to all opers on the server when 
+	 * someone tries to OPER and uses the wrong password, host or ident.
+	 */
+	failed_oper_notice = yes;
+
+	/* dots in ident: the amount of '.' characters permitted in an ident
+	 * reply before the user is rejected.
+	 */
+	dots_in_ident=0;
+
+	/* dot in ipv6: ircd-hybrid-6.0 and earlier will disallow hosts 
+	 * without a '.' in them.  this will add one to the end.  only needed
+	 * for older servers.
+	 */
+        dot_in_ip6_addr = no;
+        
+        /* min nonwildcard: the minimum non wildcard characters in k/d/g lines
+	 * placed via the server.  klines hand placed are exempt from limits.
+	 * wildcard chars: '.' '*' '?' '@'
+	 */
+	min_nonwildcard = 3;
+
+        /* max accept: maximum allowed /accept's for +g usermode */
+        max_accept = 20;
+
+	/* nick flood: enable the nickflood control code */
+	anti_nick_flood = yes;
+
+	/* nick flood: the nick changes allowed in the specified period */
+	max_nick_time = 20 seconds;
+	max_nick_changes = 5;
+
+        /* anti spam time: the minimum time a user must be connected before
+	 * custom quit messages are allowed.
+	 */
+        anti_spam_exit_message_time = 5 minutes;
+
+	/* ts delta: the time delta allowed between server clocks before
+	 * a warning is given, or before the link is dropped.  all servers
+	 * should run ntpdate/rdate to keep clocks in sync
+	 */
+	ts_warn_delta = 30 seconds;
+	ts_max_delta = 5 minutes;
+
+	/* client exit: prepend a users quit message with "Client exit: " */
+	client_exit = no;
+
+	/* kline reason: show the user the reason why they are k/d/glined 
+	 * on exit.  may give away who set k/dline when set via tcm.
+	 */
+	kline_with_reason = yes;
+
+	/* kline connection closed: make the users quit message on channels
+	 * to be "Connection closed", instead of the kline reason.
+	 */
+	kline_with_connection_closed = yes;
+
+	/* non redundant klines: flag and ignore redundant klines */
+	non_redundant_klines = yes;
+
+	/* warn no nline: warn opers about servers that try to connect but
+	 * we dont have a connect {} block for.  Twits with misconfigured 
+	 * servers can get really annoying with this enabled.
+	 */
+	warn_no_nline = yes;
+
+	/* stats o oper only: make stats o (opers) oper only */
+	stats_o_oper_only=yes;
+
+	/* stats P oper only: make stats P (ports) oper only */
+	stats_P_oper_only=yes;
+
+	/* stats i oper only: make stats i (auth {}) oper only. set to:
+	 *     yes:    show users no auth blocks, made oper only.
+	 *     masked: show users first matching auth block
+	 *     no:     show users all auth blocks.
+	 */
+	stats_i_oper_only=yes;
+
+	/* stats k/K oper only: make stats k/K (klines) oper only.  set to:
+	 *     yes:    show users no auth blocks, made oper only
+	 *     masked: show users first matching auth block
+	 *     no:     show users all auth blocks.
+	 */
+	stats_k_oper_only=yes;
+                                    
+	/* caller id wait: time between notifying a +g user that somebody
+	 * is messaging them.
+	 */
+	caller_id_wait = 1 minute;
+
+	/* pace wait simple: time between use of less intensive commands
+	 * (HELP, remote WHOIS, WHOWAS)
+	 */
+	pace_wait_simple = 1 second;
+
+	/* pace wait: time between more intensive commands
+	 * (ADMIN, INFO, LIST, LUSERS, MOTD, STATS, VERSION)
+	 */
+	pace_wait = 10 seconds;
+
+	/* short motd: send clients a notice telling them to read the motd
+	 * instead of forcing a motd to clients who may simply ignore it.
+	 */
+	short_motd = no;
+
+	/* ping cookies: require clients to respond exactly to a ping command,
+	 * can help block certain types of drones and FTP PASV mode spoofing.
+	 */
+	ping_cookie = no;
+
+	/* no oper flood: increase flood limits for opers. */
+	no_oper_flood = yes;
+
+	/* true no oper flood: completely eliminate flood limits for opers
+	 * and for clients with can_flood = yes in their auth {} blocks
+	 */
+	true_no_oper_flood = yes;
+
+	/* glines: enable glines, network wide temp klines 
+         *
+         * EFnet Note: This feature is required for European EFnet servers
+         *             and is used by several North American servers.  As
+         *             such, it has been left on by default.  If you
+         *             do not want your server to participate in G:Lines
+         *             you should disable this.  
+         */
+	glines = yes;
+
+	/* gline time: the amount of time a gline will remain before exiring */
+	gline_time = 1 day;
+
+	/* idletime: the maximum amount of time a user may idle before
+	 * they are disconnected
+	 */
+        idletime = 0;
+
+	/* maximum links: the maximum amount of servers to connect to for
+	 * connect blocks without a valid class.
+	 */
+	maximum_links = 1;
+
+	/* REMOVE ME.  The following line checks you've been reading. */
+	havent_read_conf = 1;
+	
+	/* logfiles: the logfiles to use for user connects, /oper uses,
+	 * and failed /oper.  These files must exist for logging to be used.
+	 */
+	fname_userlog = "logs/userlog";
+	fname_operlog = "logs/operlog";
+	fname_foperlog = "logs/foperlog";
+
+	/* max targets: the maximum amount of targets in a single 
+	 * PRIVMSG/NOTICE.  set to 999 NOT 0 for unlimited.
+	 */
+	max_targets = 4;
+
+	/* client flood: maximum number of lines in a clients queue before
+	 * they are dropped for flooding.
+	 */
+	client_flood = 20;
+
+        /* use help: whether an improved help system per command is available
+         * to users.  If this is disabled, users will just be shown a command
+         * list.
+         *
+         * EFNET NOTE: It is not recommended you enable this due to the method
+         * of reading help files.
+         */
+        use_help = no;
+
+	/* message locale: the default message locale if gettext() is enabled
+	 * and working.
+	 * Use "custom" for the (in)famous Hybrid custom messages.
+	 * Use "standard" for the compiled in defaults.
+	 */
+	message_locale = "standard";
+
+	/* usermodes configurable: a list of usermodes for the options below
+	 *
+	 * +b - bots       - See bot and drone flooding notices
+	 * +c - cconn      - Client connection/quit notices
+	 * +d - debug      - See debugging notices
+	 * +f - full       - See I: line full notices
+	 * +g - callerid   - Server Side Ignore (for privmsgs etc)
+	 * +i - invisible  - Not shown in NAMES or WHO unless you share a 
+	 *                   a channel
+	 * +k - skill      - See server generated KILL messages
+	 * +l - locops     - See LOCOPS messages
+	 * +n - nchange    - See client nick changes
+	 * +r - rej        - See rejected client notices
+	 * +s - servnotice - See general server notices
+	 * +u - unauth     - See unauthorized client notices
+	 * +w - wallop     - See server generated WALLOPS
+	 * +x - external   - See remote server connection and split notices
+	 * +y - spy        - See LINKS, STATS, TRACE notices etc.
+	 * +z - operwall   - See oper generated WALLOPS
+	 */
+	 
+	/* oper only umodes: usermodes only opers may set */
+	oper_only_umodes = bots, cconn, debug, full, skill, nchange, 
+                     rej, spy, external, operwall, locops, unauth;
+
+	/* oper umodes: default usermodes opers get when they /oper */
+	oper_umodes = locops, servnotice, operwall, wallop;
+
+	/* servlink path: path to 'servlink' program used by ircd to handle
+	 * encrypted/compressed server <-> server links.
+	 *
+	 * only define if servlink is not in same directory as ircd itself.
+	 */
+	#servlink_path = "/usr/local/ircd/bin/servlink";
+
+	/* default cipher: default cipher to use for cryptlink when none is
+	 * specified in connect block.
+	 */
+	#default_cipher_preference = "BF/168";
+
+	/* use egd: if your system does not have *random devices yet you
+	 * want to use OpenSSL and encrypted links, enable this.  Beware -
+	 * EGD is *very* CPU intensive when gathering data for its pool
+	 */
+	#use_egd = yes;
+
+	/* egdpool path: path to EGD pool. Not necessary for OpenSSL >= 0.9.7
+	 * which automatically finds the path.
+	 */
+	#egdpool_path = "/var/run/egd-pool";
+
+
+	/* compression level: level of compression for compressed links between
+	 * servers.  
+	 *
+	 * values are between: 1 (least compression, fastest)
+	 *                and: 9 (most compression, slowest).
+	 */
+	#compression_level = 6;
+
+	/* throttle time: the minimum amount of time between connections from
+	 * the same ip.  exempt {} blocks are excluded from this throttling.
+	 * Offers protection against flooders who reconnect quickly.  
+	 * Set to 0 to disable.
+	 * 
+         * EFnet Note: exempt {} blocks are NOT hidden, so do NOT exempt
+         *             EFnet server IP's. 
+         */
+	throttle_time = 0;
+};
+
+modules {
+	/* module path: paths to search for modules specified below and 
+	 * in /modload.
+	 */
+	path = "/usr/local/ircd/modules";
+	path = "/usr/local/ircd/modules/autoload";
+
+	/* module: the name of a module to load on startup/rehash */
+	#module = "some_module.so";
+};
diff -uNrd ircd-hybrid-7.0/doc/efnet/operguide.txt anynet-3.0/doc/efnet/operguide.txt
--- ircd-hybrid-7.0/doc/efnet/operguide.txt	Wed Dec 31 19:00:00 1969
+++ anynet-3.0/doc/efnet/operguide.txt	Sat Feb 23 23:45:02 2002
@@ -0,0 +1,368 @@
+
+EFnet Oper Guide
+Last update: 02-21-2002
+Written and maintained by Riedel
+E-Mail: dennisv@vuurwerk.nl
+
+ 1.  Commands you should know about
+ 2.  The client of your choice
+ 3.  Your primary responsibilities
+ 4.  Re-routing
+ 4.1 Re-routing other servers and remote connects
+ 5.  Kills and klines
+ 6.  Kill and K-Line requests
+ 7.  Happy birthday!
+ 8.  Security
+ 9.  Know who your friends are
+10.  The TCM bot
+11.  Services 
+12.  G-Lines
+
+
+1. Commands you should know about
+
+  This is no longer covered here. IRCD-hybrid is changing too rapidly, so
+  this section would be outdated in no time ;) For an up-to-date version,
+  please download the latest hybrid at www.ircd-hybrid.org.
+
+
+2. The client of your choice
+
+  There are many IRC clients around for a wide variety of operating systems.
+  Being an IRC Operator doesn't *require* you to use a UNIX client, however
+  I personally prefer UNIX-based clients. If you're familiar with UNIX and
+  use UNIX for opering, I suggest ircII / epic. There are a lot of scripts
+  available for those two clients, and it's not that hard to write scripts
+  yourself to suite your needs. It is important that you know how to operate
+  your client, and familiarize yourself with the options and features. For
+  whatever client you chose this goes for any of them: You should be in
+  control of your client, instead of the client being in control of you.
+
+Resources :
+
+  www.mirc.co.uk	- mIRC (MS-Windows)
+  www.irchelp.org	- a variety of clients and scripts
+  ftp.blackened.com	- several UNIX based clients available
+
+
+3. Your primary responsibilities
+
+  As an IRC Operator, you're responsible for maintaining the server on a
+  real-time basis. You represent your server, and you represent the network.
+  Irresponsible / rude / offensive / stupid behavior may discredit your server
+  and the network. You should focus on the task you were chosen for...
+  maintainance.  Sounds simple, no? It means getting rid of users that abuse
+  the service, enforcing the server's policy and keeping the server linked.
+  Users will ask you questions, and expect you to know all the answers.. after
+  all, you're the oper!
+
+  Be prepared for users trying to fool you, sweet talk you into things you
+  don't want, lie and deceive. Most users are handling in good faith...
+  however, the abusers have learned how to manipulate opers. They have studied
+  the alien creature 'oper' for ages like biologists study animals. Be
+  paranoid, be curious and be suspicious. I can't stress the importancy of that
+  often enough.
+
+  Second priority has the network. You were not chosen to maintain the network
+  but you were chosen to maintain the server. However, you may want to be able
+  to reroute servers. If you see something broken, don't be afraid to fix it.
+  If you do, be sure you fix things and don't make it worse. Before you
+  step into routing, be sure you've familiarized yourself with the network's
+  topology, and be confident enough to perform such actions. (re)routing is
+  covered in the next chapter.
+
+  Opers on the network depend on a trusting relationship. You can usually take
+  the word from an oper. Other opers are considered -trusted-, however, there
+  are exceptions. Sometimes even opers lie to opers to get things done. Don't
+  be afraid to ask for proof of a certain statement, such as logs.
+  This doesn't mean you distrust the oper in question, but -you- and you alone
+  are responsible for your actions. You call the shots on your server, unless
+  your admin says otherwise.
+
+
+4. Re-routing
+
+  Re-routing is not hard, and it's not scary but it is important that you do it
+  right. The commands you'll use are SQUIT and CONNECT. First, a very simple
+  example. Let's say your server, irc.yourserver.com is lagged to it's uplink,
+  irc.uplink.com and you want to reroute your server. You have to think about
+  where you want your server to be linked, and you have to time your reroute.
+  An example topology :
+               
+irc.yourserver.com ---- irc.uplink.com
+                        |      |      \
+                        B      C      D
+                       / \
+                      E   F
+                         / \
+                        G   H --- O
+                      / | \ | \
+                     I  J K L  M
+                                \
+                                 N
+
+  In this case, you're uplinked by irc.uplink.com
+  irc.uplink.com also hubs B, C and D. Server B functions as hub for E and F;
+  F hubs G and H; H hubs L, M and O. G hubs I, J and K. M hubs N.
+  Your server is allowed to connect to server B, F and G. So you consider the
+  servers you're able to connect to. Is the lag caused by a server that uplinks
+  irc.uplink.com ? Use /stats ? irc.uplink.com to determine lag to the other
+  servers. If irc.uplink.com does not respond, the lag is to your uplink. If
+  so, you cannot be sure about the state of the other uplinks, so you'd have to
+  get on a remote server and determine lag by using /stats ? and /trace. For
+  example, you could connect to server N, and /trace yournick. Yournick, being
+  the nick on your server. You'll see which route it takes, and what the
+  problem server is. Example /trace output :
+
+S:[SERVER-N       ] V:[2.8/hybrid] U:[SERVER-M            ]
+S:[SERVER-M       ] V:[2.8/hybrid] U:[SERVER-H            ]
+S:[SERVER-H       ] V:[2.8/hybrid] U:[SERVER-F            ]
+S:[SERVER-F       ] V:[2.8/hybrid] U:[SERVER-B            ]
+S:[SERVER-B       ] V:[2.8/hybrid] U:[irc.uplink.com      ]
+S:[irc.uplink.com ] V:[2.8/hybrid] U:[irc.yourserver.com  ]
+
+  The trace doesn't complete... server-b announces irc.uplink.com, and
+  irc.uplink.com announces your server. Your server should return something
+  like :
+
+S:[irc.yourserver.] OPER [yournick!user@yourhost]
+
+  If it doesn't, we know the lag is only between yourserver and uplink.
+  Usually if there is lag between your server and your uplink, the send-queue
+  rises. This is not always the case. Sometimes your server can write perfectly
+  to your uplink, but not reverse. That is called one sided lag.
+
+  We pick server B to link to. It means we have to SQUIT and CONNECT.
+  To unlink from irc.uplink.com and connect to SERVER_B we'd type:
+  /quote SQUIT irc.uplink.com :reroute
+  /connect SERVER_B
+
+  we *DON'T* SQUIT irc.yourserver.com... and I'll try to explain why:
+  If we wanted to remove hub M from the network, and with it N, we'd issue
+  a SQUIT M. An SQUIT follows a path, relays the SQUIT request to each server
+  in that path. Finally it reaches server H, which is the hub for M. Server H
+  sees the SQUIT and drops the link to M.
+
+  Now a different situation, we want to separate yourserver, uplink, C and D
+  from the rest of the network, in order to reroute. We'd have to SQUIT server
+  B, since we want the -uplink- of server B (being irc.uplink.com) to drop the
+  link to server B.
+
+  If you'd SQUIT irc.yourserver.com, you ask yourserver.com to drop the link to
+  itself, which is impossible. If you SQUIT irc.uplink.com, you ask yourserver
+  to drop the link to uplink, which is what we want to do.
+
+  After the SQUIT and CONNECT, the new situation looks like this :
+
+                        irc.uplink.com
+                        |      |      \
+  irc.yourserver.com -- B      C      D
+                       / \
+                      E   F
+                         / \
+                        G   H --- O
+                      / | \ | \
+                     I  J K L  M
+                                \
+                                 N
+
+  If yourserver is a Hub, it makes the situation more complex, since your
+  actions have more impact.
+
+
+4.1 - Re-routing other servers and remote connects
+
+Example topology :
+
+                        irc.uplink.com
+                        |      |      \
+  irc.yourserver.com -- B      C      D
+                       / \
+                      E   F
+                         / \
+                        G   H --- O
+                      / | \ | \
+                     I  J K L  M
+                                \
+                                 N
+
+  Let's say, hub H is way lagged to F, but G to F is fine... we want to reroute
+  H, and stick H to G.
+
+  We'd do :
+
+  /quote SQUIT serverh :re-routing you babe
+  /connect serverh 6667 serverg
+
+  A global wallops will be sent :
+  !serverg! Remote CONNECT serverh 6667 from ItsMe
+
+  When re-routing, always give the server some time to prevent nick collides.
+  When there is lag, people will connect to another server. When you SQUIT and
+  CONNECT to fast, a lot of those clients will be collided. Also, stick to your
+  territory. How enthusiastic you may be, you cannot route the world. If you're
+  an oper on the US side, stick to the US side when re-routing. Needless to
+  say, if you're EU, keep it to EU ;)
+
+
+5. Kills and klines
+
+  As an oper, you're given the incredible power *cough* of KILL and KLINE.
+  /kill nick reason  disconnects a client from IRC with the specified reason.
+  A /quote kline *evil@*.dude.org :reason here  bans the user from your server.
+  Abusive kills and klines may draw attacks to your server, so always consider
+  if a kline or kill is deserved. If the server gets attacked after a valid
+  kill or kline, well.. tough luck. You should never be 'afraid' to kline
+  anyone on your server. If it's a good reason, make it so. Even if you know
+  it may cause the server to be attacked. Maybe good to think about is this:
+  - if /ignore solves the problem rather than a kick, /ignore
+  - kick if a ban is unneeded
+  - ban if a /kill is unwarranted for
+  - kill rather than kline if that solves the problem
+  - kline when a server ban is really needed.
+
+  You kline a user when you absolutely don't want this user to use the service
+  your server is providing.
+
+  Crosskills (killing users on another server) are another issue. Some admins
+  don't care if users get /kill'ed off their server, for any reason or no
+  reason at all... and other admins are very anal about it. A good way to go
+  (IMO) is to issue a KILL if there is an absolute need for the target user to
+  be disconnected. If there are active opers on that server, let them handle
+  it.  They'll be upset if you /kill a user off their server, without
+  contacting them.  /stats p irc.server.here shows the active opers on a
+  particular server. Some opers have multiple o-lines and are not watching all
+  sessions. If you can't find an active oper on a server, you can 
+  /quote operwall a request for opers from that server.
+
+  Ghost KILLs are another story, an often misunderstood one.
+  When you see a /KILL from an oper with the reason 'ghosted' they usually
+  KILL a client that's about to ping timeout. That is not what a ghost is!
+  To quote Dianora: "a ghost happens because a client misses being killed when
+  it should be. Its a race condition due to nick chasing". In other words,
+  Server X thinks client A has been KILLed, while server Y missed the KILL
+  for that client.
+
+
+6. Kill and K-Line requests
+
+  As previously mentioned, if an oper from another server contacts you and
+  requests a kill or a kline for a local client with a good reason, you can
+  usually trust this request. Opers depend on a trusting relationship. However,
+  since you're responsible for the kill or kline, it is not rude to ask for
+  proof. It depends on the oper making the request how thats interpreted, but
+  the way they respond to asking for proof tells more about them than about
+  you.
+
+  The more and longer you oper, how better you get to know the other opers.
+  You know who is honest, you'll know who are lying and deceiving. Before
+  you acquire this knowledge, you can merely rely on common sense and
+  instincts.  You'll probably make mistakes occasionally, and thats nothing to
+  be ashamed of.  Opers are - despite contrary believes - human.
+
+  Users occasionally will ask you to kill or kline a user/bot too. Some
+  requests are straight-forward and clear, others require you to be cautious. I
+  recommend to always investigate such requests, and when you're confident the
+  request is valid, issue the kill or kline.
+
+
+7. Happy birthday!
+
+  It is a custom on EFnet to birthday /kill opers of whom it is his/her
+  birthday.  Not all opers like this, but typically those opers don't let
+  others know about their birthday. You'll notice that the KILLS say a lot
+  about who likes who and who is friends with who.  Whether you want to
+  participate, is entirely up to you.
+
+
+8. Security
+
+  As with any privilege, you have to handle it cautiously and responsibly.
+  Be sure that your o/O line doesn't get compromised! Oper only from secure
+  hosts. You and only you should know your password. Don't share your oper
+  account, and make your oper password a UNIQUE one. If your o/O line gets
+  compromised, nasty things may/will happen. Imagine an oper with crosskill
+  capabilities who's operline gets 'hacked'... the results are often
+  disastrous and you will lose respect and trust from others. It can cause
+  your oper privileges to be revoked, or even the server to be (temporarily)
+  delinked.
+
+
+9. Know who your friends are
+
+  As an oper you will get a lot of users that want to be 'friends' with you.
+  Users offer you free* access to their *nix servers, ops in channels,
+  unlimited leech access to the biggest and fastest warez sites *gasp* and
+  more. They want favors in return. They say they don't but they truly want
+  something in return. They -expect- something in return. You could either
+  don't respond to such offers, or use them. The last option creates an even
+  more distorted image of opers and doesn't do any good for the user <-> oper
+  relationship.  Your *real* friends are usually the persons who were your
+  friends _before_ you acquired the extra privileges.
+
+
+10. The TCM Bot
+
+  A TCM bot can be a valuable tool for opers. It keeps record of all connected
+  clients, flags clients with multiple connections and has all sorts of other
+  useful commands. There are three different kind of TCM's in use on EFnet,
+  being OOMon, TCM-Dianora and TCM-Hybrid. Every one of them requires you to
+  log in to be able to access the privileged commands. On OOMon you DCC chat
+  the TCM bot and do '.auth yournick yourpass' where yournick is your oper
+  name in your o/O line. In TCM-Dianora and TCM-Hybrid you register with:
+  '.register yourpass', where yourpass is your password ;)
+  All TCM commands start with a period. If you forget the period, the text goes
+  into the 'partyline', where it is echoed to all connected opers.
+
+  Resources :	http://toast.blackened.com/oomon/help
+		http://www.db.net/~db/tcm.html
+
+
+11. Services
+
+  A recent addition to EFNet is Channel Fixer, aka ChanFix. This is an
+  automated service that re-ops clients on opless channels. There are a few
+  restrictions.  First, the channel has to be of significant size for ChanFix
+  to store it in its database. Second, it only logs static addresses.
+
+  How does it work? Periodically it stores information about the channel state
+  in its database, for every channel in there. On every 'run', a channel
+  operator gets one point. These scores make a top-5 of 'most frequent opped
+  clients'.  When a channel becomes opless, ChanFix will join and op the top-5
+  opped clients CURRENTLY IN THE CHANNEL.
+
+  Chanfix can be invoked manually by server administrators. /msg ChanFix
+  chanfix #channel is the command to do it. ChanFix will join, and treat the
+  channel as if it were opless. It lowers TS by one (resulting in a deop of
+  the entire channel) and re-ops the top-5 clients currently in the channel.
+  The Channel Fixer won't log or actively fix channels when there's a split of
+  significant size.  Needless to say, the chanfix command must be used with
+  caution.
+
+
+12. G-Lines
+
+  Oh yes! A G-Line section. Currently, a part of EFNet (EU-EFnet) has G-Lines
+  enabled. This was decided by the EU admin community and is now mandatory
+  within EU-EFnet. In order for a G-Line to be activated, three opers from
+  three different servers need to issue the _exact_ same G-Line. The reason
+  is not counted.
+
+  G-Lines work best when the EU side of EFNet is not fragmented. G-Lines
+  will, however, propogate through a Hybrid 6 hub (but not a CSr hub) even
+  if the hub server has G-Lines disabled. This propogation allows two halves
+  of EU-EFnet to have concurrent G-Lines set even when split by US hub servers.
+
+
+  Questions / Comments / Suggestions are welcome.
+  You can e-mail me: dennisv@vuurwerk.nl
+
+Best regards,
+--
+Dennis "Riedel" Vink       ___~___  Email - dennisv@vuurwerk.nl
+Unix System Administrator  \  |  /  Phone - +31 23 5111111
+Vuurwerk Internet           '|.|'   PGP   - 0xD68A7AAB
+
+And on the seventh day, He exited from append mode.
+
+# $Id: operguide.txt,v 1.8 2002/02/24 04:45:02 wcampbel Exp $
diff -uNrd ircd-hybrid-7.0/doc/efnet/opermyth.txt anynet-3.0/doc/efnet/opermyth.txt
--- ircd-hybrid-7.0/doc/efnet/opermyth.txt	Wed Dec 31 19:00:00 1969
+++ anynet-3.0/doc/efnet/opermyth.txt	Wed Jan 24 09:58:44 2001
@@ -0,0 +1,137 @@
+
+Date: Thu, 30 Jul 1998 16:21:40-0700 (MST)
+To: operlist@the-project.org
+From: rayp@primenet.com (Ray Powers)
+Subject: The myths of opers....
+
+I've always wanted to write something like this.. Its half rant, half
+fact, so bear with it. Hopefully it will be worth reading.
+
+There's a lot of hate for opers for a lot of reasons. Some are directly
+oper related (i.e. 99% of us are colossal assholes), some are directly
+user related (i.e. 99% of you are raving lunatics), and some is just plain
+misconceptions. I'd like to take a minute to talk about part three in
+hopes of clearing a few things up. This will kind of be in a FAQ form,
+maybe you'll like it,  maybe not, but its worth a shot.
+
+Q: What can an oper on EFnet do.
+A: This is an EXACT list of what we can do:
+        1) /squit a server, separating it from the rest of the net
+        2) /die our server
+        3) /kill a user, this disconnects them from the server they are on
+        4) /kline a hostmask, this bans them from our server
+        5) /dline an ip, this bans them from our server, regardless of 
+           hostmask
+        6) See all invisible users on our server
+        7) Mass Msg/CTCP/notice a hostmask
+        8) Mass Msg/CTCP/notice a server
+        9) See and send Operwall/wallops notices
+
+That's it. We can see more server messages than you, but that's not the
+point.. The point to be shown here is very simple, *none* of these things
+have anything to do with channels. Which leads us to our next question.
+
+Q: What can opers *NOT* do, but keep being asked to anyways?
+A: We can *NOT*:
+        1) Enter a channel that is +i or +k without being invited or 
+           having the key
+        2) See who is inside a +s channel  
+        3) Op ourselves or op you on a channel (unless of course we are a 
+           channel op for that channel)
+        4) Tell you what XXXX's new nick is since they changed it to hide 
+           from you.
+        5) Deop someone for you on a channel (unless of course we are a 
+           channel op for that channel)
+
+Notice a trend, with the exception of 4, all of these are 100% channel
+related. EFnet is made so that opers have *NO* power of channels, for
+better or worse. If we don't help you with these requests, its not because
+we won't, its because we are completely incapable doing so. On the other
+hand....
+
+Q: What can opers do, but won't?
+A: This will be a bit differently done, because I figure I should explain 
+   why opers don't do these things, when they may normally make sense.
+        1) Why won't they kill somebody who has stolen your nick.
+              EFnet has gone on the basis of nicks not being owned, which is 
+           why there is no nickserv on EFnet.  Of course we see opers kill 
+           all the time for nicks, though, so it seems rather hypocrital, 
+           doesn't it?  
+              An oper who kills for his nick will tell you its because the 
+           other person was a bot, was juping his nick, or was imitating an 
+           oper.  It may be true, but it really comes down to the same 
+           feeling you get when your nick is taken "Hey! that's my name! I 
+           don't want that person using my name!" 
+              I personally, do not kill for nicks. If someone takes my nick, 
+           they can have it. Let them get my several hundred messages a day. 
+           :P  But the problem with the oper is this: How does an oper know 
+           that you are really the person that uses that nick, or are you 
+           the guy that wants to nick jupe that nick out from the real guy? 
+           Unless the oper knows you well, they don't.. And saying that 
+           people generally tell the truth means you haven't been on EFnet 
+           very long. 
+              I would prefer to think I am one of the more well respected 
+           people on the net and people still lie to me on a regular basis. 
+           So, the oper is stuck refusing to help because he can't tell who 
+           is who. Remember this line of reasoning, its going to be coming 
+           up a lot. :P
+        2) Why won't they kill that guy nuking/smurfing/ping -f'ing me?
+              This one is simple.  There is no way to prove that somebody is 
+           doing any of these things to you from an opers point of view. All 
+           logs are fakeable, and the oper has no way to firsthand prove its 
+           happening. Your best bet in this situation is to log what you can 
+           and complain loud and long to their ISPs.
+        3) Why won't they help me take my channel back?
+              There's a bunch of answers to this. First, it is popular 
+           opinion at EFnet that channels are not owned, and therefore, if 
+           you lose a channel, you should go make another one.  Notice I 
+           say popular instead of official, because EFnet has never had an 
+           "official" policy on much of anything. 
+              But more and more you see opers killing for takeovers, so why 
+           are they helping their channels and not yours.  
+              Well, first, let's say your channel was taken over, and is now 
+           +smtinlk. How exactly is the oper supposed to find out who is 
+           oped in the channel right now to mass kill them? Even if they do get 
+           all the nicks, they have to somehow manage to kill them all in 
+           one hit, or they'll all just op each other again and it will be 
+           fruitless. Or worse, they could have it all set up, and some 
+           other oper could kill them halfway through because they don't 
+           like mass-kills and it would be all ruined. 
+              Or, let's say the mass-kill goes off, then the channel is 
+           opless and generally speaking, chaos begins. People start 
+           mass-nuking or flooding the channel to clear it out, or just to 
+           be annoying. And there's still a 50/50 chance that takeover
+           people will get the channel back on a split and we'll have to try 
+           to do it all over again.  
+              If you're about to ask why they don't split their server,
+           the answer is very simple: We are not about to screw up roughly 
+           30,000 peoples chatting for your channel. Its rude. This of 
+           course is all based on the fact that we can prove its taken over, 
+           as per the conversation about nicks, we often can't.
+        4) But.. its obvious they took it from me! The topic says 
+           "Ha ha, we took your channel Rick!" for Pete's sake! And 
+           there's only One op, so you can kill him and get the channel 
+           back immediately!
+              This one is a bit more complex, but its really a personal 
+           call. That one op could be a rampant smurfpup with a penis so 
+           tiny he has no choice but to rampantly smurf and synflood anyone 
+           that gets in his way.  This is popularly known on irc as SPS, or 
+           Small Penis Syndrome.  In this case, if the oper does help you 
+           out, they could end up with their server being downed for a day 
+           or two, and it really isn't worth it for your channel, no 
+           offense.
+
+Keep in mind that this is all spoken from the perspective of someone who
+*DOES* help with channels when possible, but understands greatly the
+reasons not to, and judges each situation very carefully.
+
+That's the gist of the information I was trying to get across.  If you
+were cluefull enough to get on operlist, a lot of this may be common
+knowledge to you, but sometimes its good to step back and see why opers do
+what they do a lot of the time. 
+
+Hoping this is of value to SOMEONE....
+
+Ray Powers
+Monkster/MimePunk/PrimeMonk/PacMonk/MtgMonk/Ihavefartoomanynickstonickjupe
+
diff -uNrd ircd-hybrid-7.0/doc/example.conf anynet-3.0/doc/example.conf
--- ircd-hybrid-7.0/doc/example.conf	Sat May 31 03:30:25 2003
+++ anynet-3.0/doc/example.conf	Wed Feb  4 13:08:44 2004
@@ -33,27 +33,21 @@
  * Sizes and times may be singular or plural.  
  */ 
 
-/* EFNET NOTE:
- * 
- * This config file is NOT suitable for EFNet.  EFNet admins should use
- * example.efnet.conf
- */
- 
  /* serverinfo {}:  Contains information about the server. (OLD M:) */
 serverinfo {
 	/* name: the name of our server */
-	name = "hades.arpa";
+	name = "anynet.server.example";
 
 	/* description: the description of our server.  '[' and ']' may not
 	 * be used here for compatibility with older servers.
 	 */
-	description = "hybrid-7 test server";
+	description = "anynet test server";
 
 	/* network info: the name and description of the network this server
 	 * is on.  Shown in the 005 reply and used with serverhiding.
 	 */
-	network_name = "MyNet";
-	network_desc = "This is My Network";
+	network_name = "Anynet";
+	network_desc = "Anynet IRC Network";
 
 	/* hub: allow this server to act as a hub and have multiple servers
 	 * connected to it.  This may not be changed if there are active
@@ -85,14 +79,27 @@
 	 *	chmod 0600 rsa.key
 	 *	chmod 0644 rsa.pub
 	 */
-	#rsa_private_key_file = "/usr/local/ircd/etc/rsa.key";
+	#rsa_private_key_file = "etc/rsa.key";
+
+	/* ssl_cert_file: the path to the file containing the SSL
+	 * certificate chain to be used for SSL client support (both the
+	 * certificate and the private key must be set for SSL to work.
+	 */
+	#ssl_cert_file = "etc/ssl-cert.pem";
+	
+	/* ssl_private_key_file: the path to the file containing the SSL
+	 * private key associated with the certificate above.
+	 */
+	#ssl_private_key_file = "etc/ssl-key.pem";
 };
 
-/* admin {}: contains admin information about the server. (OLD A:) */
+/* admin {}: contains admin information about the server. (OLD A:)
+ * These lines are displayed to the user in the order shown here. 
+ */
 admin {
-	name = "Smurf target";
-	description = "Main Server Administrator";
-	email = "<syn@packets.r.us>";
+	name = "Server Administrator Smith";
+	description = "Primary administrator";
+	email = "<admin@smith.example>";
 };
 
 /* logging {}: contains information about logfiles. */
@@ -116,10 +123,10 @@
 	ping_time = 2 minutes;
 
 	/* number per ip: the number of users per host allowed to connect */
-	number_per_ip = 2;
+	number_per_ip = 4;
 
 	/* max number: the maximum number of users allowed in this class */
-	max_number = 100;
+	max_number = 450;
 
 	/* sendq: the amount of data allowed in a clients queue before
 	 * they are dropped.
@@ -131,7 +138,7 @@
 	name = "restricted";
 	ping_time = 1 minute 30 seconds;
 	number_per_ip = 1;
-	max_number = 100;
+	max_number = 25;
 	sendq = 60kb;
 };
 
@@ -150,31 +157,39 @@
 	/* connectfreq: only used in server classes.  specifies the delay
 	 * between autoconnecting to servers.
 	 */
-	connectfreq = 5 minutes;
+	connectfreq = 1 minute;
 
 	/* max number: the amount of servers to autoconnect to */
 	max_number = 1;
 
 	/* sendq: servers need a higher sendq as they send more data */
-	sendq=2 megabytes;
+	sendq = 1 megabyte;
 };
 
 /* listen {}: contain information about the ports ircd listens on (OLD P:) */
 listen {
 	/* port: the specific port to listen on.  if no host is specified
-	 * before, it will listen on all available IPs.
+	 * before, it will listen on all available IPs.  Adding the
+	 * 'ssl' parameter after the ports will make that port (range)
+	 * listen for SSL connections.
 	 *
 	 * ports are seperated via a comma, a range may be specified using ".."
 	 */
 	
+	/* Anynet uses port 8888 for peering */
+	port = 8888;
+	
 	/* port: listen on all available IPs, ports 6665 to 6669 */
 	port = 6665 .. 6669;
 
+	/* listen for ssl on port 9999 */
+	#port = 9999 ssl;
+
 	/* host: set a specific IP/host the ports after the line will listen 
 	 * on.  This may be ipv4 or ipv6.
 	 */
 	host = "1.2.3.4";
-	port = 7000, 7001;
+	port = 7001, 7002;
 
 	host = "3ffe:1234:a:b:c::d";
         port = 7002;
@@ -237,7 +252,7 @@
 	#restricted = yes;
 
 	/* have ident: require the user has identd to connect (OLD I: + flag) */
-	have_ident = yes;
+	have_ident = no;
 };
 
 /* operator {}: defines ircd operators. (OLD O:)
@@ -246,7 +261,7 @@
  */
 operator {
 	/* name: the name of the oper */
-	name = "god";
+	name = "jebsu";
 
 	/* user: the user@host required for this operator.  CIDR is not
 	 * supported.  multiple user="" lines are supported.
@@ -263,7 +278,7 @@
 	 * A password should not be defined when this is used, see 
 	 * doc/challenge.txt for more information.
 	 */
-	#rsa_public_key_file = "/usr/local/ircd/etc/oper.pub";
+	#rsa_public_key_file = "etc/oper.pub";
 
 	/* class: the class the oper joins when they successfully /oper */
 	class = "opers";
@@ -282,8 +297,9 @@
 	 * rehash:       allows oper to REHASH config      (OLD 'H' flag)
 	 * die:          allows DIE and RESTART            (OLD 'D' flag)
 	 * admin:        gives admin privileges.  admins
-	 *               may (un)load modules and see the
-	 *               real IPs of servers.
+	 *               may (un)load modules, see the
+	 *               real IPs of servers, see +i users, and
+	 *               who's in secret channels (including ops in +a.)
 	 */
 	global_kill = yes;
 	remote = yes;
@@ -318,7 +334,7 @@
 	encrypted = no;
 
 	/* port: the port to connect to this server on */
-	port = 6666;
+	port = 8888;
 
 	/* hub mask: the mask of servers that this server may hub. Multiple
 	 * entries are permitted
@@ -355,7 +371,7 @@
 connect {
 	name = "encrypted.auth.example";
 	host = "some.host.somewhere";
-	port = 6667;
+	port = 8888;
 
 	/* cryptlink: enable full encryption for all data passing between our
 	 * server and this link and rsa authentication.
@@ -405,17 +421,23 @@
 };
 
 /* shared {}: users that are allowed to remote kline (OLD U:) */
+/*
+ * shared blocks also define non-hub servers that are allowed to set
+ * G-lines.  Hubs are always allowed to set G-lines because they need
+ * to be able to propogate them.  G-lines from non-shared leaves are
+ * dropped, and a warning is issued.
+ */
 shared {
 	/* name: the server the user must be on to set klines.  If this is not
 	 * specified, the user will be allowed to kline from all servers.
 	 */
-	name = "irc2.some.server";
+	name = "services.anynet.org";
 
 	/* user: the user@host mask that is allowed to set klines.  If this is
 	 * not specified, all users on the server above will be allowed to set
 	 * a remote kline.
 	 */
-	user = "oper@my.host.is.spoofed";
+	#user = "na@for.glines";
 };
 
 /* kill {}: users that are not allowed to connect (OLD K:)
@@ -440,19 +462,19 @@
 };
 
 /* resv {}: nicks and channels users may not use/join (OLD Q:) */
-resv {
-        /* reason: the reason for the proceeding resv's */
-        reason = "There are no services on this network";
-
-	/* resv: the nicks and channels users may not join/use */
-	nick = "nickserv";
-	nick = "chanserv";
-	channel = "#services";
-
-	/* resv: wildcard masks are also supported in nicks only */
-	reason = "Clone bots";
-	nick = "clone*";
-};
+#resv {
+#        /* reason: the reason for the proceeding resv's */
+#        reason = "There are no services on this network";
+#
+#	/* resv: the nicks and channels users may not join/use */
+#	nick = "nickserv";
+#	nick = "chanserv";
+#	channel = "#services";
+#
+#	/* resv: wildcard masks are also supported in nicks only */
+#	reason = "Clone bots";
+#	nick = "clone*";
+#};
 
 /* gecos {}:  The X: replacement, used for banning users based on their
  * "realname".  The action may be either:
@@ -475,7 +497,7 @@
 gecos {
 	name = "*http*";
 	reason = "Spambot";
-	action = silent;
+	action = warn;
 };
 
 /* The channel block contains options pertaining to channels */
@@ -503,7 +525,7 @@
 	 * or deopped by sending mode changes.  This can cause a flood and
 	 * could potentially be abused.
 	 */
-	use_anonops = no;
+	use_anonops = yes;
 
         /* vchans: permit virtual channels, multiple copies of the same
 	 * channel name.  read doc/vchans.txt for more details
@@ -513,7 +535,7 @@
         use_vchans = yes;
 
 	/* vchans oper only: only allow opers to create vchans via /cjoin */
-	vchans_oper_only = yes;
+	vchans_oper_only = no;
 
 	/* knock: Allows users to request an invite to a channel that
 	 * is locked somehow (+ikl).  If the channel is +p or you are banned
@@ -538,7 +560,7 @@
         quiet_on_ban = yes;
 
         /* max bans: maximum number of +b/e/I modes in a channel */
-        max_bans = 25;
+        max_bans = 30;
 
         /* splitcode: the ircd will check every 60s as to whether splitmode
 	 * should be disabled or not, so there may be a delay between a
@@ -632,7 +654,7 @@
 	 * without a '.' in them.  this will add one to the end.  only needed
 	 * for older servers.
 	 */
-        dot_in_ip6_addr = yes;
+        dot_in_ip6_addr = no;
         
         /* min nonwildcard: the minimum non wildcard characters in k/d/g lines
 	 * placed via the server.  klines hand placed are exempt from limits.
@@ -653,16 +675,16 @@
         /* anti spam time: the minimum time a user must be connected before
 	 * custom quit messages are allowed.
 	 */
-        anti_spam_exit_message_time = 5 minutes;
+        anti_spam_exit_message_time = 1 minute;
 
 	/* ts delta: the time delta allowed between server clocks before
 	 * a warning is given, or before the link is dropped.  all servers
 	 * should run ntpdate/rdate to keep clocks in sync
 	 */
-	ts_warn_delta = 30 seconds;
-	ts_max_delta = 5 minutes;
+	ts_warn_delta = 15 seconds;
+	ts_max_delta = 90 seconds;
 
-	/* client exit: prepend a users quit message with "Client exit: " */
+	/* client exit: add quotes around user-supplied quote messages */
 	client_exit = yes;
 
 	/* kline reason: show the user the reason why they are k/d/glined 
@@ -685,7 +707,7 @@
 	warn_no_nline = yes;
 
 	/* stats o oper only: make stats o (opers) oper only */
-	stats_o_oper_only=yes;
+	stats_o_oper_only=no;
 
 	/* stats P oper only: make stats P (ports) oper only */
 	stats_P_oper_only=no;
@@ -702,7 +724,7 @@
 	 *     masked: show users first matching auth block
 	 *     no:     show users all auth blocks.
 	 */
-	stats_k_oper_only=masked;
+	stats_k_oper_only=no;
                                     
 	/* caller id wait: time between notifying a +g user that somebody
 	 * is messaging them.
@@ -717,7 +739,7 @@
 	/* pace wait: time between more intensive commands
 	 * (ADMIN, INFO, LIST, LUSERS, MOTD, STATS, VERSION)
 	 */
-	pace_wait = 10 seconds;
+	pace_wait = 2 seconds;
 
 	/* short motd: send clients a notice telling them to read the motd
 	 * instead of forcing a motd to clients who may simply ignore it.
@@ -740,9 +762,6 @@
 	/* glines: enable glines, network wide temp klines */
 	glines = yes;
 
-	/* gline time: the amount of time a gline will remain before exiring */
-	gline_time = 1 day;
-
 	/* idletime: the maximum amount of time a user may idle before
 	 * they are disconnected
 	 */
@@ -766,7 +785,7 @@
 	/* max targets: the maximum amount of targets in a single 
 	 * PRIVMSG/NOTICE.  set to 999 NOT 0 for unlimited.
 	 */
-	max_targets = 4;
+	max_targets = 8;
 
 	/* client flood: maximum number of lines in a clients queue before
 	 * they are dropped for flooding.
@@ -787,7 +806,7 @@
 	 * Use "custom" for the (in)famous Hybrid custom messages.
 	 * Use "standard" for the compiled in defaults.
 	 */
-	message_locale = "custom";
+	message_locale = "standard";
 
 	/* usermodes configurable: a list of usermodes for the options below
 	 *
@@ -806,23 +825,24 @@
 	 * +u - unauth     - See unauthorized client notices
 	 * +w - wallop     - See server generated WALLOPS
 	 * +x - external   - See remote server connection and split notices
-	 * +y - spy        - See LINKS, STATS, TRACE notices etc.
+	 * +y - spy        - See LINKS, STATS, TRACE notices etc. (if enabled)
 	 * +z - operwall   - See oper generated WALLOPS
 	 */
 	 
 	/* oper only umodes: usermodes only opers may set */
-	oper_only_umodes = bots, cconn, debug, full, skill, nchange, 
-                     rej, spy, external, operwall, locops, unauth;
+	oper_only_umodes = bots, cconn, debug, full, nchange, 
+                     rej, spy, operwall, locops, unauth;
 
 	/* oper umodes: default usermodes opers get when they /oper */
-	oper_umodes = locops, servnotice, operwall, wallop;
+	oper_umodes = full, skill, locops, servnotice, operwall, wallop,
+		external;
 
 	/* servlink path: path to 'servlink' program used by ircd to handle
 	 * encrypted/compressed server <-> server links.
 	 *
 	 * only define if servlink is not in same directory as ircd itself.
 	 */
-	#servlink_path = "/usr/local/ircd/bin/servlink";
+	#servlink_path = "bin/servlink";
 
 	/* default cipher: default cipher to use for cryptlink when none is
 	 * specified in connect block.
@@ -854,15 +874,15 @@
 	 * Offers protection against flooders who reconnect quickly.  
 	 * Set to 0 to disable.
 	 */
-	throttle_time = 10;
+	throttle_time = 0;
 };
 
 modules {
 	/* module path: paths to search for modules specified below and 
 	 * in /modload.
 	 */
-	path = "/usr/local/ircd/modules";
-	path = "/usr/local/ircd/modules/autoload";
+	path = "modules";
+	path = "modules/autoload";
 
 	/* module: the name of a module to load on startup/rehash */
 	#module = "some_module.so";
diff -uNrd ircd-hybrid-7.0/doc/example.efnet.conf anynet-3.0/doc/example.efnet.conf
--- ircd-hybrid-7.0/doc/example.efnet.conf	Sat May 31 03:30:25 2003
+++ anynet-3.0/doc/example.efnet.conf	Wed Dec 31 19:00:00 1969
@@ -1,957 +0,0 @@
-/* doc/example.efnet.conf - ircd-hybrid-7 EFnet Example configuration file
- *
- * $Id: example.efnet.conf,v 7.9.2.1 2003/05/31 07:30:25 lusky Exp $
- */
-
-/* IMPORTANT NOTES:
- *
- * class {} blocks MUST be specified before anything that uses them.  That
- * means they must be defined before auth {} and before connect {}.
- *
- * auth {} blocks MUST be specified in order of precedence.  The first one
- * that matches a user will be used.  So place spoofs first, then specials,
- * then general access, then restricted.
- *
- * Both shell style (#) and C style comments are supported.
- *
- * Files may be included by either:
- *        .include "filename"
- *        .include <filename>
- *
- * Times/durations are written as:
- *        12 hours 30 minutes 1 second
- *        
- * Valid units of time:
- *        month, week, day, hour, minute, second
- *
- * Valid units of size:
- *        megabyte/mbyte/mb, kilobyte/kbyte/kb, byte
- *
- * Sizes and times may be singular or plural.  
- */ 
-
-/* EFNET NOTE:
- * 
- * This configuration file is a BASIC configuration file for use
- * on EFnet.  You MUST still take the time to set this file up
- * properly.
- *
- * DISCLAIMER: This file was submitted by Disciple@EFnet and has
- *             since been modified by the Hybrid team.
- */
- 
- /* serverinfo {}:  Contains information about the server. (OLD M:) */
-serverinfo {
-	/* name: the name of our server */
-	name = "efnet.irc";
-
-	/* description: the description of our server.  '[' and ']' may not
-	 * be used here for compatibility with older servers.
-	 */
-	description = "ircd-hybrid-7 EFnet Server";
-
-	/* network info: the name and description of the network this server
-	 * is on.  Shown in the 005 reply and used with serverhiding.
-	 */
-	network_name = "EFnet";
-	network_desc = "Eris Free Network";
-
-	/* hub: allow this server to act as a hub and have multiple servers
-	 * connected to it.
-	 */
-	hub = no;
-
-	/* vhost: the IP to bind to when we connect outward to ipv4 servers.
-	 * This should be an ipv4 IP only.
-	 */
-	#vhost = "192.169.0.1";
-
-	/* vhost6: the IP to bind to when we connect outward to ipv6 servers.
-	 * This should be an ipv6 IP only.
-	 */
-	#vhost6 = "3ffe:80e8:546::2";
-
-	/* max clients: the maximum number of clients allowed to connect */
-	max_clients = 512;
-
-	/* rsa key: the path to the file containing our rsa key for cryptlink.
-	 *
-	 * Example command to store a 2048 bit RSA keypair in
-	 * rsa.key, and the public key in rsa.pub:
-	 * 
-	 * 	openssl genrsa -out rsa.key 2048
-	 *	openssl rsa -in rsa.key -pubout -out rsa.pub
-	 *	chown <ircd-user>.<ircd.group> rsa.key rsa.pub
-	 *	chmod 0600 rsa.key
-	 *	chmod 0644 rsa.pub
-	 */
-	#rsa_private_key_file = "/usr/local/ircd/etc/rsa.key";
-};
-
-/* admin {}: contains admin information about the server. (OLD A:) */
-admin {
-	name = "EFnet Admin";
-	description = "Main Server Administrator";
-	email = "<irc-admin@efnet.irc>";
-};
-
-/* logging {}: contains information about logfiles. */
-logging {
-	/* log level: the amount of detail to log in ircd.log.  The
-	 * higher, the more information is logged.  May be changed
-	 * once the server is running via /quote SET LOG.  Either:
-	 * L_CRIT, L_ERROR, L_WARN, L_NOTICE, L_TRACE, L_INFO or L_DEBUG
-	 */
-	log_level = L_INFO;
-};
-
-/* class {}: contain information about classes for users (OLD Y:) */
-class {
-	/* name: the name of the class.  classes are text now */
-	name = "users";
-
-	/* ping time: how often a client must reply to a PING from the
-	 * server before they are dropped.
-	 */
-	ping_time = 90 seconds;
-
-	/* number per ip: the number of users per host allowed to connect */
-	number_per_ip = 2;
-
-	/* max number: the maximum number of users allowed in this class */
-	max_number = 100;
-
-	/* sendq: the amount of data allowed in a clients queue before
-	 * they are dropped.
-	 */
-	sendq = 100 kbytes;
-};
-
-class {
-	name = "restricted";
-	ping_time = 90 seconds;
-	number_per_ip = 1;
-	max_number = 100;
-	sendq = 60kb;
-};
-
-class {
-	name = "opers";
-	/* contrary to seeming popular belief, setting ping time
-	 * higher for an oper is NOT doing them a favour.
-	 * Since if a link is dead its dead and it means
-	 * you have to use another nick long enough to kill the old one :-)
-	 * Its much better to use a fairly standard 90 second ping time
-	 */
-	ping_time = 90 seconds;
-	number_per_ip = 10;
-	max_number = 100;
-	sendq = 1 mbyte;
-};
-
-class {
-	name = "server";
-	/* Same thing here.  Its a fallacy to thing increasing
-	 * ping time for servers is a "good idea." all it leads to
-	 * is "ghosting" on one end. Not a good idea.
-	 */
-	ping_time = 90 seconds;
-
-	/* connectfreq: only used in server classes.  specifies the delay
-	 * between autoconnecting to servers.
-	 * 
-	 * Both comstud and I recommend 10 minutes a few years ago.
-	 * 15 minutes might be right now. The reason you don't want it too
-	 * low is, you make the servers reconnect too quickly with 
-	 * a large sendq, and they _will_ nick collide. badly. 5 minutes
-	 * IS way too short.
-	 */
-	connectfreq = 15 minutes;
-
-	/* max number: the amount of servers to autoconnect to */
-	max_number = 1;
-
-	/* sendq: On big nets this needs to be a reasonably large value
-  	 */
-	sendq = 15 megabytes;
-};
-
-/* listen {}: contain information about the ports ircd listens on (OLD P:) */
-listen {
-	/* port: the specific port to listen on.  if no host is specified
-	 * before, it will listen on all available IPs.
-	 *
-	 * ports are separated via a comma, a range may be specified using ".."
-	 */
-	
-	/* port: listen on all available IPs, ports 6665 to 6669 */
-	port = 6665 .. 6669;
-
-	/* host: set a specific IP/host the ports after the line will listen 
-	 * on.  This may be ipv4 or ipv6.
-	 */
-	host = "1.2.3.4";
-	port = 7000, 7001;
-
-	host = "3ffe:1234:a:b:c::d";
-        port = 7002;
-};
-
-/* auth {}: allow users to connect to the ircd (OLD I:) */
-auth {
-	/* user: the user@host allowed to connect.  multiple IPv4/IPv6 user 
-	 * lines are permitted per auth block.
-	 */
-	user = "*@172.16.0.0/12";
-	user = "*test@123D:B567:*";
-
-	/* password: an optional password that is required to use this block */
-	password = "letmein";
-	
-	/* spoof: fake the users host to be be this.  This is free-form,
-	 * just do everyone a favour and dont abuse it. (OLD I: = flag)
-	 */
-        spoof = "I.still.hate.packets";
-
-        /* spoof notice: enable spoofing notification to admins (default yes) */
-        spoof_notice = yes;
-
-	/* exceed limit: allow a user to exceed class limits (OLD I: > flag) */
-	exceed_limit = yes;
-
-	/* kline exempt: exempt this user from k/glines (OLD I: ^ flag) */
-	kline_exempt = yes;
-
-	/* gline exempt: exempt this user from glines (OLD I: _ flag) */
-	gline_exempt = yes;
-
-	/* no tilde: remove ~ from a user with no ident (OLD I: - flag) */
-	no_tilde = yes;
-	
-	/* class: the class the user is placed in */
-	class = "opers";
-};
-
-auth {
-	/* redirect: the server and port to redirect a user to.  A user does
-	 * not have to obey the redirection, the ircd just suggests to them
-	 * an alternative server.
-	 */
-	redirserv = "irc.fi";
-	redirport = 6667;
-	
-	user = "*.fi";
-
-	/* class: a class is required even though it is not used */
-	class = "users";
-};
-
-auth {
-	user = "*@*";
-	class = "users";
-	
-	/* restricted: stop the client sending mode changes */
-	#restricted = yes;
-
-	/* have ident: require the user has identd to connect (OLD I: + flag) */
-	have_ident = yes;
-};
-
-/* operator {}: defines ircd operators. (OLD O:)
- * ircd-hybrid no longer supports local operators, privileges are
- * controlled via flags.
- */
-operator {
-	/* name: the name of the oper */
-	name = "god";
-
-	/* user: the user@host required for this operator.  CIDR is not
-	 * supported.  multiple user="" lines are supported.
-	 */
-	user = "*god@*";
-	user = "*@127.0.0.1";
-
-	/* password: the password required to oper.  By default this will
-	 * need to be encrypted using 'mkpasswd'.  MD5 is supported.
-	 */
-	password = "crYpTpwH3r3"
-
-	/* rsa key: the public key for this oper when using Challenge.
-	 * A password should not be defined when this is used, see 
-	 * doc/challenge.txt for more information.
-	 */
-	#rsa_public_key_file = "/usr/local/ircd/etc/oper.pub";
-
-	/* class: the class the oper joins when they successfully /oper */
-	class = "opers";
-
-	/* privileges: controls the activities and commands an oper are 
-	 * allowed to do on the server.  All options default to no.
-	 * Available options:
-	 *
-	 * global_kill:  allows remote users to be /KILL'd (OLD 'O' flag)
-	 * remote:       allows remote SQUIT and CONNECT   (OLD 'R' flag)
-	 * kline:        allows KILL, KLINE and DLINE      (OLD 'K' flag)
-	 * unkline:      allows UNKLINE and UNDLINE        (OLD 'U' flag)
-	 * gline:        allows GLINE                      (OLD 'G' flag)
-	 * nick_changes: allows oper to see nickchanges    (OLD 'N' flag)
-	 *               via usermode +n
-	 * rehash:       allows oper to REHASH config      (OLD 'H' flag)
-	 * die:          allows DIE and RESTART            (OLD 'D' flag)
-	 * admin:        gives admin privileges.  admins
-	 *               may (un)load modules and see the
-	 *               real IPs of servers and spoofed
-         *               users IP.
-	 */
-	global_kill = yes;
-	remote = yes;
-	kline = yes;
-	unkline = yes;
-	gline = yes;
-	die = yes;
-	rehash = yes;
-	nick_changes = yes;
-	admin = yes;
-};
-
-/* connect {}: controls servers we connect to (OLD C:, N:, H:, L:) */
-connect {
-	/* name: the name of the server */
-	name = "irc.uplink.com";
-
-	/* host: the host or IP to connect to.  If a hostname is used it
-	 * must match the reverse dns of the server.
-	 */
-	host = "192.168.0.1";
-
-	/* passwords: the passwords we send (OLD C:) and accept (OLD N:).
-	 * The remote server will have these passwords reversed.
-	 */
-	send_password = "password";		# OLD C:
-	accept_password = "anotherpassword";	# OLD N:
-
-	/* encrypted: controls whether the accept_password above has been
-	 * encrypted.  (OLD CRYPT_LINK_PASSWORD now optional per connect)
-	 */
-	encrypted = no;
-
-	/* port: the port to connect to this server on (OLD P:) */
-	port = 6666;
-
-	/* hub mask: the mask of servers that this server may hub. Multiple
-	 * entries are permitted (OLD H:)
-	 */
-	hub_mask = "*";
-
-	/* leaf mask: the mask of servers this server may not hub.  Multiple
-	 * entries are permitted.  Useful for forbidding EU -> US -> EU routes.
-         * (OLD L:)	
-         */
-	#leaf_mask = "*.uk";
-
-	/* class: the class this server is in */
-	class = "server";
-
-	/* autoconnect: controls whether we autoconnect to this server or not,
-	 * dependent on class limits.
-	 */
-	autoconn = no;
-	
-	/* compressed: controls whether traffic is compressed via ziplinks.
-	 * By default this is disabled (OLD c: (lowercased))
-	 */
-	#compressed = yes;
-
-	/* lazylink: controls whether this server is a LazyLink.  LazyLink 
-	 * servers may NOT hub.  see doc/LazyLinks.as.implemented.txt
-	 *
-	 * EFnet Note: With this enabled, you download a connect burst
- 	 *             as it is needed, instead of all at once.  This
-	 *             could allow servers on much smaller lines (T1s)
-         *             to link a server. It also could allow a server
-	 *	       on a DoS'ed link to stay connected.
-	 *	       This makes client servers
-	 *	       cheaper to run. EFnet needs more client servers.
-	 */
-	#lazylink = no;
-
-	/* masking: the servername we pretend to be when we connect */
-	#fakename = "*.arpa";
-};
-
-connect {
-	name = "encrypted.auth.example";
-	host = "some.host.somewhere";
-	port = 6667;
-
-	/* cryptlink: enable full encryption for all data passing between our
-	 * server and this link and rsa authentication.
-	 */
-	cryptlink = yes;
-
-	/* rsa key: the path to the public keyfile of the server.  Used instead
-	 * of passwords.
-	 */
-	rsa_public_key_file = "etc/remote.server.keyfile";
-
-	/* cipher preference: set the preferred cipher for this link
-	 *
-	 * Available ciphers are:
-	 *      BF/168 BF/128 CAST/128 IDEA/128 RC5.16/128 
-	 *      RC5.12/128 RC5.8/128 3DES/168 DES/56
-	 *
-	 * NOTE:  Some ciphers may not be supported by your OpenSSL.
-	 *        Check the output from 'configure' for available ciphers.
-	 * 
-	 * NOTE2: To help you decide what cipher to use, tools/encspeed
-	 *        will show you approximately how fast each cipher is.
-	 *        However, blowfish is fast and secure, and is probably
-	 *        a good default for most situations.
-	 *
-	 * NOTE3: Default if none is set is BF/128
-	 *
-	 * The cipher *MUST* be the same in both directions.  If you
-	 * set a cipher preference, your uplink must set the same cipher,
-	 * else it will not link.
-	 */
-	#cipher_preference = "BF/168";
-};
-
-connect {
-        name = "ipv6.some.server";
-        host = "3ffd:dead:beef::1";
-        send_password = "password";
-        accept_password = "password";
-        port = 6666;
-
-	/* aftype: controls whether the connection uses "ipv4" or "ipv6".
-	 * Default is ipv4.
-	 */
-	aftype = ipv6;
-        class = "server";
-};
-
-/* shared {}: users that are allowed to remote kline (OLD U:) 
- *
- * EFnet Note: This can be effectively used for remote klines.
- *             Please note that there is no password authentication
- *             for users setting remote klines.  You must also be
- *             /oper'd in order to issue a remote kline. 
- */
-shared {
-	/* name: the server the user must be on to set klines.  If this is not
-	 * specified, the user will be allowed to kline from all servers.
-	 */
-	name = "irc2.some.server";
-
-	/* user: the user@host mask that is allowed to set klines.  If this is
-	 * not specified, all users on the server above will be allowed to set
-	 * a remote kline.
-	 */
-	user = "oper@my.host.is.spoofed";
-};
-
-/* kill {}: users that are not allowed to connect (OLD K:)
- * Oper issued klines will be added to the specified kline config
- */
-kill {
-	user = "bad@*.hacked.edu";
-	reason = "Obviously hacked account";
-};
-
-/* deny {}: IPs that are not allowed to connect (OLD D:) (before DNS/ident
- * lookup) Oper issued dlines will be added to the specified dline config
- */
-deny {
-	ip = "10.0.1.0/24";
-	reason = "Reconnecting vhosted bots";
-};
-
-/* exempt {}: IPs that are exempt from deny {} and Dlines. (OLD d:) 
- *
- * EFnet Note: exempt {} blocks are NOT hidden, so do NOT exempt
- *             EFnet server IP's.
- */
-exempt {
-	ip = "192.168.0.0/16";
-};
-
-/* resv {}: nicks and channels users may not use/join (OLD Q:) */
-resv {
-        /* reason: the reason for the proceeding resv's */
-        reason = "There are no services on this network";
-
-	/* resv: the nicks and channels users may not join/use */
-	nick = "nickserv";
-	nick = "chanserv";
-        nick = "operserv";
-        nick = "JUPES";
-        nick = "JUPE";
-        nick = "CH?NF?X"; 		# CHANFIX (services.int)
-        /* These are totally optional, but may be a good idea */
-	nick = "oper";
-	nick = "ircop";
-	nick = "op";
-	nick = "ident";
-	nick = "pass";
-	channel = "#jupedchan";
-
-	/* resv: wildcard masks are also supported in nicks only */
-	reason = "Clone bots";
-	nick = "clone*";
-};
-
-/* gecos {}:  The X: replacement, used for banning users based on their
- * "realname".  The action may be either:
- *      warn:   allow client to connect, but send message to opers
- *      reject: drop clients but also send message to opers.
- *      silent: silently drop clients who match.
- */
-gecos {
-	name = "*sex*";
-	reason = "Possible spambot";
-	action = warn;
-};
-
-gecos {
-	name = "sub7server";
-	reason = "Trojan drone";
-	action = reject;
-};
-
-gecos {
-	name = "*http*";
-	reason = "Spambot";
-	action = silent;
-};
-
-/* The channel block contains options pertaining to channels */
-channel {
-	/* invex: Enable/disable channel mode +I, a n!u@h list of masks
-	 * that can join a +i channel without an invite.
- 	 * 
-	 * EFNet Note: This should NOT be run on EFnet.	
-	 * N.B. This will not cause any desync problems at all
-	 * if accidentally left enabled, but should not be enabled on efnet.
-         */
-	use_invex = no;			# Don't enable this on EFnet
-
-	/* except: Enable/disable channel mode +e, a n!u@h list of masks
-	 * that can join a channel through a ban (+b).
-	 *
-         * EFNet Note: This should NOT be run on EFnet.
-         */
-	use_except = no;		# Don't enable this on EFnet
-
-        /* halfops: Enable/disable channel mode "+h <nick>", this allows
-	 * users to perform all channel functions except +/-o and kick
-	 * opped users.
- 	 *
-         * EFNet Note: This should NOT be run on EFnet.	
-         */
-        use_halfops = no;		# Don't enable this on EFnet
-
-	/* anonops: Enable/disable channel mode +a.  This hides the people
-	 * who are opped in the channel from people who are unopped.
-	 *
-	 * The ircd will 'sync' the users oplists when they become opped
-	 * or deopped by sending mode changes.  This can cause a flood and
-	 * could potentially be abused.
-  	 *
-	 * EFNet Note: This should NOT be run on EFnet.	
-         */
-	use_anonops = no;		# Don't enable this on EFnet
-
-        /* vchans: permit virtual channels, multiple copies of the same
-	 * channel name.  read doc/vchans.txt for more details
-	 *
-         * If you ./configure'd with --enable-efnet, the code for this
-         * feature will not be compiled into the ircd
-         *
-         * EFNet Note: This should NOT be run on EFnet. However
-	 * even if it was, it is completely transparent to the rest
-	 * of the network. vchans are just normal channels to the rest
-	 * of the network.
-         */
-        use_vchans = no;		# Don't enable this on EFnet
-
-	/* vchans oper only: only allow opers to create vchans via /cjoin */
-	vchans_oper_only = yes;
-
-	/* knock: Allows users to request an invite to a channel that
-	 * is locked somehow (+ikl).  If the channel is +p or you are banned
-	 * the knock will not be sent.
-	 *
-         * EFnet Note:  This seems to be used mostly by European servers
-	 *		and not North American ones.
-         *              Please feel free to disable this
-         *              if you do not want to run channel knock.
-	 *		channel knock allows an user to "/quote knock #channel"
-	 *		to ask for an invite. It is typically used in eu-efnet
-	 *		to ask for an invite to #eu-opers.
-	 *		An user who is banned will not have their knock
-	 *		sent to channel. It is paced, so knock will not
-	 *		a flood.
-         */
-	use_knock = yes;
-
-	/* knock delay: The amount of time a user must wait between issuing
-	 * the knock command.
-	 */
-	knock_delay = 1 minute;
-
-	/* knock channel delay: How often a knock to any specific channel
-	 * is permitted, regardless of the user sending the knock.
-	 */
-	knock_delay_channel = 1 minute;
-
-	/* max chans: The maximum number of channels a user can join/be on. */
-	max_chans_per_user = 25;
-
-        /* quiet on ban: stop banned people talking in channels. */
-        quiet_on_ban = yes;
-
-        /* max bans: maximum number of +b/e/I modes in a channel */
-        max_bans = 25;
-
-        /* splitcode: the ircd will check every 60s as to whether splitmode
-	 * should be disabled or not, so there may be a delay between a
-	 * netsplit ending and splitmode ending.
-	 *
-	 * both split users and split servers must be true to enter splitmode
-	 * 
-	 * you may force splitmode to be permanent by /quote set splitmode on
-	 */
-
-	/* split users: when the usercount is lower than this level, consider
-	 * ourselves split.  this must be set for automatic splitmode
-	 */
-	default_split_user_count = 10000;
-
-	/* split servers: when the servercount is lower than this, consider
-	 * ourselves split.  this must be set for automatic splitmode
-	 */
-	default_split_server_count = 10;
-
-	/* split no create: disallow users creating channels on split. */
-	no_create_on_split = no;
-
-	/* split: no join: disallow users joining channels at all on a split */
-	no_join_on_split = no;
-
-	/* oper pass resv: allow opers to over-ride RESVs on nicks/channels */
-	oper_pass_resv = yes;
-};
-
-
-/* The serverhide block contains the options regarding serverhiding */
-serverhide {
-	/* flatten links: this option will show all servers in /links appear
-	 * that they are linked to this current server
-  	 * 	
-         * EFnet Note:  While this is not a requirement on EFnet, it
-         *              may be a good idea. Except, its useless
-	 * 	        unless the entire net runs it.
- 	 */
-	flatten_links = yes;
-
-	/* links delay: how often to update the links file when it is
-	 * flattened.
-	 */
-	links_delay = 5 minutes;
-
-	/* hidden: hide this server from a /links output on servers that
-	 * support it.  this allows hub servers to be hidden etc.
-	 */
-        hidden = no;
-
-	/* disable hidden: prevent servers hiding themselves from a
-	 * /links ouput.
-	 */
-	disable_hidden = no;
-
-	/* hide servers: hide remote servernames everywhere and instead use
-	 * network_name and network_desc.
-	 */
-	hide_servers = no;
-
-	/* disable remote: disable users doing commands on remote servers */
-	disable_remote_commands = no;
-
-	/* disable local channels: prevent users from joining &channels.
-	 * This is extreme, but it is still a flaw in serverhide.  It will
-	 * however remove far more from users than it will give back in
-	 * security.
-	 */
-	disable_local_channels = no;
-};
-
-/* The general block contains many of the options that were once compiled
- * in options in config.h.  The general block is read at start time.
- */
-general {
-	/* floodcount: the default value of floodcount that is configurable
-	 * via /quote set floodcount.  This is the amount of lines a user
-	 * may send to any other user/channel in one second.
-	 */
-        default_floodcount = 10;
-
-	/* failed oper notice: send a notice to all opers on the server when 
-	 * someone tries to OPER and uses the wrong password, host or ident.
-	 */
-	failed_oper_notice = yes;
-
-	/* dots in ident: the amount of '.' characters permitted in an ident
-	 * reply before the user is rejected.
-	 */
-	dots_in_ident=0;
-
-	/* dot in ipv6: ircd-hybrid-6.0 and earlier will disallow hosts 
-	 * without a '.' in them.  this will add one to the end.  only needed
-	 * for older servers.
-	 */
-        dot_in_ip6_addr = no;
-        
-        /* min nonwildcard: the minimum non wildcard characters in k/d/g lines
-	 * placed via the server.  klines hand placed are exempt from limits.
-	 * wildcard chars: '.' '*' '?' '@'
-	 */
-	min_nonwildcard = 3;
-
-        /* max accept: maximum allowed /accept's for +g usermode */
-        max_accept = 20;
-
-	/* nick flood: enable the nickflood control code */
-	anti_nick_flood = yes;
-
-	/* nick flood: the nick changes allowed in the specified period */
-	max_nick_time = 20 seconds;
-	max_nick_changes = 5;
-
-        /* anti spam time: the minimum time a user must be connected before
-	 * custom quit messages are allowed.
-	 */
-        anti_spam_exit_message_time = 5 minutes;
-
-	/* ts delta: the time delta allowed between server clocks before
-	 * a warning is given, or before the link is dropped.  all servers
-	 * should run ntpdate/rdate to keep clocks in sync
-	 */
-	ts_warn_delta = 30 seconds;
-	ts_max_delta = 5 minutes;
-
-	/* client exit: prepend a users quit message with "Client exit: " */
-	client_exit = no;
-
-	/* kline reason: show the user the reason why they are k/d/glined 
-	 * on exit.  may give away who set k/dline when set via tcm.
-	 */
-	kline_with_reason = yes;
-
-	/* kline connection closed: make the users quit message on channels
-	 * to be "Connection closed", instead of the kline reason.
-	 */
-	kline_with_connection_closed = yes;
-
-	/* non redundant klines: flag and ignore redundant klines */
-	non_redundant_klines = yes;
-
-	/* warn no nline: warn opers about servers that try to connect but
-	 * we dont have a connect {} block for.  Twits with misconfigured 
-	 * servers can get really annoying with this enabled.
-	 */
-	warn_no_nline = yes;
-
-	/* stats o oper only: make stats o (opers) oper only */
-	stats_o_oper_only=yes;
-
-	/* stats P oper only: make stats P (ports) oper only */
-	stats_P_oper_only=yes;
-
-	/* stats i oper only: make stats i (auth {}) oper only. set to:
-	 *     yes:    show users no auth blocks, made oper only.
-	 *     masked: show users first matching auth block
-	 *     no:     show users all auth blocks.
-	 */
-	stats_i_oper_only=yes;
-
-	/* stats k/K oper only: make stats k/K (klines) oper only.  set to:
-	 *     yes:    show users no auth blocks, made oper only
-	 *     masked: show users first matching auth block
-	 *     no:     show users all auth blocks.
-	 */
-	stats_k_oper_only=yes;
-                                    
-	/* caller id wait: time between notifying a +g user that somebody
-	 * is messaging them.
-	 */
-	caller_id_wait = 1 minute;
-
-	/* pace wait simple: time between use of less intensive commands
-	 * (HELP, remote WHOIS, WHOWAS)
-	 */
-	pace_wait_simple = 1 second;
-
-	/* pace wait: time between more intensive commands
-	 * (ADMIN, INFO, LIST, LUSERS, MOTD, STATS, VERSION)
-	 */
-	pace_wait = 10 seconds;
-
-	/* short motd: send clients a notice telling them to read the motd
-	 * instead of forcing a motd to clients who may simply ignore it.
-	 */
-	short_motd = no;
-
-	/* ping cookies: require clients to respond exactly to a ping command,
-	 * can help block certain types of drones and FTP PASV mode spoofing.
-	 */
-	ping_cookie = no;
-
-	/* no oper flood: increase flood limits for opers. */
-	no_oper_flood = yes;
-
-	/* true no oper flood: completely eliminate flood limits for opers
-	 * and for clients with can_flood = yes in their auth {} blocks
-	 */
-	true_no_oper_flood = yes;
-
-	/* glines: enable glines, network wide temp klines 
-         *
-         * EFnet Note: This feature is required for European EFnet servers
-         *             and is used by several North American servers.  As
-         *             such, it has been left on by default.  If you
-         *             do not want your server to participate in G:Lines
-         *             you should disable this.  
-         */
-	glines = yes;
-
-	/* gline time: the amount of time a gline will remain before exiring */
-	gline_time = 1 day;
-
-	/* idletime: the maximum amount of time a user may idle before
-	 * they are disconnected
-	 */
-        idletime = 0;
-
-	/* maximum links: the maximum amount of servers to connect to for
-	 * connect blocks without a valid class.
-	 */
-	maximum_links = 1;
-
-	/* REMOVE ME.  The following line checks you've been reading. */
-	havent_read_conf = 1;
-	
-	/* logfiles: the logfiles to use for user connects, /oper uses,
-	 * and failed /oper.  These files must exist for logging to be used.
-	 */
-	fname_userlog = "logs/userlog";
-	fname_operlog = "logs/operlog";
-	fname_foperlog = "logs/foperlog";
-
-	/* max targets: the maximum amount of targets in a single 
-	 * PRIVMSG/NOTICE.  set to 999 NOT 0 for unlimited.
-	 */
-	max_targets = 4;
-
-	/* client flood: maximum number of lines in a clients queue before
-	 * they are dropped for flooding.
-	 */
-	client_flood = 20;
-
-        /* use help: whether an improved help system per command is available
-         * to users.  If this is disabled, users will just be shown a command
-         * list.
-         *
-         * EFNET NOTE: It is not recommended you enable this due to the method
-         * of reading help files.
-         */
-        use_help = no;
-
-	/* message locale: the default message locale if gettext() is enabled
-	 * and working.
-	 * Use "custom" for the (in)famous Hybrid custom messages.
-	 * Use "standard" for the compiled in defaults.
-	 */
-	message_locale = "standard";
-
-	/* usermodes configurable: a list of usermodes for the options below
-	 *
-	 * +b - bots       - See bot and drone flooding notices
-	 * +c - cconn      - Client connection/quit notices
-	 * +d - debug      - See debugging notices
-	 * +f - full       - See I: line full notices
-	 * +g - callerid   - Server Side Ignore (for privmsgs etc)
-	 * +i - invisible  - Not shown in NAMES or WHO unless you share a 
-	 *                   a channel
-	 * +k - skill      - See server generated KILL messages
-	 * +l - locops     - See LOCOPS messages
-	 * +n - nchange    - See client nick changes
-	 * +r - rej        - See rejected client notices
-	 * +s - servnotice - See general server notices
-	 * +u - unauth     - See unauthorized client notices
-	 * +w - wallop     - See server generated WALLOPS
-	 * +x - external   - See remote server connection and split notices
-	 * +y - spy        - See LINKS, STATS, TRACE notices etc.
-	 * +z - operwall   - See oper generated WALLOPS
-	 */
-	 
-	/* oper only umodes: usermodes only opers may set */
-	oper_only_umodes = bots, cconn, debug, full, skill, nchange, 
-                     rej, spy, external, operwall, locops, unauth;
-
-	/* oper umodes: default usermodes opers get when they /oper */
-	oper_umodes = locops, servnotice, operwall, wallop;
-
-	/* servlink path: path to 'servlink' program used by ircd to handle
-	 * encrypted/compressed server <-> server links.
-	 *
-	 * only define if servlink is not in same directory as ircd itself.
-	 */
-	#servlink_path = "/usr/local/ircd/bin/servlink";
-
-	/* default cipher: default cipher to use for cryptlink when none is
-	 * specified in connect block.
-	 */
-	#default_cipher_preference = "BF/168";
-
-	/* use egd: if your system does not have *random devices yet you
-	 * want to use OpenSSL and encrypted links, enable this.  Beware -
-	 * EGD is *very* CPU intensive when gathering data for its pool
-	 */
-	#use_egd = yes;
-
-	/* egdpool path: path to EGD pool. Not necessary for OpenSSL >= 0.9.7
-	 * which automatically finds the path.
-	 */
-	#egdpool_path = "/var/run/egd-pool";
-
-
-	/* compression level: level of compression for compressed links between
-	 * servers.  
-	 *
-	 * values are between: 1 (least compression, fastest)
-	 *                and: 9 (most compression, slowest).
-	 */
-	#compression_level = 6;
-
-	/* throttle time: the minimum amount of time between connections from
-	 * the same ip.  exempt {} blocks are excluded from this throttling.
-	 * Offers protection against flooders who reconnect quickly.  
-	 * Set to 0 to disable.
-	 * 
-         * EFnet Note: exempt {} blocks are NOT hidden, so do NOT exempt
-         *             EFnet server IP's. 
-         */
-	throttle_time = 0;
-};
-
-modules {
-	/* module path: paths to search for modules specified below and 
-	 * in /modload.
-	 */
-	path = "/usr/local/ircd/modules";
-	path = "/usr/local/ircd/modules/autoload";
-
-	/* module: the name of a module to load on startup/rehash */
-	#module = "some_module.so";
-};
diff -uNrd ircd-hybrid-7.0/doc/ircd.motd anynet-3.0/doc/ircd.motd
--- ircd-hybrid-7.0/doc/ircd.motd	Tue Dec 12 16:46:59 2000
+++ anynet-3.0/doc/ircd.motd	Wed Feb  4 01:33:10 2004
@@ -1 +1,2 @@
-This is ircd-hybrid MOTD replace it with something better
+Please replace this message of the day with something better.
+
diff -uNrd ircd-hybrid-7.0/doc/modes.txt anynet-3.0/doc/modes.txt
--- ircd-hybrid-7.0/doc/modes.txt	Sat Apr  5 13:40:44 2003
+++ anynet-3.0/doc/modes.txt	Wed Feb  4 01:47:25 2004
@@ -22,6 +22,7 @@
 +x - external   - See remote server connection and split notices
 +y - spy        - See LINKS, STATS (if configured), TRACE notices
 +z - operwall   - See oper generated WALLOPS
++S - SSL        - Connection is over SSL
 
 Channel Modes:
 
diff -uNrd ircd-hybrid-7.0/doc/operguide.txt anynet-3.0/doc/operguide.txt
--- ircd-hybrid-7.0/doc/operguide.txt	Sat Feb 23 23:45:02 2002
+++ anynet-3.0/doc/operguide.txt	Wed Dec 31 19:00:00 1969
@@ -1,368 +0,0 @@
-
-EFnet Oper Guide
-Last update: 02-21-2002
-Written and maintained by Riedel
-E-Mail: dennisv@vuurwerk.nl
-
- 1.  Commands you should know about
- 2.  The client of your choice
- 3.  Your primary responsibilities
- 4.  Re-routing
- 4.1 Re-routing other servers and remote connects
- 5.  Kills and klines
- 6.  Kill and K-Line requests
- 7.  Happy birthday!
- 8.  Security
- 9.  Know who your friends are
-10.  The TCM bot
-11.  Services 
-12.  G-Lines
-
-
-1. Commands you should know about
-
-  This is no longer covered here. IRCD-hybrid is changing too rapidly, so
-  this section would be outdated in no time ;) For an up-to-date version,
-  please download the latest hybrid at www.ircd-hybrid.org.
-
-
-2. The client of your choice
-
-  There are many IRC clients around for a wide variety of operating systems.
-  Being an IRC Operator doesn't *require* you to use a UNIX client, however
-  I personally prefer UNIX-based clients. If you're familiar with UNIX and
-  use UNIX for opering, I suggest ircII / epic. There are a lot of scripts
-  available for those two clients, and it's not that hard to write scripts
-  yourself to suite your needs. It is important that you know how to operate
-  your client, and familiarize yourself with the options and features. For
-  whatever client you chose this goes for any of them: You should be in
-  control of your client, instead of the client being in control of you.
-
-Resources :
-
-  www.mirc.co.uk	- mIRC (MS-Windows)
-  www.irchelp.org	- a variety of clients and scripts
-  ftp.blackened.com	- several UNIX based clients available
-
-
-3. Your primary responsibilities
-
-  As an IRC Operator, you're responsible for maintaining the server on a
-  real-time basis. You represent your server, and you represent the network.
-  Irresponsible / rude / offensive / stupid behavior may discredit your server
-  and the network. You should focus on the task you were chosen for...
-  maintainance.  Sounds simple, no? It means getting rid of users that abuse
-  the service, enforcing the server's policy and keeping the server linked.
-  Users will ask you questions, and expect you to know all the answers.. after
-  all, you're the oper!
-
-  Be prepared for users trying to fool you, sweet talk you into things you
-  don't want, lie and deceive. Most users are handling in good faith...
-  however, the abusers have learned how to manipulate opers. They have studied
-  the alien creature 'oper' for ages like biologists study animals. Be
-  paranoid, be curious and be suspicious. I can't stress the importancy of that
-  often enough.
-
-  Second priority has the network. You were not chosen to maintain the network
-  but you were chosen to maintain the server. However, you may want to be able
-  to reroute servers. If you see something broken, don't be afraid to fix it.
-  If you do, be sure you fix things and don't make it worse. Before you
-  step into routing, be sure you've familiarized yourself with the network's
-  topology, and be confident enough to perform such actions. (re)routing is
-  covered in the next chapter.
-
-  Opers on the network depend on a trusting relationship. You can usually take
-  the word from an oper. Other opers are considered -trusted-, however, there
-  are exceptions. Sometimes even opers lie to opers to get things done. Don't
-  be afraid to ask for proof of a certain statement, such as logs.
-  This doesn't mean you distrust the oper in question, but -you- and you alone
-  are responsible for your actions. You call the shots on your server, unless
-  your admin says otherwise.
-
-
-4. Re-routing
-
-  Re-routing is not hard, and it's not scary but it is important that you do it
-  right. The commands you'll use are SQUIT and CONNECT. First, a very simple
-  example. Let's say your server, irc.yourserver.com is lagged to it's uplink,
-  irc.uplink.com and you want to reroute your server. You have to think about
-  where you want your server to be linked, and you have to time your reroute.
-  An example topology :
-               
-irc.yourserver.com ---- irc.uplink.com
-                        |      |      \
-                        B      C      D
-                       / \
-                      E   F
-                         / \
-                        G   H --- O
-                      / | \ | \
-                     I  J K L  M
-                                \
-                                 N
-
-  In this case, you're uplinked by irc.uplink.com
-  irc.uplink.com also hubs B, C and D. Server B functions as hub for E and F;
-  F hubs G and H; H hubs L, M and O. G hubs I, J and K. M hubs N.
-  Your server is allowed to connect to server B, F and G. So you consider the
-  servers you're able to connect to. Is the lag caused by a server that uplinks
-  irc.uplink.com ? Use /stats ? irc.uplink.com to determine lag to the other
-  servers. If irc.uplink.com does not respond, the lag is to your uplink. If
-  so, you cannot be sure about the state of the other uplinks, so you'd have to
-  get on a remote server and determine lag by using /stats ? and /trace. For
-  example, you could connect to server N, and /trace yournick. Yournick, being
-  the nick on your server. You'll see which route it takes, and what the
-  problem server is. Example /trace output :
-
-S:[SERVER-N       ] V:[2.8/hybrid] U:[SERVER-M            ]
-S:[SERVER-M       ] V:[2.8/hybrid] U:[SERVER-H            ]
-S:[SERVER-H       ] V:[2.8/hybrid] U:[SERVER-F            ]
-S:[SERVER-F       ] V:[2.8/hybrid] U:[SERVER-B            ]
-S:[SERVER-B       ] V:[2.8/hybrid] U:[irc.uplink.com      ]
-S:[irc.uplink.com ] V:[2.8/hybrid] U:[irc.yourserver.com  ]
-
-  The trace doesn't complete... server-b announces irc.uplink.com, and
-  irc.uplink.com announces your server. Your server should return something
-  like :
-
-S:[irc.yourserver.] OPER [yournick!user@yourhost]
-
-  If it doesn't, we know the lag is only between yourserver and uplink.
-  Usually if there is lag between your server and your uplink, the send-queue
-  rises. This is not always the case. Sometimes your server can write perfectly
-  to your uplink, but not reverse. That is called one sided lag.
-
-  We pick server B to link to. It means we have to SQUIT and CONNECT.
-  To unlink from irc.uplink.com and connect to SERVER_B we'd type:
-  /quote SQUIT irc.uplink.com :reroute
-  /connect SERVER_B
-
-  we *DON'T* SQUIT irc.yourserver.com... and I'll try to explain why:
-  If we wanted to remove hub M from the network, and with it N, we'd issue
-  a SQUIT M. An SQUIT follows a path, relays the SQUIT request to each server
-  in that path. Finally it reaches server H, which is the hub for M. Server H
-  sees the SQUIT and drops the link to M.
-
-  Now a different situation, we want to separate yourserver, uplink, C and D
-  from the rest of the network, in order to reroute. We'd have to SQUIT server
-  B, since we want the -uplink- of server B (being irc.uplink.com) to drop the
-  link to server B.
-
-  If you'd SQUIT irc.yourserver.com, you ask yourserver.com to drop the link to
-  itself, which is impossible. If you SQUIT irc.uplink.com, you ask yourserver
-  to drop the link to uplink, which is what we want to do.
-
-  After the SQUIT and CONNECT, the new situation looks like this :
-
-                        irc.uplink.com
-                        |      |      \
-  irc.yourserver.com -- B      C      D
-                       / \
-                      E   F
-                         / \
-                        G   H --- O
-                      / | \ | \
-                     I  J K L  M
-                                \
-                                 N
-
-  If yourserver is a Hub, it makes the situation more complex, since your
-  actions have more impact.
-
-
-4.1 - Re-routing other servers and remote connects
-
-Example topology :
-
-                        irc.uplink.com
-                        |      |      \
-  irc.yourserver.com -- B      C      D
-                       / \
-                      E   F
-                         / \
-                        G   H --- O
-                      / | \ | \
-                     I  J K L  M
-                                \
-                                 N
-
-  Let's say, hub H is way lagged to F, but G to F is fine... we want to reroute
-  H, and stick H to G.
-
-  We'd do :
-
-  /quote SQUIT serverh :re-routing you babe
-  /connect serverh 6667 serverg
-
-  A global wallops will be sent :
-  !serverg! Remote CONNECT serverh 6667 from ItsMe
-
-  When re-routing, always give the server some time to prevent nick collides.
-  When there is lag, people will connect to another server. When you SQUIT and
-  CONNECT to fast, a lot of those clients will be collided. Also, stick to your
-  territory. How enthusiastic you may be, you cannot route the world. If you're
-  an oper on the US side, stick to the US side when re-routing. Needless to
-  say, if you're EU, keep it to EU ;)
-
-
-5. Kills and klines
-
-  As an oper, you're given the incredible power *cough* of KILL and KLINE.
-  /kill nick reason  disconnects a client from IRC with the specified reason.
-  A /quote kline *evil@*.dude.org :reason here  bans the user from your server.
-  Abusive kills and klines may draw attacks to your server, so always consider
-  if a kline or kill is deserved. If the server gets attacked after a valid
-  kill or kline, well.. tough luck. You should never be 'afraid' to kline
-  anyone on your server. If it's a good reason, make it so. Even if you know
-  it may cause the server to be attacked. Maybe good to think about is this:
-  - if /ignore solves the problem rather than a kick, /ignore
-  - kick if a ban is unneeded
-  - ban if a /kill is unwarranted for
-  - kill rather than kline if that solves the problem
-  - kline when a server ban is really needed.
-
-  You kline a user when you absolutely don't want this user to use the service
-  your server is providing.
-
-  Crosskills (killing users on another server) are another issue. Some admins
-  don't care if users get /kill'ed off their server, for any reason or no
-  reason at all... and other admins are very anal about it. A good way to go
-  (IMO) is to issue a KILL if there is an absolute need for the target user to
-  be disconnected. If there are active opers on that server, let them handle
-  it.  They'll be upset if you /kill a user off their server, without
-  contacting them.  /stats p irc.server.here shows the active opers on a
-  particular server. Some opers have multiple o-lines and are not watching all
-  sessions. If you can't find an active oper on a server, you can 
-  /quote operwall a request for opers from that server.
-
-  Ghost KILLs are another story, an often misunderstood one.
-  When you see a /KILL from an oper with the reason 'ghosted' they usually
-  KILL a client that's about to ping timeout. That is not what a ghost is!
-  To quote Dianora: "a ghost happens because a client misses being killed when
-  it should be. Its a race condition due to nick chasing". In other words,
-  Server X thinks client A has been KILLed, while server Y missed the KILL
-  for that client.
-
-
-6. Kill and K-Line requests
-
-  As previously mentioned, if an oper from another server contacts you and
-  requests a kill or a kline for a local client with a good reason, you can
-  usually trust this request. Opers depend on a trusting relationship. However,
-  since you're responsible for the kill or kline, it is not rude to ask for
-  proof. It depends on the oper making the request how thats interpreted, but
-  the way they respond to asking for proof tells more about them than about
-  you.
-
-  The more and longer you oper, how better you get to know the other opers.
-  You know who is honest, you'll know who are lying and deceiving. Before
-  you acquire this knowledge, you can merely rely on common sense and
-  instincts.  You'll probably make mistakes occasionally, and thats nothing to
-  be ashamed of.  Opers are - despite contrary believes - human.
-
-  Users occasionally will ask you to kill or kline a user/bot too. Some
-  requests are straight-forward and clear, others require you to be cautious. I
-  recommend to always investigate such requests, and when you're confident the
-  request is valid, issue the kill or kline.
-
-
-7. Happy birthday!
-
-  It is a custom on EFnet to birthday /kill opers of whom it is his/her
-  birthday.  Not all opers like this, but typically those opers don't let
-  others know about their birthday. You'll notice that the KILLS say a lot
-  about who likes who and who is friends with who.  Whether you want to
-  participate, is entirely up to you.
-
-
-8. Security
-
-  As with any privilege, you have to handle it cautiously and responsibly.
-  Be sure that your o/O line doesn't get compromised! Oper only from secure
-  hosts. You and only you should know your password. Don't share your oper
-  account, and make your oper password a UNIQUE one. If your o/O line gets
-  compromised, nasty things may/will happen. Imagine an oper with crosskill
-  capabilities who's operline gets 'hacked'... the results are often
-  disastrous and you will lose respect and trust from others. It can cause
-  your oper privileges to be revoked, or even the server to be (temporarily)
-  delinked.
-
-
-9. Know who your friends are
-
-  As an oper you will get a lot of users that want to be 'friends' with you.
-  Users offer you free* access to their *nix servers, ops in channels,
-  unlimited leech access to the biggest and fastest warez sites *gasp* and
-  more. They want favors in return. They say they don't but they truly want
-  something in return. They -expect- something in return. You could either
-  don't respond to such offers, or use them. The last option creates an even
-  more distorted image of opers and doesn't do any good for the user <-> oper
-  relationship.  Your *real* friends are usually the persons who were your
-  friends _before_ you acquired the extra privileges.
-
-
-10. The TCM Bot
-
-  A TCM bot can be a valuable tool for opers. It keeps record of all connected
-  clients, flags clients with multiple connections and has all sorts of other
-  useful commands. There are three different kind of TCM's in use on EFnet,
-  being OOMon, TCM-Dianora and TCM-Hybrid. Every one of them requires you to
-  log in to be able to access the privileged commands. On OOMon you DCC chat
-  the TCM bot and do '.auth yournick yourpass' where yournick is your oper
-  name in your o/O line. In TCM-Dianora and TCM-Hybrid you register with:
-  '.register yourpass', where yourpass is your password ;)
-  All TCM commands start with a period. If you forget the period, the text goes
-  into the 'partyline', where it is echoed to all connected opers.
-
-  Resources :	http://toast.blackened.com/oomon/help
-		http://www.db.net/~db/tcm.html
-
-
-11. Services
-
-  A recent addition to EFNet is Channel Fixer, aka ChanFix. This is an
-  automated service that re-ops clients on opless channels. There are a few
-  restrictions.  First, the channel has to be of significant size for ChanFix
-  to store it in its database. Second, it only logs static addresses.
-
-  How does it work? Periodically it stores information about the channel state
-  in its database, for every channel in there. On every 'run', a channel
-  operator gets one point. These scores make a top-5 of 'most frequent opped
-  clients'.  When a channel becomes opless, ChanFix will join and op the top-5
-  opped clients CURRENTLY IN THE CHANNEL.
-
-  Chanfix can be invoked manually by server administrators. /msg ChanFix
-  chanfix #channel is the command to do it. ChanFix will join, and treat the
-  channel as if it were opless. It lowers TS by one (resulting in a deop of
-  the entire channel) and re-ops the top-5 clients currently in the channel.
-  The Channel Fixer won't log or actively fix channels when there's a split of
-  significant size.  Needless to say, the chanfix command must be used with
-  caution.
-
-
-12. G-Lines
-
-  Oh yes! A G-Line section. Currently, a part of EFNet (EU-EFnet) has G-Lines
-  enabled. This was decided by the EU admin community and is now mandatory
-  within EU-EFnet. In order for a G-Line to be activated, three opers from
-  three different servers need to issue the _exact_ same G-Line. The reason
-  is not counted.
-
-  G-Lines work best when the EU side of EFNet is not fragmented. G-Lines
-  will, however, propogate through a Hybrid 6 hub (but not a CSr hub) even
-  if the hub server has G-Lines disabled. This propogation allows two halves
-  of EU-EFnet to have concurrent G-Lines set even when split by US hub servers.
-
-
-  Questions / Comments / Suggestions are welcome.
-  You can e-mail me: dennisv@vuurwerk.nl
-
-Best regards,
---
-Dennis "Riedel" Vink       ___~___  Email - dennisv@vuurwerk.nl
-Unix System Administrator  \  |  /  Phone - +31 23 5111111
-Vuurwerk Internet           '|.|'   PGP   - 0xD68A7AAB
-
-And on the seventh day, He exited from append mode.
-
-# $Id: operguide.txt,v 1.8 2002/02/24 04:45:02 wcampbel Exp $
diff -uNrd ircd-hybrid-7.0/doc/opermyth.txt anynet-3.0/doc/opermyth.txt
--- ircd-hybrid-7.0/doc/opermyth.txt	Wed Jan 24 09:58:44 2001
+++ anynet-3.0/doc/opermyth.txt	Wed Dec 31 19:00:00 1969
@@ -1,137 +0,0 @@
-
-Date: Thu, 30 Jul 1998 16:21:40-0700 (MST)
-To: operlist@the-project.org
-From: rayp@primenet.com (Ray Powers)
-Subject: The myths of opers....
-
-I've always wanted to write something like this.. Its half rant, half
-fact, so bear with it. Hopefully it will be worth reading.
-
-There's a lot of hate for opers for a lot of reasons. Some are directly
-oper related (i.e. 99% of us are colossal assholes), some are directly
-user related (i.e. 99% of you are raving lunatics), and some is just plain
-misconceptions. I'd like to take a minute to talk about part three in
-hopes of clearing a few things up. This will kind of be in a FAQ form,
-maybe you'll like it,  maybe not, but its worth a shot.
-
-Q: What can an oper on EFnet do.
-A: This is an EXACT list of what we can do:
-        1) /squit a server, separating it from the rest of the net
-        2) /die our server
-        3) /kill a user, this disconnects them from the server they are on
-        4) /kline a hostmask, this bans them from our server
-        5) /dline an ip, this bans them from our server, regardless of 
-           hostmask
-        6) See all invisible users on our server
-        7) Mass Msg/CTCP/notice a hostmask
-        8) Mass Msg/CTCP/notice a server
-        9) See and send Operwall/wallops notices
-
-That's it. We can see more server messages than you, but that's not the
-point.. The point to be shown here is very simple, *none* of these things
-have anything to do with channels. Which leads us to our next question.
-
-Q: What can opers *NOT* do, but keep being asked to anyways?
-A: We can *NOT*:
-        1) Enter a channel that is +i or +k without being invited or 
-           having the key
-        2) See who is inside a +s channel  
-        3) Op ourselves or op you on a channel (unless of course we are a 
-           channel op for that channel)
-        4) Tell you what XXXX's new nick is since they changed it to hide 
-           from you.
-        5) Deop someone for you on a channel (unless of course we are a 
-           channel op for that channel)
-
-Notice a trend, with the exception of 4, all of these are 100% channel
-related. EFnet is made so that opers have *NO* power of channels, for
-better or worse. If we don't help you with these requests, its not because
-we won't, its because we are completely incapable doing so. On the other
-hand....
-
-Q: What can opers do, but won't?
-A: This will be a bit differently done, because I figure I should explain 
-   why opers don't do these things, when they may normally make sense.
-        1) Why won't they kill somebody who has stolen your nick.
-              EFnet has gone on the basis of nicks not being owned, which is 
-           why there is no nickserv on EFnet.  Of course we see opers kill 
-           all the time for nicks, though, so it seems rather hypocrital, 
-           doesn't it?  
-              An oper who kills for his nick will tell you its because the 
-           other person was a bot, was juping his nick, or was imitating an 
-           oper.  It may be true, but it really comes down to the same 
-           feeling you get when your nick is taken "Hey! that's my name! I 
-           don't want that person using my name!" 
-              I personally, do not kill for nicks. If someone takes my nick, 
-           they can have it. Let them get my several hundred messages a day. 
-           :P  But the problem with the oper is this: How does an oper know 
-           that you are really the person that uses that nick, or are you 
-           the guy that wants to nick jupe that nick out from the real guy? 
-           Unless the oper knows you well, they don't.. And saying that 
-           people generally tell the truth means you haven't been on EFnet 
-           very long. 
-              I would prefer to think I am one of the more well respected 
-           people on the net and people still lie to me on a regular basis. 
-           So, the oper is stuck refusing to help because he can't tell who 
-           is who. Remember this line of reasoning, its going to be coming 
-           up a lot. :P
-        2) Why won't they kill that guy nuking/smurfing/ping -f'ing me?
-              This one is simple.  There is no way to prove that somebody is 
-           doing any of these things to you from an opers point of view. All 
-           logs are fakeable, and the oper has no way to firsthand prove its 
-           happening. Your best bet in this situation is to log what you can 
-           and complain loud and long to their ISPs.
-        3) Why won't they help me take my channel back?
-              There's a bunch of answers to this. First, it is popular 
-           opinion at EFnet that channels are not owned, and therefore, if 
-           you lose a channel, you should go make another one.  Notice I 
-           say popular instead of official, because EFnet has never had an 
-           "official" policy on much of anything. 
-              But more and more you see opers killing for takeovers, so why 
-           are they helping their channels and not yours.  
-              Well, first, let's say your channel was taken over, and is now 
-           +smtinlk. How exactly is the oper supposed to find out who is 
-           oped in the channel right now to mass kill them? Even if they do get 
-           all the nicks, they have to somehow manage to kill them all in 
-           one hit, or they'll all just op each other again and it will be 
-           fruitless. Or worse, they could have it all set up, and some 
-           other oper could kill them halfway through because they don't 
-           like mass-kills and it would be all ruined. 
-              Or, let's say the mass-kill goes off, then the channel is 
-           opless and generally speaking, chaos begins. People start 
-           mass-nuking or flooding the channel to clear it out, or just to 
-           be annoying. And there's still a 50/50 chance that takeover
-           people will get the channel back on a split and we'll have to try 
-           to do it all over again.  
-              If you're about to ask why they don't split their server,
-           the answer is very simple: We are not about to screw up roughly 
-           30,000 peoples chatting for your channel. Its rude. This of 
-           course is all based on the fact that we can prove its taken over, 
-           as per the conversation about nicks, we often can't.
-        4) But.. its obvious they took it from me! The topic says 
-           "Ha ha, we took your channel Rick!" for Pete's sake! And 
-           there's only One op, so you can kill him and get the channel 
-           back immediately!
-              This one is a bit more complex, but its really a personal 
-           call. That one op could be a rampant smurfpup with a penis so 
-           tiny he has no choice but to rampantly smurf and synflood anyone 
-           that gets in his way.  This is popularly known on irc as SPS, or 
-           Small Penis Syndrome.  In this case, if the oper does help you 
-           out, they could end up with their server being downed for a day 
-           or two, and it really isn't worth it for your channel, no 
-           offense.
-
-Keep in mind that this is all spoken from the perspective of someone who
-*DOES* help with channels when possible, but understands greatly the
-reasons not to, and judges each situation very carefully.
-
-That's the gist of the information I was trying to get across.  If you
-were cluefull enough to get on operlist, a lot of this may be common
-knowledge to you, but sometimes its good to step back and see why opers do
-what they do a lot of the time. 
-
-Hoping this is of value to SOMEONE....
-
-Ray Powers
-Monkster/MimePunk/PrimeMonk/PacMonk/MtgMonk/Ihavefartoomanynickstonickjupe
-
diff -uNrd ircd-hybrid-7.0/help/opers/umode anynet-3.0/help/opers/umode
--- ircd-hybrid-7.0/help/opers/umode	Tue Nov 20 20:41:05 2001
+++ anynet-3.0/help/opers/umode	Wed Feb  4 01:48:24 2004
@@ -16,7 +16,7 @@
        * +r     - Can see 'rejected' client notices.
        * +k     - Can see server kill messages.
        * +f     - Can see 'I-line is full' notices.
-       * +y     - Can see stats/links/admin requests to name a few.
+       * +y     - Can see stats/links/admin requests (if enabled).
        * +d     - Can see server debug messages.
        * +n     - Can see client nick changes.
        * +x     - Can see new server introduction and split messages.
diff -uNrd ircd-hybrid-7.0/include/channel.h anynet-3.0/include/channel.h
--- ircd-hybrid-7.0/include/channel.h	Fri Jan 31 18:00:25 2003
+++ anynet-3.0/include/channel.h	Mon Feb  2 03:04:34 2004
@@ -119,8 +119,9 @@
 #endif
 extern int     is_voiced (struct Channel *chptr,struct Client *who);
 
-#define find_user_link(list,who) who!=NULL?dlinkFind(list,who):NULL
-#define FIND_AND_DELETE(list,who) who!=NULL?dlinkFindDelete(list,who)
+/* rain - added parenthesis to these two macros */
+#define find_user_link(list,who) (who!=NULL?dlinkFind(list,who):NULL)
+#define FIND_AND_DELETE(list,who) (who!=NULL?dlinkFindDelete(list,who))
 
 extern void    add_user_to_channel(struct Channel *chptr,
 				   struct Client *who, int flags);
@@ -154,7 +155,8 @@
 
 #define HoldChannel(x)          (!(x))
 /* channel visible */
-#define ShowChannel(v,c)        (PubChannel(c) || IsMember((v),(c)))
+/* rain - channels are always visible to admins */
+#define ShowChannel(v,c)        (PubChannel(c) || IsMember((v),(c)) || IsAdmin(v))
 
 #define IsMember(who, chan) ((who && who->user && \
                 dlinkFind(&who->user->channel, chan)) ? 1 : 0)
diff -uNrd ircd-hybrid-7.0/include/client.h anynet-3.0/include/client.h
--- ircd-hybrid-7.0/include/client.h	Sun Feb 16 17:54:35 2003
+++ anynet-3.0/include/client.h	Mon Feb  2 01:31:03 2004
@@ -36,6 +36,7 @@
 #include "linebuf.h"
 #include "channel.h"
 #include "res.h"
+
 #ifdef IPV6
 #define HOSTIPLEN	53 /* sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255.ipv6") */
 #else
@@ -190,7 +191,7 @@
  * is on.
  */
 
-  dlink_list      vchan_map;
+  dlink_list        vchan_map;
 
 
   /* caller ID allow list */
@@ -200,9 +201,7 @@
   dlink_list	allow_list;	/* clients I'll allow to talk to me */
   dlink_list	on_allow_list;	/* clients that have =me= on their allow list*/
   
-  
   struct LocalUser *localClient;
-
 };
 
 struct LocalUser
@@ -312,6 +311,11 @@
   time_t last_knock;    /* time of last knock */
   unsigned long random_ping;
 
+  /* rain - for SSL client support */
+#ifdef SSL_CLIENT_SUPPORT
+  SSL              *ssl;
+  sslc_state       ssl_state;
+#endif
 };
 
 /*
@@ -340,6 +344,9 @@
 
 #define IsOper(x)		((x)->umodes & FLAGS_OPER)
 #define IsAdmin(x)		((x)->umodes & FLAGS_ADMIN)
+/* rain - added IsService and IsSSL */
+#define IsService(x)		((x)->umodes & FLAGS_SERVICE)
+#define IsSSL(x)		((x)->umodes & FLAGS_SSL)
 
 #define SetConnecting(x)        {(x)->status = STAT_CONNECTING; \
 				 (x)->handler = UNREGISTERED_HANDLER; }
@@ -422,6 +429,9 @@
 /* user information flags, only settable by remote mode or local oper */
 #define FLAGS_OPER         0x20000 /* Operator */
 #define FLAGS_ADMIN        0x40000 /* Admin on server */
+/* rain - added FLAGS_SERVICE and FLAGS_SSL */
+#define FLAGS_SERVICE	   0x80000 /* Service */
+#define FLAGS_SSL          0x100000 /* SSL connection */
 
 #define FLAGS_ALL	   FLAGS_SERVNOTICE
 
@@ -459,8 +469,9 @@
 #define FLAGS2_FLOODDONE        0x200000      /* Flood grace period has
                                                * been ended. */
 
+/* rain - added FLAGS_SERVICE and FLAGS_SSL to SEND_UMODES */
 #define SEND_UMODES  (FLAGS_INVISIBLE | FLAGS_OPER | FLAGS_WALLOP | \
-                      FLAGS_ADMIN)
+                      FLAGS_ADMIN | FLAGS_SERVICE | FLAGS_SSL)
 #define ALL_UMODES   (SEND_UMODES | FLAGS_SERVNOTICE | FLAGS_CCONN | \
                       FLAGS_REJ | FLAGS_SKILL | FLAGS_FULL | FLAGS_SPY | \
                       FLAGS_NCHANGE | FLAGS_OPERWALL | FLAGS_DEBUG | \
@@ -615,8 +626,9 @@
                                   struct Client*, const char*);
 
 
-extern void     count_local_client_memory(int *count, int *memory);
-extern void     count_remote_client_memory(int *count, int *memory);
+/* rain - made memory argument types u_long and removed param names */
+extern void     count_local_client_memory(int *, u_long *);
+extern void     count_remote_client_memory(int *, u_long *);
 
 extern struct Client* find_chasing (struct Client *, char *, int *);
 extern struct Client* find_person (char *);
diff -uNrd ircd-hybrid-7.0/include/defaults.h anynet-3.0/include/defaults.h
--- ircd-hybrid-7.0/include/defaults.h	Sat Nov 23 12:12:55 2002
+++ anynet-3.0/include/defaults.h	Tue Jan 27 17:54:27 2004
@@ -42,18 +42,21 @@
 
 /* class {} default values */
 #define DEFAULT_SENDQ 9000000           /* default max SendQ */
-#define PORTNUM 6667                    /* default outgoing portnum */
+/* rain - made default port 8888 from 6667 */
+#define PORTNUM 8888                    /* default outgoing portnum */
 #define DEFAULT_PINGFREQUENCY    120    /* Default ping frequency */
 #define DEFAULT_CONNECTFREQUENCY 600    /* Default connect frequency */
 
+/* rain - made the min warning 5s and the default max/warn 30/10 seconds */
 #define TS_MAX_DELTA_MIN      10        /* min value for ts_max_delta */
-#define TS_MAX_DELTA_DEFAULT  600       /* default for ts_max_delta */
-#define TS_WARN_DELTA_MIN     10        /* min value for ts_warn_delta */
-#define TS_WARN_DELTA_DEFAULT 30        /* default for ts_warn_delta */
+#define TS_MAX_DELTA_DEFAULT  45        /* default for ts_max_delta */
+#define TS_WARN_DELTA_MIN     5         /* min value for ts_warn_delta */
+#define TS_WARN_DELTA_DEFAULT 10        /* default for ts_warn_delta */
 
 /* ServerInfo default values */
-#define NETWORK_NAME_DEFAULT "EFnet"             /* default for network_name */
-#define NETWORK_DESC_DEFAULT "Eris Free Network" /* default for network_desc */
+/* rain - changed these defaults for anynet */
+#define NETWORK_NAME_DEFAULT "Anynet"             /* default for network_name */
+#define NETWORK_DESC_DEFAULT "Anynet IRC Network" /* default for network_desc */
 
 /* General defaults */
 #define MAXIMUM_LINKS_DEFAULT 1         /* default for maximum_links */
@@ -62,7 +65,8 @@
 #define CLIENT_FLOOD_MAX     2000
 #define CLIENT_FLOOD_MIN     10
 
-#define LINKS_DELAY_DEFAULT  300
+/* rain - unused */
+/* #define LINKS_DELAY_DEFAULT  300 */
 
 #define MAX_TARGETS_DEFAULT 4           /* default for max_targets */
 
diff -uNrd ircd-hybrid-7.0/include/event.h anynet-3.0/include/event.h
--- ircd-hybrid-7.0/include/event.h	Fri Sep 20 01:31:54 2002
+++ anynet-3.0/include/event.h	Mon Feb  2 00:47:26 2004
@@ -25,6 +25,9 @@
 #ifndef INCLUDED_event_h
 #define INCLUDED_event_h
 
+/* rain - for prototype below */
+struct Client;
+
 /*
  * How many event entries we need to allocate at a time in the block
  * allocator. 16 should be plenty at a time.
diff -uNrd ircd-hybrid-7.0/include/hash.h anynet-3.0/include/hash.h
--- ircd-hybrid-7.0/include/hash.h	Fri May 24 19:34:07 2002
+++ anynet-3.0/include/hash.h	Mon Feb  2 04:04:13 2004
@@ -30,21 +30,36 @@
  *
  * used in hash.c, s_debug.c
  */
+#ifndef SMALL_NET
 #define U_MAX 65536
+#else
+/* rain - added smaller hash size for SMALL_NET */
+#define U_MAX 256
+#endif
 
 /* 
  * Channel hash table size
  *
  * used in hash.c, s_debug.c
  */
+#ifndef SMALL_NET
 #define CH_MAX 16384
+#else
+/* rain - added smaller hash size for SMALL_NET */
+#define CH_MAX 128
+#endif
 
 /*
  * RESV hash table size
  *
  * used in hash.c
  */
+#ifndef SMALL_NET
 #define R_MAX 1024
+#else
+/* rain - added smaller hash size for SMALL_NET */
+#define R_MAX 16
+#endif
 
 struct Client;
 struct Channel;
diff -uNrd ircd-hybrid-7.0/include/ircdauth.h anynet-3.0/include/ircdauth.h
--- ircd-hybrid-7.0/include/ircdauth.h	Sat Jan  5 04:14:28 2002
+++ anynet-3.0/include/ircdauth.h	Thu Jan 22 14:11:28 2004
@@ -51,7 +51,11 @@
 int ConnectToIAuth();
 void IAuthQuery(struct Client *client);
 extern void BeginAuthorization(struct Client *);
+#ifdef __GNUC__ /* rain - __attribute__ to catch nasties */
+extern void SendIAuth(char *, ...) __attribute__((format(printf, 1, 2)));
+#else
 extern void SendIAuth(char *, ...);
+#endif
 
 
 /*
diff -uNrd ircd-hybrid-7.0/include/isupport.h anynet-3.0/include/isupport.h
--- ircd-hybrid-7.0/include/isupport.h	Wed Dec 31 19:00:00 1969
+++ anynet-3.0/include/isupport.h	Mon Feb  2 01:37:12 2004
@@ -0,0 +1,33 @@
+#ifndef INCLUDED_isupport_h
+#define INCLUDED_isupport_h
+
+#define ISUPPORT_STANDARD	"draft-brocklesby-03"
+
+#define MAX_ISUPPORT_LINES	3
+
+#define ISUP_FLAG_EXCEPTS	0x00000001
+#define ISUP_FLAG_INVEX		0x00000002
+#define ISUP_FLAG_VCHANS	0x00000004
+#define ISUP_FLAG_KNOCK		0x00000008
+#define ISUP_FLAG_NOLOCAL	0x00000010
+#define ISUP_FLAG_STARTTLS	0x00000020
+
+#define ISUP_NO_PROPAGATE	(void *)0
+#define ISUP_PROPAGATE		(void *)1
+
+struct isupport_s {
+	char line[MAX_ISUPPORT_LINES][BUFSIZE];
+	int lines;
+	int changed_lines;
+	int old_flags;
+	int old_maxchans;
+	int old_maxbans;
+	int old_maxtargets;
+	char *old_netname;
+};
+
+extern void isupport_init(void);
+extern void isupport_deinit(void);
+extern void isupport_send(struct Client *);
+
+#endif
diff -uNrd ircd-hybrid-7.0/include/linebuf.h anynet-3.0/include/linebuf.h
--- ircd-hybrid-7.0/include/linebuf.h	Sun Jul 14 16:15:38 2002
+++ anynet-3.0/include/linebuf.h	Mon Feb  2 01:39:05 2004
@@ -75,9 +75,16 @@
 extern void linebuf_donebuf(buf_head_t *);
 extern int linebuf_parse(buf_head_t *, char *, int, int);
 extern int linebuf_get(buf_head_t *, char *, int, int, int);
+#ifdef __GNUC__ /* rain - __attribute__ format to catch nasties */
+extern void linebuf_putmsg(buf_head_t *, const char *, va_list *,
+                           const char *, ...)
+                           __attribute__((format(printf, 4, 5)));
+#else
 extern void linebuf_putmsg(buf_head_t *, const char *, va_list *,
                            const char *, ...);
-extern int linebuf_flush(int, buf_head_t *);
+#endif
+/* rain - added data parameter to linebuf_flush for SSL client support */
+extern int linebuf_flush(int, buf_head_t *, void *);
 extern void linebuf_attach(buf_head_t *, buf_head_t *);
 extern void count_linebuf_memory(int *, u_long *);
 #endif
diff -uNrd ircd-hybrid-7.0/include/list.h anynet-3.0/include/list.h
--- ircd-hybrid-7.0/include/list.h	Thu Jul 11 20:43:20 2002
+++ anynet-3.0/include/list.h	Mon Feb  2 00:55:03 2004
@@ -35,8 +35,9 @@
 struct Ban;
 
 extern void initUser(void);
-extern void count_user_memory(int *count,int *user_memory_used);
-extern void count_links_memory(int *count,int *links_memory_used);
+/* rain - made memory_used arguments u_longs and removed parameter names */
+extern void count_user_memory(int *, u_long *);
+extern void count_links_memory(int *, u_long *);
 extern void outofmemory(void);
 extern void free_user (struct User *, struct Client *);
 extern dlink_node *make_dlink_node (void);
diff -uNrd ircd-hybrid-7.0/include/listener.h anynet-3.0/include/listener.h
--- ircd-hybrid-7.0/include/listener.h	Fri May 24 19:34:07 2002
+++ anynet-3.0/include/listener.h	Mon Feb  2 01:39:38 2004
@@ -45,9 +45,13 @@
   struct irc_inaddr addr;              /* virtual address or INADDR_ANY */
   struct DNSQuery   *dns_query;
   char             vhost[HOSTLEN + 1]; /* virtual name of listener */
+#ifdef SSL_CLIENT_SUPPORT /* rain - SSL client support */
+  int              is_ssl;             /* socket accepts SSL connections */
+#endif
 };
 
-extern void        add_listener(int port, const char* vaddr_ip);
+/* rain - added use_ssl parameter for SSL client support */
+extern void        add_listener(int port, const char* vaddr_ip, int use_ssl);
 extern void        close_listener(struct Listener* listener);
 extern void        close_listeners(void);
 extern const char* get_listener_name(const struct Listener* listener);
diff -uNrd ircd-hybrid-7.0/include/modules.h anynet-3.0/include/modules.h
--- ircd-hybrid-7.0/include/modules.h	Tue Nov 12 08:45:40 2002
+++ anynet-3.0/include/modules.h	Mon Feb  2 01:05:57 2004
@@ -27,7 +27,7 @@
 #include "config.h"
 #include "setup.h"
 #include "parse.h"
-
+#include "hook.h" /* rain - for hook_burst_channel */
 
 #if defined(HAVE_SHL_LOAD)
 #include <dl.h>
@@ -53,6 +53,14 @@
 	char path[MAXPATHLEN];
 };
 
+/* rain - predeclare dlfunc() if we don't have it */
+#if !defined(HAVE_SHL_LOAD) && !defined(HAVE_DLFUNC)
+typedef void (*__function_p)(void);
+
+__function_p
+dlfunc(void *myHandle, const char *functionName);
+#endif
+
 /* add a path */
 void mod_add_path(char *path);
 void mod_clear_paths(void);
@@ -97,6 +105,8 @@
 extern struct Message eob_msgtab;
 extern struct Message error_msgtab;
 extern struct Message gline_msgtab;
+/* rain - for new GLINE module */
+extern int gline_netburst(struct Client *);
 extern struct Message help_msgtab;
 extern struct Message info_msgtab;
 extern struct Message invite_msgtab;
@@ -154,6 +164,13 @@
 extern struct Message whowas_msgtab;
 extern struct Message get_msgtab;
 extern struct Message put_msgtab;
+/* rain - made these modules default */
+extern void tburst_init(void);
+extern struct Message map_msgtab;
+#ifdef SSL_CLIENT_SUPPORT
+/* rain - SSL client support */
+extern struct Message starttls_msgtab;
+#endif
 extern void load_all_modules(int check);
 
 #endif /* STATIC_MODULES */
diff -uNrd ircd-hybrid-7.0/include/numeric.h anynet-3.0/include/numeric.h
--- ircd-hybrid-7.0/include/numeric.h	Wed Nov 27 10:46:24 2002
+++ anynet-3.0/include/numeric.h	Mon Feb  2 01:41:28 2004
@@ -229,7 +229,7 @@
 #define RPL_ENDOFWHOIS       318
 #define RPL_WHOISCHANNELS    319
 /*      RPL_WHOIS_HIDDEN     320         Anothernet +h, ick! */
-/*	RPL_WHOISSPECIAL     320	unreal */
+#define RPL_WHOISSPECIAL     320 /* rain - matching unreal for SSL connections */
 #define RPL_LISTSTART        321
 #define RPL_LIST             322
 #define RPL_LISTEND          323
diff -uNrd ircd-hybrid-7.0/include/patchlevel.h anynet-3.0/include/patchlevel.h
--- ircd-hybrid-7.0/include/patchlevel.h	Wed Jun 11 00:38:40 2003
+++ anynet-3.0/include/patchlevel.h	Mon Feb  2 01:42:23 2004
@@ -23,5 +23,6 @@
  */
 
 #ifndef PATCHLEVEL
-#define PATCHLEVEL   "hybrid-7.0"
+/* rain - updated */
+#define PATCHLEVEL   "hybrid-7.0/anynet-3.0"
 #endif
diff -uNrd ircd-hybrid-7.0/include/s_bsd.h anynet-3.0/include/s_bsd.h
--- ircd-hybrid-7.0/include/s_bsd.h	Sun Jan 19 08:19:50 2003
+++ anynet-3.0/include/s_bsd.h	Thu Jan 22 00:42:45 2004
@@ -80,6 +80,9 @@
 extern int   comm_select(unsigned long);
 extern int   disable_sock_options(int);
 
+/* rain - add prototype */
+extern void  set_no_delay(int fd);
+
 #ifdef USE_SIGIO
 void do_sigio(int);
 void setup_sigio_fd(int);
diff -uNrd ircd-hybrid-7.0/include/s_conf.h anynet-3.0/include/s_conf.h
--- ircd-hybrid-7.0/include/s_conf.h	Sat Feb 15 19:22:21 2003
+++ anynet-3.0/include/s_conf.h	Mon Feb  2 05:23:20 2004
@@ -75,6 +75,7 @@
   struct Class *   c_class;     /* Class of connection */
   struct DNSQuery* dns_query;
   int              aftype;
+  time_t           ts;		/* rain - timestamp (bah.) */
 #ifdef HAVE_LIBCRYPTO
   char *           rsa_public_key_file;
   RSA *            rsa_public_key;
@@ -175,7 +176,8 @@
 
   char *logpath;
   char *operlog;
-  char *glinelog;
+/* rain - no longer relevant */
+/*  char *glinelog; */
 
   char *servlink_path;
   char *egdpool_path;
@@ -294,6 +296,10 @@
   int         specific_ipv4_vhost;
   int         specific_ipv6_vhost;
   struct      sockaddr_in dns_host;
+#ifdef SSL_CLIENT_SUPPORT /* rain - SSL client support */
+  int         ssl_status;
+#endif
+  time_t      gline_ts; /* rain - TS for most recent GLINE activity */
 };
 
 struct admin_info
diff -uNrd ircd-hybrid-7.0/include/s_debug.h anynet-3.0/include/s_debug.h
--- ircd-hybrid-7.0/include/s_debug.h	Fri May 24 19:34:08 2002
+++ anynet-3.0/include/s_debug.h	Thu Jan 22 14:08:35 2004
@@ -46,7 +46,11 @@
 extern void send_usage(struct Client*);
 extern void count_memory (struct Client *);
 
+#ifdef __GNUC__ /* rain - __attribute__ format to catch nasties */
+extern void debug(int, char *, ...) __attribute__((format(printf, 2, 3)));
+#else
 extern void debug(int, char *, ...);
+#endif
 
 #endif /* INCLUDED_s_debug_h */
 
diff -uNrd ircd-hybrid-7.0/include/s_log.h anynet-3.0/include/s_log.h
--- ircd-hybrid-7.0/include/s_log.h	Fri Sep  6 15:37:10 2002
+++ anynet-3.0/include/s_log.h	Thu Jan 22 14:09:34 2004
@@ -39,7 +39,12 @@
 extern void reopen_log(const char* filename);
 extern void set_log_level(int level);
 extern int  get_log_level(void);
+#ifdef __GNUC__ /* rain - __attribute__ format to catch nasties */
+extern void ilog(int priority, const char* fmt, ...)
+    __attribute__((format(printf, 2, 3)));
+#else
 extern void ilog(int priority, const char* fmt, ...);
+#endif
 extern const char *get_log_level_as_string(int level);
 
 extern void log_user_exit(struct Client *);
diff -uNrd ircd-hybrid-7.0/include/s_serv.h anynet-3.0/include/s_serv.h
--- ircd-hybrid-7.0/include/s_serv.h	Mon Jun  9 22:16:52 2003
+++ anynet-3.0/include/s_serv.h	Mon Feb  2 05:11:15 2004
@@ -110,6 +110,10 @@
 #define CIPHER_RC5_8    6
 #define CIPHER_RC5_12   7
 #define CIPHER_RC5_16   8
+/* rain - add AES */
+#define CIPHER_AES_128  9
+#define CIPHER_AES_192  10
+#define CIPHER_AES_256  11
 
 /* Cipher Capabilities */
 #define CAP_ENC_BF_128          0x00000001
@@ -121,6 +125,12 @@
 #define CAP_ENC_RC5_8_128       0x00000040
 #define CAP_ENC_RC5_12_128      0x00000080
 #define CAP_ENC_RC5_16_128      0x00000100
+/* rain - add BF/192, BF/256, AES/128, AES/192, and AES/256 */
+#define CAP_ENC_BF_192          0x00000200
+#define CAP_ENC_BF_256          0x00000400
+#define CAP_ENC_AES_128         0x00000800
+#define CAP_ENC_AES_192         0x00001000
+#define CAP_ENC_AES_256         0x00002000
 
 #define CAP_ENC_ALL             0xFFFFFFFF
 
@@ -168,19 +178,40 @@
 #else
 #define USE_CIPHER_RC5      0
 #endif
-
+/* rain - AES */
+#ifdef HAVE_EVP_AES_128_CFB
+#define USE_CIPHER_AES_128  1
+#else
+#define USE_CIPHER_AES_128  0
+#endif
+#ifdef HAVE_EVP_AES_192_CFB
+#define USE_CIPHER_AES_192  1
+#else
+#define USE_CIPHER_AES_192  0
+#endif
+#ifdef HAVE_EVP_AES_256_CFB
+#define USE_CIPHER_AES_256  1
+#else
+#define USE_CIPHER_AES_256  0
+#endif
 
 /* Only enable ciphers supported by available version of OpenSSL */
+/* rain - add AES and BF192/256 */
 #define CAP_ENC_MASK    \
-             (((USE_CIPHER_BF   * CAP_ENC_ALL) & CAP_ENC_BF_128)         | \
-              ((USE_CIPHER_BF_V * CAP_ENC_ALL) & CAP_ENC_BF_168)         | \
-              ((USE_CIPHER_CAST * CAP_ENC_ALL) & CAP_ENC_CAST_128)       | \
-              ((USE_CIPHER_DES  * CAP_ENC_ALL) & CAP_ENC_DES_56)         | \
-              ((USE_CIPHER_3DES * CAP_ENC_ALL) & CAP_ENC_3DES_168)       | \
-              ((USE_CIPHER_IDEA * CAP_ENC_ALL) & CAP_ENC_IDEA_128)       | \
-              ((USE_CIPHER_RC5  * CAP_ENC_ALL) & CAP_ENC_RC5_8_128)      | \
-              ((USE_CIPHER_RC5  * CAP_ENC_ALL) & CAP_ENC_RC5_12_128)     | \
-              ((USE_CIPHER_RC5  * CAP_ENC_ALL) & CAP_ENC_RC5_16_128))
+             (((USE_CIPHER_BF      * CAP_ENC_ALL) & CAP_ENC_BF_128)       | \
+              ((USE_CIPHER_BF_V    * CAP_ENC_ALL) & CAP_ENC_BF_168)       | \
+              ((USE_CIPHER_BF_V    * CAP_ENC_ALL) & CAP_ENC_BF_192)       | \
+              ((USE_CIPHER_BF_V    * CAP_ENC_ALL) & CAP_ENC_BF_256)       | \
+              ((USE_CIPHER_CAST    * CAP_ENC_ALL) & CAP_ENC_CAST_128)     | \
+              ((USE_CIPHER_DES     * CAP_ENC_ALL) & CAP_ENC_DES_56)       | \
+              ((USE_CIPHER_3DES    * CAP_ENC_ALL) & CAP_ENC_3DES_168)     | \
+              ((USE_CIPHER_IDEA    * CAP_ENC_ALL) & CAP_ENC_IDEA_128)     | \
+              ((USE_CIPHER_RC5     * CAP_ENC_ALL) & CAP_ENC_RC5_8_128)    | \
+              ((USE_CIPHER_RC5     * CAP_ENC_ALL) & CAP_ENC_RC5_12_128)   | \
+              ((USE_CIPHER_RC5     * CAP_ENC_ALL) & CAP_ENC_RC5_16_128)   | \
+              ((USE_CIPHER_AES_128 * CAP_ENC_ALL) & CAP_ENC_AES_128)      | \
+              ((USE_CIPHER_AES_192 * CAP_ENC_ALL) & CAP_ENC_AES_192)      | \
+              ((USE_CIPHER_AES_256 * CAP_ENC_ALL) & CAP_ENC_AES_256))
 
 #define IsCapableEnc(x, cap)    ((x)->localClient->enc_caps &   (cap))
 #define SetCapableEnc(x, cap)   ((x)->localClient->enc_caps |=  (cap))
diff -uNrd ircd-hybrid-7.0/include/send.h anynet-3.0/include/send.h
--- ircd-hybrid-7.0/include/send.h	Fri Feb 14 18:01:49 2003
+++ anynet-3.0/include/send.h	Mon Feb  2 01:43:43 2004
@@ -44,7 +44,8 @@
 struct dlink_list;
 
 /* The nasty global also used in s_serv.c for server bursts */
-unsigned long current_serial;
+/* rain - extern this instead of defining it multiple times */
+extern unsigned long current_serial;
 
 /* send.c prototypes */
 
diff -uNrd ircd-hybrid-7.0/include/serno.h anynet-3.0/include/serno.h
--- ircd-hybrid-7.0/include/serno.h	Wed Jun 11 00:38:43 2003
+++ anynet-3.0/include/serno.h	Wed Feb  4 13:30:56 2004
@@ -1 +1,2 @@
-#define SERIALNUM "20030611_2"
+/* rain - updated */
+#define SERIALNUM "20040203_1"
diff -uNrd ircd-hybrid-7.0/include/setup.h.in anynet-3.0/include/setup.h.in
--- ircd-hybrid-7.0/include/setup.h.in	Sat Feb 15 11:32:44 2003
+++ anynet-3.0/include/setup.h.in	Mon Feb  2 01:45:00 2004
@@ -101,6 +101,16 @@
 /* Define if you have the EVP_bf_cfb function.  */
 #undef HAVE_EVP_BF_CFB
 
+/* rain - added AES cryptlink support */
+/* Define if you have the EVP_aes_128_cfb function. */
+#undef HAVE_EVP_AES_128_CFB
+
+/* Define if you have the EVP_aes_192_cfb function. */
+#undef HAVE_EVP_AES_192_CFB
+
+/* Define if you have the EVP_aes_256_cfb function. */
+#undef HAVE_EVP_AES_256_CFB
+
 /* Define if you have the EVP_cast5_cfb function.  */
 #undef HAVE_EVP_CAST5_CFB
 
@@ -202,3 +212,9 @@
 
 /* Define if you have the z library (-lz).  */
 #undef HAVE_LIBZ
+
+#ifdef HAVE_LIBCRYPTO
+/* rain - SSL client support */
+/* Define if you want SSL client support. */
+#undef SSL_CLIENT_SUPPORT
+#endif
diff -uNrd ircd-hybrid-7.0/include/ssl_client.h anynet-3.0/include/ssl_client.h
--- ircd-hybrid-7.0/include/ssl_client.h	Wed Dec 31 19:00:00 1969
+++ anynet-3.0/include/ssl_client.h	Fri Jan 23 02:18:50 2004
@@ -0,0 +1,42 @@
+#ifndef INCLUDED_ssl_h
+#define INCLUDED_ssl_h
+
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+
+/* pre-declare this, we can't include client.h yet */
+struct Client;
+
+typedef enum {
+	SSLC_STATE_NONE,
+	SSLC_STATE_HANDSHAKE,
+	SSLC_STATE_CONNECTED,
+	SSLC_STATE_STARTTLS,
+	SSLC_STATE_DEAD
+} sslc_state;
+
+#define SSLC_HANDSHAKE_NOERROR		0
+#define SSLC_HANDSHAKE_INVALID_PARAM	-1
+#define SSLC_HANDSHAKE_NEW_FAIL		-2
+#define SSLC_HANDSHAKE_SETFD_FAIL	-3
+#define SSLC_HANDSHAKE_SSLERROR		-4
+#define SSLC_HANDSHAKE_ACCEPT_FAIL	-5
+
+#define SSLC_STAT_NONE			0x00
+#define SSLC_STAT_KEY_PUBLIC		0x01
+#define SSLC_STAT_KEY_PRIVATE		0x02
+#define SSLC_STAT_KEY_BOTH		(SSLC_STAT_KEY_PUBLIC | SSLC_STAT_KEY_PRIVATE)
+#define SSLC_STAT_STARTTLS		0x04
+#define SSLC_STAT_STARTTLS_OK		(SSLC_STAT_KEY_BOTH | SSLC_STAT_STARTTLS)
+
+extern void SSLC_CTX_init(void);
+extern void SSLC_CTX_deinit(void);
+extern int SSLC_handshake(struct Client *);
+extern int SSLC_write(struct Client *, const void *, int);
+extern int SSLC_read(struct Client *, void *, int);
+extern void SSLC_shutdown(struct Client *);
+extern void SSLC_CTX_deinit(void);
+extern const char *SSLC_cipherinfo(struct Client *, int);
+extern void SSLC_CertificateFile(const char *);
+extern void SSLC_PrivateKeyFile(const char *);
+#endif
diff -uNrd ircd-hybrid-7.0/include/stdinc.h anynet-3.0/include/stdinc.h
--- ircd-hybrid-7.0/include/stdinc.h	Fri May 24 19:39:13 2002
+++ anynet-3.0/include/stdinc.h	Mon Feb  2 01:45:43 2004
@@ -99,3 +99,8 @@
 #ifdef VMS
 #include <sys/ioctl.h>
 #endif
+
+/* rain - SSL client support */
+#ifdef SSL_CLIENT_SUPPORT
+#include "ssl_client.h"
+#endif
diff -uNrd ircd-hybrid-7.0/messages/ayb.po anynet-3.0/messages/ayb.po
--- ircd-hybrid-7.0/messages/ayb.po	Sat Dec 15 15:35:12 2001
+++ anynet-3.0/messages/ayb.po	Mon Feb  2 02:41:47 2004
@@ -3,6 +3,7 @@
 # David Taylor <davidt@yadt.co.uk>, 2000.
 #
 #, fuzzy
+# rain - added charset and encoding to suppress warning
 msgid	""
 msgstr	"Project-Id-Version: ircd-hybrid-7\n"
 	"POT-Creation-Date: 2001-07-01 21:52-0700\n"
@@ -10,8 +11,8 @@
 	"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 	"Language-Team: LANGUAGE <LL@li.org>\n"
 	"MIME-Version: 1.0\n"
-	"Content-Type: text/plain; charset=CHARSET\n"
-	"Content-Transfer-Encoding: ENCODING\n"
+	"Content-Type: text/plain; charset=US-ASCII\n"
+	"Content-Transfer-Encoding: 7bit\n"
 
 #: ../src/messages.tab:24
 #, c-format
@@ -30,7 +31,7 @@
 
 #: ../src/messages.tab:27
 #, c-format
-msgid	":%s 004 %s %s %s oiwszcerkfydnxbaugl biklmnopstveIha bkloveIh"
+msgid	":%s 004 %s %s %s oiwszcerkfydnxbauglS biklmnopstveIha bkloveIh"
 msgstr	""
 
 #: ../src/messages.tab:28
diff -uNrd ircd-hybrid-7.0/messages/custom.po anynet-3.0/messages/custom.po
--- ircd-hybrid-7.0/messages/custom.po	Sat Dec 15 15:35:12 2001
+++ anynet-3.0/messages/custom.po	Mon Feb  2 02:41:47 2004
@@ -3,6 +3,7 @@
 # David Taylor <davidt@yadt.co.uk>, 2000.
 #
 #, fuzzy
+# rain - added charset and encoding to suppress warning
 msgid	""
 msgstr	"Project-Id-Version: ircd-hybrid-7\n"
 	"POT-Creation-Date: 2001-07-01 21:52-0700\n"
@@ -10,8 +11,8 @@
 	"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 	"Language-Team: LANGUAGE <LL@li.org>\n"
 	"MIME-Version: 1.0\n"
-	"Content-Type: text/plain; charset=CHARSET\n"
-	"Content-Transfer-Encoding: ENCODING\n"
+	"Content-Type: text/plain; charset=US-ASCII\n"
+	"Content-Transfer-Encoding: 7bit\n"
 
 #: ../src/messages.tab:24
 #, c-format
@@ -30,7 +31,7 @@
 
 #: ../src/messages.tab:27
 #, c-format
-msgid	":%s 004 %s %s %s oiwszcerkfydnxbaugl biklmnopstveIha bkloveIh"
+msgid	":%s 004 %s %s %s oiwszcerkfydnxbauglS biklmnopstveIha bkloveIh"
 msgstr	""
 
 #: ../src/messages.tab:28
diff -uNrd ircd-hybrid-7.0/modules/Makefile.in anynet-3.0/modules/Makefile.in
--- ircd-hybrid-7.0/modules/Makefile.in	Sun Jun 16 12:31:25 2002
+++ anynet-3.0/modules/Makefile.in	Thu Jan 22 12:21:11 2004
@@ -76,6 +76,7 @@
   m_llnick.c \
   m_locops.c \
   m_lusers.c \
+  m_map.c \
   m_motd.c \
   m_names.c \
   m_nburst.c \
@@ -91,6 +92,7 @@
   m_set.c \
   m_stats.c \
   m_svinfo.c \
+  m_tburst.c \
   m_testline.c \
   m_time.c \
   m_topic.c \
@@ -103,7 +105,8 @@
   m_wallops.c \
   m_who.c \
   m_whois.c \
-  m_whowas.c 
+  m_whowas.c \
+  @M_STARTTLS_C@
 
 ALL_SRCS = $(CORE_SRCS) \
            $(SRCS)
diff -uNrd ircd-hybrid-7.0/modules/core/m_kick.c anynet-3.0/modules/core/m_kick.c
--- ircd-hybrid-7.0/modules/core/m_kick.c	Sat Feb  1 15:12:24 2003
+++ anynet-3.0/modules/core/m_kick.c	Sun Sep 14 11:24:16 2003
@@ -127,7 +127,7 @@
     }
 #endif
 
-  if (!IsServer(source_p) && !is_any_op(chptr, source_p) ) 
+  if (!IsServer(source_p) && !is_any_op(chptr, source_p) && !IsService(source_p))
     { 
       /* was a user, not a server, and user isn't seen as a chanop here */
       
@@ -184,7 +184,7 @@
       return;
     }
 
-  if (IsMember(who, chptr))
+  if (IsMember(who, chptr) || IsService(who))
     {
       /* half ops cannot kick other halfops on private channels */
 #ifdef HALFOPS
diff -uNrd ircd-hybrid-7.0/modules/core/m_message.c anynet-3.0/modules/core/m_message.c
--- ircd-hybrid-7.0/modules/core/m_message.c	Sun Apr  6 12:47:37 2003
+++ anynet-3.0/modules/core/m_message.c	Wed Feb  4 16:36:09 2004
@@ -920,7 +920,8 @@
 		 me.name, source_p->name, command, nick, nick);
       return;
     }
-      
+
+#if 0 /* rain - we allow sending to the entire net */      
     if ((s = strrchr(nick, '.')) == NULL)
     {
       sendto_one(source_p, form_str(ERR_NOTOPLEVEL),
@@ -936,6 +937,7 @@
                  me.name, source_p->name, nick);
       return;
     }
+#endif
     
     sendto_match_butone(IsServer(client_p) ? client_p : NULL, source_p,
                         nick + 1,
diff -uNrd ircd-hybrid-7.0/modules/core/m_quit.c anynet-3.0/modules/core/m_quit.c
--- ircd-hybrid-7.0/modules/core/m_quit.c	Fri Feb 14 18:01:53 2003
+++ anynet-3.0/modules/core/m_quit.c	Thu Jan 22 03:30:46 2004
@@ -76,9 +76,9 @@
   if (ConfigFileEntry.client_exit && comment[0])
     {
 #ifndef VMS
-      snprintf(reason, TOPICLEN, "Quit: %s", comment);
+      snprintf(reason, TOPICLEN, "\"%s\"", comment);
 #else
-      sprintf(reason, "Quit: %s", comment);
+      sprintf(reason, "\"%s\"", comment);
 #endif
       comment = reason;
     }
diff -uNrd ircd-hybrid-7.0/modules/m_cryptlink.c anynet-3.0/modules/m_cryptlink.c
--- ircd-hybrid-7.0/modules/m_cryptlink.c	Sat May 31 03:30:31 2003
+++ anynet-3.0/modules/m_cryptlink.c	Mon Feb  2 01:47:36 2004
@@ -494,7 +494,7 @@
                                   char *key)
 {
   char *name;
-  unsigned char *tmp, *out;
+  char *tmp, *out; /* rain - made signed and casted to unsigned below */
   int len;
   int decoded_len;
 
@@ -503,7 +503,8 @@
   name = parv[2];
 
   /* parv[2] contains encrypted auth data */
-  if ( !(decoded_len = unbase64_block((char **)&tmp, parv[3],
+  /* rain - don't cast anymore */
+  if ( !(decoded_len = unbase64_block(&tmp, parv[3],
                                       strlen(parv[3]))) )
   {
     cryptlink_error(client_p, "SERV",
@@ -525,7 +526,8 @@
   }
   out = MyMalloc(RSA_size(ServerInfo.rsa_private_key));
 
-  len = RSA_private_decrypt(decoded_len, tmp, out,
+  /* rain - cast to unsigned now */
+  len = RSA_private_decrypt(decoded_len, (unsigned char *)tmp, out,
                             ServerInfo.rsa_private_key,
                             RSA_PKCS1_PADDING );
 
diff -uNrd ircd-hybrid-7.0/modules/m_gline.c anynet-3.0/modules/m_gline.c
--- ircd-hybrid-7.0/modules/m_gline.c	Thu Apr 10 23:41:40 2003
+++ anynet-3.0/modules/m_gline.c	Wed Feb  4 13:20:44 2004
@@ -1,786 +1,322 @@
 /*
- *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
- *  m_gline.c: Votes towards globally banning a mask.
- *
- *  Copyright (C) 2002 by the past and present ircd coders, and others.
+ * m_gline.c: Server-only, persistent (sent in burst) GLINE support
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
+ * Copyright (c) 2004  Ben Winslow.
+ * All rights reserved.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    the above paragraph (the one permitting redistribution), this list of
+ *    conditions and the following disclaimer in the documentation and/or
+ *    other materials provided with the distribution.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
+ * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
- *  USA
+ * $Id$
+ */
+
+/*
+ * Server GLINE protocol:
  *
- *  $Id: m_gline.c,v 1.85.2.1 2003/04/11 03:41:40 lusky Exp $
+ * Add:				GLINE +user@host TS LENGTH :reason
+ * Remove:			GLINE -user@host TS :reason
+ * Netburst:		GLINE @ TS
+ * Netburst end:	GLINE $ TS
  */
 
 #include "stdinc.h"
-#include "tools.h"
+#include "msg.h"
 #include "handlers.h"
-#include "s_gline.h"
-#include "channel.h"
+#include "s_log.h"
 #include "client.h"
-#include "common.h"
-#include "config.h"
-#include "irc_string.h"
-#include "ircd.h"
-#include "hostmask.h"
-#include "numeric.h"
-#include "fdlist.h"
-#include "s_bsd.h"
 #include "s_conf.h"
-#include "s_misc.h"
-#include "scache.h"
-#include "send.h"
-#include "msg.h"
-#include "fileio.h"
 #include "s_serv.h"
-#include "hash.h"
+#include "s_gline.h"
+#include "common.h"
+#include "send.h"
 #include "parse.h"
-#include "modules.h"
 #include "list.h"
+#include "hook.h"
+#include "modules.h"
 
-#define GLINE_NOT_PLACED 0
-#define GLINE_ALREADY_VOTED -1
-#define GLINE_PLACED 1
-
-/* internal functions */
-static void set_local_gline(
-                            const char *oper_nick,
-                            const char *oper_user,
-                            const char *oper_host,
-                            const char *oper_server,
-                            const char *user,
-                            const char *host,
-                            const char *reason);
-
-static void log_gline_request(const char*,const char*,const char*,
-                              const char* oper_server,
-                              const char *,const char *,const char *);
-
-static void log_gline(struct Client *,struct gline_pending *,
-                      const char *, const char *,const char *,
-                      const char* oper_server,
-                      const char *,const char *,const char *);
-
-
-static int check_majority_gline(struct Client *source_p,
-				const char *oper_nick,
-				const char *oper_user,
-				const char *oper_host,
-				const char *oper_server,
-				const char *user, const char *host,
-				const char *reason);
-
-static void add_new_majority_gline(const char *, const char *, const char *,
-                                   const char *, const char *, const char *,
-                                   const char *);
-
-static int check_wild_gline(char *, char *);
-static int invalid_gline(struct Client *, char *, char *, char *);
-		       
-static void ms_gline(struct Client*, struct Client*, int, char**);
-static void mo_gline(struct Client*, struct Client*, int, char**);
+static void ms_gline(struct Client *, struct Client *, int, char *[]);
+static void gline_add(struct Client *, char *, time_t, time_t, const char *);
+static void gline_remove(struct Client *, char *, time_t, const char *);
+static void gline_got_ts(struct Client *, time_t, int);
+#ifdef STATIC_MODULES
+int gline_netburst(struct Client *);
+#else
+static int gline_netburst(struct Client *);
+#endif
+static void gline_list_clear(void);
+static void gline_list_send(struct Client *);
+static int gline_find(const char *, const char *);
 
 struct Message gline_msgtab = {
-    "GLINE", 0, 0, 3, 0, MFLG_SLOW, 0,
-      {m_unregistered, m_not_oper, ms_gline, mo_gline}
+	"GLINE", 0, 0, 3, 5, 0, 0,
+		{ m_unregistered, m_ignore, ms_gline, m_ignore }
 };
 
 #ifndef STATIC_MODULES
-
-void
-_modinit(void)
+void _modinit(void)
 {
-    mod_add_cmd(&gline_msgtab);
+	mod_add_cmd(&gline_msgtab);
+	hook_add_hook("burst", (hookfn *)gline_netburst);
 }
 
-void
-_moddeinit(void)
+void _moddeinit(void)
 {
-  mod_del_cmd(&gline_msgtab);
+	hook_del_hook("burst", (hookfn *)gline_netburst);
+	mod_del_cmd(&gline_msgtab);
 }
 
-const char *_version = "$Revision: 1.85.2.1 $";
+const char *_version = "$Revision: 1.0 $";
 #endif
+
 /*
- * mo_gline()
+ * ms_gline: handle a GLINE command from a server
  *
- * inputs       - The usual for a m_ function
- * output       -
- * side effects -
+ * notes: parv[1] may be modified
  *
- * Place a G line if 3 opers agree on the identical user@host
- * 
- */
-/* Allow this server to pass along GLINE if received and
- * GLINES is not defined.
+ * parv[0] - originating server
+ * parv[1] - [+-]user@host, @, or $
+ * parv[2] - TS
+ * parv[3] - length (+), reason (-)
+ * parv[4] - reason (+)
  *
+ * GLINEs from servers that are neither hubs nor listed in a U: line will
+ * be dropped (and a warning issued)
  */
-
-static void
-mo_gline(struct Client *client_p, struct Client *source_p,
-	 int parc, char *parv[])
+void ms_gline(struct Client *client_p, struct Client *source_p, int parc, char *parv[])
 {
-  char *user = NULL;
-  char *host = NULL;	              /* user and host of GLINE "victim" */
-  const char *reason = NULL;          /* reason for "victims" demise */
-  char tempuser[USERLEN + 2];
-  char temphost[HOSTLEN + 1];
+	time_t ts, len;
 
-  if (!ConfigFileEntry.glines)
-  {
-    sendto_one(source_p,":%s NOTICE %s :GLINE disabled",me.name,parv[0]);  
-    return;
-  }
+	if (!IsCapable(client_p, CAP_HUB) &&
+		!find_u_conf(client_p->name, NULL, NULL)) {
+		
+		ilog(L_WARN, "Received GLINE from non-hub/non-shared server %s: %s",
+			client_p->name, parv[1]);
+		sendto_realops_flags(FLAGS_ALL, L_ALL, "Received G-LINE from non-hub/non-shared server %s: %s",
+			client_p->name, parv[1]);
 
-  if (!IsOperGline(source_p))
-  {
-    sendto_one(source_p,
-	       ":%s NOTICE %s :You need gline = yes;",me.name,parv[0]);
-    return;
-  }
-			
-  if ((host = strchr(parv[1], '@')) || *parv[1] == '*')
-  {
-    /* Explicit user@host mask given */
-    
-    if(host != NULL)	/* Found user@host */
-    {
-      user = parv[1];   /* here is user part */
-      *(host++) = '\0'; /* and now here is host */
+		return;
+	}
 
-      /* gline for "@host", use *@host */
-      if(*user == '\0')
-	user = "*";
-    }
-    else
-    {
-      user = "*";               /* no @ found, assume its *@somehost */
-      host = parv[1];
-    }
-	      
-    if (*host == '\0')	/* duh. no host found, assume its '*' host */
-      host = "*";
-	      
-    strlcpy(tempuser, user, USERLEN + 1);     /* allow for '*' */
-    strlcpy(temphost, host, HOSTLEN + 1);
-    user = tempuser;
-    host = temphost;
-  }
-  else
-  {
-    sendto_one(source_p,
-	       ":%s NOTICE %s :Can't G-Line a nick use user@host",
-	       me.name, parv[0]);
-    return;
-  }
+	ts = atol(parv[2]);
+	
+	switch (*parv[1]) {
+		case '+':
+			if (parc < 5)
+				return;
 
-  if(invalid_gline(source_p, user, host, parv[2]))
-    return;
-			
-  /* Not enough non-wild characters were found,
-   * assume they are trying to gline *@*.
-   */
+			len = atol(parv[3]);
+			gline_add(client_p, parv[1] + 1, ts, len, parv[4]);
 
-  if (check_wild_gline(user, host))
-  {
-    if (MyClient(source_p))
-      sendto_one(source_p,
-		 ":%s NOTICE %s :Please include at least %d non-wildcard characters with the user@host",
-		 me.name, parv[0], ConfigFileEntry.min_nonwildcard);
-    return;
-  }
-			
-  reason = parv[2];
+			break;
 
-  /* call these two functions first so the 'requesting' notice always comes
-   * before the 'has triggered' notice.  -bill
-   */
-  sendto_realops_flags(FLAGS_ALL, L_ALL,
-                       "%s!%s@%s on %s is requesting gline for [%s@%s] [%s]",
-                       source_p->name, source_p->username, source_p->host,
-                       me.name, user, host, reason);
-  log_gline_request(source_p->name,
-                    (const char *)source_p->username,
-                    source_p->host, me.name, user, host, reason);
+		case '-':
+			if (parc < 4)
+				return;
 
-  /* If at least 3 opers agree this user should be G lined then do it */
-  if (check_majority_gline(source_p, source_p->name,
-			   (const char *)source_p->username,
-			   source_p->host, me.name, user, host, reason) ==
-      GLINE_ALREADY_VOTED)
-  {
-    sendto_one(source_p,
-	       ":%s NOTICE %s :This server or oper has already voted",
-	       me.name, parv[0]);
-    return;
-  }
+			gline_remove(client_p, parv[1] + 1, ts, parv[3]);
 
-  /* 4 param version for hyb-7 servers */
-  sendto_server(NULL, source_p, NULL, CAP_GLN|CAP_UID, NOCAPS,
-		LL_ICLIENT, ":%s GLINE %s %s :%s",
-		ID(source_p), user, host, reason);
-  sendto_server(NULL, source_p, NULL, CAP_GLN, CAP_UID,
-		LL_ICLIENT, ":%s GLINE %s %s :%s",
-		source_p->name, user, host, reason);
+			break;
 
-  /* 8 param for hyb-6 */
-  sendto_server(NULL, NULL, NULL, CAP_UID, CAP_GLN, NOFLAGS,
-		":%s GLINE %s %s %s %s %s %s :%s",
-		me.name, ID(source_p), source_p->username,
-		source_p->host, source_p->user->server, user, host,
-		reason);
-  sendto_server(NULL, NULL, NULL, NOCAPS, CAP_GLN|CAP_UID, NOFLAGS,
-		":%s GLINE %s %s %s %s %s %s :%s",
-		me.name, source_p->name, source_p->username,
-		source_p->host, source_p->user->server, user, host,
-		reason);
-}
+		case '@':
+		case '$':
+			gline_got_ts(client_p, ts, *parv[1] == '$');
+			break;
 
-/*
- * ms_gline()
- *
- * inputs       - The usual for a m_ function
- * output       -
- * side effects -
- *
- * Place a G line if 3 opers agree on the identical user@host
- * 
- */
-/* Allow this server to pass along GLINE if received and
- * GLINES is not defined.
- */
+		default: /* just drop GLINE commands we don't know how to handle */
+			return;
+	}
+}
 
-static void
-ms_gline(struct Client *client_p, struct Client *source_p,
-	 int parc, char *parv[])
+static void gline_add(struct Client *client_p, char *userhost, time_t ts, time_t len, const char *reason)
 {
-  /* These are needed for hyb6 compatibility.. if its ever removed we can
-   * just use source_p->username etc.. 
-   */
-  const char *oper_nick = NULL;        /* nick of oper requesting GLINE */
-  const char *oper_user = NULL;        /* username of oper requesting GLINE */
-  const char *oper_host = NULL;        /* hostname of oper requesting GLINE */
-  const char *oper_server = NULL;      /* server of oper requesting GLINE */
-  char *user = NULL;
-  char *host = NULL;             /* user and host of GLINE "victim" */
-  const char *reason = NULL;           /* reason for "victims" demise */
-  struct Client *acptr;
-
-  /* hyb-7 style gline (post beta3) */
-  if(parc == 4 && IsPerson(source_p))
-    {
-      oper_nick = parv[0];
-      oper_user = source_p->username;
-      oper_host = source_p->host;
-      oper_server = source_p->user->server;
-      user = parv[1];
-      host = parv[2];
-      reason = parv[3];
-    }
-  /* or it's a hyb-6 style */
-  else if(parc == 8 && IsServer(source_p))
-    {
-      oper_nick = parv[1];
-      oper_user = parv[2];
-      oper_host = parv[3];
-      oper_server = parv[4];
-      user = parv[5];
-      host = parv[6];
-      reason = parv[7];      
-    }
-  /* none of the above */
-  else
-    return;
+	struct ConfItem *gline;
+	char *user, *host;
 
-  /* Its plausible that the server and/or client dont actually exist,
-   * and its faked, as the oper isnt sending the gline..
-   * check they're real --fl_ */
-  /* we need acptr for LL introduction anyway -davidt */
-  if((acptr = find_server(oper_server)))
-  {
-    if((acptr = find_client(oper_nick)) == NULL)
-      return;
-  }
-  else
-    return;
+	if ((host = strchr(userhost, '@'))) {
+		user = userhost;
 
- if(invalid_gline(acptr, user, host, (char *)reason))
-    return;
-    
-  /* send in hyb-7 to compatible servers */
-  sendto_server(client_p, acptr, NULL, CAP_GLN, NOCAPS, LL_ICLIENT,
-                ":%s GLINE %s %s :%s",
-                oper_nick, user, host, reason);
-  /* hyb-6 version to the rest */
-  sendto_server(client_p, NULL, NULL, NOCAPS, CAP_GLN, NOFLAGS,
-                ":%s GLINE %s %s %s %s %s %s :%s",
-                oper_server, oper_nick, oper_user, oper_host,
-                oper_server, user, host, reason);
+		*host = 0;
+		host++;
+	} else
+		return;
 
-  if (ConfigFileEntry.glines)
-    {
-     /* I dont like the idea of checking for x non-wildcard chars in a
-      * gline.. it could lead to a desync... but we have to stop people
-      * glining *@*..   -- fl
-      */
+	ServerInfo.gline_ts = ts;
+	
+	/* if it's already glined, we're probably merging GLINE lists */
+	if (gline_find(user, host))
+		return;
 
-     if (check_wild_gline(user, host))
-        {
-          sendto_realops_flags(FLAGS_ALL, L_ALL, 
-                       "%s!%s@%s on %s is requesting a gline without %d non-wildcard characters for [%s@%s] [%s]",
-                       oper_nick, oper_user, oper_host, oper_server, ConfigFileEntry.min_nonwildcard,
-                       user, host, reason);
-          return;
-        }
+	/* it's new, propogate it */
+	sendto_server(client_p, NULL, NULL, CAP_GLN, NOCAPS, NOFLAGS,
+		"GLINE +%s@%s %ld %ld :%s", user, host, ts, len, reason);
 
-      log_gline_request(oper_nick,oper_user,oper_host,oper_server,
-			user,host,reason);
-      
-      sendto_realops_flags(FLAGS_ALL, L_ALL,
-			   "%s!%s@%s on %s is requesting gline for [%s@%s] [%s]",
-			   oper_nick, oper_user, oper_host, oper_server,
-			   user, host, reason);
+	gline = make_conf();
+	gline->status = CONF_KILL;
+	if (len == 0)
+		gline->hold = 0;					/* never expire */
+	else
+		gline->hold = CurrentTime + len;	/* expire time */
+	gline->ts = ts;							/* timestamp */
+	DupString(gline->passwd, reason);		/* reason */
+	DupString(gline->name, user);			/* user */
+	DupString(gline->host, host);			/* host */
 
-      /* If at least 3 opers agree this user should be G lined then do it */
-      if (check_majority_gline(source_p, oper_nick, oper_user, oper_host,
-			       oper_server, user, host, reason) ==
-	  GLINE_ALREADY_VOTED)
-      {
-	sendto_realops_flags(FLAGS_ALL, L_ALL,
-			     "oper or server has already voted");
-      }
-    }
+	add_gline(gline);
+	
+	check_klines();
 }
 
-/*
- * check_wild_gline
- *
- * inputs       - user, host of gline
- * output       - 1 if not enough non-wildchar char's, 0 if ok
- * side effects - NONE
- */
-
-static int
-check_wild_gline(char *user, char *host)
+static void gline_remove(struct Client *client_p, char *userhost, time_t ts, const char *reason)
 {
-  char *p;
-  char tmpch;
-  int nonwild;
-
-  nonwild = 0;
-  p = user;
+	char *user, *host;
 
-  while ((tmpch = *p++))
-    {
-       if (!IsKWildChar(tmpch))
-         {
-            /*
-             * If we find enough non-wild characters, we can
-             * break - no point in searching further.
-             */
-            if (++nonwild >= ConfigFileEntry.min_nonwildcard)
-              break;
-         }
-    }
+	if ((host = strchr(userhost, '@'))) {
+		user = userhost;
 
-   if (nonwild < ConfigFileEntry.min_nonwildcard)
-    {
-       /*
-        * The user portion did not contain enough non-wild
-        * characters, try the host.
-        */
-       p = host;
-       while ((tmpch = *p++))
-         {
-           if (!IsKWildChar(tmpch))
-             if (++nonwild >= ConfigFileEntry.min_nonwildcard)
-               break;
-         }
-     }
+		*host = 0;
+		host++;
+	} else
+		return;
 
-    if (nonwild < ConfigFileEntry.min_nonwildcard)
-       return 1;
-    else
-       return 0;
-}
+	ServerInfo.gline_ts = ts;
 
-/* invalid_gline
- *
- * inputs	- pointer to source client
- *		- pointer to ident
- *		- pointer to host
- *		- pointer to reason
- * outputs	- 1 if invalid, 0 if valid
- */
-static int
-invalid_gline(struct Client *source_p, char *luser, char *lhost,
-                       char *lreason)
-{
-  if(strchr(luser, '!'))
-  {
-    sendto_one(source_p, ":%s NOTICE %s :Invalid character '!' in gline",
-               me.name, source_p->name);
-    return (1);
-  }
+	/* we always propogate - GLINEs, just in case */
+	sendto_server(client_p, NULL, NULL, CAP_GLN, NOCAPS, NOFLAGS,
+		"GLINE -%s@%s %ld :%s", user, host, ts, reason);
 
-  return (0);
+	remove_gline_match(user, host);
 }
 
 /*
- * set_local_gline
+ * gline_got_ts: handle receipt of GLINE timestamp
  *
- * inputs	- pointer to oper nick
- * 		- pointer to oper username
- * 		- pointer to oper host
- *		- pointer to oper server
- *		- pointer to victim user
- *		- pointer to victim host
- *		- pointer reason
- * output	- NONE
- * side effects	-
+ * brief description of sementics:
+ * We're a hub and foreign is a leaf: Always send our GLINE list
+ * We're a leaf and foreign is a hub: Always clear our GLINE list and wait
+ *                                    for the hub to send theirs.
+ * We're equal to the foreign server: Compare timestamps:
+ *     Our timestamp is newer: Send our GLINE list
+ *     Our timestamp is older: Clear our GLINE list, wait for theirs
+ *     Our timestamp is equal: Send our GLINE list (lists will be merged)
  */
-static void
-set_local_gline(const char *oper_nick,
-                            const char *oper_user,
-                            const char *oper_host,
-                            const char *oper_server,
-                            const char *user,
-                            const char *host,
-                            const char *reason)
+static void gline_got_ts(struct Client *client_p, time_t ts, int final)
 {
-  char buffer[IRCD_BUFSIZE];
-  struct ConfItem *aconf;
-  const char *current_date;
-
-  current_date = smalldate((time_t) 0);
-          
-  aconf = make_conf();
-  aconf->status = CONF_KILL;
+	/* end-of-burst GLINE timestamp - just update the TS */
+	if (final) {
+		sendto_server(client_p, NULL, NULL, CAP_GLN, NOCAPS, NOFLAGS,
+			"GLINE %c %ld", '$', ts);
+		ServerInfo.gline_ts = ts;
+		return;
+	}
 
-  ircsprintf(buffer, "%s (%s)",reason,current_date);
-      
-  DupString(aconf->passwd, buffer);
-  DupString(aconf->name, (char *)user);
-  DupString(aconf->host, (char *)host);
-  aconf->hold = CurrentTime + ConfigFileEntry.gline_time;
-  add_gline(aconf);
-      
-  sendto_realops_flags(FLAGS_ALL, L_ALL,
-		       "%s!%s@%s on %s has triggered gline for [%s@%s] [%s]",
-		       oper_nick, oper_user, oper_host, oper_server,
-		       user, host, reason);
-  check_klines();
+	if (ServerInfo.hub && !IsCapable(client_p, CAP_HUB)) {
+		gline_list_send(client_p);
+	} else if (!ServerInfo.hub && IsCapable(client_p, CAP_HUB)) {
+		gline_list_clear();
+		ServerInfo.gline_ts = ts;
+	} else {
+		if (ts > ServerInfo.gline_ts) {
+			/* tell our leaves to wipe their GLINEs, too */
+			sendto_server(client_p, NULL, NULL, CAP_GLN, NOCAPS, NOFLAGS,
+				"GLINE %c %ld", '@', ts);
+			gline_list_clear();
+			ServerInfo.gline_ts = ts;
+		} else if (ts <= ServerInfo.gline_ts) {
+			gline_list_send(client_p);
+		}
+	}
 }
 
-
-/*
- * log_gline_request()
- *
- */
-static void
-log_gline_request(
-		  const char *oper_nick, const char *oper_user,
-		  const char *oper_host, const char* oper_server,
-		  const char *user, const char *host, const char *reason)
+#ifdef STATIC_MODULES
+int gline_netburst(struct Client *client_p)
+#else
+static int gline_netburst(struct Client *client_p)
+#endif
 {
-  char        buffer[2*BUFSIZE];
-  char        filenamebuf[PATH_MAX + 1];
-  static char timebuffer[MAX_DATE_STRING];
-  struct tm*  tmptr;
-  FBFILE*     out;
-
-  if(ConfigFileEntry.glinefile == NULL)
-    {
-      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem opening glinefile");
-      return;
-    }
-
-  ircsprintf(filenamebuf, "%s.%s", 
-             ConfigFileEntry.glinefile, small_file_date((time_t)0));
-  if ( (out = fbopen(filenamebuf, "+a")) == NULL )
-    {
-      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem opening %s: %s",
-                     filenamebuf, strerror(errno));
-      return;
-    }
-
-  tmptr = localtime((const time_t*)&CurrentTime);
-  strftime(timebuffer, MAX_DATE_STRING, "%Y/%m/%d %H:%M:%S", tmptr);
+	if (!IsCapable(client_p, CAP_GLN))
+		return 0;
 
-  ircsprintf(buffer,
-           "#Gline for %s@%s [%s] requested by %s!%s@%s on %s at %s\n",
-           user,host,reason,
-           oper_nick,oper_user,oper_host,oper_server,
-           timebuffer);
+	/* We don't need to even bother sending a GLINE command if we're a leaf */
+	if (ServerInfo.hub) {
+		/* Leaves can't define GLINEs, so we shove ours to them */
+		if (!IsCapable(client_p, CAP_HUB))
+			gline_list_send(client_p);
+		else
+			sendto_one(client_p, "GLINE @ %ld", ServerInfo.gline_ts);
+	} else
+		gline_list_clear();
 
-  if (fbputs(buffer, out) == -1)
-    {
-      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem writing to %s (%s)",
-				     filenamebuf, strerror(errno));
-    }
-  fbclose(out);
+	return 0;
 }
 
-/*
- * log_gline()
- *
- */
-static void
-log_gline(struct Client *source_p,
-	  struct gline_pending *gline_pending_ptr,
-	  const char *oper_nick, const char *oper_user, const char *oper_host,
-	  const char *oper_server, const char *user, const char *host,
-	  const char *reason)
+static void gline_list_clear(void)
 {
-  char         buffer[2*BUFSIZE];
-  char         filenamebuf[PATH_MAX + 1];
-  static  char timebuffer[MAX_DATE_STRING + 1];
-  struct tm*   tmptr;
-  FBFILE       *out;
-
-  if(ConfigFileEntry.glinefile == NULL)
-    {
-      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem opening glinefile.");
-      return;
-    }
-
-  ircsprintf(filenamebuf, "%s.%s", 
-                ConfigFileEntry.glinefile, small_file_date((time_t) 0));
-
-  if ((out = fbopen(filenamebuf, "a")) == NULL)
-    {
-      sendto_realops_flags(FLAGS_ALL, L_ALL,
-			   "*** Problem opening %s",filenamebuf);
-      return;
-    }
-
-  tmptr = localtime((const time_t*)&CurrentTime);
-  strftime(timebuffer, MAX_DATE_STRING, "%Y/%m/%d %H:%M:%S", tmptr);
-
-  ircsprintf(buffer,"#Gline for %s@%s %s added by the following\n",
-                   user,host,timebuffer);
-
-  if (fbputs(buffer,out) == -1)
-    {
-      sendto_realops_flags(FLAGS_ALL, L_ALL,
-			   "*** Problem writing to %s",filenamebuf);
-      fbclose(out);
-      return;
-    }
-
-  ircsprintf(buffer, "#%s!%s@%s on %s [%s]\n",
-                   gline_pending_ptr->oper_nick1,
-                   gline_pending_ptr->oper_user1,
-                   gline_pending_ptr->oper_host1,
-                   gline_pending_ptr->oper_server1,
-                   (gline_pending_ptr->reason1)?
-                   (gline_pending_ptr->reason1):"No reason");
-
-  if (fbputs(buffer,out) == -1)
-    {
-      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem writing to %s",filenamebuf);
-      return;
-    }
-
-  ircsprintf(buffer, "#%s!%s@%s on %s [%s]\n",
-                   gline_pending_ptr->oper_nick2,
-                   gline_pending_ptr->oper_user2,
-                   gline_pending_ptr->oper_host2,
-                   gline_pending_ptr->oper_server2,
-                   (gline_pending_ptr->reason2)?
-                   (gline_pending_ptr->reason2):"No reason");
-
-  if (fbputs(buffer,out) == -1)
-    {
-      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem writing to %s",filenamebuf);
-      fbclose(out);
-      return;
-    }
-
-  ircsprintf(buffer, "#%s!%s@%s on %s [%s]\n",
-                   oper_nick,
-                   oper_user,
-                   oper_host,
-                   oper_server,
-                   (reason)?reason:"No reason");
-
-  if (fbputs(buffer,out) == -1)
-    {
-      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem writing to %s",filenamebuf);
-      fbclose(out);
-      return;
-    }
-
-  ircsprintf(buffer, "\"%s\",\"%s\",\"%s %s\",\"%s\",%lu\n",
-	     user,
-	     host,
-	     reason,
-	     timebuffer,
-	     oper_nick,
-	     (unsigned long) CurrentTime);
-
-  if (fbputs(buffer,out) == -1)
-    {
-      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem writing to %s",filenamebuf);
-      fbclose(out);
-      return;
-    }
-
-  fbclose(out);
+	dlink_node *cur, *next;
+	
+	DLINK_FOREACH_SAFE(cur, next, glines.head) {
+		free_conf(cur->data);
+		dlinkDelete(cur, &glines);
+		free_dlink_node(cur);
+	}
 }
 
-
-/*
- * add_new_majority_gline
- * 
- * inputs       - name of operator requesting gline
- * 		- username of operator requesting gline
- * 		- hostname of operator requesting gline
- * 		- servername of operator requesting gline
- * 		- username covered by the gline
- * 		- hostname covered by the gline
- * 		- reason for the gline
- * output       - NONE
- * side effects -
- * This function is called once a majority of opers
- * have agreed on a gline, and it can be placed. The
- * information about an operator being passed to us
- * happens to be the operator who pushed us over the
- * "majority" level needed. See check_majority_gline()
- * for more information.
- */
-static void
-add_new_majority_gline(const char* oper_nick, const char* oper_user,
-		       const char* oper_host, const char* oper_server,
-		       const char* user, const char* host,
-		       const char* reason)
+static void gline_list_send(struct Client *client_p)
 {
-  dlink_node *pending_node;
-
-  struct gline_pending *pending = (struct gline_pending*)
-    MyMalloc(sizeof(struct gline_pending));
-
-  strlcpy(pending->oper_nick1, oper_nick, NICKLEN + 1);
-  strlcpy(pending->oper_user1, oper_user, USERLEN + 1);
-  strlcpy(pending->oper_host1, oper_host, HOSTLEN + 1);
-
-  pending->oper_server1 = find_or_add(oper_server);
+	dlink_node *cur;
+	struct ConfItem *gline;
+	time_t remaining;
 
-  strlcpy(pending->user, user, USERLEN + 1);
-  strlcpy(pending->host, host, HOSTLEN + 1);
-  DupString(pending->reason1, reason);
-  pending->reason2 = NULL;
+	DLINK_FOREACH(cur, glines.head) {
+		gline = cur->data;
 
-  pending->last_gline_time = CurrentTime;
-  pending->time_request1 = CurrentTime;
+		if (gline->hold == 0)
+			remaining = 0;
+		else if (gline->hold - CurrentTime <= 0)
+			continue;
+		else
+			remaining = gline->hold - CurrentTime;
 
-  pending_node = make_dlink_node();
-  dlinkAdd(pending, pending_node, &pending_glines);
+		sendto_one(client_p, "GLINE +%s@%s %ld %ld :%s",
+			gline->name, gline->host, gline->ts, remaining, gline->passwd);
+	}
+	/*
+	 * send the TS in case we've removed a GLINE with a newer TS than we
+	 * sent -- the other end will reset the TS whenever they get a GLINE
+	 * command.  Redundant timestamp on $ to make parsing simpler.
+	 */
+	
+	sendto_one(client_p, "GLINE $ %ld", ServerInfo.gline_ts);
 }
 
-/*
- * check_majority_gline()
- *
- * inputs       - oper_nick, oper_user, oper_host, oper_server
- *                user,host reason
- *
- * output       - one of three results
- *                
- * GLINE_ALREADY_VOTED	- returned if oper/server has already voted
- * GLINE_PLACED		- returned if this triggers a gline
- * GLINE_NOT_PLACED	- returned if not triggered
- *
- * Side effects -
- *      See if there is a majority agreement on a GLINE on the given user
- *      There must be at least 3 different opers agreeing on this GLINE
- *
- */
-static int
-check_majority_gline(struct Client *source_p, const char *oper_nick,
-		     const char *oper_user, const char *oper_host,
-		     const char* oper_server, const char *user,
-		     const char *host, const char *reason)
+static int gline_find(const char *user, const char *host)
 {
-  dlink_node *pending_node;
-  struct gline_pending *gline_pending_ptr;
-
-  /* if its already glined, why bother? :) -- fl_ */
-  if(find_is_glined(host, user))
-    return(GLINE_NOT_PLACED);
-    
-  /* special case condition where there are no pending glines */
-
-  if (dlink_list_length(&pending_glines) == 0) /* first gline request placed */
-  {
-    add_new_majority_gline(oper_nick, oper_user, oper_host, oper_server,
-                           user, host, reason);
-    return(GLINE_NOT_PLACED);
-  }
-
-  DLINK_FOREACH(pending_node, pending_glines.head)
-  {
-    gline_pending_ptr = pending_node->data;
-
-    if ((irccmp(gline_pending_ptr->user,user) == 0) &&
-	(irccmp(gline_pending_ptr->host,host) == 0))
-    {
-      if (((irccmp(gline_pending_ptr->oper_user1,oper_user) == 0) ||
-	   (irccmp(gline_pending_ptr->oper_host1,oper_host) == 0)) ||
-	  (irccmp(gline_pending_ptr->oper_server1,oper_server) == 0))
-      {
-	return(GLINE_ALREADY_VOTED);
-      }
-
-      if (gline_pending_ptr->oper_user2[0] != '\0')
-      {
-	/* if two other opers on two different servers have voted yes */
-
-	if(((irccmp(gline_pending_ptr->oper_user2,oper_user)==0) ||
-	    (irccmp(gline_pending_ptr->oper_host2,oper_host)==0)) ||
-	   (irccmp(gline_pending_ptr->oper_server2,oper_server)==0))
-	{
-	  return (GLINE_ALREADY_VOTED);
+	dlink_node *cur;
+	struct ConfItem *gline;
+	
+	DLINK_FOREACH(cur, glines.head) {
+		gline = cur->data;
+		
+		if (!irccmp(user, gline->name) && !irccmp(host, gline->host))
+			return 1;
 	}
-
-	log_gline(source_p,gline_pending_ptr,
-		  oper_nick,oper_user,oper_host,oper_server,
-		  user,host,reason);
-
-	/* trigger the gline using the original reason --fl */
-	set_local_gline(oper_nick, oper_user, oper_host, oper_server,
-			user, host, gline_pending_ptr->reason1);
-	cleanup_glines();
-	return (GLINE_PLACED);
-      }
-      else
-      {
-	strlcpy(gline_pending_ptr->oper_nick2, oper_nick, NICKLEN + 1);
-	strlcpy(gline_pending_ptr->oper_user2, oper_user, USERLEN + 1);
-	strlcpy(gline_pending_ptr->oper_host2, oper_host, HOSTLEN + 1);
-	DupString(gline_pending_ptr->reason2, reason);
-	gline_pending_ptr->oper_server2 = find_or_add(oper_server);
-	gline_pending_ptr->last_gline_time = CurrentTime;
-	gline_pending_ptr->time_request2 = CurrentTime;
-	return(GLINE_NOT_PLACED);
-      }
-    }
-  }
-  /* Didn't find this user@host gline in pending gline list
-   * so add it.
-   */
-  add_new_majority_gline(oper_nick, oper_user, oper_host, oper_server,
-                         user, host, reason);
-  return(GLINE_NOT_PLACED);
+	return 0;
 }
-
-
diff -uNrd ircd-hybrid-7.0/modules/m_gline.c.hyb7 anynet-3.0/modules/m_gline.c.hyb7
--- ircd-hybrid-7.0/modules/m_gline.c.hyb7	Wed Dec 31 19:00:00 1969
+++ anynet-3.0/modules/m_gline.c.hyb7	Thu Apr 10 23:41:40 2003
@@ -0,0 +1,786 @@
+/*
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
+ *  m_gline.c: Votes towards globally banning a mask.
+ *
+ *  Copyright (C) 2002 by the past and present ircd coders, and others.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+ *  USA
+ *
+ *  $Id: m_gline.c,v 1.85.2.1 2003/04/11 03:41:40 lusky Exp $
+ */
+
+#include "stdinc.h"
+#include "tools.h"
+#include "handlers.h"
+#include "s_gline.h"
+#include "channel.h"
+#include "client.h"
+#include "common.h"
+#include "config.h"
+#include "irc_string.h"
+#include "ircd.h"
+#include "hostmask.h"
+#include "numeric.h"
+#include "fdlist.h"
+#include "s_bsd.h"
+#include "s_conf.h"
+#include "s_misc.h"
+#include "scache.h"
+#include "send.h"
+#include "msg.h"
+#include "fileio.h"
+#include "s_serv.h"
+#include "hash.h"
+#include "parse.h"
+#include "modules.h"
+#include "list.h"
+
+#define GLINE_NOT_PLACED 0
+#define GLINE_ALREADY_VOTED -1
+#define GLINE_PLACED 1
+
+/* internal functions */
+static void set_local_gline(
+                            const char *oper_nick,
+                            const char *oper_user,
+                            const char *oper_host,
+                            const char *oper_server,
+                            const char *user,
+                            const char *host,
+                            const char *reason);
+
+static void log_gline_request(const char*,const char*,const char*,
+                              const char* oper_server,
+                              const char *,const char *,const char *);
+
+static void log_gline(struct Client *,struct gline_pending *,
+                      const char *, const char *,const char *,
+                      const char* oper_server,
+                      const char *,const char *,const char *);
+
+
+static int check_majority_gline(struct Client *source_p,
+				const char *oper_nick,
+				const char *oper_user,
+				const char *oper_host,
+				const char *oper_server,
+				const char *user, const char *host,
+				const char *reason);
+
+static void add_new_majority_gline(const char *, const char *, const char *,
+                                   const char *, const char *, const char *,
+                                   const char *);
+
+static int check_wild_gline(char *, char *);
+static int invalid_gline(struct Client *, char *, char *, char *);
+		       
+static void ms_gline(struct Client*, struct Client*, int, char**);
+static void mo_gline(struct Client*, struct Client*, int, char**);
+
+struct Message gline_msgtab = {
+    "GLINE", 0, 0, 3, 0, MFLG_SLOW, 0,
+      {m_unregistered, m_not_oper, ms_gline, mo_gline}
+};
+
+#ifndef STATIC_MODULES
+
+void
+_modinit(void)
+{
+    mod_add_cmd(&gline_msgtab);
+}
+
+void
+_moddeinit(void)
+{
+  mod_del_cmd(&gline_msgtab);
+}
+
+const char *_version = "$Revision: 1.85.2.1 $";
+#endif
+/*
+ * mo_gline()
+ *
+ * inputs       - The usual for a m_ function
+ * output       -
+ * side effects -
+ *
+ * Place a G line if 3 opers agree on the identical user@host
+ * 
+ */
+/* Allow this server to pass along GLINE if received and
+ * GLINES is not defined.
+ *
+ */
+
+static void
+mo_gline(struct Client *client_p, struct Client *source_p,
+	 int parc, char *parv[])
+{
+  char *user = NULL;
+  char *host = NULL;	              /* user and host of GLINE "victim" */
+  const char *reason = NULL;          /* reason for "victims" demise */
+  char tempuser[USERLEN + 2];
+  char temphost[HOSTLEN + 1];
+
+  if (!ConfigFileEntry.glines)
+  {
+    sendto_one(source_p,":%s NOTICE %s :GLINE disabled",me.name,parv[0]);  
+    return;
+  }
+
+  if (!IsOperGline(source_p))
+  {
+    sendto_one(source_p,
+	       ":%s NOTICE %s :You need gline = yes;",me.name,parv[0]);
+    return;
+  }
+			
+  if ((host = strchr(parv[1], '@')) || *parv[1] == '*')
+  {
+    /* Explicit user@host mask given */
+    
+    if(host != NULL)	/* Found user@host */
+    {
+      user = parv[1];   /* here is user part */
+      *(host++) = '\0'; /* and now here is host */
+
+      /* gline for "@host", use *@host */
+      if(*user == '\0')
+	user = "*";
+    }
+    else
+    {
+      user = "*";               /* no @ found, assume its *@somehost */
+      host = parv[1];
+    }
+	      
+    if (*host == '\0')	/* duh. no host found, assume its '*' host */
+      host = "*";
+	      
+    strlcpy(tempuser, user, USERLEN + 1);     /* allow for '*' */
+    strlcpy(temphost, host, HOSTLEN + 1);
+    user = tempuser;
+    host = temphost;
+  }
+  else
+  {
+    sendto_one(source_p,
+	       ":%s NOTICE %s :Can't G-Line a nick use user@host",
+	       me.name, parv[0]);
+    return;
+  }
+
+  if(invalid_gline(source_p, user, host, parv[2]))
+    return;
+			
+  /* Not enough non-wild characters were found,
+   * assume they are trying to gline *@*.
+   */
+
+  if (check_wild_gline(user, host))
+  {
+    if (MyClient(source_p))
+      sendto_one(source_p,
+		 ":%s NOTICE %s :Please include at least %d non-wildcard characters with the user@host",
+		 me.name, parv[0], ConfigFileEntry.min_nonwildcard);
+    return;
+  }
+			
+  reason = parv[2];
+
+  /* call these two functions first so the 'requesting' notice always comes
+   * before the 'has triggered' notice.  -bill
+   */
+  sendto_realops_flags(FLAGS_ALL, L_ALL,
+                       "%s!%s@%s on %s is requesting gline for [%s@%s] [%s]",
+                       source_p->name, source_p->username, source_p->host,
+                       me.name, user, host, reason);
+  log_gline_request(source_p->name,
+                    (const char *)source_p->username,
+                    source_p->host, me.name, user, host, reason);
+
+  /* If at least 3 opers agree this user should be G lined then do it */
+  if (check_majority_gline(source_p, source_p->name,
+			   (const char *)source_p->username,
+			   source_p->host, me.name, user, host, reason) ==
+      GLINE_ALREADY_VOTED)
+  {
+    sendto_one(source_p,
+	       ":%s NOTICE %s :This server or oper has already voted",
+	       me.name, parv[0]);
+    return;
+  }
+
+  /* 4 param version for hyb-7 servers */
+  sendto_server(NULL, source_p, NULL, CAP_GLN|CAP_UID, NOCAPS,
+		LL_ICLIENT, ":%s GLINE %s %s :%s",
+		ID(source_p), user, host, reason);
+  sendto_server(NULL, source_p, NULL, CAP_GLN, CAP_UID,
+		LL_ICLIENT, ":%s GLINE %s %s :%s",
+		source_p->name, user, host, reason);
+
+  /* 8 param for hyb-6 */
+  sendto_server(NULL, NULL, NULL, CAP_UID, CAP_GLN, NOFLAGS,
+		":%s GLINE %s %s %s %s %s %s :%s",
+		me.name, ID(source_p), source_p->username,
+		source_p->host, source_p->user->server, user, host,
+		reason);
+  sendto_server(NULL, NULL, NULL, NOCAPS, CAP_GLN|CAP_UID, NOFLAGS,
+		":%s GLINE %s %s %s %s %s %s :%s",
+		me.name, source_p->name, source_p->username,
+		source_p->host, source_p->user->server, user, host,
+		reason);
+}
+
+/*
+ * ms_gline()
+ *
+ * inputs       - The usual for a m_ function
+ * output       -
+ * side effects -
+ *
+ * Place a G line if 3 opers agree on the identical user@host
+ * 
+ */
+/* Allow this server to pass along GLINE if received and
+ * GLINES is not defined.
+ */
+
+static void
+ms_gline(struct Client *client_p, struct Client *source_p,
+	 int parc, char *parv[])
+{
+  /* These are needed for hyb6 compatibility.. if its ever removed we can
+   * just use source_p->username etc.. 
+   */
+  const char *oper_nick = NULL;        /* nick of oper requesting GLINE */
+  const char *oper_user = NULL;        /* username of oper requesting GLINE */
+  const char *oper_host = NULL;        /* hostname of oper requesting GLINE */
+  const char *oper_server = NULL;      /* server of oper requesting GLINE */
+  char *user = NULL;
+  char *host = NULL;             /* user and host of GLINE "victim" */
+  const char *reason = NULL;           /* reason for "victims" demise */
+  struct Client *acptr;
+
+  /* hyb-7 style gline (post beta3) */
+  if(parc == 4 && IsPerson(source_p))
+    {
+      oper_nick = parv[0];
+      oper_user = source_p->username;
+      oper_host = source_p->host;
+      oper_server = source_p->user->server;
+      user = parv[1];
+      host = parv[2];
+      reason = parv[3];
+    }
+  /* or it's a hyb-6 style */
+  else if(parc == 8 && IsServer(source_p))
+    {
+      oper_nick = parv[1];
+      oper_user = parv[2];
+      oper_host = parv[3];
+      oper_server = parv[4];
+      user = parv[5];
+      host = parv[6];
+      reason = parv[7];      
+    }
+  /* none of the above */
+  else
+    return;
+
+  /* Its plausible that the server and/or client dont actually exist,
+   * and its faked, as the oper isnt sending the gline..
+   * check they're real --fl_ */
+  /* we need acptr for LL introduction anyway -davidt */
+  if((acptr = find_server(oper_server)))
+  {
+    if((acptr = find_client(oper_nick)) == NULL)
+      return;
+  }
+  else
+    return;
+
+ if(invalid_gline(acptr, user, host, (char *)reason))
+    return;
+    
+  /* send in hyb-7 to compatible servers */
+  sendto_server(client_p, acptr, NULL, CAP_GLN, NOCAPS, LL_ICLIENT,
+                ":%s GLINE %s %s :%s",
+                oper_nick, user, host, reason);
+  /* hyb-6 version to the rest */
+  sendto_server(client_p, NULL, NULL, NOCAPS, CAP_GLN, NOFLAGS,
+                ":%s GLINE %s %s %s %s %s %s :%s",
+                oper_server, oper_nick, oper_user, oper_host,
+                oper_server, user, host, reason);
+
+  if (ConfigFileEntry.glines)
+    {
+     /* I dont like the idea of checking for x non-wildcard chars in a
+      * gline.. it could lead to a desync... but we have to stop people
+      * glining *@*..   -- fl
+      */
+
+     if (check_wild_gline(user, host))
+        {
+          sendto_realops_flags(FLAGS_ALL, L_ALL, 
+                       "%s!%s@%s on %s is requesting a gline without %d non-wildcard characters for [%s@%s] [%s]",
+                       oper_nick, oper_user, oper_host, oper_server, ConfigFileEntry.min_nonwildcard,
+                       user, host, reason);
+          return;
+        }
+
+      log_gline_request(oper_nick,oper_user,oper_host,oper_server,
+			user,host,reason);
+      
+      sendto_realops_flags(FLAGS_ALL, L_ALL,
+			   "%s!%s@%s on %s is requesting gline for [%s@%s] [%s]",
+			   oper_nick, oper_user, oper_host, oper_server,
+			   user, host, reason);
+
+      /* If at least 3 opers agree this user should be G lined then do it */
+      if (check_majority_gline(source_p, oper_nick, oper_user, oper_host,
+			       oper_server, user, host, reason) ==
+	  GLINE_ALREADY_VOTED)
+      {
+	sendto_realops_flags(FLAGS_ALL, L_ALL,
+			     "oper or server has already voted");
+      }
+    }
+}
+
+/*
+ * check_wild_gline
+ *
+ * inputs       - user, host of gline
+ * output       - 1 if not enough non-wildchar char's, 0 if ok
+ * side effects - NONE
+ */
+
+static int
+check_wild_gline(char *user, char *host)
+{
+  char *p;
+  char tmpch;
+  int nonwild;
+
+  nonwild = 0;
+  p = user;
+
+  while ((tmpch = *p++))
+    {
+       if (!IsKWildChar(tmpch))
+         {
+            /*
+             * If we find enough non-wild characters, we can
+             * break - no point in searching further.
+             */
+            if (++nonwild >= ConfigFileEntry.min_nonwildcard)
+              break;
+         }
+    }
+
+   if (nonwild < ConfigFileEntry.min_nonwildcard)
+    {
+       /*
+        * The user portion did not contain enough non-wild
+        * characters, try the host.
+        */
+       p = host;
+       while ((tmpch = *p++))
+         {
+           if (!IsKWildChar(tmpch))
+             if (++nonwild >= ConfigFileEntry.min_nonwildcard)
+               break;
+         }
+     }
+
+    if (nonwild < ConfigFileEntry.min_nonwildcard)
+       return 1;
+    else
+       return 0;
+}
+
+/* invalid_gline
+ *
+ * inputs	- pointer to source client
+ *		- pointer to ident
+ *		- pointer to host
+ *		- pointer to reason
+ * outputs	- 1 if invalid, 0 if valid
+ */
+static int
+invalid_gline(struct Client *source_p, char *luser, char *lhost,
+                       char *lreason)
+{
+  if(strchr(luser, '!'))
+  {
+    sendto_one(source_p, ":%s NOTICE %s :Invalid character '!' in gline",
+               me.name, source_p->name);
+    return (1);
+  }
+
+  return (0);
+}
+
+/*
+ * set_local_gline
+ *
+ * inputs	- pointer to oper nick
+ * 		- pointer to oper username
+ * 		- pointer to oper host
+ *		- pointer to oper server
+ *		- pointer to victim user
+ *		- pointer to victim host
+ *		- pointer reason
+ * output	- NONE
+ * side effects	-
+ */
+static void
+set_local_gline(const char *oper_nick,
+                            const char *oper_user,
+                            const char *oper_host,
+                            const char *oper_server,
+                            const char *user,
+                            const char *host,
+                            const char *reason)
+{
+  char buffer[IRCD_BUFSIZE];
+  struct ConfItem *aconf;
+  const char *current_date;
+
+  current_date = smalldate((time_t) 0);
+          
+  aconf = make_conf();
+  aconf->status = CONF_KILL;
+
+  ircsprintf(buffer, "%s (%s)",reason,current_date);
+      
+  DupString(aconf->passwd, buffer);
+  DupString(aconf->name, (char *)user);
+  DupString(aconf->host, (char *)host);
+  aconf->hold = CurrentTime + ConfigFileEntry.gline_time;
+  add_gline(aconf);
+      
+  sendto_realops_flags(FLAGS_ALL, L_ALL,
+		       "%s!%s@%s on %s has triggered gline for [%s@%s] [%s]",
+		       oper_nick, oper_user, oper_host, oper_server,
+		       user, host, reason);
+  check_klines();
+}
+
+
+/*
+ * log_gline_request()
+ *
+ */
+static void
+log_gline_request(
+		  const char *oper_nick, const char *oper_user,
+		  const char *oper_host, const char* oper_server,
+		  const char *user, const char *host, const char *reason)
+{
+  char        buffer[2*BUFSIZE];
+  char        filenamebuf[PATH_MAX + 1];
+  static char timebuffer[MAX_DATE_STRING];
+  struct tm*  tmptr;
+  FBFILE*     out;
+
+  if(ConfigFileEntry.glinefile == NULL)
+    {
+      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem opening glinefile");
+      return;
+    }
+
+  ircsprintf(filenamebuf, "%s.%s", 
+             ConfigFileEntry.glinefile, small_file_date((time_t)0));
+  if ( (out = fbopen(filenamebuf, "+a")) == NULL )
+    {
+      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem opening %s: %s",
+                     filenamebuf, strerror(errno));
+      return;
+    }
+
+  tmptr = localtime((const time_t*)&CurrentTime);
+  strftime(timebuffer, MAX_DATE_STRING, "%Y/%m/%d %H:%M:%S", tmptr);
+
+  ircsprintf(buffer,
+           "#Gline for %s@%s [%s] requested by %s!%s@%s on %s at %s\n",
+           user,host,reason,
+           oper_nick,oper_user,oper_host,oper_server,
+           timebuffer);
+
+  if (fbputs(buffer, out) == -1)
+    {
+      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem writing to %s (%s)",
+				     filenamebuf, strerror(errno));
+    }
+  fbclose(out);
+}
+
+/*
+ * log_gline()
+ *
+ */
+static void
+log_gline(struct Client *source_p,
+	  struct gline_pending *gline_pending_ptr,
+	  const char *oper_nick, const char *oper_user, const char *oper_host,
+	  const char *oper_server, const char *user, const char *host,
+	  const char *reason)
+{
+  char         buffer[2*BUFSIZE];
+  char         filenamebuf[PATH_MAX + 1];
+  static  char timebuffer[MAX_DATE_STRING + 1];
+  struct tm*   tmptr;
+  FBFILE       *out;
+
+  if(ConfigFileEntry.glinefile == NULL)
+    {
+      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem opening glinefile.");
+      return;
+    }
+
+  ircsprintf(filenamebuf, "%s.%s", 
+                ConfigFileEntry.glinefile, small_file_date((time_t) 0));
+
+  if ((out = fbopen(filenamebuf, "a")) == NULL)
+    {
+      sendto_realops_flags(FLAGS_ALL, L_ALL,
+			   "*** Problem opening %s",filenamebuf);
+      return;
+    }
+
+  tmptr = localtime((const time_t*)&CurrentTime);
+  strftime(timebuffer, MAX_DATE_STRING, "%Y/%m/%d %H:%M:%S", tmptr);
+
+  ircsprintf(buffer,"#Gline for %s@%s %s added by the following\n",
+                   user,host,timebuffer);
+
+  if (fbputs(buffer,out) == -1)
+    {
+      sendto_realops_flags(FLAGS_ALL, L_ALL,
+			   "*** Problem writing to %s",filenamebuf);
+      fbclose(out);
+      return;
+    }
+
+  ircsprintf(buffer, "#%s!%s@%s on %s [%s]\n",
+                   gline_pending_ptr->oper_nick1,
+                   gline_pending_ptr->oper_user1,
+                   gline_pending_ptr->oper_host1,
+                   gline_pending_ptr->oper_server1,
+                   (gline_pending_ptr->reason1)?
+                   (gline_pending_ptr->reason1):"No reason");
+
+  if (fbputs(buffer,out) == -1)
+    {
+      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem writing to %s",filenamebuf);
+      return;
+    }
+
+  ircsprintf(buffer, "#%s!%s@%s on %s [%s]\n",
+                   gline_pending_ptr->oper_nick2,
+                   gline_pending_ptr->oper_user2,
+                   gline_pending_ptr->oper_host2,
+                   gline_pending_ptr->oper_server2,
+                   (gline_pending_ptr->reason2)?
+                   (gline_pending_ptr->reason2):"No reason");
+
+  if (fbputs(buffer,out) == -1)
+    {
+      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem writing to %s",filenamebuf);
+      fbclose(out);
+      return;
+    }
+
+  ircsprintf(buffer, "#%s!%s@%s on %s [%s]\n",
+                   oper_nick,
+                   oper_user,
+                   oper_host,
+                   oper_server,
+                   (reason)?reason:"No reason");
+
+  if (fbputs(buffer,out) == -1)
+    {
+      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem writing to %s",filenamebuf);
+      fbclose(out);
+      return;
+    }
+
+  ircsprintf(buffer, "\"%s\",\"%s\",\"%s %s\",\"%s\",%lu\n",
+	     user,
+	     host,
+	     reason,
+	     timebuffer,
+	     oper_nick,
+	     (unsigned long) CurrentTime);
+
+  if (fbputs(buffer,out) == -1)
+    {
+      sendto_realops_flags(FLAGS_ALL, L_ALL,"*** Problem writing to %s",filenamebuf);
+      fbclose(out);
+      return;
+    }
+
+  fbclose(out);
+}
+
+
+/*
+ * add_new_majority_gline
+ * 
+ * inputs       - name of operator requesting gline
+ * 		- username of operator requesting gline
+ * 		- hostname of operator requesting gline
+ * 		- servername of operator requesting gline
+ * 		- username covered by the gline
+ * 		- hostname covered by the gline
+ * 		- reason for the gline
+ * output       - NONE
+ * side effects -
+ * This function is called once a majority of opers
+ * have agreed on a gline, and it can be placed. The
+ * information about an operator being passed to us
+ * happens to be the operator who pushed us over the
+ * "majority" level needed. See check_majority_gline()
+ * for more information.
+ */
+static void
+add_new_majority_gline(const char* oper_nick, const char* oper_user,
+		       const char* oper_host, const char* oper_server,
+		       const char* user, const char* host,
+		       const char* reason)
+{
+  dlink_node *pending_node;
+
+  struct gline_pending *pending = (struct gline_pending*)
+    MyMalloc(sizeof(struct gline_pending));
+
+  strlcpy(pending->oper_nick1, oper_nick, NICKLEN + 1);
+  strlcpy(pending->oper_user1, oper_user, USERLEN + 1);
+  strlcpy(pending->oper_host1, oper_host, HOSTLEN + 1);
+
+  pending->oper_server1 = find_or_add(oper_server);
+
+  strlcpy(pending->user, user, USERLEN + 1);
+  strlcpy(pending->host, host, HOSTLEN + 1);
+  DupString(pending->reason1, reason);
+  pending->reason2 = NULL;
+
+  pending->last_gline_time = CurrentTime;
+  pending->time_request1 = CurrentTime;
+
+  pending_node = make_dlink_node();
+  dlinkAdd(pending, pending_node, &pending_glines);
+}
+
+/*
+ * check_majority_gline()
+ *
+ * inputs       - oper_nick, oper_user, oper_host, oper_server
+ *                user,host reason
+ *
+ * output       - one of three results
+ *                
+ * GLINE_ALREADY_VOTED	- returned if oper/server has already voted
+ * GLINE_PLACED		- returned if this triggers a gline
+ * GLINE_NOT_PLACED	- returned if not triggered
+ *
+ * Side effects -
+ *      See if there is a majority agreement on a GLINE on the given user
+ *      There must be at least 3 different opers agreeing on this GLINE
+ *
+ */
+static int
+check_majority_gline(struct Client *source_p, const char *oper_nick,
+		     const char *oper_user, const char *oper_host,
+		     const char* oper_server, const char *user,
+		     const char *host, const char *reason)
+{
+  dlink_node *pending_node;
+  struct gline_pending *gline_pending_ptr;
+
+  /* if its already glined, why bother? :) -- fl_ */
+  if(find_is_glined(host, user))
+    return(GLINE_NOT_PLACED);
+    
+  /* special case condition where there are no pending glines */
+
+  if (dlink_list_length(&pending_glines) == 0) /* first gline request placed */
+  {
+    add_new_majority_gline(oper_nick, oper_user, oper_host, oper_server,
+                           user, host, reason);
+    return(GLINE_NOT_PLACED);
+  }
+
+  DLINK_FOREACH(pending_node, pending_glines.head)
+  {
+    gline_pending_ptr = pending_node->data;
+
+    if ((irccmp(gline_pending_ptr->user,user) == 0) &&
+	(irccmp(gline_pending_ptr->host,host) == 0))
+    {
+      if (((irccmp(gline_pending_ptr->oper_user1,oper_user) == 0) ||
+	   (irccmp(gline_pending_ptr->oper_host1,oper_host) == 0)) ||
+	  (irccmp(gline_pending_ptr->oper_server1,oper_server) == 0))
+      {
+	return(GLINE_ALREADY_VOTED);
+      }
+
+      if (gline_pending_ptr->oper_user2[0] != '\0')
+      {
+	/* if two other opers on two different servers have voted yes */
+
+	if(((irccmp(gline_pending_ptr->oper_user2,oper_user)==0) ||
+	    (irccmp(gline_pending_ptr->oper_host2,oper_host)==0)) ||
+	   (irccmp(gline_pending_ptr->oper_server2,oper_server)==0))
+	{
+	  return (GLINE_ALREADY_VOTED);
+	}
+
+	log_gline(source_p,gline_pending_ptr,
+		  oper_nick,oper_user,oper_host,oper_server,
+		  user,host,reason);
+
+	/* trigger the gline using the original reason --fl */
+	set_local_gline(oper_nick, oper_user, oper_host, oper_server,
+			user, host, gline_pending_ptr->reason1);
+	cleanup_glines();
+	return (GLINE_PLACED);
+      }
+      else
+      {
+	strlcpy(gline_pending_ptr->oper_nick2, oper_nick, NICKLEN + 1);
+	strlcpy(gline_pending_ptr->oper_user2, oper_user, USERLEN + 1);
+	strlcpy(gline_pending_ptr->oper_host2, oper_host, HOSTLEN + 1);
+	DupString(gline_pending_ptr->reason2, reason);
+	gline_pending_ptr->oper_server2 = find_or_add(oper_server);
+	gline_pending_ptr->last_gline_time = CurrentTime;
+	gline_pending_ptr->time_request2 = CurrentTime;
+	return(GLINE_NOT_PLACED);
+      }
+    }
+  }
+  /* Didn't find this user@host gline in pending gline list
+   * so add it.
+   */
+  add_new_majority_gline(oper_nick, oper_user, oper_host, oper_server,
+                         user, host, reason);
+  return(GLINE_NOT_PLACED);
+}
+
+
diff -uNrd ircd-hybrid-7.0/modules/m_info.c anynet-3.0/modules/m_info.c
--- ircd-hybrid-7.0/modules/m_info.c	Mon Oct 28 16:09:21 2002
+++ anynet-3.0/modules/m_info.c	Mon Feb  2 03:09:49 2004
@@ -174,12 +174,14 @@
     &ConfigFileEntry.glines,
     "G-line (network-wide K-line) support"
   },
+#if 0 /* rain - no longer relevant */
   {
     "gline_time",
     OUTPUT_DECIMAL,
     &ConfigFileEntry.gline_time,
     "Expiry time for G-lines"
   },
+#endif
   {
     "hub",
     OUTPUT_BOOLEAN_YN,
diff -uNrd ircd-hybrid-7.0/modules/m_invite.c anynet-3.0/modules/m_invite.c
--- ircd-hybrid-7.0/modules/m_invite.c	Wed Jan 22 23:24:06 2003
+++ anynet-3.0/modules/m_invite.c	Mon Feb  2 01:50:02 2004
@@ -182,7 +182,8 @@
 
   if (chptr && (vchan->mode.mode & MODE_INVITEONLY))
   {
-    if (!chop)
+    /* rain - services support */
+    if (!chop && !IsService(source_p))
     {
       if (MyClient(source_p))
         sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
diff -uNrd ircd-hybrid-7.0/modules/m_join.c anynet-3.0/modules/m_join.c
--- ircd-hybrid-7.0/modules/m_join.c	Wed Apr  2 20:29:00 2003
+++ anynet-3.0/modules/m_join.c	Mon Feb  2 02:08:20 2004
@@ -393,8 +393,9 @@
 	  sendto_one(source_p, form_str(RPL_TOPIC), me.name,
 		     parv[0], root_chptr->chname, chptr->topic);
 
+          /* rain - allow admins to see who set the topic even when hideops set */
           if (!(chptr->mode.mode & MODE_HIDEOPS) ||
-              (flags & CHFL_CHANOP) || (flags & CHFL_HALFOP))
+              (flags & CHFL_CHANOP) || (flags & CHFL_HALFOP) || IsAdmin(source_p))
             {
               sendto_one(source_p, form_str(RPL_TOPICWHOTIME),
                          me.name, parv[0], root_chptr->chname,
diff -uNrd ircd-hybrid-7.0/modules/m_list.c anynet-3.0/modules/m_list.c
--- ircd-hybrid-7.0/modules/m_list.c	Fri Jan 17 00:11:53 2003
+++ anynet-3.0/modules/m_list.c	Mon Feb  2 01:51:53 2004
@@ -195,7 +195,7 @@
   for ( chptr = GlobalChannelList; chptr; chptr = chptr->nextch )
     {
       if ( !source_p->user ||
-	   (SecretChannel(chptr) && !IsMember(source_p, chptr)))
+	   ((SecretChannel(chptr) && !IsMember(source_p, chptr)) && !IsAdmin(source_p)))
 	continue;
       list_one_channel(source_p,chptr);
     }
diff -uNrd ircd-hybrid-7.0/modules/m_map.c anynet-3.0/modules/m_map.c
--- ircd-hybrid-7.0/modules/m_map.c	Wed Dec 31 19:00:00 1969
+++ anynet-3.0/modules/m_map.c	Thu Jan 22 12:08:49 2004
@@ -0,0 +1,156 @@
+/*
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
+ *  m_map.c: Sends an Undernet compatible map to a user.
+ *
+ *  Copyright (C) 2002 by the past and present ircd coders, and others.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+ *  USA
+ *
+ *  $Id: m_map.c,v 1.12 2002/05/24 23:48:34 androsyn Exp $
+ */
+
+#include "stdinc.h"
+#include "client.h"
+#include "modules.h"
+#include "handlers.h"
+#include "numeric.h"
+#include "send.h"
+#include "s_conf.h"
+
+#define USER_COL       50 /* display | Users: %d at col 50 */
+
+static void m_map(struct Client *client_p, struct Client *source_p,
+                    int parc, char *parv[]);
+static void mo_map(struct Client *client_p, struct Client *source_p,
+                    int parc, char *parv[]);
+static void dump_map(struct Client *client_p,struct Client *root, char *pbuf);
+
+struct Message map_msgtab = {
+  "MAP", 0, 0, 0, 0, MFLG_SLOW, 0,
+  {m_unregistered, m_map, m_ignore, mo_map}
+};
+
+#ifndef STATIC_MODULES
+void _modinit(void)
+{
+  mod_add_cmd(&map_msgtab);
+}
+
+void _moddeinit(void)
+{
+  mod_del_cmd(&map_msgtab);
+}
+
+const char *_version = "$Revision: 1.12 $";
+#endif
+
+static char buf[BUFSIZE];
+
+/* m_map
+**	parv[0] = sender prefix
+*/
+static void m_map(struct Client *client_p, struct Client *source_p,
+                    int parc, char *parv[])
+{
+  if (!ConfigServerHide.flatten_links)
+  {
+    dump_map(client_p,&me,buf);
+    sendto_one(client_p, form_str(RPL_MAPEND), me.name, client_p->name);
+    return;
+  }
+
+  m_not_oper(client_p,source_p,parc,parv);
+  return;
+}
+
+/*
+** mo_map
+**      parv[0] = sender prefix
+*/
+static void mo_map(struct Client *client_p, struct Client *source_p,
+                    int parc, char *parv[])
+{
+  dump_map(client_p,&me,buf);
+  sendto_one(client_p, form_str(RPL_MAPEND), me.name, client_p->name);
+}
+
+/*
+** dump_map
+**   dumps server map, called recursively.
+*/
+static void dump_map(struct Client *client_p,struct Client *root_p, char *pbuf)
+{
+  int cnt = 0, i = 0, len;
+  int users = 0;
+  struct Client *server_p,*user_p;
+        
+  *pbuf= '\0';
+       
+  strncat(pbuf,root_p->name,BUFSIZE - ((size_t) pbuf - (size_t) buf));
+  len = strlen(buf);
+  buf[len] = ' ';
+	
+  if (len < USER_COL)
+  {
+     for (i = len+1; i < USER_COL; i++)
+     {
+       buf[i] = '-';
+     }
+  }
+	
+  /* FIXME: add serv->usercnt */
+  for( user_p = root_p->serv->users; user_p; user_p = user_p->lnext )
+    users++;
+        
+  snprintf(buf + USER_COL, BUFSIZE - USER_COL,
+           " | Users: %5d (%4.1f%%)", users,
+           100 * (float) users / (float) Count.total);
+        
+  sendto_one(client_p, form_str(RPL_MAP),me.name,client_p->name,buf);
+        
+  if ((server_p = root_p->serv->servers))
+  {
+    for (; server_p; server_p = server_p->lnext)
+    {
+      cnt++;
+    }
+    
+    if (cnt)
+    {
+      if (pbuf > buf + 3)
+      {
+        pbuf[-2] = ' ';
+        if (pbuf[-3] == '`')
+          pbuf[-3] = ' ';
+      }
+    }
+  }
+  for (i = 1,server_p = root_p->serv->servers; server_p; server_p=server_p->lnext)
+  {
+    *pbuf = ' ';
+    if (i < cnt)
+      *(pbuf + 1) = '|';
+    else
+      *(pbuf + 1) = '`';
+      
+    *(pbuf + 2) = '-';
+    *(pbuf + 3) = ' ';
+    dump_map(client_p,server_p,pbuf+4);
+ 
+    i++;
+   }
+}
+
diff -uNrd ircd-hybrid-7.0/modules/m_names.c anynet-3.0/modules/m_names.c
--- ircd-hybrid-7.0/modules/m_names.c	Thu Aug 15 11:00:59 2002
+++ anynet-3.0/modules/m_names.c	Mon Feb  2 02:07:38 2004
@@ -224,7 +224,8 @@
 
   for (c2ptr = GlobalClientList; c2ptr; c2ptr = c2ptr->next)
     {
-      if (!IsPerson(c2ptr) || IsInvisible(c2ptr))
+      /* rain - allow admins to see invisible users */
+      if (!IsPerson(c2ptr) || (IsInvisible(c2ptr) && !IsAdmin(source_p)))
         continue;
       /*
        * dont show a client if they are on a secret channel or
@@ -235,8 +236,9 @@
         {
           ch3ptr = lp->data;
 
-          if ( (!PubChannel(ch3ptr) || IsMember(source_p, ch3ptr)) ||
-               (SecretChannel(ch3ptr)))
+          /* rain - allow admins to see secret/private channels */
+          if ( ((!PubChannel(ch3ptr) && !IsAdmin(source_p)) || IsMember(source_p, ch3ptr)) ||
+               (SecretChannel(ch3ptr) && !IsAdmin(source_p)))
           {
             dont_show = YES;
             break;
@@ -255,7 +257,8 @@
           t = buf + mlen;
         }
 
-      if(ch3ptr->mode.mode & MODE_HIDEOPS)
+      /* rain - allow admins to see ops on a hideops channel */
+      if((ch3ptr->mode.mode & MODE_HIDEOPS) && !IsAdmin(source_p))
         ircsprintf(t," %s ", c2ptr->name);
       else
         ircsprintf(t,"%s%s ", channel_chanop_or_voice(ch3ptr, c2ptr),
diff -uNrd ircd-hybrid-7.0/modules/m_rehash.c anynet-3.0/modules/m_rehash.c
--- ircd-hybrid-7.0/modules/m_rehash.c	Wed Oct 16 22:28:51 2002
+++ anynet-3.0/modules/m_rehash.c	Thu Jan 22 12:16:04 2004
@@ -106,7 +106,8 @@
         }
       if(found)
         {
-          ilog(L_NOTICE, "REHASH %s From %s\n", parv[1], 
+          /* rain - removed extraneous \n */
+          ilog(L_NOTICE, "REHASH %s From %s", parv[1], 
 	       get_client_name(source_p, HIDE_IP));
           return;
         }
diff -uNrd ircd-hybrid-7.0/modules/m_starttls.c anynet-3.0/modules/m_starttls.c
--- ircd-hybrid-7.0/modules/m_starttls.c	Wed Dec 31 19:00:00 1969
+++ anynet-3.0/modules/m_starttls.c	Wed Feb  4 13:20:13 2004
@@ -0,0 +1,96 @@
+/*
+ * m_starttls.c: Client STARTTLS command support.
+ *
+ * Copyright (c) 2004  Ben Winslow.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    the above paragraph (the one permitting redistribution), this list of
+ *    conditions and the following disclaimer in the documentation and/or
+ *    other materials provided with the distribution.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
+ * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $Id$
+ */
+
+#include "config.h"
+
+#ifdef SSL_CLIENT_SUPPORT
+#include "stdinc.h"
+#include "ssl_client.h"
+#include "msg.h"
+#include "handlers.h"
+#include "client.h"
+#include "s_conf.h"
+#include "isupport.h"
+#include "hook.h"
+#include "parse.h"
+#include "send.h"
+#include "modules.h"
+
+static void m_starttls(struct Client *, struct Client *, int, char **);
+
+struct Message starttls_msgtab = {
+	"STARTTLS", 0, 0, 0, 0, MFLG_SLOW | MFLG_UNREG, 0, 
+	{m_starttls, m_starttls, m_ignore, m_starttls}
+};
+
+#ifndef STATIC_MODULES
+void _modinit(void)
+{
+	mod_add_cmd(&starttls_msgtab);
+	
+	ServerInfo.ssl_status |= SSLC_STAT_STARTTLS;
+	hook_call_event("update_isupport", ISUP_PROPAGATE);
+}
+
+void _moddeinit(void)
+{
+	mod_del_cmd(&starttls_msgtab);
+	
+	ServerInfo.ssl_status &= ~SSLC_STAT_STARTTLS;
+	hook_call_event("update_isupport", ISUP_PROPAGATE);
+}
+
+const char *_version = "$Revision: 1.0 $";
+#endif
+
+/*
+ * m_starttls - STARTTLS command handler
+ */
+static void m_starttls(struct Client *client_p, struct Client *source_p,
+	int parc, char *parv[])
+{
+	/* this shouldn't ever happen */
+	if (!MyConnect(source_p))
+		return;
+
+	if (source_p->localClient->ssl_state != SSLC_STATE_NONE) {
+		sendto_one(source_p, "NOTICE %s :TLS/SSL already started: %s",
+			IsRegistered(source_p) ? source_p->name : "TLS",
+			SSLC_cipherinfo(source_p, 0));
+		return;
+	}
+
+	sendto_one(source_p, "NOTICE %s :Ready to start TLS",
+		IsRegistered(source_p) ? source_p->name : "TLS");
+	
+	source_p->localClient->ssl_state = SSLC_STATE_STARTTLS;
+}
+#endif
diff -uNrd ircd-hybrid-7.0/modules/m_stats.c anynet-3.0/modules/m_stats.c
--- ircd-hybrid-7.0/modules/m_stats.c	Tue May  6 01:32:16 2003
+++ anynet-3.0/modules/m_stats.c	Mon Feb  2 10:01:25 2004
@@ -108,7 +108,9 @@
 static void stats_deny(struct Client *);
 static void stats_exempt(struct Client *);
 static void stats_events(struct Client *);
+#if 0 /* rain - pending glines are no longer supported  */
 static void stats_pending_glines(struct Client *);
+#endif
 static void stats_glines(struct Client *);
 static void stats_hubleaf(struct Client *);
 static void stats_auth(struct Client *);
@@ -147,7 +149,8 @@
   { 'E',	stats_events,		1,	1,	},
   { 'f',	fd_dump,		1,	1,	},
   { 'F',	fd_dump,		1,	1,	},
-  { 'g',	stats_pending_glines,	1,	0,	},
+/* rain - pending glines are no longer supported */
+  { 'g',	stats_glines,		1,	0,	},
   { 'G',	stats_glines,		1,	0,	},
   { 'h',	stats_hubleaf,		1,	0,	},
   { 'H',	stats_hubleaf,		1,	0,	},
@@ -378,6 +381,7 @@
   show_events(source_p);
 }
 
+#if 0 /* rain - pending glines are no longer supported */
 /* stats_pending_glines()
  *
  * input	- client pointer
@@ -433,6 +437,7 @@
   sendto_one(source_p, ":%s NOTICE %s :End of Pending G-lines",
 	     me.name, source_p->name);
 }
+#endif
 
 /* stats_glines()
  *
@@ -448,6 +453,7 @@
   char *host;
   char *name;
   char *reason;
+  char buf[IRCD_BUFSIZE]; /* rain - gline time buffer */
 
   if(!ConfigFileEntry.glines)
   {
@@ -475,8 +481,18 @@
     else
       reason = "No Reason";
     
+    /* rain - throw gline time info into after and send that instead */
+    if (kill_ptr->hold == 0)
+    	ircsprintf(buf, "%s (%s) (sticky)", reason, smalldate(kill_ptr->ts));
+    else if (kill_ptr->hold - CurrentTime < 0)
+        ircsprintf(buf, "%s (%s) (expired %ld seconds ago, cleanup pending)",
+        	reason, smalldate(kill_ptr->ts), CurrentTime - kill_ptr->hold);
+    else
+	    ircsprintf(buf, "%s (%s) (%ld seconds remaining)", reason,
+	    	smalldate(kill_ptr->ts), kill_ptr->hold - CurrentTime);
+    
     sendto_one(source_p, form_str(RPL_STATSKLINE), me.name,
-	       source_p->name, 'G', host, name, reason);
+	       source_p->name, 'G', host, name, buf);
   }
 }
 
diff -uNrd ircd-hybrid-7.0/modules/m_tburst.c anynet-3.0/modules/m_tburst.c
--- ircd-hybrid-7.0/modules/m_tburst.c	Wed Dec 31 19:00:00 1969
+++ anynet-3.0/modules/m_tburst.c	Mon Feb  2 01:58:19 2004
@@ -0,0 +1,176 @@
+/*  contrib/m_tburst.c
+ *  Copyright (C) 2002 Hybrid Development Team
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are
+ *  met:
+ *
+ *  1.Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ *  2.Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  3.The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ *  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ *  DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+ *  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ *  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ *  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ *  IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ *  POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  $Id: m_tburst.c,v 1.12 2002/12/18 05:33:29 db Exp $
+ */
+
+#include "stdinc.h"
+#include "handlers.h"
+#include "client.h"
+#include "common.h"
+#include "ircd.h"
+#include "send.h"
+#include "msg.h"
+#include "modules.h"
+#include "hook.h"
+#include "hash.h"
+#include "s_serv.h"
+#include "s_conf.h"
+
+
+/* TBURST_PROPAGATE
+ *
+ * If this is defined, when we receive a TBURST thats successful
+ * (ie: our topic changes), the TBURST will be propagated to other
+ * servers that support TBURST
+ */
+#define TBURST_PROPAGATE
+
+
+
+static void ms_tburst(struct Client *, struct Client *, int, char **);
+static void set_topic(struct Client *, struct Channel *, 
+		      time_t, char *, char *);
+static void set_tburst_capab();
+#ifndef STATIC_MODULES /* rain - unused if static module */
+static void unset_tburst_capab();
+#endif
+/* rain - made static */
+static int send_tburst(struct hook_burst_channel *);
+
+struct Message tburst_msgtab = {
+  "TBURST", 0, 0, 6, 0, MFLG_SLOW, 0,
+  {m_ignore, m_ignore, ms_tburst, m_ignore}
+};
+
+/*
+ * rain - changed initialization so that we can call this func from the
+ * static module init func
+ */
+#ifdef STATIC_MODULES
+void
+tburst_init(void)
+#else
+void
+_modinit(void)
+#endif
+{
+  mod_add_cmd(&tburst_msgtab);
+  hook_add_hook("burst_channel", (hookfn *)send_tburst);
+  set_tburst_capab();
+}
+
+#ifndef STATIC_MODULES
+void
+_moddeinit(void)
+{
+  mod_del_cmd(&tburst_msgtab);
+  hook_del_hook("burst_channel", (hookfn *)send_tburst);
+  unset_tburst_capab();
+}
+
+const char *_version = "$Revision: 1.12 $";
+#endif
+
+/* ms_tburst()
+ * 
+ *      parv[0] = sender prefix
+ *      parv[1] = channel timestamp
+ *      parv[2] = channel
+ *      parv[3] = topic timestamp
+ *      parv[4] = topic setter
+ *      parv[5] = topic
+ */
+static void ms_tburst(struct Client *client_p, struct Client *source_p,
+                    int parc, char *parv[])
+{
+  struct Channel *chptr;
+  time_t newchannelts;
+  time_t newtopicts;
+
+  newchannelts = atol(parv[1]);
+  newtopicts = atol(parv[3]);
+
+  if((chptr = hash_find_channel(parv[2])))
+  {
+    if(chptr->channelts < newchannelts)
+      return;
+
+    else if(chptr->channelts == newchannelts)
+    {
+      if(chptr->topic == NULL || (chptr->topic_time > newtopicts))
+	set_topic(source_p, chptr, newtopicts, parv[4], parv[5]);
+      else
+	return;
+    }
+
+    else
+      set_topic(source_p, chptr, newtopicts, parv[4], parv[5]);
+  }
+}
+
+static void set_topic(struct Client *source_p, struct Channel *chptr, 
+		      time_t newtopicts, char *topicwho, char *topic)
+{
+  set_channel_topic(chptr, topic, topicwho, newtopicts);
+
+  sendto_channel_local(ALL_MEMBERS, chptr, ":%s TOPIC %s :%s",
+		       ConfigServerHide.hide_servers ? me.name : me.name,
+		       chptr->chname, chptr->topic == NULL ? "" : chptr->topic);
+
+#ifdef TBURST_PROPAGATE
+  sendto_server(source_p, NULL, chptr, CAP_TBURST, NOCAPS, NOFLAGS,
+		":%s TBURST %ld %s %ld %s :%s",
+		me.name, chptr->channelts, chptr->chname,
+		chptr->topic_time, 
+                chptr->topic_info == NULL ? "" : chptr->topic_info,
+                chptr->topic == NULL ? "" : chptr->topic);
+#endif
+}
+
+static void set_tburst_capab()
+{
+  default_server_capabs |= CAP_TBURST;
+}
+
+#ifndef STATIC_MODULES /* rain - unused if module is static */
+static void unset_tburst_capab()
+{
+  default_server_capabs &= ~CAP_TBURST;
+}
+#endif
+
+static int send_tburst(struct hook_burst_channel *data)
+{
+  if(data->chptr->topic != NULL && IsCapable(data->client, CAP_TBURST))
+    sendto_one(data->client, ":%s TBURST %ld %s %ld %s :%s",
+               me.name, data->chptr->channelts, data->chptr->chname,
+	       data->chptr->topic_time, data->chptr->topic_info, 
+	       data->chptr->topic);
+
+  return 0;
+}
diff -uNrd ircd-hybrid-7.0/modules/m_topic.c anynet-3.0/modules/m_topic.c
--- ircd-hybrid-7.0/modules/m_topic.c	Mon Jun 10 21:39:38 2002
+++ anynet-3.0/modules/m_topic.c	Mon Feb  2 02:09:23 2004
@@ -145,7 +145,8 @@
                             ":%s TOPIC %s :%s",
                             parv[0], chptr->chname,
                             chptr->topic == NULL ? "" : chptr->topic);
-	      if(chptr->mode.mode & MODE_HIDEOPS)
+	      /* rain - allow admins to see ops in hideops chans */
+	      if((chptr->mode.mode & MODE_HIDEOPS) && !IsAdmin(source_p))
 		{
 		  sendto_channel_local(ONLY_CHANOPS_HALFOPS,
 				       chptr, ":%s!%s@%s TOPIC %s :%s",
@@ -192,8 +193,9 @@
                          me.name, parv[0],
                          root_chan->chname, chptr->topic);
 
+	        /* rain - allow admins to see topic setter in hideops chans */
                 if(!(chptr->mode.mode & MODE_HIDEOPS) ||
-                  is_any_op(chptr,source_p))
+                  is_any_op(chptr,source_p) || IsAdmin(source_p))
                 {
                   sendto_one(source_p, form_str(RPL_TOPICWHOTIME),
                              me.name, parv[0], root_chan->chname,
diff -uNrd ircd-hybrid-7.0/modules/m_trace.c anynet-3.0/modules/m_trace.c
--- ircd-hybrid-7.0/modules/m_trace.c	Wed Sep  4 21:10:24 2002
+++ anynet-3.0/modules/m_trace.c	Mon Feb  2 02:14:22 2004
@@ -42,16 +42,19 @@
 #include "modules.h"
 
 
+#if 0 /* rain - we don't cripple trace */
 static void m_trace(struct Client *, struct Client *, int, char **);
+#endif
 static void ms_trace(struct Client*, struct Client*, int, char**);
 static void mo_trace(struct Client*, struct Client*, int, char**);
 static struct Client* next_client_double(struct Client *next, const char* ch);
 
 static void trace_spy(struct Client *);
 
+/* rain - reuse mo_trace and mask hostnames there if necessary */
 struct Message trace_msgtab = {
   "TRACE", 0, 0, 0, 0, MFLG_SLOW, 0,
-  {m_unregistered, m_trace, ms_trace, mo_trace}
+  {m_unregistered, mo_trace, ms_trace, mo_trace}
 };
 
 #ifndef STATIC_MODULES
@@ -73,7 +76,7 @@
 static int report_this_status(struct Client *source_p, struct Client *target_p,int dow,
                               int link_u_p, int link_u_s);
 
-
+#if 0 /* using mo_trace */
 /*
  * m_trace()
  *
@@ -92,7 +95,7 @@
   sendto_one(source_p, form_str(RPL_ENDOFTRACE), me.name, parv[0], tname);
 }
 
-
+#endif
 /*
 ** mo_trace
 **      parv[0] = sender prefix
@@ -171,7 +174,8 @@
           sendto_one(source_p, form_str(RPL_TRACEOPERATOR),
                      me.name, parv[0], class_name, name, 
                      MyOper(source_p) ? ipaddr :
-		     (IsIPSpoof(target_p) ? "255.255.255.255" : ipaddr),
+                     /* rain - hide IP if non-oper */
+	             ((IsIPSpoof(target_p) || !IsOper(source_p)) ? "255.255.255.255" : ipaddr),
                      CurrentTime - target_p->lasttime,
                      (target_p->user) ? (CurrentTime - target_p->user->last) : 0);
         }
@@ -180,7 +184,8 @@
           sendto_one(source_p,form_str(RPL_TRACEUSER),
                      me.name, parv[0], class_name, name, 
                      MyOper(source_p) ? ipaddr : 
-		     (IsIPSpoof(target_p) ? "255.255.255.255" : ipaddr),
+                     /* rain - hide IP if non-oper */
+		     ((IsIPSpoof(target_p) || !IsOper(source_p)) ? "255.255.255.255" : ipaddr),
                      CurrentTime - target_p->lasttime,
                      (target_p->user)?(CurrentTime - target_p->user->last):0);
         }
@@ -299,7 +304,8 @@
   if (hunt_server(client_p, source_p, ":%s TRACE %s :%s", 2, parc, parv))
     return;
 
-  if( IsOper(source_p) )
+/* rain - always propogate traces */
+/*if( IsOper(source_p) ) */
     mo_trace(client_p,source_p,parc,parv);
   return;
 }
diff -uNrd ircd-hybrid-7.0/modules/m_unkline.c anynet-3.0/modules/m_unkline.c
--- ircd-hybrid-7.0/modules/m_unkline.c	Mon Nov 18 14:54:58 2002
+++ anynet-3.0/modules/m_unkline.c	Mon Feb  2 10:29:25 2004
@@ -46,15 +46,19 @@
 
 static void mo_unkline(struct Client*, struct Client*, int, char**);
 static void mo_undline(struct Client*, struct Client*, int, char**);
+#if 0 /* rain - no longer allowed with the new GLINE code */
 static void mo_ungline(struct Client*, struct Client*, int, char**);
+#endif
 
 struct Message msgtabs[] = {
   {"UNKLINE", 0, 0, 2, 0, MFLG_SLOW, 0,
    {m_unregistered, m_not_oper, m_error, mo_unkline}},
   {"UNDLINE", 0, 0, 2, 0, MFLG_SLOW, 0,
    {m_unregistered, m_not_oper, m_error, mo_undline}}, 
+#if 0
   {"UNGLINE", 0, 0, 2, 0, MFLG_SLOW, 0,
    {m_unregistered, m_not_oper, m_error, mo_ungline}}
+#endif
 };
 
 #ifndef STATIC_MODULES
@@ -63,7 +67,8 @@
 {
   mod_add_cmd(&msgtabs[0]);
   mod_add_cmd(&msgtabs[1]);
-  mod_add_cmd(&msgtabs[2]);
+/* rain - UNGLINE is no more */
+/*  mod_add_cmd(&msgtabs[2]); */
 }
 
 void
@@ -71,7 +76,8 @@
 {
   mod_del_cmd(&msgtabs[0]);
   mod_del_cmd(&msgtabs[1]);
-  mod_del_cmd(&msgtabs[2]);
+/* rain - UNGLINE is no more */
+/*  mod_del_cmd(&msgtabs[2]); */
 }
 const char *_version = "$Revision: 1.51 $";
 #endif
@@ -434,6 +440,7 @@
 **      parv[1] = gline to remove
 */
 
+#if 0 /* rain - no longer allowed with the new GLINE code */
 static void
 mo_ungline(struct Client *client_p, struct Client *source_p,
 	   int parc,char *parv[])
@@ -494,4 +501,4 @@
     }
 }
 
-
+#endif
diff -uNrd ircd-hybrid-7.0/modules/m_wallops.c anynet-3.0/modules/m_wallops.c
--- ircd-hybrid-7.0/modules/m_wallops.c	Thu Jan  9 01:20:07 2003
+++ anynet-3.0/modules/m_wallops.c	Mon Feb  2 02:16:37 2004
@@ -77,7 +77,8 @@
       return;
     }
 
-  sendto_wallops_flags(FLAGS_OPERWALL, source_p, "OPERWALL - %s", message);
+  /* rain - remove silly OPERWALL - header */
+  sendto_wallops_flags(FLAGS_OPERWALL, source_p, "%s", message);
   sendto_server(NULL, source_p, NULL, NOCAPS, NOCAPS, LL_ICLIENT,
                 ":%s WALLOPS :%s", parv[0], message);
 }
@@ -101,8 +102,9 @@
       return;
     }
 
+  /* rain - remove silly OPERWALL - header */
   if(IsClient(source_p))
-    sendto_wallops_flags(FLAGS_OPERWALL, source_p, "OPERWALL - %s", message);
+    sendto_wallops_flags(FLAGS_OPERWALL, source_p, "%s", message);
   else
     sendto_wallops_flags(FLAGS_WALLOP, source_p, "%s", message); 
 
diff -uNrd ircd-hybrid-7.0/modules/m_who.c anynet-3.0/modules/m_who.c
--- ircd-hybrid-7.0/modules/m_who.c	Thu Jan 16 18:54:02 2003
+++ anynet-3.0/modules/m_who.c	Mon Feb  2 03:45:29 2004
@@ -217,7 +217,8 @@
       if(IsServer(client_p))
 	client_burst_if_needed(client_p,target_p);
 
-      isinvis = IsInvisible(target_p);
+      /* rain - allow admins to see invisible users */
+      isinvis = IsInvisible(target_p) && !IsAdmin(source_p);
       for (lp = target_p->user->channel.head; lp; lp = lp->next)
 	{
 	  chptr = lp->data;
@@ -373,8 +374,11 @@
 
     if (IsInvisible(target_p))
     {
-      ClearMark(target_p);
-      continue;
+      /* rain - allow admins to see invisible users */
+      if (!IsAdmin(source_p)) {
+        ClearMark(target_p);
+        continue;
+      }
     }
 
     if (server_oper && !IsOper(target_p))
@@ -513,15 +517,17 @@
 
 	if(who_list[i].voiced)
 	{
+	  /* rain - allow admins to see ops in a hideops chan */
 	  if(target_p == source_p && is_voiced(chptr, source_p) && 
-	     chptr->mode.mode & MODE_HIDEOPS)
+	     ((chptr->mode.mode & MODE_HIDEOPS) && !IsAdmin(source_p)))
 	    do_who(source_p, target_p, chname, "+");
 	  else
 	    do_who(source_p, target_p, chname, voiced_flag);
 	}
 	else
 	{
-	  if(member || !IsInvisible(target_p))
+	  /* rain - allow admins to see invisible users */
+	  if(member || (!IsInvisible(target_p) || IsAdmin(source_p)))
 	    do_who(source_p, target_p, chname, who_list[i].flag);
 	}
 	who_list[i].ptr = who_list[i].ptr->next;
@@ -539,7 +545,8 @@
       {
 	target_p = ptr->data;
 
-	if(member || !IsInvisible(target_p))
+        /* allow admins to see invisible users */
+	if(member || (!IsInvisible(target_p) || IsAdmin(source_p)))
 	  do_who(source_p, target_p, chname, who_list[i].flag);
       }
     }
@@ -564,8 +571,10 @@
 {
   char  status[5];
 
-  ircsprintf(status,"%c%s%s", target_p->user->away ? 'G' : 'H',
-	     IsOper(target_p) ? "*" : "", op_flags );
+  /* rain - show invisible flag in WHO */
+  ircsprintf(status,"%c%s%s%s", target_p->user->away ? 'G' : 'H',
+	     IsOper(target_p) ? "*" : "",
+	     (IsInvisible(target_p) && IsOper(source_p)) ? "i" : "", op_flags );
 
   if(ConfigServerHide.hide_servers)
   {
diff -uNrd ircd-hybrid-7.0/modules/m_whois.c anynet-3.0/modules/m_whois.c
--- ircd-hybrid-7.0/modules/m_whois.c	Sat Feb  8 19:02:28 2003
+++ anynet-3.0/modules/m_whois.c	Mon Feb  2 02:24:08 2004
@@ -423,7 +423,8 @@
 	t = buf + mlen;
       }
 
-      if (chptr->mode.mode & MODE_HIDEOPS && !is_any_op(chptr,source_p))
+      /* rain - allow admins to see ops in a hideops chan */
+      if (((chptr->mode.mode & MODE_HIDEOPS) && !IsAdmin(source_p)) && !is_any_op(chptr,source_p))
       {
 	ircsprintf(t,"%s ",chname);
       }
@@ -451,6 +452,20 @@
 	       me.name, source_p->name, target_p->name,
                ServerInfo.network_name,
 	       ServerInfo.network_desc);
+
+#ifdef SSL_CLIENT_SUPPORT
+  if (IsSSL(target_p)) {
+    if (MyConnect(target_p) &&
+      target_p->localClient->ssl_state == SSLC_STATE_CONNECTED)
+
+      ircsprintf(buf, "using secure connection (%s)", SSLC_cipherinfo(target_p, 1));
+    else
+      strcpy(buf, "using secure connection");
+
+    sendto_one(source_p, form_str(RPL_WHOISSPECIAL), me.name,
+      source_p->name, target_p->name, buf);
+  }
+#endif
 
   if (target_p->user->away)
     sendto_one(source_p, form_str(RPL_AWAY), me.name,
diff -uNrd ircd-hybrid-7.0/servlink/control.c anynet-3.0/servlink/control.c
--- ircd-hybrid-7.0/servlink/control.c	Sat May 31 03:30:32 2003
+++ anynet-3.0/servlink/control.c	Mon Feb  2 06:52:43 2004
@@ -177,6 +177,22 @@
       in_state.crypt_state.rounds = 16;
       break;
 #endif
+/* rain - added AES support */
+#ifdef HAVE_EVP_AES_128_CFB
+    case CIPHER_AES_128:
+      in_state.crypt_state.cipher = EVP_aes_128_cfb();
+      break;
+#endif
+#ifdef HAVE_EVP_AES_192_CFB
+    case CIPHER_AES_192:
+      in_state.crypt_state.cipher = EVP_aes_192_cfb();
+      break;
+#endif
+#ifdef HAVE_EVP_AES_256_CFB
+    case CIPHER_AES_256:
+      in_state.crypt_state.cipher = EVP_aes_256_cfb();
+      break;
+#endif
     default:
       send_error("can't set decryption cipher - invalid cipher: %d!",
                  cipher); /* invalid cipher */
@@ -299,6 +315,22 @@
     case CIPHER_RC5_16:
       out_state.crypt_state.cipher = EVP_rc5_32_12_16_cfb();
       out_state.crypt_state.rounds = 16;
+      break;
+#endif
+/* rain - added AES support */
+#ifdef HAVE_EVP_AES_128_CFB
+    case CIPHER_AES_128:
+      out_state.crypt_state.cipher = EVP_aes_128_cfb();
+      break;
+#endif
+#ifdef HAVE_EVP_AES_192_CFB
+    case CIPHER_AES_192:
+      out_state.crypt_state.cipher = EVP_aes_192_cfb();
+      break;
+#endif
+#ifdef HAVE_EVP_AES_256_CFB
+    case CIPHER_AES_256:
+      out_state.crypt_state.cipher = EVP_aes_256_cfb();
       break;
 #endif
     default:
diff -uNrd ircd-hybrid-7.0/servlink/servlink.c anynet-3.0/servlink/servlink.c
--- ircd-hybrid-7.0/servlink/servlink.c	Thu May 29 01:13:24 2003
+++ anynet-3.0/servlink/servlink.c	Mon Feb  2 06:41:21 2004
@@ -61,10 +61,11 @@
  */
 static void usage(void)
 {
-  fprintf(stderr, "ircd-hybrid server link v1.0\n");
+  /* rain - made ircd-hybrid references slightly more generic */
+  fprintf(stderr, "ircd server link v1.0\n");
   fprintf(stderr, "2001-06-04\n");
   fprintf(stderr, "\n");
-  fprintf(stderr, "This program is called by the ircd-hybrid ircd.\n");
+  fprintf(stderr, "This program is called by the hybrid/anynet ircd.\n");
   fprintf(stderr, "It cannot be used on its own.\n");
   exit(1);
 }
diff -uNrd ircd-hybrid-7.0/servlink/servlink.h anynet-3.0/servlink/servlink.h
--- ircd-hybrid-7.0/servlink/servlink.h	Sun Nov 24 03:27:14 2002
+++ anynet-3.0/servlink/servlink.h	Mon Feb  2 06:49:15 2004
@@ -58,6 +58,10 @@
 #define CIPHER_RC5_8    6
 #define CIPHER_RC5_12   7
 #define CIPHER_RC5_16   8
+/* rain - add AES */
+#define CIPHER_AES_128  9
+#define CIPHER_AES_192  10
+#define CIPHER_AES_256  11
 
 struct crypt_state
 {
diff -uNrd ircd-hybrid-7.0/servlink/setup.h.in anynet-3.0/servlink/setup.h.in
--- ircd-hybrid-7.0/servlink/setup.h.in	Sun Jun  3 13:39:27 2001
+++ anynet-3.0/servlink/setup.h.in	Mon Feb  2 06:48:25 2004
@@ -26,3 +26,14 @@
 
 /* Define if you have the EVP_idea_cfb function.  */
 #undef HAVE_EVP_IDEA_CFB
+
+/* rain - added AES cryptlink support */
+/* Define if you have the EVP_aes_128_cfb function. */
+#undef HAVE_EVP_AES_128_CFB
+
+/* Define if you have the EVP_aes_192_cfb function. */
+#undef HAVE_EVP_AES_192_CFB
+
+/* Define if you have the EVP_aes_256_cfb function. */
+#undef HAVE_EVP_AES_256_CFB
+
diff -uNrd ircd-hybrid-7.0/src/Makefile.in anynet-3.0/src/Makefile.in
--- ircd-hybrid-7.0/src/Makefile.in	Wed May 28 23:02:15 2003
+++ anynet-3.0/src/Makefile.in	Mon Feb  2 02:39:04 2004
@@ -40,7 +40,8 @@
  
 default:	all
 
-y.tab.o:	y.tab.c ircd_parser.y
+# rain - depend on setup.h so we rebuild this, too, on configuration change
+y.tab.o:	y.tab.c ircd_parser.y ../include/setup.h
 	${CC} ${CPPFLAGS} ${CFLAGS} -I. -c y.tab.c
 
 # Note GNU bison uses <file>.tab.c not y.tab.c
@@ -72,6 +73,7 @@
   irc_string.c                  \
   ircd.c                        \
   ircd_signal.c                 \
+  isupport.c                    \
   kdparse.c			\
   linebuf.c                     \
   list.c                        \
@@ -88,6 +90,7 @@
   rsa.c                         \
   restart.c                     \
   resv.c			\
+  @SSL_CLIENT_C@		\
   s_auth.c                      \
   s_bsd.c                       \
   s_bsd_kqueue.c                \
@@ -119,7 +122,8 @@
 
 build: all
 
-ircd: $(OBJS) y.tab.o lex.yy.o version.o
+# rain - properly depend on libadns.a so parallel builds work
+ircd: $(OBJS) y.tab.o lex.yy.o version.o ../adns/libadns.a
 	${CC} ${CFLAGS} ${LDFLAGS} -o $@ ${OBJS} lex.yy.o y.tab.o version.o ${IRCDLIBS} ${LEXLIB}
 	mv version.c version.c.last
 
diff -uNrd ircd-hybrid-7.0/src/adns.c anynet-3.0/src/adns.c
--- ircd-hybrid-7.0/src/adns.c	Fri Apr  4 20:20:03 2003
+++ anynet-3.0/src/adns.c	Mon Feb  2 00:49:24 2004
@@ -139,9 +139,10 @@
   
   adns_forallqueries_begin(dns_state);
   
-  while((q = adns_forallqueries_next(dns_state, (void **)&r)) != NULL)
+  /* rain - corrected void ** casts to void * */
+  while((q = adns_forallqueries_next(dns_state, (void *)&r)) != NULL)
   {
-    switch(adns_check(dns_state, &q, &answer, (void **)&query))  
+    switch(adns_check(dns_state, &q, &answer, (void *)&query))  
     {
       case 0:
         /* Looks like we got a winner */            
diff -uNrd ircd-hybrid-7.0/src/channel.c anynet-3.0/src/channel.c
--- ircd-hybrid-7.0/src/channel.c	Thu May 29 00:02:36 2003
+++ anynet-3.0/src/channel.c	Mon Feb  2 01:24:30 2004
@@ -1128,7 +1128,7 @@
 
   if (chptr->mode.limit && chptr->users >= chptr->mode.limit)
     return (ERR_CHANNELISFULL);
-
+  
   return 0;
 }
 
@@ -1242,6 +1242,10 @@
 int
 can_send(struct Channel *chptr, struct Client *source_p)
 {
+  /* rain - services can always send to channels */
+  if (IsService(source_p))
+    return (CAN_SEND_OPV);
+
   if(MyClient(source_p) &&
      (find_channel_resv(chptr->chname) &&
       !(IsOper(source_p)) && ConfigChannel.oper_pass_resv))
diff -uNrd ircd-hybrid-7.0/src/channel_mode.c anynet-3.0/src/channel_mode.c
--- ircd-hybrid-7.0/src/channel_mode.c	Sat Apr 19 22:33:41 2003
+++ anynet-3.0/src/channel_mode.c	Mon Feb  2 02:29:32 2004
@@ -499,10 +499,11 @@
   if (chptr->mode.mode & MODE_HIDEOPS)
     *mbuf++ = 'a';
 #endif
+
   if (chptr->mode.limit)
   {
     *mbuf++ = 'l';
-    if (IsMember(client_p, chptr) || IsServer(client_p))
+    if (IsMember(client_p, chptr) || IsServer(client_p) || IsOper(client_p))
     {
       len = ircsprintf(pbuf, "%d ", chptr->mode.limit);
       pbuf += len;
@@ -511,7 +512,7 @@
   if (*chptr->mode.key)
   {
     *mbuf++ = 'k';
-    if (IsMember(client_p, chptr) || IsServer(client_p))
+    if (IsMember(client_p, chptr) || IsServer(client_p) || IsAdmin(client_p))
       ircsprintf(pbuf, "%s ", chptr->mode.key);
   }
 
@@ -814,8 +815,11 @@
   /* dont allow halfops to set +-p, as this controls whether they can set
    * +-h or not.. all other simple modes are ok
    */
-  if((alev < CHACCESS_HALFOP) ||
-    ((mode_type == MODE_PRIVATE) && (alev < CHACCESS_CHANOP)))
+
+  /* rain - services support */
+  if(((alev < CHACCESS_HALFOP) ||
+    ((mode_type == MODE_PRIVATE) && (alev < CHACCESS_CHANOP))) &&
+    !IsService(source_p))
   {
     if (!(*errors & SM_ERR_NOOPS))
       sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name,
@@ -824,6 +828,7 @@
     return;
   }
 
+
   /* If have already dealt with this simple mode, ignore it */
   if (simple_modes_mask & mode_type)
     return;
@@ -872,7 +877,8 @@
   if(!ConfigChannel.use_anonops)
     return;
 
-  if (alev < CHACCESS_HALFOP)
+  /* rain - services support */
+  if (alev < CHACCESS_HALFOP && !IsService(source_p))
   {
     if (!(*errors & SM_ERR_NOOPS))
       sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name,
@@ -933,7 +939,7 @@
     *errors |= SM_ERR_RPL_B;
 
 #ifdef ANONOPS
-    if ((chptr->mode.mode & MODE_HIDEOPS) && (alev < CHACCESS_HALFOP))
+    if ((chptr->mode.mode & MODE_HIDEOPS) && (alev < CHACCESS_HALFOP) && !IsOper(client_p))
       DLINK_FOREACH(ptr, chptr->banlist.head)
       {
         banptr = ptr->data;
@@ -955,7 +961,8 @@
     return;
   }
 
-  if (alev < CHACCESS_HALFOP)
+  /* rain - services support */
+  if (alev < CHACCESS_HALFOP && !IsService(client_p))
   {
     if (!(*errors & SM_ERR_NOOPS))
       sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name,
@@ -1048,7 +1055,8 @@
     return;
   }
 
-  if (alev < CHACCESS_HALFOP)
+  /* rain - services support */
+  if (alev < CHACCESS_HALFOP && !IsService(source_p))
   {
     if (!(*errors & SM_ERR_NOOPS))
       sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name,
@@ -1150,7 +1158,8 @@
     return;
   }
 
-  if (alev < CHACCESS_HALFOP)
+  /* rain - services support */
+  if (alev < CHACCESS_HALFOP && !IsService(source_p))
   {
     if (!(*errors & SM_ERR_NOOPS))
       sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name,
@@ -1258,7 +1267,8 @@
   int wasnt_hopped = 0;
 #endif
 
-  if (alev < CHACCESS_CHANOP)
+  /* rain - services support */
+  if (alev < CHACCESS_CHANOP && !IsService(source_p))
   {
     if (!(*errors & SM_ERR_NOOPS))
       sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name,
@@ -1463,9 +1473,10 @@
  * +p is set(although they can set +p) so it is safe to use this to
  * control whether they can (de)halfop...
  */
-  if (alev <
+  /* rain - services support */
+  if ((alev <
       ((chptr->mode.mode & MODE_PRIVATE) ?
-        CHACCESS_CHANOP : CHACCESS_HALFOP))
+        CHACCESS_CHANOP : CHACCESS_HALFOP)) && !IsService(source_p))
   {
     if (!(*errors & SM_ERR_NOOPS))
       sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name,
@@ -1607,7 +1618,8 @@
   char *opnick;
   struct Client *targ_p;
 
-  if (alev < CHACCESS_HALFOP)
+  /* rain - services support */
+  if (alev < CHACCESS_HALFOP && !IsService(source_p))
   {
     if (!(*errors & SM_ERR_NOOPS))
       sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name,
@@ -1694,7 +1706,8 @@
   int i, limit;
   char *lstr;
 
-  if (alev < CHACCESS_HALFOP)
+  /* rain - services support */
+  if (alev < CHACCESS_HALFOP && !IsService(source_p))
   {
     if (!(*errors & SM_ERR_NOOPS))
       sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name,
@@ -1758,7 +1771,8 @@
   int i;
   char *key;
 
-  if (alev < CHACCESS_HALFOP)
+  /* rain - services support */
+  if (alev < CHACCESS_HALFOP && !IsService(source_p))
   {
     if (!(*errors & SM_ERR_NOOPS))
       sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name,
@@ -2094,8 +2108,10 @@
   st = ALL_MEMBERS;
 #endif
 
+  /* rain - show source server if hide_servers is off */
   if (IsServer(source_p))
-    mbl = ircsprintf(modebuf, ":%s MODE %s ", me.name, chname);
+    mbl = ircsprintf(modebuf, ":%s MODE %s ", ConfigServerHide.hide_servers ?
+                     me.name : source_p->name, chname);
   else
     mbl = ircsprintf(modebuf, ":%s!%s@%s MODE %s ", source_p->name,
                      source_p->username, source_p->host, chname);
@@ -2133,8 +2149,10 @@
       nc = 0;
       mc = 0;
 
+      /* rain - show source server if hide_servers is off */
       if (IsServer(source_p))
-        mbl = ircsprintf(modebuf, ":%s MODE %s ", me.name, chname);
+        mbl = ircsprintf(modebuf, ":%s MODE %s ",
+          ConfigServerHide.hide_servers ? me.name : source_p->name, chname);
       else
         mbl = ircsprintf(modebuf, ":%s!%s@%s MODE %s ", source_p->name,
                    source_p->username, source_p->host, chname);
diff -uNrd ircd-hybrid-7.0/src/client.c anynet-3.0/src/client.c
--- ircd-hybrid-7.0/src/client.c	Sun Mar  2 02:30:54 2003
+++ anynet-3.0/src/client.c	Mon Feb  2 14:09:23 2004
@@ -399,7 +399,7 @@
 {               
   struct Client *client_p;          /* current local client_p being examined */
   struct ConfItem *aconf = NULL;
-  char *reason;                /* pointer to reason string */
+  char reason[IRCD_BUFSIZE];        /* rain - so we can prepend K/G/D-lined */
   dlink_node *ptr, *next_ptr;
  
   DLINK_FOREACH_SAFE(ptr, next_ptr, lclient_list.head)
@@ -424,10 +424,11 @@
       sendto_realops_flags(FLAGS_ALL, L_ALL,"DLINE active for %s",
 			   get_client_name(client_p, HIDE_IP));
       
+      /* rain - using reason buffer now */
       if (ConfigFileEntry.kline_with_connection_closed &&
 	  ConfigFileEntry.kline_with_reason)
       {
-	reason = "Connection closed";
+        ircsprintf(reason, "Connection closed");
 
 	if(IsPerson(client_p))
 	  sendto_one(client_p, form_str(ERR_YOUREBANNEDCREEP),
@@ -439,11 +440,11 @@
       else
       {
 	if(ConfigFileEntry.kline_with_connection_closed)
-	  reason = "Connection closed";
+	  ircsprintf(reason, "Connection closed");
 	else if(ConfigFileEntry.kline_with_reason && aconf->passwd)
-	  reason = aconf->passwd;
+	  ircsprintf(reason, "%s: %s", "D-lined", aconf->passwd);
 	else
-	  reason = "D-lined";
+	  ircsprintf(reason, "D-lined");
 
 	if(IsPerson(client_p))
 	  sendto_one(client_p, form_str(ERR_YOUREBANNEDCREEP),
@@ -480,10 +481,11 @@
 	sendto_realops_flags(FLAGS_ALL, L_ALL, "GLINE active for %s",
 			     get_client_name(client_p, HIDE_IP));
 			    
+        /* rain - using reason buffer now */
 	if(ConfigFileEntry.kline_with_connection_closed &&
 	   ConfigFileEntry.kline_with_reason)
 	{
-	  reason = "Connection closed";
+	  ircsprintf(reason, "Connection closed");
 
 	  sendto_one(client_p, form_str(ERR_YOUREBANNEDCREEP),
 		     me.name, client_p->name,
@@ -492,11 +494,11 @@
 	else 
 	{
 	  if(ConfigFileEntry.kline_with_connection_closed)
-	    reason = "Connection closed";
+	    ircsprintf(reason, "Connection closed");
 	  else if(ConfigFileEntry.kline_with_reason && aconf->passwd)
-	    reason = aconf->passwd;
+	    ircsprintf(reason, "%s: %s", "G-lined", aconf->passwd);
 	  else
-	    reason = "G-lined";
+	    ircsprintf(reason, "G-lined");
 
 	  sendto_one(client_p, form_str(ERR_YOUREBANNEDCREEP),
 		     me.name, client_p->name, reason);
@@ -520,10 +522,11 @@
 	sendto_realops_flags(FLAGS_ALL, L_ALL, "KLINE active for %s",
 			     get_client_name(client_p, HIDE_IP));
 	
+        /* rain - using reason buffer now */
 	if(ConfigFileEntry.kline_with_connection_closed &&
 	   ConfigFileEntry.kline_with_reason)
 	{
-	  reason = "Connection closed";
+	  ircsprintf(reason, "Connection closed");
 
 	  sendto_one(client_p, form_str(ERR_YOUREBANNEDCREEP),
 		     me.name, client_p->name, 
@@ -532,11 +535,11 @@
 	else
 	{
 	  if(ConfigFileEntry.kline_with_connection_closed)
-	    reason = "Connection closed";
+	    ircsprintf(reason, "Connection closed");
 	  else if(ConfigFileEntry.kline_with_reason && aconf->passwd)
-	    reason = aconf->passwd;
+	    ircsprintf(reason, "%s: %s", "K-lined", aconf->passwd);
 	  else
-	    reason = "K-lined";
+	    ircsprintf(reason, "K-lined");
 
 	  sendto_one(client_p, form_str(ERR_YOUREBANNEDCREEP),
 		     me.name, client_p->name, reason);
@@ -1451,7 +1454,8 @@
                            source_p->name, (int)(CurrentTime - source_p->firsttime),
                            source_p->localClient->sendK,
                            source_p->localClient->receiveK);
-      ilog(L_NOTICE, "%s was connected for %d seconds.  %d/%d sendK/recvK.",
+      /* rain - use %ld for time_t in format */
+      ilog(L_NOTICE, "%s was connected for %ld seconds.  %d/%d sendK/recvK.",
            source_p->name, CurrentTime - source_p->firsttime, 
            source_p->localClient->sendK, source_p->localClient->receiveK);
     }
@@ -1472,8 +1476,9 @@
  */
 
 /* XXX one common Client list now */
+/* rain - made argument type a u_long instead */
 void
-count_local_client_memory(int *count, int *local_client_memory_used)
+count_local_client_memory(int *count, u_long *local_client_memory_used)
 {
   *count = local_client_count;
   *local_client_memory_used = local_client_count *
@@ -1483,8 +1488,9 @@
 /*
  * Count up remote client memory
  */
+/* rain - made argument type a u_long instead */
 void
-count_remote_client_memory(int *count, int *remote_client_memory_used)
+count_remote_client_memory(int *count, u_long *remote_client_memory_used)
 {
   *count = remote_client_count;
   *remote_client_memory_used = remote_client_count * sizeof(struct Client);
diff -uNrd ircd-hybrid-7.0/src/dynlink.c anynet-3.0/src/dynlink.c
--- ircd-hybrid-7.0/src/dynlink.c	Tue Dec  3 21:42:21 2002
+++ anynet-3.0/src/dynlink.c	Mon Feb  2 02:31:20 2004
@@ -54,7 +54,8 @@
 /*
  * Fake dlfunc(3) if we don't have it, cause it's happy.
  */
-typedef void (*__function_p)(void);
+/* rain - moved typedef to header */
+/* typedef void (*__function_p)(void); */
 
 __function_p
 dlfunc(void *myHandle, const char *functionName)
@@ -227,7 +228,8 @@
 #endif
 
   MyFree(modlist[modindex]->name);
-  memcpy( &modlist[modindex], &modlist[modindex+1],
+  /* rain - changed memcpy to memmove because arguments overlap */
+  memmove( &modlist[modindex], &modlist[modindex+1],
           sizeof(struct module) * ((num_mods-1) - modindex) );
 
   if(num_mods != 0)
@@ -346,7 +348,8 @@
       sendto_realops_flags(FLAGS_ALL, L_ALL,
                         "Module %s [version: %s] loaded at 0x%lx",
                         mod_basename, ver, (unsigned long)tmpptr);
-       ilog (L_WARN, "Module %s [version: %s] loaded at 0x%x",
+       /* rain - changed 0x%x to more correct %p */
+       ilog (L_WARN, "Module %s [version: %s] loaded at %p",
             mod_basename, ver, tmpptr);
     }
   MyFree (mod_basename);
diff -uNrd ircd-hybrid-7.0/src/hook.c anynet-3.0/src/hook.c
--- ircd-hybrid-7.0/src/hook.c	Wed Oct 30 22:12:30 2002
+++ anynet-3.0/src/hook.c	Sat Jan 31 19:38:01 2004
@@ -45,6 +45,10 @@
         hook_add_event("iorecvctrl");
 #endif
 	hook_add_event("burst_channel");
+	/* rain - extended ISUPPORT */
+	hook_add_event("update_isupport");
+	/* rain - add a general netburst hook */
+	hook_add_event("burst");
 }
 
 static hook *
diff -uNrd ircd-hybrid-7.0/src/irc_string.c anynet-3.0/src/irc_string.c
--- ircd-hybrid-7.0/src/irc_string.c	Fri Apr  4 20:37:57 2003
+++ anynet-3.0/src/irc_string.c	Mon Feb  2 09:02:13 2004
@@ -598,7 +598,8 @@
 #ifdef IPV6
 	case AF_INET6:
 		/* Somebody might have passed as an IPv4 address this is sick but it works */
-		if(inet_pton4(src, dst))
+		/* rain - made check == 1 since -1 is an error case */
+		if(inet_pton4(src, dst) == 1)
 		{
 			char tmp[HOSTIPLEN];
 			ircsprintf(tmp, "::ffff:%s", src);
diff -uNrd ircd-hybrid-7.0/src/ircd.c anynet-3.0/src/ircd.c
--- ircd-hybrid-7.0/src/ircd.c	Thu May 29 01:13:26 2003
+++ anynet-3.0/src/ircd.c	Mon Feb  2 05:22:56 2004
@@ -71,6 +71,13 @@
 #include "hook.h"
 #include "ircd_getopt.h"
 #include "balloc.h"
+#ifdef SSL_CLIENT_SUPPORT
+/* rain - for SSL client support */
+#include "ssl_client.h"
+#endif
+/* rain - for extended ISUPPORT numeric support */
+#include "isupport.h"
+
 /*
  * Try and find the correct name to use with getrlimit() for setting the max.
  * number of files allowed to be open by this process.
@@ -585,7 +592,8 @@
   ConfigFileEntry.configfile = CPATH;   /* Server configuration file */
   ConfigFileEntry.klinefile = KPATH;    /* Server kline file */
   ConfigFileEntry.dlinefile = DLPATH;   /* dline file */
-  ConfigFileEntry.glinefile = GPATH;    /* gline log file */
+/* rain - no longer relevant */
+/*  ConfigFileEntry.glinefile = GPATH; */   /* gline log file */
 
   myargv = argv;
   umask(077);                /* better safe than sorry --SRB */
@@ -635,6 +643,10 @@
   initBlockHeap();
   init_dlink_nodes();
   initialize_message_files();
+#ifdef SSL_CLIENT_SUPPORT
+  /* rain - initialize the SSL context */
+  SSLC_CTX_init();
+#endif
   linebuf_init();       /* set up some linebuf stuff to control paging */
   init_hash();
   id_init();
@@ -649,6 +661,7 @@
   initwhowas();
   init_stats();
   init_hooks();
+
   load_all_modules(1);
 #ifndef STATIC_MODULES
   load_core_modules(1);
@@ -732,6 +745,11 @@
   
   check_class();
   write_pidfile(pidFileName);
+
+/* rain - initialize extended ISUPPORT code */
+  isupport_init();
+  /* rain - give extended ISUPPORT code our starting configuration */
+  hook_call_event("update_isupport", ISUP_NO_PROPAGATE);
   
   ilog(L_NOTICE, "Server Ready");
   
@@ -761,6 +779,14 @@
 
   ServerRunning = 1;
   io_loop();
+
+#ifdef SSL_CLIENT_SUPPORT
+  /* rain - deinitialize SSL context */
+  SSLC_CTX_deinit();
+#endif
+  /* rain - deinitialize extended ISUPPORT code */
+  isupport_deinit();
+
   return 0;
 }
 
diff -uNrd ircd-hybrid-7.0/src/ircd_lexer.l anynet-3.0/src/ircd_lexer.l
--- ircd-hybrid-7.0/src/ircd_lexer.l	Wed Oct 30 12:44:56 2002
+++ anynet-3.0/src/ircd_lexer.l	Wed Feb  4 12:08:46 2004
@@ -74,6 +74,12 @@
 qstring   \"[^\"\n]*[\"\n]
 include   \.include{ws}(\<.*\>|\".*\")
 
+/*
+ * rain - these are no longer relevant, removed
+gline_log       { return GLINE_LOG; }
+gline_time      { return GLINE_TIME; }
+ */
+
 %%
 {include}       { cinclude(); }
 "/*"	        { ccomment(); }
@@ -176,8 +182,6 @@
 general		{ return GENERAL; }
 gline		{ return GLINE; }
 gline_exempt    { return GLINE_EXEMPT; }
-gline_log       { return GLINE_LOG; }
-gline_time      { return GLINE_TIME; }
 global_kill	{ return GLOBAL_KILL; }
 have_ident	{ return HAVE_IDENT; }
 havent_read_conf { return HAVENT_READ_CONF; }
@@ -254,6 +258,9 @@
 silent          { return SILENT; }
 spoof		{ return SPOOF; }
 spoof_notice	{ return SPOOF_NOTICE; }
+ssl		{ return SSL_PORT; /* rain - SSL client support */}
+ssl_cert_file	{ return SSL_CERT_FILE; /* rain - SSL client support */ }
+ssl_private_key_file { return SSL_PRIVATE_KEY_FILE; /* rain - SSL client support */ }
 true_no_oper_flood { return TRUE_NO_OPER_FLOOD; }
 unkline		{ return UNKLINE; }
 use_anonops	{ return USE_ANONOPS; }
@@ -388,6 +395,8 @@
     {
       while ((c = input()) == '*');
       if (c == '/') break;
+      /* rain - fix line counter */
+      if (c == '\n') lineno++;
     }
     if (c == EOF)
     {
diff -uNrd ircd-hybrid-7.0/src/ircd_parser.y anynet-3.0/src/ircd_parser.y
--- ircd-hybrid-7.0/src/ircd_parser.y	Tue Nov 12 08:45:42 2002
+++ anynet-3.0/src/ircd_parser.y	Wed Feb  4 12:09:02 2004
@@ -225,6 +225,9 @@
 %token  SILENT
 %token  SPOOF
 %token  SPOOF_NOTICE
+%token  SSL_CERT_FILE
+%token  SSL_PORT
+%token  SSL_PRIVATE_KEY_FILE
 %token  STATS_I_OPER_ONLY
 %token  STATS_K_OPER_ONLY
 %token  STATS_O_OPER_ONLY
@@ -409,7 +412,8 @@
                         serverinfo_network_name | serverinfo_network_desc |
                         serverinfo_max_clients | 
                         serverinfo_rsa_private_key_file | serverinfo_vhost6 |
-                        serverinfo_max_buffer | 
+                        serverinfo_max_buffer | serverinfo_ssl_cert_file |
+                        serverinfo_ssl_private_key_file |
 			error;
 
 serverinfo_rsa_private_key_file: RSA_PRIVATE_KEY_FILE '=' QSTRING ';'
@@ -580,6 +584,20 @@
       ServerInfo.hub = 0;
   } ;
 
+serverinfo_ssl_cert_file: SSL_CERT_FILE '=' QSTRING ';'
+  {
+#ifdef SSL_CLIENT_SUPPORT /* rain - SSL client support */
+    SSLC_CertificateFile(yylval.string);
+#endif
+  };
+
+serverinfo_ssl_private_key_file: SSL_PRIVATE_KEY_FILE '=' QSTRING ';'
+  {
+#ifdef SSL_CLIENT_SUPPORT /* rain - SSL client support */
+    SSLC_PrivateKeyFile(yylval.string);
+#endif
+  };
+
 
 /***************************************************************************
  * admin section
@@ -620,8 +638,9 @@
 logging_items:          logging_items logging_item |
                         logging_item ;
 
+/* rain - removed logging_gline_log */
 logging_item:           logging_path | logging_oper_log |
-                        logging_gline_log | logging_log_level |
+                        logging_log_level |
 			error;
 
 logging_path:           T_LOGPATH '=' QSTRING ';' 
@@ -632,9 +651,12 @@
                         {
                         };
 
+/*
+rain - no longer relevant
 logging_gline_log:	GLINE_LOG '=' QSTRING ';'
                         {
                         };
+*/
 
 logging_log_level:     LOG_LEVEL '=' T_L_CRIT ';'
   { set_log_level(L_CRIT); }
@@ -969,7 +991,8 @@
 listen_items:   listen_items listen_item |
                 listen_item;
 
-listen_item:    listen_port | listen_address | listen_host | error;
+listen_item:    listen_port | listen_address | listen_host |
+                error;
 
 listen_port: PORT '=' port_items ';' ;
 
@@ -977,13 +1000,27 @@
 
 port_item: NUMBER
 {
-  add_listener($1, listener_address);
+  /* rain - added listener_ssl param for SSL client support */
+  add_listener($1, listener_address, 0);
+} | NUMBER SSL_PORT
+{
+  /* rain - added listener_ssl param for SSL client support */
+  add_listener($1, listener_address, 1);
 } | NUMBER TWODOTS NUMBER
 {
+  /* rain - added listener_ssl param for SSL client support */
   int i;
   for (i = $1; i <= $3; i++)
 	{
-	  add_listener(i, listener_address);
+	  add_listener(i, listener_address, 0);
+	}
+} | NUMBER TWODOTS NUMBER SSL_PORT
+{
+  /* rain - added listener_ssl param for SSL client support */
+  int i;
+  for (i = $1; i <= $3; i++)
+	{
+	  add_listener(i, listener_address, 1);
 	}
 };
 
@@ -1943,6 +1980,7 @@
 general_items:      general_items general_item |
                     general_item;
 
+/* rain - removed general_gline_time */
 general_item:       general_failed_oper_notice |
                     general_anti_nick_flood | general_max_nick_time |
                     general_max_nick_changes | general_max_accept |
@@ -1959,7 +1997,7 @@
                     general_true_no_oper_flood |
                     general_iauth_server |
                     general_iauth_port |
-                    general_glines | general_gline_time |
+                    general_glines |
                     general_idletime |
                     general_maximum_links |
                     general_message_locale | general_client_exit |
@@ -2234,10 +2272,12 @@
     putenv(langenv);
   } ;
 
+/* rain - no longer relevant
 general_gline_time: GLINE_TIME '=' timespec ';'
   {
     ConfigFileEntry.gline_time = $3;
   } ;
+*/
 
 general_idletime: IDLETIME '=' timespec ';'
   {
diff -uNrd ircd-hybrid-7.0/src/ircdauth.c anynet-3.0/src/ircdauth.c
--- ircd-hybrid-7.0/src/ircdauth.c	Tue Feb  4 00:30:50 2003
+++ anynet-3.0/src/ircdauth.c	Thu Jan 22 12:16:41 2004
@@ -108,10 +108,12 @@
   /*
    * bingo - this is blocking :(
    */
-  ilog(L_ERROR, "looking up: %s\n", iAuth.hostname);
+  /* rain - removed extraneous \n */
+  ilog(L_ERROR, "looking up: %s", iAuth.hostname);
 	if ((hostptr = gethostbyname(iAuth.hostname)) == NULL)
 	{
-    ilog(L_ERROR, "unsuccessful lookup\n");
+    /* rain - removed extraneous \n */
+    ilog(L_ERROR, "unsuccessful lookup");
 		ilog(L_ERROR,
 			"Unable to connect to IAuth server: Unknown host");
 
diff -uNrd ircd-hybrid-7.0/src/isupport.c anynet-3.0/src/isupport.c
--- ircd-hybrid-7.0/src/isupport.c	Wed Dec 31 19:00:00 1969
+++ anynet-3.0/src/isupport.c	Wed Feb  4 12:57:44 2004
@@ -0,0 +1,372 @@
+/*
+ * isupport.c: Extended ISUPPORT numeric support
+ *
+ * Copyright (c) 2004  Ben Winslow.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    the above paragraph (the one permitting redistribution), this list of
+ *    conditions and the following disclaimer in the documentation and/or
+ *    other materials provided with the distribution.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
+ * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $Id$
+ */
+
+#include "config.h"
+#include "stdinc.h"
+#include "event.h"
+#include "ircd_defs.h"
+#include "numeric.h"
+#include "client.h"
+#include "ircd.h"
+#include "supported.h" /* for CASEMAP */
+#include "s_conf.h"
+#include "channel_mode.h"
+#include "s_log.h"
+#include "hook.h"
+#include "send.h"
+#ifdef SSL_CLIENT_SUPPORT
+#include "ssl_client.h"
+#endif
+#include "isupport.h"
+
+static int isupport_add_token(char *, struct isupport_s *, int, int *);
+static void isupport_build(int);
+static int isupport_update(int);
+
+static struct isupport_s isup;
+
+void isupport_init(void)
+{
+	memset(&isup, 0, sizeof(isup));
+	DupString(isup.old_netname, NETWORK_NAME_DEFAULT);
+
+	hook_add_hook("update_isupport", (hookfn *)isupport_update);
+}
+
+void isupport_send(struct Client *client_p)
+{
+	int x;
+
+	for (x = 0; x < isup.lines; x++) {
+		sendto_one(client_p, form_str(RPL_ISUPPORT), me.name,
+			client_p->name, isup.line[x]);
+	}
+}
+
+void isupport_deinit(void)
+{
+	if (isup.old_netname != NULL)
+		MyFree(isup.old_netname);
+}
+
+/* hook function */
+static int isupport_update(int send_changed)
+{
+	isupport_build(send_changed);
+	
+	return 0;
+}
+
+static int isupport_add_token(char *buf, struct isupport_s *is, int maxlen, int *toknum)
+{
+	if (is == NULL || toknum == NULL || is->lines > MAX_ISUPPORT_LINES)
+		return -1;
+
+	/*
+	 * if the token won't fit on this line, or we've hit the token
+	 * limit, advance to the next isupport line
+	 */
+	
+	if (strlen(is->line[is->lines]) + 1 + strlen(buf) > maxlen ||
+		*toknum >= 13) {
+		
+		is->lines++;
+		(*toknum) = 0;
+		
+		if (is->lines >= MAX_ISUPPORT_LINES) {
+			ilog(L_ERROR, "ISUPPORT reply too large -- Increase MAX_ISUPPORT_LINES");
+			return -1;
+		}
+	}
+	
+	/* add a space if this isn't the first token */
+	if (is->line[is->lines][0])
+		strcat(is->line[is->lines], " ");
+
+	/* add the token */
+	strcat(is->line[is->lines], buf);
+	
+	(*toknum)++;
+
+	return 0;
+}
+
+static void isupport_build(int send_changed)
+{
+	int maxlen, tok = 0, tok_changed = 0, x;
+	char curtoken[BUFSIZE];
+	struct isupport_s changed;
+	dlink_node *dlnode, *dlnode_next;
+	struct Client *client_p;
+
+	for (x = 0; x < MAX_ISUPPORT_LINES; x++)
+		memset(isup.line[x], 0, sizeof(isup.line[x]));
+	isup.lines = 0;
+
+	memset(&changed, 0, sizeof(changed));
+	
+	sprintf(curtoken, form_str(RPL_ISUPPORT), me.name, "", "");
+	maxlen = BUFSIZE - (strlen(curtoken) + NICKLEN + 3);
+	
+	/* rain - ISUPPORT tokens from draft-brocklesby-irc-isupport-03 */
+
+	/* *** ISUPPORT TOKEN: STD */
+	sprintf(curtoken, "STD=%s", ISUPPORT_STANDARD);
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+
+	/* *** ISUPPORT TOKEN: CASEMAPPING */
+	sprintf(curtoken, "CASEMAPPING=%s", CASEMAP);
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+	
+	/* *** ISUPPORT TOKEN: CHANLIMIT */
+	sprintf(curtoken, "CHANLIMIT=%s:%d",
+		ConfigServerHide.disable_local_channels ? "#" : "#&",
+		ConfigChannel.max_chans_per_user);
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+
+	if (ConfigServerHide.disable_local_channels !=
+		((isup.old_flags & ISUP_FLAG_NOLOCAL) ? 1 : 0) ||
+		ConfigChannel.max_chans_per_user != isup.old_maxchans) {
+		
+		isupport_add_token(curtoken, &changed, maxlen, &tok_changed);
+		
+		/* ISUP_FLAG_NOLOCAL set in CHANTYPES */
+		/* old_maxchans set in MAXCHANNELS */
+	}
+	
+	/* *** ISUPPORT TOKEN: CHANMODES */
+	sprintf(curtoken, "CHANMODES=b%s%s,k,l,imnpst%s",
+		ConfigChannel.use_except ? "e" : "",
+		ConfigChannel.use_invex ? "I" : "",
+		ConfigChannel.use_anonops ? "a" : "");
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+	
+	if (ConfigChannel.use_except != !!(isup.old_flags & ISUP_FLAG_EXCEPTS) ||
+		(ConfigChannel.use_invex != !!(isup.old_flags & ISUP_FLAG_INVEX))) {
+		
+		isupport_add_token(curtoken, &changed, maxlen, &tok_changed);
+		
+		/* ISUP_FLAG_EXCEPTS set in EXCEPT */
+		/* ISUP_FLAG_INVEX set in INVEX */
+	}
+	
+	/* *** ISUPPORT TOKEN: MAXLIST */
+	sprintf(curtoken, "MAXLIST=b%s%s:%d",
+		ConfigChannel.use_except ? "e" : "",
+		ConfigChannel.use_invex ? "I" : "",
+		ConfigChannel.max_bans);
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+
+	if (ConfigChannel.use_except != !!(isup.old_flags & ISUP_FLAG_EXCEPTS) ||
+		(ConfigChannel.use_invex != !!(isup.old_flags & ISUP_FLAG_INVEX)) ||
+		ConfigChannel.max_bans != isup.old_maxbans) {
+
+		isupport_add_token(curtoken, &changed, maxlen, &tok_changed);
+		/* ISUP_FLAG_EXCEPTS set in EXCEPT */
+		/* ISUP_FLAG_INVEX set in INVEX */
+		/* old_maxbans is set in MAXBANS */
+	}
+
+	/* *** ISUPPORT TOKEN: EXCEPTS */
+	if (ConfigChannel.use_except) {
+		isupport_add_token("EXCEPTS", &isup, maxlen, &tok);
+		if (!(isup.old_flags & ISUP_FLAG_EXCEPTS))
+			isupport_add_token("EXCEPTS", &changed, maxlen, &tok_changed);
+		isup.old_flags |= ISUP_FLAG_EXCEPTS;
+	} else {
+		if ((isup.old_flags & ISUP_FLAG_EXCEPTS))
+			isupport_add_token("-EXCEPTS", &changed, maxlen, &tok_changed);
+		isup.old_flags &= ~ISUP_FLAG_EXCEPTS;
+	}
+
+	/* *** ISUPPORT TOKEN: INVEX */
+	if (ConfigChannel.use_invex) {
+		isupport_add_token("INVEX", &isup, maxlen, &tok);
+		if (!(isup.old_flags & ISUP_FLAG_INVEX))
+			isupport_add_token("INVEX", &changed, maxlen, &tok_changed);
+		isup.old_flags |= ISUP_FLAG_INVEX;
+	} else {
+		if ((isup.old_flags & ISUP_FLAG_INVEX))
+			isupport_add_token("-INVEX", &changed, maxlen, &tok_changed);
+		isup.old_flags &= ~ISUP_FLAG_INVEX;
+	}
+	
+	/* *** ISUPPORT TOKEN: KICKLEN */
+	sprintf(curtoken, "KICKLEN=%d", TOPICLEN);
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+
+	/* *** ISUPPORT TOKEN: MODES */
+	sprintf(curtoken, "MODES=%d", MAXMODEPARAMS);
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+
+	/* *** ISUPPORT TOKEN: NETWORK */
+	sprintf(curtoken, "NETWORK=%s", ServerInfo.network_name);
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+	if (strcmp(ServerInfo.network_name, isup.old_netname)) {
+		isupport_add_token(curtoken, &changed, maxlen, &tok_changed);
+		MyFree(isup.old_netname);
+		DupString(isup.old_netname, ServerInfo.network_name);
+	}
+
+	/* *** ISUPPORT TOKEN: NICKLEN */
+	sprintf(curtoken, "NICKLEN=%d", NICKLEN - 1);
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+
+	/* *** ISUPPORT TOKEN: PREFIX */
+	sprintf(curtoken, "PREFIX=%s",
+		ConfigChannel.use_halfops ? "(ohv)@%+" : "(ov)@+");
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+
+	/* *** ISUPPORT TOKEN: STATUSMSG */
+	sprintf(curtoken, "STATUSMSG=@%s+",
+		ConfigChannel.use_halfops ? "%" : "");
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+	
+	/* *** ISUPPORT TOKEN: TARGMAX */
+	sprintf(curtoken, "TARGMAX=PRIVMSG:%d,NOTICE:%d,ACCEPT:,JOIN:,PART:",
+		ConfigFileEntry.max_targets, ConfigFileEntry.max_targets);
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+	if (ConfigFileEntry.max_targets != isup.old_maxtargets) {
+		isupport_add_token(curtoken, &changed, maxlen, &tok_changed);
+		isup.old_maxtargets = ConfigFileEntry.max_targets;
+	}
+
+	/* *** ISUPPORT TOKEN: TOPICLEN */	
+	sprintf(curtoken, "TOPICLEN=%d", TOPICLEN);
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+	
+#ifdef SSL_CLIENT_SUPPORT
+	/* *** ISUPPORT TOKEN: STARTTLS */
+	if ((ServerInfo.ssl_status & SSLC_STAT_STARTTLS_OK) == SSLC_STAT_STARTTLS_OK) {
+		isupport_add_token("STARTTLS", &isup, maxlen, &tok);
+		if (!(isup.old_flags & ISUP_FLAG_STARTTLS))
+			isupport_add_token("STARTTLS", &changed, maxlen, &tok_changed);
+		isup.old_flags |= ISUP_FLAG_STARTTLS;
+	} else {
+		if ((isup.old_flags & ISUP_FLAG_STARTTLS))
+			isupport_add_token("-STARTTLS", &changed, maxlen, &tok_changed);
+		isup.old_flags &= ~ISUP_FLAG_STARTTLS;
+	}
+#endif
+
+#if CHANNELLEN != 200
+	/* *** ISUPPORT TOKEN: CHANNELLEN */
+	sprintf(curtoken, "CHANNELLEN=%d", CHANNELLEN);
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+#endif
+
+	/* *** ISUPPORT TOKEN: CHANTYPES */
+	/* rain - don't send CHANTYPES if it's default */
+	if (ConfigServerHide.disable_local_channels) {
+		isupport_add_token("CHANTYPES=#", &isup, maxlen, &tok);
+		if (!(isup.old_flags & ISUP_FLAG_NOLOCAL))
+			isupport_add_token("CHANTYPES=#", &changed, maxlen, &tok_changed);
+		isup.old_flags |= ISUP_FLAG_NOLOCAL;
+	} else {
+		if ((isup.old_flags & ISUP_FLAG_NOLOCAL))
+			isupport_add_token("-CHANTYPES", &changed, maxlen, &tok_changed);
+		isup.old_flags &= ~ISUP_FLAG_NOLOCAL;
+	}
+
+	/* *** ISUPPORT TOKEN: KNOCK */
+	/* rain - misc. stuff that isn't defined in the draft */
+	if (ConfigChannel.use_knock) {
+		isupport_add_token("KNOCK", &isup, maxlen, &tok);
+		if (!(isup.old_flags & ISUP_FLAG_KNOCK))
+			isupport_add_token("KNOCK", &changed, maxlen, &tok_changed);
+		isup.old_flags |= ISUP_FLAG_KNOCK;
+	} else {
+		if ((isup.old_flags & ISUP_FLAG_KNOCK))
+			isupport_add_token("-KNOCK", &changed, maxlen, &tok_changed);
+		isup.old_flags &= ~ISUP_FLAG_KNOCK;
+	}
+	
+	/* *** ISUPPORT TOKEN: VCHANS */
+	if (ConfigChannel.use_vchans) {
+		isupport_add_token("VCHANS", &isup, maxlen, &tok);
+		if (!(isup.old_flags & ISUP_FLAG_VCHANS))
+			isupport_add_token("VCHANS", &changed, maxlen, &tok_changed);
+		isup.old_flags |= ISUP_FLAG_VCHANS;
+	} else {
+		if ((isup.old_flags & ISUP_FLAG_VCHANS))
+			isupport_add_token("-VCHANS", &changed, maxlen, &tok_changed);
+		isup.old_flags &= ~ISUP_FLAG_VCHANS;
+	}
+
+	/* *** ISUPPORT TOKEN: CALLERID */
+	isupport_add_token("CALLERID=g", &isup, maxlen, &tok);
+
+
+	/* rain - these are sent for reverse compatibility (for now) */
+
+	/* *** ISUPPORT TOKEN: MAXCHANNELS */
+	sprintf(curtoken, "MAXCHANNELS=%d", ConfigChannel.max_chans_per_user);
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+	if (ConfigChannel.max_chans_per_user != isup.old_maxchans) {
+		isupport_add_token(curtoken, &changed, maxlen, &tok_changed);
+		isup.old_maxchans = ConfigChannel.max_chans_per_user;
+	}
+	
+	/* *** ISUPPORT TOKEN: MAXBANS */
+	sprintf(curtoken, "MAXBANS=%d", ConfigChannel.max_bans);
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+	if (ConfigChannel.max_bans != isup.old_maxbans) {
+		isupport_add_token(curtoken, &changed, maxlen, &tok_changed);
+		isup.old_maxbans = ConfigChannel.max_bans;
+	}
+	
+	/* *** ISUPPORT TOKEN: WALLCHOPS */
+	isupport_add_token("WALLCHOPS", &isup, maxlen, &tok);
+	
+	/* *** ISUPPORT TOKEN: MAXTARGETS */
+	sprintf(curtoken, "MAXTARGETS=%d", ConfigFileEntry.max_targets);
+	isupport_add_token(curtoken, &isup, maxlen, &tok);
+	if (ConfigFileEntry.max_targets != isup.old_maxtargets) {
+		isupport_add_token(curtoken, &changed, maxlen, &tok_changed);
+		isup.old_maxtargets = ConfigFileEntry.max_targets;
+	}
+
+	/* isup must always have at least one line */
+	isup.lines += 1;
+	/* changed might not, so check */
+	if (changed.line[0][0])
+		changed.lines += 1;
+
+	if (send_changed) {
+		DLINK_FOREACH_SAFE(dlnode, dlnode_next, lclient_list.head) {
+			client_p = dlnode->data;
+			for (x = 0; x < changed.lines; x++) {
+				sendto_one(client_p, form_str(RPL_ISUPPORT),
+					me.name, client_p->name, changed.line[x]);
+			}
+		}
+	}
+}
diff -uNrd ircd-hybrid-7.0/src/linebuf.c anynet-3.0/src/linebuf.c
--- ircd-hybrid-7.0/src/linebuf.c	Wed Oct  9 11:08:32 2002
+++ anynet-3.0/src/linebuf.c	Mon Feb  2 02:56:53 2004
@@ -630,8 +630,12 @@
  *        we have a CRLF.
  */
 int
-linebuf_flush(int fd, buf_head_t *bufhead)
+linebuf_flush(int fd, buf_head_t *bufhead, void *data)
 {
+#ifdef SSL_CLIENT_SUPPORT /* rain - only used for SSL client support */
+  struct Client *client_p = data;
+  struct LocalUser *lclient_p = client_p != NULL ? client_p->localClient : NULL;
+#endif
   buf_line_t *bufline;
   int retval;
   
@@ -660,7 +664,22 @@
     }
 
   /* Now, try writing data */
-  retval = send(fd, bufline->buf + bufhead->writeofs, bufline->len
+#ifdef SSL_CLIENT_SUPPORT
+  /* rain - handle SSL clients */
+  if (lclient_p && lclient_p->ssl_state == SSLC_STATE_CONNECTED)
+    retval = SSLC_write(client_p, bufline->buf + bufhead->writeofs,
+        bufline->len - bufhead->writeofs);
+  else if (lclient_p->ssl_state == SSLC_STATE_HANDSHAKE ||
+           lclient_p->ssl_state == SSLC_STATE_STARTTLS) {
+    /* 
+     * fake EWOULDBLOCK so that we just buffer the line until after
+     * the handshake has completed
+     */
+    errno = EWOULDBLOCK;
+    retval = -1;
+  } else
+#endif
+    retval = send(fd, bufline->buf + bufhead->writeofs, bufline->len
 		 - bufhead->writeofs, 0);
    
   /* Deal with return code */
diff -uNrd ircd-hybrid-7.0/src/list.c anynet-3.0/src/list.c
--- ircd-hybrid-7.0/src/list.c	Tue Jan 28 16:04:06 2003
+++ anynet-3.0/src/list.c	Mon Feb  2 00:54:29 2004
@@ -219,8 +219,9 @@
  * output	- NONE
  * side effects	- NONE
  */
+/* rain - made user_memory_used a u_long */
 void
-count_user_memory(int *count,int *user_memory_used)
+count_user_memory(int *count, u_long *user_memory_used)
 {
   *count = user_count;
   *user_memory_used = user_count * sizeof(struct User);
@@ -234,8 +235,9 @@
  * output	- NONE
  * side effects	- NONE
  */
+/* rain - made links_memory_used a u_long */
 void
-count_links_memory(int *count,int *links_memory_used)
+count_links_memory(int *count, u_long *links_memory_used)
 {
   *count = links_count;
   *links_memory_used = links_count * sizeof(dlink_node);
diff -uNrd ircd-hybrid-7.0/src/listener.c anynet-3.0/src/listener.c
--- ircd-hybrid-7.0/src/listener.c	Thu Jan 30 05:28:45 2003
+++ anynet-3.0/src/listener.c	Mon Feb  2 09:02:21 2004
@@ -51,8 +51,9 @@
 
 static struct Listener* ListenerPollList = NULL;
 
+/* rain - added use_ssl parameter for SSL client support */
 static struct Listener* 
-make_listener(int port, struct irc_inaddr *addr)
+make_listener(int port, struct irc_inaddr *addr, int use_ssl)
 {
   struct Listener* listener =
     (struct Listener*) MyMalloc(sizeof(struct Listener));
@@ -64,6 +65,11 @@
 
   listener->port        = port;
 
+#ifdef SSL_CLIENT_SUPPORT
+  /* rain - is this port an SSL port? */
+  listener->is_ssl      = use_ssl;
+#endif
+
   listener->next = NULL;
   return listener;
 }
@@ -134,7 +140,13 @@
                listener->port,
                IsOperAdmin(source_p) ? listener->name : me.name,
                listener->ref_count,
-               (listener->active)?"active":"disabled");
+               (listener->active) ?
+#ifdef SSL_CLIENT_SUPPORT /* rain - show SSL ports if we have SSL support */
+                 (listener->is_ssl ? "active SSL" : "active")
+#else
+                 "active"
+#endif                 
+                 : "disabled");
   }
 }
 
@@ -239,8 +251,9 @@
   return 1;
 }
 
+/* rain - added use_ssl parameter for SSL client support */
 static struct Listener* 
-find_listener(int port, struct irc_inaddr *addr)
+find_listener(int port, struct irc_inaddr *addr, int use_ssl)
 {
   struct Listener* listener = NULL;
   struct Listener* last_closed = NULL;
@@ -251,7 +264,12 @@
     if ( (port == listener->port) &&
          (!memcmp(&PIN_ADDR(addr),
                  &IN_ADDR(listener->addr),
-                 sizeof(struct irc_inaddr))))
+                 sizeof(struct irc_inaddr)))
+#ifdef SSL_CLIENT_SUPPORT
+         /* rain - match SSL status, too */
+         && listener->is_ssl == use_ssl
+#endif
+       )
     {
       /* Try to return an open listener, otherwise reuse a closed one */
       if (listener->fd == -1)
@@ -270,8 +288,9 @@
  * vhost_ip - if non-null must contain a valid IP address string in
  * the format "255.255.255.255"
  */
+/* rain - added use_ssl parameter for SSL client support */
 void 
-add_listener(int port, const char* vhost_ip)
+add_listener(int port, const char* vhost_ip, int use_ssl)
 {
   struct Listener* listener;
   struct irc_inaddr   vaddr;
@@ -294,14 +313,14 @@
       return;
   }
 
-  if ((listener = find_listener(port, &vaddr)))
+  if ((listener = find_listener(port, &vaddr, use_ssl)))
   {
     if (listener->fd > -1)
       return;
   }
   else
   {
-    listener = make_listener(port, &vaddr);
+    listener = make_listener(port, &vaddr, use_ssl);
     listener->next = ListenerPollList;
     ListenerPollList = listener;
   }
diff -uNrd ircd-hybrid-7.0/src/md5.c anynet-3.0/src/md5.c
--- ircd-hybrid-7.0/src/md5.c	Sun Nov 24 03:27:15 2002
+++ anynet-3.0/src/md5.c	Mon Feb  2 02:41:26 2004
@@ -51,13 +51,17 @@
 	0, 0, 0, 0
 };
 
+#if 0 /* rain - don't do this */
 static	unsigned char *seed_char = (unsigned char *)seed;
+#endif
 static void	id_reseed(char *in, int len);
 static void	md5_block(u_int32_t *in, u_int32_t *out, u_int32_t *x);
 
 
 static	u_int32_t databuf_int[MD5_HASH_SIZE];
+#if 0 /* rain - don't do this */
 static	char *databuf = (char *)databuf_int;
+#endif
 
 static int ork[64] = {
 	0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 
@@ -145,7 +149,8 @@
   fd = open(RPATH, O_RDONLY);
   if (fd > 0)
     {
-      read(fd, databuf, 16);
+      /* rain - read directly into int buffer */
+      read(fd, databuf_int, sizeof(databuf_int));
       close(fd);
       md5_block(databuf_int, seed, seed);    	
     }
@@ -160,7 +165,8 @@
   fd = open(RPATH, O_WRONLY|O_CREAT|O_TRUNC);
   if (fd > 0)
     {
-      write(fd, seed_char, 16);
+      /* rain - read directly into int buffer */
+      write(fd, seed, sizeof(seed));
 /* by default on VMS, files can only be read by their owner */
 #ifndef VMS
       fchmod(fd, 0600);
@@ -330,21 +336,33 @@
 {
   int i;
 
-  for (i=0; i<len; i++)
-    databuf[i%(4*MD5_HASH_SIZE)] += in[i];
+  /* rain - fix the unaligned access here */
+  for (i=0; i<len; i+=4) {
+    databuf_int[i / sizeof(u_int32_t)] += in[i];
+    if (i + 1 < len)
+      databuf_int[i / sizeof(u_int32_t)] += in[i + 1];
+    if (i + 2 < len)
+      databuf_int[i / sizeof(u_int32_t)] += in[i + 2];
+    if (i + 3 < len)
+      databuf_int[i / sizeof(u_int32_t)] += in[i + 3];
+  }
   md5_block(databuf_int, seed, seed);    	
 }
 
 char	*id_get()
 {
   static char id[ID_GEN_LEN+1];
+  unsigned char seed_char; /* rain */
   int i;
 
   md5_block(databuf_int, seed, seed);
 
   id[0] = '.';
-  for (i=1; i<ID_GEN_LEN; i++)
-    id[i] = printable7[seed_char[i] & 127];
+  for (i=1; i<ID_GEN_LEN; i++) {
+    /* rain - fix unaligned accesses */
+    seed_char = seed[i / sizeof(u_int32_t)] << ((i & 3) * 8);
+    id[i] = printable7[seed_char & 127];
+  }
 
   id[ID_GEN_LEN] = '\0';
   return id;
diff -uNrd ircd-hybrid-7.0/src/messages.tab anynet-3.0/src/messages.tab
--- ircd-hybrid-7.0/src/messages.tab	Tue May  6 01:32:17 2003
+++ anynet-3.0/src/messages.tab	Wed Feb  4 12:53:13 2004
@@ -24,7 +24,7 @@
 /* 001  RPL_WELCOME, */ ":%s 001 %s :Welcome to the %s Internet Relay Chat Network %s",
 /* 002  RPL_YOURHOST,*/ ":%s 002 %s :Your host is %s, running version %s",
 /* 003  RPL_CREATED, */ ":%s 003 %s :This server was created %s",
-/* 004  RPL_MYINFO, */ ":%s 004 %s %s %s oiwszcerkfydnxbaugl biklmnopstveIha bkloveIh",
+/* 004  RPL_MYINFO, */ ":%s 004 %s %s %s oiwszcerkfydnxbauglS biklmnopstveIha bkloveIh",
 /* 005  RPL_ISUPPORT, */ ":%s 005 %s %s :are supported by this server",
 /* 006 */       NULL,
 /* 007 */       NULL,
@@ -344,7 +344,7 @@
 /* 317 RPL_WHOISIDLE, */        ":%s 317 %s %s %d %d :seconds idle, signon time",
 /* 318 RPL_ENDOFWHOIS, */       ":%s 318 %s %s :End of /WHOIS list.",
 /* 319 RPL_WHOISCHANNELS, */    ":%s 319 %s %s :%s",
-/* 320 */      NULL,
+/* 320 RPL_WHOISSPECIAL */      ":%s 320 %s %s :%s",
 /* 321 RPL_LISTSTART, */        ":%s 321 %s Channel :Users  Name",
 /* 322 RPL_LIST, */             ":%s 322 %s %s %d :%s",
 /* 323 RPL_LISTEND, */          ":%s 323 %s :End of /LIST",
@@ -503,7 +503,7 @@
 /* 475 ERR_BADCHANNELKEY, */    ":%s 475 %s %s :Cannot join channel (+k)",
 /* 476 ERR_BADCHANMASK, */      ":%s 476 %s %s :Bad Channel Mask",
 /* 477 ERR_MODELESS, */         ":%s 477 %s %s :Channel does not support modes",
-/* 478 ERR_BANLISTFULL, */      ":%s 478 %s %s %s :Channel ban list is full",
+/* 478 ERR_BANLISTFULL, */      ":%s 478 %s %s %s :Channel ban/mask list is full",
 /* 479 ERR_BADCHANNAME */       ":%s 479 %s %s :Illegal channel name",
 /* 480 */       NULL,
 /* 481 ERR_NOPRIVILEGES, */
diff -uNrd ircd-hybrid-7.0/src/modules.c anynet-3.0/src/modules.c
--- ircd-hybrid-7.0/src/modules.c	Tue Jan 21 09:26:51 2003
+++ anynet-3.0/src/modules.c	Mon Feb  2 10:29:43 2004
@@ -572,6 +572,8 @@
 	mod_add_cmd(&drop_msgtab);
 	mod_add_cmd(&eob_msgtab);
 	mod_add_cmd(&gline_msgtab);
+    /* rain - for new GLINE module */
+    hook_add_hook("burst", (hookfn *)gline_netburst);
 	mod_add_cmd(&help_msgtab);
 	mod_add_cmd(&info_msgtab);
 	mod_add_cmd(&invite_msgtab);
@@ -621,7 +623,8 @@
 	mod_add_cmd(&trace_msgtab);
 	mod_add_cmd(&msgtabs[0]);
 	mod_add_cmd(&msgtabs[1]);
-	mod_add_cmd(&msgtabs[2]);
+/* rain - UNGLINE is no more */
+/*	mod_add_cmd(&msgtabs[2]); */
 	mod_add_cmd(&unresv_msgtab);
 	mod_add_cmd(&user_msgtab);
 	mod_add_cmd(&userhost_msgtab);
@@ -631,6 +634,13 @@
 	mod_add_cmd(&who_msgtab);
 	mod_add_cmd(&whois_msgtab);
 	mod_add_cmd(&whowas_msgtab);
+    /* rain - made these modules default */
+    tburst_init();
+	mod_add_cmd(&map_msgtab);
+	/* rain - add STARTTLS module if we have SSL client support */
+#ifdef SSL_CLIENT_SUPPORT
+    mod_add_cmd(&starttls_msgtab);
+#endif
 }
 
 #endif /* STATIC_MODULES */
diff -uNrd ircd-hybrid-7.0/src/packet.c anynet-3.0/src/packet.c
--- ircd-hybrid-7.0/src/packet.c	Sun Feb 16 17:54:37 2003
+++ anynet-3.0/src/packet.c	Mon Feb  2 03:03:15 2004
@@ -378,6 +378,11 @@
 #ifndef NDEBUG
   struct hook_io_data hdata;
 #endif
+
+#ifdef SSL_CLIENT_SUPPORT /* rain - only used for SSL clients */
+readagain:
+#endif
+
   if(IsDefunct(client_p))
     return;
   
@@ -397,7 +402,40 @@
    * I personally think it makes the code too hairy to make sane.
    *     -- adrian
    */
-  length = recv(fd_r, readBuf, READBUF_SIZE, 0);
+#ifdef SSL_CLIENT_SUPPORT
+  /* rain - handle encrypted reads from SSL clients... */
+  if (lclient_p && lclient_p->ssl_state != SSLC_STATE_NONE) {
+    /*
+     * If we're in the handshaking state, do the handshake and fake a
+     * read error (because we don't have any real data to read yet)
+     */
+    if (lclient_p->ssl_state == SSLC_STATE_HANDSHAKE ||
+        lclient_p->ssl_state == SSLC_STATE_STARTTLS) {
+      
+      /*
+       * rain - we'll have an SSL structure after this point, so we
+       * can do the pending check below...  change the state to HANDSHAKE
+       * in case we got here because it was STARTTLS
+       */
+      
+      lclient_p->ssl_state = SSLC_STATE_HANDSHAKE;
+
+      if (SSLC_handshake(client_p) < 0) {
+      	exit_client(client_p, client_p, &me, "Error in SSL/TLS negotiation");
+        return;
+      }
+
+      /*
+       * pretend the read would've blocked so that we get called again
+       * when we have real data (or more handshake data)
+       */
+      length = -1;
+      errno = EWOULDBLOCK;
+    } else if (lclient_p->ssl_state == SSLC_STATE_CONNECTED)
+      length = SSLC_read(client_p, readBuf, READBUF_SIZE);
+  } else
+#endif
+    length = recv(fd_r, readBuf, READBUF_SIZE, 0);
 
   if (length <= 0)
   {
@@ -478,6 +516,20 @@
 		     read_packet, client_p, 0);
     }
   }
+#ifdef SSL_CLIENT_SUPPORT
+  /*
+   * rain - the SSL code may end up buffering some data, so select()
+   * won't get called again -- we re-read if the SSL code says we have
+   * data pending.  Don't do it if our state if STARTTLS because we
+   * won't have an SSL structure yet.
+   */
+  if (lclient_p != NULL && (lclient_p->ssl_state == SSLC_STATE_HANDSHAKE ||
+    lclient_p->ssl_state == SSLC_STATE_CONNECTED)) {
+    
+    if (SSL_pending(lclient_p->ssl))
+      goto readagain;
+  }
+#endif
 }
 
 /*
diff -uNrd ircd-hybrid-7.0/src/parse.c anynet-3.0/src/parse.c
--- ircd-hybrid-7.0/src/parse.c	Mon Jun  9 22:16:54 2003
+++ anynet-3.0/src/parse.c	Sat Jan 31 19:39:31 2004
@@ -378,8 +378,9 @@
 	    return(-1);
 	}
 
+      /* rain - added missing space */
       sendto_realops_flags(FLAGS_ALL, L_ALL, 
-			   "Dropping server %s due to (invalid) command '%s'"
+			   "Dropping server %s due to (invalid) command '%s' "
 			   "with only %d arguments (expecting %d).",
 			   client_p->name, mptr->cmd, i, mptr->parameters);
       ilog(L_CRIT, "Insufficient parameters (%d) for command '%s' from %s.",
diff -uNrd ircd-hybrid-7.0/src/rsa.c anynet-3.0/src/rsa.c
--- ircd-hybrid-7.0/src/rsa.c	Thu May 29 01:13:26 2003
+++ anynet-3.0/src/rsa.c	Fri Jan 23 02:20:17 2004
@@ -138,8 +138,9 @@
     ilog(L_CRIT, "Private key corrupted: pad %i != pad %i",
                  mkey->pad, key->pad);
 
+  /* rain - fix varargs - %d -> %ld */
   if (mkey->version != key->version)
-    ilog(L_CRIT, "Private key corrupted: version %i != version %i",
+    ilog(L_CRIT, "Private key corrupted: version %ld != version %ld",
                   mkey->version, key->version);
 
   if (BN_cmp(mkey->n, key->n))
diff -uNrd ircd-hybrid-7.0/src/s_auth.c anynet-3.0/src/s_auth.c
--- ircd-hybrid-7.0/src/s_auth.c	Thu May 29 01:13:26 2003
+++ anynet-3.0/src/s_auth.c	Mon Feb  2 02:45:45 2004
@@ -87,8 +87,9 @@
   REPORT_HOST_TOOLONG
 } ReportType;
 
+/* rain - don't send to fd directly so that SSL clients can receive these */
 #define sendheader(c, r) \
-   send((c)->localClient->fd, HeaderMessages[(r)].message, HeaderMessages[(r)].length, 0)
+   sendto_one(c, HeaderMessages[(r)].message);
 
 /*
  */
diff -uNrd ircd-hybrid-7.0/src/s_bsd.c anynet-3.0/src/s_bsd.c
--- ircd-hybrid-7.0/src/s_bsd.c	Sat May 31 03:37:05 2003
+++ anynet-3.0/src/s_bsd.c	Mon Feb  2 02:46:13 2004
@@ -319,6 +319,13 @@
     {
       /* attempt to flush any pending dbufs. Evil, but .. -- adrian */
       send_queued_write(client_p->localClient->fd, client_p);
+
+#ifdef SSL_CLIENT_SUPPORT
+      /* rain - shut down the SSL connection if necessary */
+      if (client_p->localClient->ssl_state != SSLC_STATE_NONE)
+        SSLC_shutdown(client_p);
+#endif
+      
       fd_close(client_p->localClient->fd);
       client_p->localClient->fd = -1;
     }
@@ -424,6 +431,12 @@
   
   new_client->localClient->listener  = listener;
   ++listener->ref_count;
+
+#ifdef SSL_CLIENT_SUPPORT
+  /* rain - set up the SSL handshake */
+  if (listener->is_ssl)
+    new_client->localClient->ssl_state = SSLC_STATE_HANDSHAKE;
+#endif
 
   if (!set_non_blocking(new_client->localClient->fd))
     report_error(L_ALL, NONB_ERROR_MSG, get_client_name(new_client, SHOW_IP), errno);
diff -uNrd ircd-hybrid-7.0/src/s_bsd_devpoll.c anynet-3.0/src/s_bsd_devpoll.c
--- ircd-hybrid-7.0/src/s_bsd_devpoll.c	Tue Nov 26 22:46:57 2002
+++ anynet-3.0/src/s_bsd_devpoll.c	Thu Jan 22 12:18:05 2004
@@ -87,8 +87,9 @@
  
 	/* Write the thing to our poll fd */
 	retval = write(dpfd, &pollfds[0], sizeof(struct pollfd));
+    /* rain - removed extraneous \n */
 	if (retval != sizeof(struct pollfd))
-		ilog(L_NOTICE, "devpoll_write_update: dpfd write failed %d: %s\n", errno, strerror(errno));
+		ilog(L_NOTICE, "devpoll_write_update: dpfd write failed %d: %s", errno, strerror(errno));
     /* Done! */
 }
 
@@ -121,7 +122,8 @@
 			break;
 		default:
 #ifdef NOTYET
-		ilog(L_NOTICE,"devpoll_update_events called with unknown filter: %hd\n", filter);
+       /* rain - removed extraneous \n */
+		ilog(L_NOTICE,"devpoll_update_events called with unknown filter: %hd", filter);
 #endif
 		return;
 		break;
@@ -171,7 +173,8 @@
 	dpfd = open("/dev/poll", O_RDWR);
 	if (dpfd < 0) 
 	{
-	ilog(L_CRIT, "init_netio: Couldn't open /dev/poll - %d: %s\n", errno, strerror(errno));
+    /* rain - removed extraneous \n */
+	ilog(L_CRIT, "init_netio: Couldn't open /dev/poll - %d: %s", errno, strerror(errno));
         exit(115); /* Whee! */
     	}
 }
@@ -271,7 +274,8 @@
 					 */
 					devpoll_update_events(fd, COMM_SELECT_READ, F->read_handler);
 				} else
-					ilog(L_NOTICE, "comm_select: Unhandled read event: fdmask: %x\n", fdmask[fd]);
+                    /* rain - removed extraneous \n */
+					ilog(L_NOTICE, "comm_select: Unhandled read event: fdmask: %x", fdmask[fd]);
 			}
 			if ((dopoll.dp_fds[i].revents & (POLLWRNORM | POLLOUT | POLLHUP | POLLERR)) && (dopoll.dp_fds[i].events & (POLLWRNORM|POLLOUT))) 
 			{
@@ -283,12 +287,14 @@
 					devpoll_update_events(fd, COMM_SELECT_WRITE, F->write_handler);
 				} 
                 		else 
-		    			ilog(L_NOTICE, "comm_select: Unhandled write event: fdmask: %x\n", fdmask[fd]);
+                                        /* rain - removed extraneous \n */
+		    			ilog(L_NOTICE, "comm_select: Unhandled write event: fdmask: %x", fdmask[fd]);
 		
 			}
 	    		if(dopoll.dp_fds[i].revents & POLLNVAL) 
 	    		{
-				ilog(L_NOTICE, "revents was Invalid for %d\n", fd);
+                                /* rain - removed extraneous \n */
+				ilog(L_NOTICE, "revents was Invalid for %d", fd);
 	    		}
 	    	}	
         	return COMM_OK;
diff -uNrd ircd-hybrid-7.0/src/s_bsd_kqueue.c anynet-3.0/src/s_bsd_kqueue.c
--- ircd-hybrid-7.0/src/s_bsd_kqueue.c	Mon Apr  7 19:51:18 2003
+++ anynet-3.0/src/s_bsd_kqueue.c	Thu Jan 22 12:18:19 2004
@@ -159,7 +159,8 @@
   kq = kqueue();
   if (kq < 0)
     {
-      ilog(L_CRIT, "init_netio: Couldn't open kqueue fd!\n");
+      /* rain - removed extraneous \n */
+      ilog(L_CRIT, "init_netio: Couldn't open kqueue fd!");
       exit(115); /* Whee! */
     }
   kqmax = getdtablesize();
diff -uNrd ircd-hybrid-7.0/src/s_conf.c anynet-3.0/src/s_conf.c
--- ircd-hybrid-7.0/src/s_conf.c	Sun Feb 16 17:06:46 2003
+++ anynet-3.0/src/s_conf.c	Wed Feb  4 13:23:35 2004
@@ -50,6 +50,10 @@
 #include "s_debug.h"
 #include "fileio.h"
 #include "memory.h"
+ 
+/* rain - for extended ISUPPORT */
+#include "hook.h"
+#include "isupport.h"
 
 struct config_server_hide ConfigServerHide;
 
@@ -140,9 +144,19 @@
   if (reply && reply->status == adns_s_ok)
   {
 #ifdef IPV6
-    copy_s_addr(IN_ADDR(aconf->ipnum),
-                reply->rrs.addr->addr.inet6.sin6_addr.s6_addr);
+    /* rain - properly set family */
+    aconf->aftype = reply->rrs.addr->addr.inet6.sin6_family;
+    /* rain - check address type so we can have ipv4 addresses... */
+    if (aconf->aftype == AF_INET6)
+        copy_s_addr(IN_ADDR(aconf->ipnum),
+                    reply->rrs.addr->addr.inet6.sin6_addr.s6_addr);
+    else
+        /* rain - kludge - this doesn't fit in with the nice defines */
+        aconf->ipnum.sins.sin.s_addr =
+            reply->rrs.addr->addr.inet.sin_addr.s_addr;
 #else
+    /* rain - properly set family */
+    aconf->aftype = reply->rrs.addr->addr.inet.sin_family;
     copy_s_addr(IN_ADDR(aconf->ipnum),
                 reply->rrs.addr->addr.inet.sin_addr.s_addr);
 #endif
@@ -494,7 +508,8 @@
       break;
     }
     case BANNED_CLIENT:
-      exit_client(client_p,client_p, &me, "*** Banned ");
+      /* rain - better dump reason */
+      exit_client(client_p,client_p, &me, "You are banned from this server");
       ServerStats->is_ref++;
       break;
 
@@ -558,7 +573,8 @@
 		    {
 		      sendto_one(client_p, ":%s NOTICE %s :*** G-lined", me.name,
 				 client_p->name);
-		      sendto_one(client_p, ":%s NOTICE %s :*** Banned %s",
+			  /* rain - added colon after Banned: for readability */
+		      sendto_one(client_p, ":%s NOTICE %s :*** Banned: %s",
 				 me.name, client_p->name, 
 				 gkill_conf->passwd);
 		      return(BANNED_CLIENT);
@@ -589,7 +605,8 @@
 	{
 	  if (ConfigFileEntry.kline_with_reason)
 	    {
-	      sendto_one(client_p, ":%s NOTICE %s :*** Banned %s",
+		  /* rain - added colon after Banned: for readability */
+	      sendto_one(client_p, ":%s NOTICE %s :*** Banned: %s",
 			 me.name,client_p->name,aconf->passwd);
 	    }
 	  return(BANNED_CLIENT);
@@ -623,6 +640,11 @@
         return(TOO_MANY); /* Already at maximum allowed ip#'s */
       else
         {
+          /*
+           * rain - don't send this message directly to the fd, it'll
+           * break SSL clients
+           */
+           
           sendto_one(client_p,
        ":%s NOTICE %s :*** :I: line is full, but you have an >I: line!",
                      me.name,client_p->name);
@@ -998,9 +1020,8 @@
       }
       else
       {
-	send(client_p->localClient->fd,
-	     "NOTICE FLINE :I: line is full, but you have an >I: line!\n",
-	     56, 0);
+    sendto_one(client_p, 
+	     "NOTICE FLINE :I: line is full, but you have an >I: line!");
 	SetExemptLimits(client_p);
       }
     }
@@ -1316,6 +1337,10 @@
   flush_deleted_I_P();
   check_klines();
   reopen_log(logFileName);
+
+  /* rain - tell extended ISUPPORT code to update config and send changes */
+  hook_call_event("update_isupport", ISUP_PROPAGATE);
+
   return(0);
 }
 
@@ -1396,7 +1421,8 @@
   ConfigFileEntry.glines = NO;
   ConfigFileEntry.use_egd = NO;
   /* don't reset msglocale setting -- we'd overwrite then env string */
-  ConfigFileEntry.gline_time = 12 * 3600;
+/* rain - no longer relevant */
+/*  ConfigFileEntry.gline_time = 12 * 3600; */
   ConfigFileEntry.idletime = 0;
   ConfigFileEntry.dots_in_ident = 0;
   ConfigFileEntry.maximum_links = MAXIMUM_LINKS_DEFAULT;
@@ -1412,7 +1438,8 @@
    *        NOTE: I apologise for the hard-coded value of "1" (BF/128).
    *              This should be moved into a find_cipher() routine.
    */
-  ConfigFileEntry.default_cipher_preference = &CipherTable[1];
+  /* rain - BF/128 has been moved to 3, fixing */
+  ConfigFileEntry.default_cipher_preference = &CipherTable[3];
 #endif
 #ifdef HAVE_LIBZ
   ConfigFileEntry.compression_level = 0;
diff -uNrd ircd-hybrid-7.0/src/s_debug.c anynet-3.0/src/s_debug.c
--- ircd-hybrid-7.0/src/s_debug.c	Fri May  2 00:37:35 2003
+++ anynet-3.0/src/s_debug.c	Mon Feb  2 02:48:58 2004
@@ -121,8 +121,9 @@
     rup = 1;
 
 
+  /* rain - fix time formats -- add 02d padding */
   sendto_one(source_p,
-             ":%s %d %s R :CPU Secs %d:%d User %d:%d System %d:%d",
+             ":%s %d %s R :CPU Secs %d:%02d User %d:%02d System %d:%02d",
              me.name, RPL_STATSDEBUG, source_p->name, (int)(secs/60), (int)(secs%60),
              (int)(rus.ru_utime.tv_sec/60), (int)(rus.ru_utime.tv_sec%60),
              (int)(rus.ru_stime.tv_sec/60), (int)(rus.ru_stime.tv_sec%60));
@@ -412,8 +413,9 @@
 	     (int)total_channel_memory,
              (int)conf_memory);
 
+  /* rain - removed cast */
   count_local_client_memory( &local_client_count,
-			     (int *)&local_client_memory_used );
+			     &local_client_memory_used );
   total_memory += local_client_memory_used;
   sendto_one(source_p, ":%s %d %s z :Local client Memory in use: %d(%d)",
              me.name, RPL_STATSDEBUG, source_p->name,
@@ -421,21 +423,24 @@
              (int)local_client_memory_used);
 
 
+  /* rain - removed cast */
   count_remote_client_memory( &remote_client_count,
-			      (int *)&remote_client_memory_used);
+			      &remote_client_memory_used);
   total_memory += remote_client_memory_used;
   sendto_one(source_p, ":%s %d %s z :Remote client Memory in use: %d(%d)",
              me.name, RPL_STATSDEBUG, source_p->name,
 	     remote_client_count,
              (int)remote_client_memory_used);
 
-  count_user_memory( &user_count, (int *)&user_memory_used );
+  /* rain - removed cast */
+  count_user_memory( &user_count, &user_memory_used );
   total_memory += user_memory_used;
   sendto_one(source_p, ":%s %d %s z :User Memory in use: %d(%d)",
              me.name, RPL_STATSDEBUG, source_p->name,
 	     user_count, (int)user_memory_used);
 
-  count_links_memory( &links_count, (int *)&links_memory_used );
+  /* rain - removed cast */
+  count_links_memory( &links_count, &links_memory_used );
   total_memory += links_memory_used;
   sendto_one(source_p, ":%s %d %s z :Links Memory in use: %d(%d)",
              me.name, RPL_STATSDEBUG, source_p->name,
diff -uNrd ircd-hybrid-7.0/src/s_gline.c anynet-3.0/src/s_gline.c
--- ircd-hybrid-7.0/src/s_gline.c	Wed Sep  4 22:48:42 2002
+++ anynet-3.0/src/s_gline.c	Sun Feb  1 16:13:22 2004
@@ -53,7 +53,9 @@
 dlink_list glines;
 
 static void expire_glines(void);
+#if 0 /* rain - pending glines no longer exist */
 static void expire_pending_glines(void);
+#endif
 
 /* add_gline
  *
@@ -150,7 +152,9 @@
 cleanup_glines()
 {
   expire_glines();
+#if 0 /* rain - no more pending gline support */
   expire_pending_glines();
+#endif
 }
 
 /*
@@ -173,6 +177,10 @@
   {
     kill_ptr = gline_node->data;
 
+    /* rain - non-expiring G: line */
+    if (kill_ptr->hold == 0)
+      continue;
+
     if(kill_ptr->hold <= CurrentTime)
     {
       free_conf(kill_ptr);
@@ -182,6 +190,7 @@
   }
 }
 
+#if 0 /* rain - pending glines no longer exist */
 /*
  * expire_pending_glines
  * 
@@ -215,3 +224,4 @@
     }
   }
 }
+#endif
diff -uNrd ircd-hybrid-7.0/src/s_log.c anynet-3.0/src/s_log.c
--- ircd-hybrid-7.0/src/s_log.c	Sat Feb 15 11:32:46 2003
+++ anynet-3.0/src/s_log.c	Thu Jan 22 12:18:53 2004
@@ -211,7 +211,8 @@
   if (IsPerson(source_p))
     {
 
-      ilog(L_INFO, "%s (%3ld:%02ld:%02ld): %s!%s@%s %ld/%ld\n",
+      /* rain - removed extraneous \n */
+      ilog(L_INFO, "%s (%3ld:%02ld:%02ld): %s!%s@%s %ld/%ld",
 	  myctime(source_p->firsttime),
 	  (signed long) on_for / 3600,
 	  (signed long) (on_for % 3600)/60,
diff -uNrd ircd-hybrid-7.0/src/s_misc.c anynet-3.0/src/s_misc.c
--- ircd-hybrid-7.0/src/s_misc.c	Fri May 24 19:34:51 2002
+++ anynet-3.0/src/s_misc.c	Mon Feb  2 10:04:35 2004
@@ -97,7 +97,8 @@
   gm = &gmbuf; 
   lt = localtime(&lclock);
   
-  ircsprintf(buf, "%d/%d/%d %02d.%02d",
+  /* rain - switched format to an ISO8601 date */
+  ircsprintf(buf, "%04d-%02d-%02d %02d.%02d",
              lt->tm_year + 1900, lt->tm_mon + 1, lt->tm_mday,
              lt->tm_hour, lt->tm_min);
   
diff -uNrd ircd-hybrid-7.0/src/s_serv.c anynet-3.0/src/s_serv.c
--- ircd-hybrid-7.0/src/s_serv.c	Sat May 31 03:30:34 2003
+++ anynet-3.0/src/s_serv.c	Wed Feb  4 13:13:39 2004
@@ -111,28 +111,40 @@
 struct EncCapability CipherTable[] =
 {
 #ifdef HAVE_EVP_BF_CFB
-  { "BF/168",     CAP_ENC_BF_168,     24, CIPHER_BF     },
-  { "BF/128",     CAP_ENC_BF_128,     16, CIPHER_BF     },
+/* rain - add BF/256 and BF/192, fix BF/168's len */
+  { "BF/256",     CAP_ENC_BF_256,     32, CIPHER_BF      },
+  { "BF/192",     CAP_ENC_BF_192,     24, CIPHER_BF      },
+  { "BF/168",     CAP_ENC_BF_168,     21, CIPHER_BF      },
+  { "BF/128",     CAP_ENC_BF_128,     16, CIPHER_BF      },
 #endif
 #ifdef HAVE_EVP_CAST5_CFB
-  { "CAST/128",   CAP_ENC_CAST_128,   16, CIPHER_CAST   },
+  { "CAST/128",   CAP_ENC_CAST_128,   16, CIPHER_CAST    },
 #endif
 #ifdef HAVE_EVP_IDEA_CFB
-  { "IDEA/128",   CAP_ENC_IDEA_128,   16, CIPHER_IDEA   },
+  { "IDEA/128",   CAP_ENC_IDEA_128,   16, CIPHER_IDEA    },
 #endif
 #ifdef HAVE_EVP_RC5_32_12_16_CFB
-  { "RC5.16/128", CAP_ENC_RC5_16_128, 16, CIPHER_RC5_16 },
-  { "RC5.12/128", CAP_ENC_RC5_12_128, 16, CIPHER_RC5_12 },
-  { "RC5.8/128",  CAP_ENC_RC5_8_128,  16, CIPHER_RC5_8  },
+  { "RC5.16/128", CAP_ENC_RC5_16_128, 16, CIPHER_RC5_16  },
+  { "RC5.12/128", CAP_ENC_RC5_12_128, 16, CIPHER_RC5_12  },
+  { "RC5.8/128",  CAP_ENC_RC5_8_128,  16, CIPHER_RC5_8   },
 #endif
 #ifdef HAVE_EVP_DES_EDE3_CFB
-  { "3DES/168",   CAP_ENC_3DES_168,   24, CIPHER_3DES   },
+  { "3DES/168",   CAP_ENC_3DES_168,   24, CIPHER_3DES    },
 #endif
 #ifdef HAVE_EVP_DES_CFB
-  { "DES/56",     CAP_ENC_DES_56,      8, CIPHER_DES    },
+  { "DES/56",     CAP_ENC_DES_56,      8, CIPHER_DES     },
 #endif
-
-  { 0,            0,                   0, 0             }
+/* rain - add AES/128, AES/192, and AES/256 */
+#ifdef HAVE_EVP_AES_128_CFB
+  { "AES/128",    CAP_ENC_AES_128,     8, CIPHER_AES_128 },
+#endif
+#ifdef HAVE_EVP_AES_192_CFB
+  { "AES/192",    CAP_ENC_AES_192,    24, CIPHER_AES_192 },
+#endif
+#ifdef HAVE_EVP_AES_256_CFB
+  { "AES/256",    CAP_ENC_AES_256,    32, CIPHER_AES_256 },
+#endif
+  { 0,            0,                   0, 0              }
 };
 #endif
 
@@ -1179,6 +1191,8 @@
       uplink = client_p;
     }
 
+  /* rain - added burst hook */
+  hook_call_event("burst", client_p);
   server_burst(client_p);
 
   return 0;
@@ -1990,7 +2004,12 @@
       return 0;
 
     /* log */
-    inetntop(DEF_FAM, &IN_ADDR(aconf->ipnum), buf, HOSTIPLEN);
+    /*
+     * rain - switched inetntop call to use aconf->aftype instead of
+     * DEF_FAM, so that we get a proper address to log with.
+     */
+     
+    inetntop(aconf->aftype, &IN_ADDR(aconf->ipnum), buf, HOSTIPLEN);
     ilog(L_NOTICE, "Connect to %s[%s] @%s", aconf->user, aconf->host,
          buf);
 
diff -uNrd ircd-hybrid-7.0/src/s_user.c anynet-3.0/src/s_user.c
--- ircd-hybrid-7.0/src/s_user.c	Thu May 29 00:58:03 2003
+++ anynet-3.0/src/s_user.c	Mon Feb  2 02:54:10 2004
@@ -52,6 +52,7 @@
 #include "md5.h"
 #include "memory.h"
 #include "packet.h"
+#include "isupport.h" /* rain - for new ISUPPORT code */
 
 static int valid_hostname(const char* hostname);
 static int valid_username(const char* username);
@@ -73,6 +74,9 @@
 
 static struct flag_item user_modes[] =
 {
+  /* rain - added FLAGS_SERVICE and FLAGS_SSL */
+  {FLAGS_SERVICE, 'N' },
+  {FLAGS_SSL,   'S'},
   {FLAGS_ADMIN, 'a'},
   {FLAGS_BOTS,  'b'},
   {FLAGS_CCONN, 'c'},
@@ -116,12 +120,12 @@
   0,            /* K */
   0,            /* L */
   0,            /* M */
-  0,            /* N */
+  FLAGS_SERVICE,/* N */ /* rain */
   0,            /* O */
   0,            /* P */
   0,            /* Q */
   0,            /* R */
-  0,            /* S */
+  FLAGS_SSL,    /* S */ /* rain */
   0,            /* T */
   0,            /* U */
   0,            /* V */
@@ -238,6 +242,7 @@
 void
 show_isupport(struct Client *source_p) 
 {
+#if 0
   char isupportbuffer[512];
 
   ircsprintf(isupportbuffer, FEATURES, FEATURESVALUES);
@@ -249,6 +254,10 @@
              isupportbuffer);
 
   return;
+#else
+  /* rain - new, extended ISUPPORT code */
+  isupport_send(source_p);
+#endif
 }
 
 
@@ -439,21 +448,28 @@
 
   inetntop(source_p->localClient->aftype, &IN_ADDR(source_p->localClient->ip), 
   				ipaddr, HOSTIPLEN);
+  /* rain - show the port in the connect message */
   sendto_realops_flags(FLAGS_CCONN, L_ALL,
-		       "Client connecting: %s (%s@%s) [%s] {%s} [%s]",
+		       "Client connecting: %s (%s@%s) [%s] {%s} [%s] {%d}",
 		       nick, source_p->username, source_p->host,
 #ifdef HIDE_SPOOF_IPS
                        IsIPSpoof(client_p) ? "255.255.255.255" : ipaddr,
 #else
 		       ipaddr,
 #endif
-		       get_client_class(source_p), source_p->info);
+		       get_client_class(source_p), source_p->info,
+		       source_p->localClient->listener->port);
 
   /* If they have died in send_* don't do anything. */
   if (IsDead(source_p))
     return CLIENT_EXITED;
   
+  /* rain - initial modes are set here */
   source_p->umodes |= FLAGS_INVISIBLE;
+#ifdef SSL_CLIENT_SUPPORT
+  if (source_p->localClient->ssl_state == SSLC_STATE_CONNECTED)
+    source_p->umodes |= FLAGS_SSL;
+#endif
 
   Count.invisi++;
 
@@ -998,6 +1014,14 @@
           what = MODE_DEL;
           break;        
 
+        /* rain - support for +N (service) and +S (secure) */
+        case 'N':
+          if (!IsServer(client_p))
+            badflag = YES;
+          break;
+        case 'S':
+          break;
+
         case 'o' :
           if(what == MODE_ADD)
             {
@@ -1048,8 +1072,10 @@
         default :
           if( (flag = user_modes_from_c_to_bitmask[(unsigned char)*m]))
             {
-              if (MyConnect(source_p) && !IsOper(source_p) &&
-                 (ConfigFileEntry.oper_only_umodes & flag))
+              if ((MyConnect(source_p) && !IsOper(source_p) &&
+                 (ConfigFileEntry.oper_only_umodes & flag)) ||
+                 /* rain - make sure clients can never set +N */
+                 (!IsServer(client_p) && *m == 'N'))
                 {
                   badflag = YES;
                 }
@@ -1227,6 +1253,12 @@
 	     me.name, ircd_version);
   
   show_isupport(source_p);
+#ifdef SSL_CLIENT_SUPPORT
+  /* rain - send SSL clients some cipher info */
+  if (source_p->localClient->ssl_state == SSLC_STATE_CONNECTED)
+    sendto_one(source_p, "NOTICE %s :Connected to %s with cipher %s",
+      source_p->name, me.name, SSLC_cipherinfo(source_p, 0));
+#endif
   
   show_lusers(source_p);
 
diff -uNrd ircd-hybrid-7.0/src/send.c anynet-3.0/src/send.c
--- ircd-hybrid-7.0/src/send.c	Wed Apr  2 20:29:04 2003
+++ anynet-3.0/src/send.c	Mon Feb  2 02:50:13 2004
@@ -293,7 +293,8 @@
   
   if (linebuf_len(&to->localClient->buf_sendq))
   {
-    while((retlen = linebuf_flush(to->localClient->fd, &to->localClient->buf_sendq)) > 0)
+    /* rain - send flush function the Client struct as well (for SSL clients) */
+    while((retlen = linebuf_flush(to->localClient->fd, &to->localClient->buf_sendq, to)) > 0)
     {
       /* We have some data written .. update counters */
 #ifndef NDEBUG
@@ -1247,7 +1248,8 @@
 
   va_end(args);
 
-  DLINK_FOREACH_SAFE(ptr, ptr_next, oper_list.head)
+  /* rain - allow non-opers to see wallops */
+  DLINK_FOREACH_SAFE(ptr, ptr_next, lclient_list.head)
   {
     client_p = ptr->data;
 
diff -uNrd ircd-hybrid-7.0/src/ssl_client.c anynet-3.0/src/ssl_client.c
--- ircd-hybrid-7.0/src/ssl_client.c	Wed Dec 31 19:00:00 1969
+++ anynet-3.0/src/ssl_client.c	Wed Feb  4 13:19:40 2004
@@ -0,0 +1,295 @@
+/*
+ * ssl_client.c: SSL communications support for ircd-hybrid
+ *
+ * Copyright (c) 2004  Ben Winslow.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    the above paragraph (the one permitting redistribution), this list of
+ *    conditions and the following disclaimer in the documentation and/or
+ *    other materials provided with the distribution.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
+ * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $Id$
+ */
+
+#include "config.h"
+
+#ifdef SSL_CLIENT_SUPPORT
+#include "stdinc.h"
+#include "ssl_client.h"
+#include "client.h"
+#include "s_log.h"
+#include "s_conf.h"
+#include "s_user.h"
+#include "send.h"
+
+static void SSLC_VerifyKeys(void);
+
+static SSL_CTX *ssl_ctx;
+static const unsigned char *ssl_sid_context = "ircd"; /* arbitrary */
+
+/* TODO: add a password callback so that the PEM can be encrypted? */
+
+/* Init the OpenSSL context */
+void SSLC_CTX_init(void)
+{
+	SSL_load_error_strings();
+	SSL_library_init();
+	
+	if ((ssl_ctx = SSL_CTX_new(SSLv23_server_method())) == NULL) {
+		ERR_print_errors_fp(stderr);
+		exit(EXIT_FAILURE);
+	}
+	
+	if (SSL_CTX_set_session_id_context(ssl_ctx, ssl_sid_context,
+		strlen(ssl_sid_context)) != 1) {
+		
+		ERR_print_errors_fp(stderr);
+		exit(EXIT_FAILURE);
+	}
+	
+	SSL_CTX_set_session_cache_mode(ssl_ctx, SSL_SESS_CACHE_SERVER);
+
+	/* 300s default - increase this or make it configurable? */
+/*	SSL_CTX_set_timeout(ssl_ctx, 300); */
+}
+
+/* Deinitialize SSL context */
+void SSLC_CTX_deinit(void)
+{
+	SSL_CTX_free(ssl_ctx);
+}
+
+/*
+ * Perform the initial SSL handshake with a connecting client, allocating
+ * the SSL data structures if necessary.
+ */
+int SSLC_handshake(struct Client *client_p)
+{
+	struct LocalUser *lclient_p;
+	unsigned long ssl_err, ssl_errno;
+
+	if (client_p == NULL)
+		return SSLC_HANDSHAKE_INVALID_PARAM;
+
+	if ((lclient_p = client_p->localClient) == NULL)
+		return SSLC_HANDSHAKE_INVALID_PARAM;
+
+	/* set up client data */
+	if (lclient_p->ssl == NULL) {
+		if ((lclient_p->ssl = SSL_new(ssl_ctx)) == NULL) {
+			ilog(L_WARN, "SSL_new() failure for %s: %s",
+				get_client_name(client_p, SHOW_IP),
+				ERR_error_string(ERR_get_error(), NULL));
+			return SSLC_HANDSHAKE_NEW_FAIL;
+		}
+
+		if (SSL_set_fd(lclient_p->ssl, lclient_p->fd) != 1) {
+			ilog(L_WARN, "SSL_set_fd() failure for %s: %s",
+				get_client_name(client_p, SHOW_IP),
+				ERR_error_string(ERR_get_error(), NULL));
+			return SSLC_HANDSHAKE_SETFD_FAIL;
+		}
+	}
+
+	/* do SSL negotiation */
+	if ((ssl_err = SSL_accept(lclient_p->ssl)) != 1) {
+		ssl_errno = SSL_get_error(lclient_p->ssl, ssl_err);
+
+		if (ssl_errno != SSL_ERROR_NONE) {
+			if (ssl_errno == SSL_ERROR_WANT_READ || ssl_errno == SSL_ERROR_WANT_WRITE)
+				return SSLC_HANDSHAKE_NOERROR;
+
+			/*
+			 * reset the SSL state so that the client gets a plaintext
+			 * error message when they get dropped
+			 */
+			lclient_p->ssl_state = SSLC_STATE_NONE;
+
+			if (ssl_errno == SSL_ERROR_SSL) {
+				ilog(L_NOTICE, "SSL_accept() for %s failed: %s",
+					get_client_name(client_p, SHOW_IP),
+					ERR_error_string(ERR_get_error(), NULL));
+					
+				return SSLC_HANDSHAKE_SSLERROR;
+			} else if (ssl_errno == SSL_ERROR_SYSCALL) {
+				ilog(L_NOTICE, "SSL_accept() for %s failed: %s",
+					get_client_name(client_p, SHOW_IP),
+					strerror(errno));
+			} else {
+				ilog(L_NOTICE, "SSL_accept() for %s failed: SSL error %ld",
+					get_client_name(client_p, SHOW_IP),
+					ssl_errno);
+			}
+
+			return SSLC_HANDSHAKE_ACCEPT_FAIL;
+		}
+	}
+
+	/* if they're already registered, add the mode */
+	if (IsRegistered(client_p)) {
+		int old = client_p->umodes & ALL_UMODES;
+		
+		client_p->umodes |= FLAGS_SSL;
+		send_umode_out(client_p, client_p, old);
+	}
+	lclient_p->ssl_state = SSLC_STATE_CONNECTED;
+
+	return 0;
+}
+
+/* Write bytes to an SSL client, or map failures to be POSIX-ish on failure */
+int SSLC_write(struct Client *client_p, const void *buf, int num)
+{
+	struct LocalUser *lclient_p;
+	int ret;
+
+	if ((lclient_p = client_p->localClient) == NULL)
+		return 0; /* major problems.  fake EOF. */
+	
+	if ((ret = SSL_write(lclient_p->ssl, buf, num)) < 0) {
+		switch (SSL_get_error(lclient_p->ssl, ret)) {
+			case SSL_ERROR_WANT_READ:
+			case SSL_ERROR_WANT_WRITE:
+				/*
+				 * fake EWOULDBLOCK so that the socket code handles
+				 * these cases properly
+				 */
+				errno = EWOULDBLOCK;
+			default:
+				break;
+		}
+	}
+	
+	return ret;
+}
+
+/* Read bytes from an SSL client, or map failures to be POSIX-ish on failure */
+int SSLC_read(struct Client *client_p, void *buf, int num)
+{
+	struct LocalUser *lclient_p;
+	int ret;
+
+	if ((lclient_p = client_p->localClient) == NULL)
+		return 0; /* major problems.  fake EOF. */
+	
+	if ((ret = SSL_read(lclient_p->ssl, buf, num)) < 0) {
+		switch (SSL_get_error(lclient_p->ssl, ret)) {
+			case SSL_ERROR_WANT_READ:
+			case SSL_ERROR_WANT_WRITE:
+				/*
+				 * fake EWOULDBLOCK so that the socket code handles
+				 * these cases properly
+				 */
+				errno = EWOULDBLOCK;
+			default:
+				break;
+		}
+	}
+	
+	return ret;
+}
+
+/* Shut down an SSL connection and free the related data structures */
+void SSLC_shutdown(struct Client *client_p)
+{
+	struct LocalUser *lclient_p = client_p->localClient;
+
+	if (lclient_p->ssl) {
+		/* send our close notify -- don't bother waiting for the other end's */
+		SSL_shutdown(lclient_p->ssl);
+		SSL_free(lclient_p->ssl);
+		
+		lclient_p->ssl = NULL;
+		lclient_p->ssl_state = SSLC_STATE_DEAD;
+	}
+}
+
+/* Return a textual description of the cipher being used for a client */
+const char *SSLC_cipherinfo(struct Client *client_p, int shortinfo)
+{
+	static char buf[512];
+	SSL_CIPHER *cipher;
+	int bits, processed_bits;
+
+	cipher = SSL_get_current_cipher(client_p->localClient->ssl);
+
+	if (shortinfo == 1) {
+		bits = SSL_CIPHER_get_bits(cipher, &processed_bits);
+		sprintf(buf, "%s %s (%d/%d bits)", SSL_CIPHER_get_version(cipher),
+			SSL_CIPHER_get_name(cipher), processed_bits, bits);
+	} else
+		SSL_CIPHER_description(cipher, buf, sizeof(buf));
+
+	return buf;
+}
+
+/* Attempt to load a certificate file */
+void SSLC_CertificateFile(const char *fn)
+{
+	const char *err;
+	
+	if (SSL_CTX_use_certificate_chain_file(ssl_ctx, fn) != 1) {
+		err = ERR_error_string(ERR_get_error(), NULL);
+
+	    sendto_realops_flags(FLAGS_ALL, L_ALL,
+	    	"Failed to load certificate '%s': %s", fn, err);
+		ilog(L_ERROR, "Failed to load certificate '%s': %s", fn, err);
+		
+		ServerInfo.ssl_status &= ~SSLC_STAT_KEY_PUBLIC;
+	} else
+		ServerInfo.ssl_status |= SSLC_STAT_KEY_PUBLIC;
+
+	SSLC_VerifyKeys();
+}
+
+/* Attempt to load a private key file */
+void SSLC_PrivateKeyFile(const char *fn)
+{
+	const char *err;
+
+	if (SSL_CTX_use_PrivateKey_file(ssl_ctx, fn, SSL_FILETYPE_PEM) != 1) {
+		err = ERR_error_string(ERR_get_error(), NULL);
+	    sendto_realops_flags(FLAGS_ALL, L_ALL,
+	    	"Failed to load private key '%s': %s", fn, err);
+		ilog(L_ERROR, "Failed to load private key '%s': %s", fn, err);
+		
+		ServerInfo.ssl_status &= ~SSLC_STAT_KEY_PRIVATE;
+	} else
+		ServerInfo.ssl_status |= SSLC_STAT_KEY_PRIVATE;
+
+	SSLC_VerifyKeys();
+}
+
+/* Verify the certificate and private key, if both are loaded */
+static void SSLC_VerifyKeys(void)
+{
+	if ((ServerInfo.ssl_status & SSLC_STAT_KEY_BOTH) == SSLC_STAT_KEY_BOTH) {
+		if (SSL_CTX_check_private_key(ssl_ctx) != 1) {
+			sendto_realops_flags(FLAGS_ALL, L_ALL,
+				"Certificate and private key do not match");
+			ilog(L_ERROR, "Certificate and private key do not match");
+		}
+	}
+}
+
+#else
+#error not compiling with SSL support
+#endif
diff -uNrd ircd-hybrid-7.0/src/version.c.SH anynet-3.0/src/version.c.SH
--- ircd-hybrid-7.0/src/version.c.SH	Tue Nov 13 03:59:01 2001
+++ anynet-3.0/src/version.c.SH	Thu Jan 22 12:05:07 2004
@@ -64,6 +64,7 @@
   "Based on the original code written by Jarkko Oikarinen",
   "Copyright 1988, 1989, 1990, 1991 University of Oulu, Computing Center",
   "Copyright (c) 1996-2001 Hybrid Development Team", 
+  "Portions copyright (c) 2004 The Anynet Team",
   "",
   "This program is free software; you can redistribute it and/or",
   "modify it under the terms of the GNU General Public License as",
diff -uNrd ircd-hybrid-7.0/tools/convertconf.c anynet-3.0/tools/convertconf.c
--- ircd-hybrid-7.0/tools/convertconf.c	Thu Jul 18 11:28:28 2002
+++ anynet-3.0/tools/convertconf.c	Thu Jan 22 12:12:34 2004
@@ -104,7 +104,8 @@
   if(!basic && ((in = fopen(CONFPATH, "r")) == NULL))
   {
     fprintf(stderr, "Can't open %s for reading\n", CONFPATH);
-    puts("You must use the example.conf in the ircd-hybrid-7 source to get the\n"
+    /* rain - made reference more generic */
+    puts("You must use the example.conf in the ircd source to get the\n"
 	 "general {}; logging {}; channel {}; serverhide {}; modules {}; blocks.\n");
   }
   else if(!basic)
diff -uNrd ircd-hybrid-7.0/tools/encspeed.c anynet-3.0/tools/encspeed.c
--- ircd-hybrid-7.0/tools/encspeed.c	Sat May 31 03:30:36 2003
+++ anynet-3.0/tools/encspeed.c	Mon Feb  2 02:55:45 2004
@@ -24,17 +24,24 @@
 #include <openssl/evp.h>
 #include <openssl/rand.h>
 
-#define CIPHER_BF128 0
-#define CIPHER_BF168 1
-#define CIPHER_3DES168 2
-#define CIPHER_DES56 3
-#define CIPHER_CAST128 4
-#define CIPHER_IDEA128 5
-#define CIPHER_RC58128 6
-#define CIPHER_RC512128 7
-#define CIPHER_RC516128 8
-
-#define NUM_CIPHERS 9
+/* rain - changed all the defines to an enum */
+enum {
+	CIPHER_BF128,
+	CIPHER_BF168,
+	CIPHER_BF192,
+	CIPHER_BF256,
+	CIPHER_3DES168,
+	CIPHER_DES56,
+	CIPHER_CAST128,
+	CIPHER_IDEA128,
+	CIPHER_RC58128,
+	CIPHER_RC512128,
+	CIPHER_RC516128,
+	CIPHER_AES128,
+	CIPHER_AES192,
+	CIPHER_AES256,
+	NUM_CIPHERS
+};
 
 #define MAXKEYSIZE 64
 #define BLOCKSIZE  1000
@@ -81,22 +88,47 @@
     skipped = 1;
     switch(n)
     {
+/* rain - reordered BF128 */
+      case CIPHER_BF128:
+        cipherstr = "Blowfish 128-bit";
+#ifdef HAVE_EVP_BF_CFB
+        cipher = EVP_bf_cfb();
+        EVP_EncryptInit(&ctx, cipher, NULL, NULL);
+        EVP_CIPHER_CTX_set_key_length(&ctx, 16);
+#else
+        continue;
+#endif
+        break;
+/* rain - reordered BF168 */
       case CIPHER_BF168:
         cipherstr = "Blowfish 168-bit";
 #ifdef HAVE_EVP_BF_CFB
         cipher = EVP_bf_cfb();
         EVP_EncryptInit(&ctx, cipher, NULL, NULL);
+        /* rain - fixed key length */
+        EVP_CIPHER_CTX_set_key_length(&ctx, 168 / 8);
+#else
+        continue;
+#endif
+        break;
+/* rain - added BF192 */
+      case CIPHER_BF192:
+        cipherstr = "Blowfish 192-bit";
+#ifdef HAVE_EVP_BF_CFB
+        cipher = EVP_bf_cfb();
+        EVP_EncryptInit(&ctx, cipher, NULL, NULL);
         EVP_CIPHER_CTX_set_key_length(&ctx, 24);
 #else
         continue;
 #endif
         break;
-      case CIPHER_BF128:
-        cipherstr = "Blowfish 128-bit";
+/* rain - added BF256 */
+      case CIPHER_BF256:
+        cipherstr = "Blowfish 256-bit";
 #ifdef HAVE_EVP_BF_CFB
         cipher = EVP_bf_cfb();
         EVP_EncryptInit(&ctx, cipher, NULL, NULL);
-        EVP_CIPHER_CTX_set_key_length(&ctx, 16);
+        EVP_CIPHER_CTX_set_key_length(&ctx, 256 / 8);
 #else
         continue;
 #endif
@@ -174,6 +206,38 @@
         continue;
 #endif
         break;
+/* rain - added AES */
+      case CIPHER_AES128:
+        cipherstr = "AES 128-bit";
+#ifdef HAVE_EVP_AES_128_CFB
+        cipher = EVP_aes_128_cfb();
+        EVP_EncryptInit(&ctx, cipher, NULL, NULL);
+        EVP_CIPHER_CTX_set_key_length(&ctx, 128 / 8);
+#else
+        continue;
+#endif
+        break;        
+      case CIPHER_AES192:
+        cipherstr = "AES 192-bit";
+#ifdef HAVE_EVP_AES_192_CFB
+        cipher = EVP_aes_192_cfb();
+        EVP_EncryptInit(&ctx, cipher, NULL, NULL);
+        EVP_CIPHER_CTX_set_key_length(&ctx, 192 / 8);
+#else
+        continue;
+#endif
+        break;        
+      case CIPHER_AES256:
+        cipherstr = "AES 256-bit";
+#ifdef HAVE_EVP_AES_256_CFB
+        cipher = EVP_aes_256_cfb();
+        EVP_EncryptInit(&ctx, cipher, NULL, NULL);
+        EVP_CIPHER_CTX_set_key_length(&ctx, 256 / 8);
+#else
+        continue;
+#endif
+        break;        
+      
       default:
         exit(1);
     }
