]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
DW:
authorwessels <>
Tue, 16 May 2000 13:05:50 +0000 (13:05 +0000)
committerwessels <>
Tue, 16 May 2000 13:05:50 +0000 (13:05 +0000)
 - Synced HEAD with SQUID_2_3 branch as of SQUID_2_3_STABLE3.  Can't
   say it was fun.  I wouldn't be surprised if some conflicts got
   resolved incorrectly.

110 files changed:
ChangeLog
configure
configure.in
errors/English/ERR_DNS_FAIL
errors/English/ERR_FTP_PUT_CREATED
errors/English/ERR_FTP_PUT_MODIFIED
errors/English/ERR_SHUTTING_DOWN
errors/Estonian/ERR_ACCESS_DENIED
errors/Estonian/ERR_CACHE_ACCESS_DENIED
errors/Estonian/ERR_CACHE_MGR_ACCESS_DENIED
errors/Estonian/ERR_CANNOT_FORWARD
errors/Estonian/ERR_CONNECT_FAIL
errors/Estonian/ERR_DNS_FAIL
errors/Estonian/ERR_FORWARDING_DENIED
errors/Estonian/ERR_FTP_DISABLED
errors/Estonian/ERR_FTP_FAILURE
errors/Estonian/ERR_FTP_FORBIDDEN
errors/Estonian/ERR_FTP_NOT_FOUND
errors/Estonian/ERR_FTP_PUT_ERROR
errors/Estonian/ERR_FTP_UNAVAILABLE
errors/Estonian/ERR_INVALID_REQ
errors/Estonian/ERR_INVALID_URL
errors/Estonian/ERR_LIFETIME_EXP
errors/Estonian/ERR_NO_RELAY
errors/Estonian/ERR_ONLY_IF_CACHED_MISS
errors/Estonian/ERR_READ_ERROR
errors/Estonian/ERR_READ_TIMEOUT
errors/Estonian/ERR_SHUTTING_DOWN
errors/Estonian/ERR_SOCKET_FAILURE
errors/Estonian/ERR_TOO_BIG
errors/Estonian/ERR_UNSUP_REQ
errors/Estonian/ERR_URN_RESOLVE
errors/Estonian/ERR_WRITE_ERROR
errors/Estonian/ERR_ZERO_SIZE_OBJECT
errors/Hungarian/ERR_TOO_BIG
errors/Japanese/ERR_SHUTTING_DOWN
errors/Japanese/ERR_TOO_BIG
errors/Korean/ERR_TOO_BIG [new file with mode: 0644]
errors/Romanian/ERR_FTP_FORBIDDEN [new file with mode: 0644]
errors/Romanian/ERR_FTP_NOT_FOUND [new file with mode: 0644]
errors/Romanian/ERR_FTP_UNAVAILABLE [new file with mode: 0644]
errors/Simplify_Chinese/ERR_ACCESS_DENIED [new file with mode: 0755]
errors/Simplify_Chinese/ERR_CACHE_ACCESS_DENIED [new file with mode: 0755]
errors/Simplify_Chinese/ERR_CACHE_MGR_ACCESS_DENIED [new file with mode: 0755]
errors/Simplify_Chinese/ERR_CANNOT_FORWARD [new file with mode: 0755]
errors/Simplify_Chinese/ERR_CONNECT_FAIL [new file with mode: 0755]
errors/Simplify_Chinese/ERR_DNS_FAIL [new file with mode: 0755]
errors/Simplify_Chinese/ERR_FORWARDING_DENIED [new file with mode: 0755]
errors/Simplify_Chinese/ERR_FTP_DISABLED [new file with mode: 0755]
errors/Simplify_Chinese/ERR_FTP_FAILURE [new file with mode: 0755]
errors/Simplify_Chinese/ERR_FTP_FORBIDDEN [new file with mode: 0755]
errors/Simplify_Chinese/ERR_FTP_NOT_FOUND [new file with mode: 0755]
errors/Simplify_Chinese/ERR_FTP_PUT_CREATED [new file with mode: 0755]
errors/Simplify_Chinese/ERR_FTP_PUT_ERROR [new file with mode: 0755]
errors/Simplify_Chinese/ERR_FTP_PUT_MODIFIED [new file with mode: 0755]
errors/Simplify_Chinese/ERR_FTP_UNAVAILABLE [new file with mode: 0755]
errors/Simplify_Chinese/ERR_INVALID_REQ [new file with mode: 0755]
errors/Simplify_Chinese/ERR_INVALID_URL [new file with mode: 0755]
errors/Simplify_Chinese/ERR_LIFETIME_EXP [new file with mode: 0755]
errors/Simplify_Chinese/ERR_NO_RELAY [new file with mode: 0755]
errors/Simplify_Chinese/ERR_ONLY_IF_CACHED_MISS [new file with mode: 0755]
errors/Simplify_Chinese/ERR_READ_ERROR [new file with mode: 0755]
errors/Simplify_Chinese/ERR_READ_TIMEOUT [new file with mode: 0755]
errors/Simplify_Chinese/ERR_SHUTTING_DOWN [new file with mode: 0755]
errors/Simplify_Chinese/ERR_SOCKET_FAILURE [new file with mode: 0755]
errors/Simplify_Chinese/ERR_TOO_BIG [new file with mode: 0755]
errors/Simplify_Chinese/ERR_UNSUP_REQ [new file with mode: 0755]
errors/Simplify_Chinese/ERR_URN_RESOLVE [new file with mode: 0755]
errors/Simplify_Chinese/ERR_WRITE_ERROR [new file with mode: 0755]
errors/Simplify_Chinese/ERR_ZERO_SIZE_OBJECT [new file with mode: 0755]
errors/Simplify_Chinese/README [new file with mode: 0755]
errors/Simplify_Chinese/generic [new file with mode: 0755]
src/HttpReply.cc
src/asn.cc
src/cache_cf.cc
src/cache_manager.cc
src/carp.cc
src/cf.data.pre
src/client.cc
src/client_db.cc
src/client_side.cc
src/delay_pools.cc
src/dns.cc
src/dns_internal.cc
src/fqdncache.cc
src/ftp.cc
src/gopher.cc
src/http.cc
src/icmp.cc
src/icp_v2.cc
src/icp_v3.cc
src/ident.cc
src/ipcache.cc
src/mib.txt
src/mime.cc
src/neighbors.cc
src/net_db.cc
src/pinger.cc
src/protos.h
src/snmp_agent.cc
src/snmp_core.cc
src/store.cc
src/store_client.cc
src/store_dir.cc
src/structs.h
src/tools.cc
src/unlinkd.cc
src/url.cc
src/wccp.cc
src/whois.cc

index 8805e400a9e271443f977bbb2f0d7cc96e3bbf62..a03c596d8a1b71a7f0b5c0fe7581d0b2ae79c545 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -66,6 +66,105 @@ Changes to Squid-2.4.DEVEL2 ():
 
 Changes to Squid-2.4.DEVEL1 ():
 
+Changes to Squid-2.3.STABLE3 (May 15, 2000):
+
+       - Fixed malloc linking problems on Solaris.  The configure
+         script incorrectly set options for dlmalloc.
+       - Added a configure check to remove compiler optimization
+         for GCC 2.95.x.
+       - Updated MSNT authenticator module.
+       - Updated Estonian error pages.
+       - Updated Japanese error pages.
+       - Fixed expires bug in httpReplyHdrCacheInit.  It was
+         incorrectly setting expires based on max-age.  It was using
+         the current time as a basis, instead of the response date.
+       - Fixed "USE_DNSSERVER" typos.
+       - Added a workaround for getpwnam() problems on Solaris.
+         getpwnam() could fail if there are fewer than 256 FDs
+         available.  This causes root to own some disk files.
+       - Added an 'offline_toggle' option via the cache manager.
+       - Added a 'minimum_object_size' option.  Files smaller than
+         this size are not stored.
+       - Added 'passive_ftp' option to disable passive FTP transfers.
+       - Added 'wccp_version' option because some Cisco IOS versions
+         require WCCP version 3.
+       - The 'client' program in ping mode (-g) now prints transfer
+         throughput.
+       - Fixed logging of proxy auth username for redirected
+         requests.
+       - Fixed bogus Age values for IMS requests.
+       - Fixed persistent connection timeout for client-side
+         connections.  It was hard-coded to 15 seconds, now uses
+         the 'pconn_timeout' value.
+       - Fixed up httpAcceptDefer.  It wasn't being used properly
+         and caused high CPU usage when Squid gets close to the FD
+         limit.
+       - Numerous delay_pools fixes and checks.
+       - Fixed SNMP coredumps from running snmpwalk.
+       - Added a check for errno == EPIPE in icmp.c when pinger uses
+         a Unix socket instead of a UDP socket.
+       - Fixed ACL checklist memory initialization bugs.
+       - Cleaned up the MIB file.  Replaced contact information and
+         checked description fields.
+       - Removed LRU reference_age hard-coded upper limit.
+       - Fixed async I/O FD leak.
+       - Made getMyHostname() more robust.
+       - Fixed domain list matching bug.  "x-foo.com" wasn't properly
+         compared to ".foo.com" and confused splay tree ordering.
+       - Added a check for whitespace in hostnames and optionally
+         strip whitespace if 'uri_whitespace' setting allows.
+       - Added status code and checking to ASN/whois queries.
+
+Changes to Squid-2.3.STABLE2 (Mar 2, 2000):
+
+       - Changed Copyright text.
+       - Changed configure so that some IRIX-6.4 hacks apply to
+         all IRIX-6.* versions.
+       - Cleaned up HTML bugs in error pages.
+       - Told configure to check for netinet/if_ether.h, which
+         is used in ARP ACL code, but might not be required.
+       - Added "Cookie" to known HTTP headers so it can be
+         used in anonymizer configuration.
+       - Added optional TCP_REDIRECT log code for logging
+         of 301/302 responses returned by Squid.
+       - Added a check for a currently running Squid process.
+         If the pid file exists, and the pid is running,
+         Squid complains and refuses to start another instance.
+       - Changed async I/O scope to PTHREAD_SCOPE_PROCESS for
+         IRIX.
+       - Fixed a bug with the PURGE method.  The purge enable
+         flag was not getting cleared during reconfigure.
+         Also required PURGE method to be used in http_access
+         list before enabling.
+       - Fixed async I/O assertions for file open errors.
+       - Fixed internal DNS assertion when unpacking truncated
+         messages.
+       - Fixed anonymize_headers bug that caused all headers
+         to be allowed after a reconfigure.
+       - Fixed an access denied bug for accelerator-only installations.
+       - Fixed internal DNS initialization so that it uses
+         'dns_nameservers' settings in squid.conf if set.
+       - Fixed 'maxconn' ACL bug that caused it to work backwards
+         (Pedro Ribeiro).
+       - Fixed syslog bug for daemon mode on Linux.
+       - Fixed 'http_port' parsing bugs.
+       - Fixed internal DNS byte ordering bugs for PTR queries.
+       - Fixed internal DNS queue getting stuck during periods
+         of low activity (Henrik).
+       - Fixed byte ordering bugs for parsing EPLF FTP listings
+         on 64-bit systems.
+       - Fixed 'request_body_max_size' bug that caused all
+         POST, PUT requests to be denied if max size is set
+         to zero.
+       - Fixed 'redirector_access' bug when using 'myport' ACLs.
+       - Fixed CARP neighbor selection bugs for down peers.
+       - Added 'client_persistent_connections' and
+         'server_persistent_connections' flags to disable persistent
+         connections for clients and servers.
+       - Fixed access logging bug that caused many requests to be
+         logged as TCP_MISS.
+       - Added some bounds checking to delay pools code.
+
 Changes to Squid-2.3.STABLE1 (Jan 9, 2000):
 
        - Updated PAM authentication module from Henrik Nordstrom.
@@ -296,7 +395,7 @@ Changes to Squid-2.3.DEVEL1 ():
        - Added 'peer_connect_timeout' squid.conf option.
        - Added 'redirector_bypass' squid.conf option.
        - Added RFC 2518 (WEBDAV) request methods.
-
+       
 Changes to Squid-2.2 (April 19, 1999):
 
        - Removed all SNMP specific ACL code
index f36ed73817ae70a743fd9e17ccd44f2e43a5c115..ee062d6dd7190689bf687042623d7b6048f9cf38 100755 (executable)
--- a/configure
+++ b/configure
@@ -643,7 +643,7 @@ fi
 
 
 
-# From configure.in Revision: 1.186 
+# From configure.in Revision
 ac_aux_dir=
 for ac_dir in cfgaux $srcdir/cfgaux; do
   if test -f $ac_dir/install-sh; then
@@ -1044,6 +1044,8 @@ if test "${use_dlmalloc-unset}" = unset; then
        i386-*-solaris2.*)
                echo "Enabling dlmalloc for $host"
                use_dlmalloc="yes"
+               LIBDLMALLOC="libdlmalloc.a"
+               LIB_MALLOC="-L../lib -ldlmalloc"
                ;;
     esac
 fi
@@ -1692,7 +1694,7 @@ case "$host" in
 esac
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1696: checking how to run the C preprocessor" >&5
+echo "configure:1698: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1707,13 +1709,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1711 "configure"
+#line 1713 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1717: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1719: \"$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
   :
@@ -1724,13 +1726,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1728 "configure"
+#line 1730 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1734: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1736: \"$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
   :
@@ -1741,13 +1743,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 1745 "configure"
+#line 1747 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1751: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1753: \"$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
   :
@@ -1783,7 +1785,7 @@ echo "$ac_t""$CPP" 1>&6
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1787: checking for a BSD compatible install" >&5
+echo "configure:1789: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1838,7 +1840,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 # 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:1842: checking for $ac_word" >&5
+echo "configure:1844: 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
@@ -1866,7 +1868,7 @@ else
 fi
 
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1870: checking whether ln -s works" >&5
+echo "configure:1872: checking whether ln -s works" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1889,7 +1891,7 @@ fi
 # Extract the first word of "sh", so it can be a program name with args.
 set dummy sh; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1893: checking for $ac_word" >&5
+echo "configure:1895: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_SH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1925,7 +1927,7 @@ fi
 # Extract the first word of "false", so it can be a program name with args.
 set dummy false; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1929: checking for $ac_word" >&5
+echo "configure:1931: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_FALSE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1961,7 +1963,7 @@ fi
 # Extract the first word of "true", so it can be a program name with args.
 set dummy true; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1965: checking for $ac_word" >&5
+echo "configure:1967: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_TRUE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1997,7 +1999,7 @@ fi
 # Extract the first word of "rm", so it can be a program name with args.
 set dummy rm; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2001: checking for $ac_word" >&5
+echo "configure:2003: 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
@@ -2033,7 +2035,7 @@ fi
 # Extract the first word of "mv", so it can be a program name with args.
 set dummy mv; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2037: checking for $ac_word" >&5
+echo "configure:2039: 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
@@ -2069,7 +2071,7 @@ fi
 # Extract the first word of "mkdir", so it can be a program name with args.
 set dummy mkdir; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2073: checking for $ac_word" >&5
+echo "configure:2075: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_MKDIR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2105,7 +2107,7 @@ fi
 # Extract the first word of "ln", so it can be a program name with args.
 set dummy ln; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2109: checking for $ac_word" >&5
+echo "configure:2111: 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
@@ -2141,7 +2143,7 @@ fi
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2145: checking for $ac_word" >&5
+echo "configure:2147: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2177,7 +2179,7 @@ fi
 # Extract the first word of "makedepend", so it can be a program name with args.
 set dummy makedepend; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2181: checking for $ac_word" >&5
+echo "configure:2183: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_MAKEDEPEND'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2213,7 +2215,7 @@ fi
 # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2217: checking for $ac_word" >&5
+echo "configure:2219: 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
@@ -2267,12 +2269,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:2271: checking for $ac_hdr that defines DIR" >&5
+echo "configure:2273: checking for $ac_hdr that defines DIR" >&5
 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2276 "configure"
+#line 2278 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -2280,7 +2282,7 @@ int main() {
 DIR *dirp = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:2284: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2286: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_header_dirent_$ac_safe=yes"
 else
@@ -2305,7 +2307,7 @@ done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
 echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:2309: checking for opendir in -ldir" >&5
+echo "configure:2311: checking for opendir in -ldir" >&5
 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2313,7 +2315,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldir  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2317 "configure"
+#line 2319 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2324,7 +2326,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:2328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2330: \"$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
@@ -2346,7 +2348,7 @@ fi
 
 else
 echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:2350: checking for opendir in -lx" >&5
+echo "configure:2352: checking for opendir in -lx" >&5
 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2354,7 +2356,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lx  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2358 "configure"
+#line 2360 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2365,7 +2367,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:2369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2371: \"$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
@@ -2388,12 +2390,12 @@ fi
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2392: checking for ANSI C header files" >&5
+echo "configure:2394: 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 <<EOF
-#line 2397 "configure"
+#line 2399 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -2401,7 +2403,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2405: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2407: \"$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*
@@ -2418,7 +2420,7 @@ 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 <<EOF
-#line 2422 "configure"
+#line 2424 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -2436,7 +2438,7 @@ fi
 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 <<EOF
-#line 2440 "configure"
+#line 2442 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -2457,7 +2459,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 2461 "configure"
+#line 2463 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2468,7 +2470,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:2472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -2559,17 +2561,17 @@ for ac_hdr in \
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2563: checking for $ac_hdr" >&5
+echo "configure:2565: 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
   cat > conftest.$ac_ext <<EOF
-#line 2568 "configure"
+#line 2570 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2573: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2575: \"$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*
@@ -2597,12 +2599,12 @@ done
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:2601: checking for working const" >&5
+echo "configure:2603: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2606 "configure"
+#line 2608 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -2651,7 +2653,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:2655: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2657: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -2672,14 +2674,14 @@ EOF
 fi
 
 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:2676: checking whether byte ordering is bigendian" >&5
+echo "configure:2678: checking whether byte ordering is bigendian" >&5
 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_bigendian=unknown
 # See if sys/param.h defines the BYTE_ORDER macro.
 cat > conftest.$ac_ext <<EOF
-#line 2683 "configure"
+#line 2685 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -2690,11 +2692,11 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:2694: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2696: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   # It does; now see whether it defined to BIG_ENDIAN or not.
 cat > conftest.$ac_ext <<EOF
-#line 2698 "configure"
+#line 2700 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -2705,7 +2707,7 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:2709: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2711: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
@@ -2725,7 +2727,7 @@ if test "$cross_compiling" = yes; then
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 2729 "configure"
+#line 2731 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -2738,7 +2740,7 @@ main () {
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:2742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2744: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_bigendian=no
 else
@@ -2763,20 +2765,20 @@ fi
 
 
 echo $ac_n "checking if ANSI prototypes work""... $ac_c" 1>&6
-echo "configure:2767: checking if ANSI prototypes work" >&5
+echo "configure:2769: checking if ANSI prototypes work" >&5
 if eval "test \"`echo '$''{'ac_cv_have_ansi_prototypes'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 2773 "configure"
+#line 2775 "configure"
 #include "confdefs.h"
 int foo(char *); int foo (char *bar) {return 1;}
 int main() {
 foo("bar")
 ; return 0; }
 EOF
-if { (eval echo configure:2780: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2782: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_ansi_prototypes="yes"
 else
@@ -2798,13 +2800,13 @@ EOF
 fi
 
 echo $ac_n "checking for tm->tm_gmtoff""... $ac_c" 1>&6
-echo "configure:2802: checking for tm->tm_gmtoff" >&5
+echo "configure:2804: checking for tm->tm_gmtoff" >&5
 if eval "test \"`echo '$''{'ac_cv_have_tm_gmoff'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 2808 "configure"
+#line 2810 "configure"
 #include "confdefs.h"
 #include <time.h>
 #include <sys/time.h>
@@ -2813,7 +2815,7 @@ struct tm foo;
       foo.tm_gmtoff = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:2817: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2819: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_tm_gmoff="yes"
 else
@@ -2835,13 +2837,13 @@ EOF
 fi
 
 echo $ac_n "checking for struct mallinfo""... $ac_c" 1>&6
-echo "configure:2839: checking for struct mallinfo" >&5
+echo "configure:2841: checking for struct mallinfo" >&5
 if eval "test \"`echo '$''{'ac_cv_have_struct_mallinfo'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 2845 "configure"
+#line 2847 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if HAVE_MALLOC_H
@@ -2859,7 +2861,7 @@ struct mallinfo foo;
     foo.keepcost = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:2863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2865: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_struct_mallinfo="yes"
 else
@@ -2881,13 +2883,13 @@ EOF
 fi
 
 echo $ac_n "checking for extended mallinfo""... $ac_c" 1>&6
-echo "configure:2885: checking for extended mallinfo" >&5
+echo "configure:2887: checking for extended mallinfo" >&5
 if eval "test \"`echo '$''{'ac_cv_have_ext_mallinfo'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 2891 "configure"
+#line 2893 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <malloc.h>
@@ -2896,7 +2898,7 @@ struct mallinfo foo;
       foo.mxfast = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:2900: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2902: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_ext_mallinfo="yes"
 else
@@ -2918,13 +2920,13 @@ EOF
 fi
 
 echo $ac_n "checking for struct rusage""... $ac_c" 1>&6
-echo "configure:2922: checking for struct rusage" >&5
+echo "configure:2924: checking for struct rusage" >&5
 if eval "test \"`echo '$''{'ac_cv_have_struct_rusage'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 2928 "configure"
+#line 2930 "configure"
 #include "confdefs.h"
 
 #if HAVE_SYS_TIME_H
@@ -2937,7 +2939,7 @@ int main() {
 struct rusage R;
 ; return 0; }
 EOF
-if { (eval echo configure:2941: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2943: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_struct_rusage="yes"
 else
@@ -2959,13 +2961,13 @@ EOF
 fi
 
 echo $ac_n "checking for ip->ip_hl""... $ac_c" 1>&6
-echo "configure:2963: checking for ip->ip_hl" >&5
+echo "configure:2965: checking for ip->ip_hl" >&5
 if eval "test \"`echo '$''{'ac_cv_have_ip_hl'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 2969 "configure"
+#line 2971 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <netinet/in.h>
@@ -2982,7 +2984,7 @@ struct iphdr ip;
       ip.ip_hl= 0;
 ; return 0; }
 EOF
-if { (eval echo configure:2986: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2988: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_ip_hl="yes"
 else
@@ -3004,7 +3006,7 @@ EOF
 fi
 
 echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:3008: checking size of int" >&5
+echo "configure:3010: checking size of int" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3012,7 +3014,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 3016 "configure"
+#line 3018 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3023,7 +3025,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:3027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
@@ -3043,7 +3045,7 @@ EOF
 
 
 echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:3047: checking size of long" >&5
+echo "configure:3049: checking size of long" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3051,7 +3053,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 3055 "configure"
+#line 3057 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3062,7 +3064,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:3066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3068: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
@@ -3082,7 +3084,7 @@ EOF
 
 
 echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:3086: checking size of void *" >&5
+echo "configure:3088: checking size of void *" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_void_p'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3090,7 +3092,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 3094 "configure"
+#line 3096 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3101,7 +3103,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:3105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_void_p=`cat conftestval`
 else
@@ -3124,19 +3126,19 @@ EOF
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:3128: checking for working alloca.h" >&5
+echo "configure:3130: checking for working alloca.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3133 "configure"
+#line 3135 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:3140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -3157,12 +3159,12 @@ EOF
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:3161: checking for alloca" >&5
+echo "configure:3163: checking for alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3166 "configure"
+#line 3168 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -3190,7 +3192,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:3194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3196: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -3222,12 +3224,12 @@ EOF
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:3226: checking whether alloca needs Cray hooks" >&5
+echo "configure:3228: checking whether alloca needs Cray hooks" >&5
 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3231 "configure"
+#line 3233 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -3252,12 +3254,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3256: checking for $ac_func" >&5
+echo "configure:3258: 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 3261 "configure"
+#line 3263 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3280,7 +3282,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3286: \"$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
@@ -3307,7 +3309,7 @@ done
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:3311: checking stack direction for C alloca" >&5
+echo "configure:3313: checking stack direction for C alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3315,7 +3317,7 @@ else
   ac_cv_c_stack_direction=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 3319 "configure"
+#line 3321 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -3334,7 +3336,7 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:3338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_stack_direction=1
 else
@@ -3357,12 +3359,12 @@ fi
 
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:3361: checking for pid_t" >&5
+echo "configure:3363: checking for pid_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3366 "configure"
+#line 3368 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3390,12 +3392,12 @@ EOF
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:3394: checking for size_t" >&5
+echo "configure:3396: checking for size_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3399 "configure"
+#line 3401 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3423,12 +3425,12 @@ EOF
 fi
 
 echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:3427: checking for ssize_t" >&5
+echo "configure:3429: checking for ssize_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3432 "configure"
+#line 3434 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3456,12 +3458,12 @@ EOF
 fi
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:3460: checking for off_t" >&5
+echo "configure:3462: checking for off_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3465 "configure"
+#line 3467 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3489,12 +3491,12 @@ EOF
 fi
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:3493: checking for mode_t" >&5
+echo "configure:3495: checking for mode_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3498 "configure"
+#line 3500 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3522,12 +3524,12 @@ EOF
 fi
 
 echo $ac_n "checking for fd_mask""... $ac_c" 1>&6
-echo "configure:3526: checking for fd_mask" >&5
+echo "configure:3528: checking for fd_mask" >&5
 if eval "test \"`echo '$''{'ac_cv_type_fd_mask'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3531 "configure"
+#line 3533 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3555,12 +3557,12 @@ EOF
 fi
 
 echo $ac_n "checking for mtyp_t""... $ac_c" 1>&6
-echo "configure:3559: checking for mtyp_t" >&5
+echo "configure:3561: checking for mtyp_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_mtyp_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3564 "configure"
+#line 3566 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3589,13 +3591,13 @@ fi
 
 
 echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
-echo "configure:3593: checking for socklen_t" >&5
+echo "configure:3595: checking for socklen_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_socklen_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 3599 "configure"
+#line 3601 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -3626,7 +3628,7 @@ EOF
 fi
 
 echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6
-echo "configure:3630: checking for main in -lnsl" >&5
+echo "configure:3632: checking for main in -lnsl" >&5
 ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3634,14 +3636,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3638 "configure"
+#line 3640 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:3645: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3647: \"$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
@@ -3669,7 +3671,7 @@ else
 fi
 
 echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6
-echo "configure:3673: checking for main in -lsocket" >&5
+echo "configure:3675: checking for main in -lsocket" >&5
 ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3677,14 +3679,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3681 "configure"
+#line 3683 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:3688: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3690: \"$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
@@ -3716,7 +3718,7 @@ if test "x$ac_cv_enabled_dlmalloc" = "xyes" ; then
   echo "skipping libmalloc check (--enable-dlmalloc specified)"
 else
   echo $ac_n "checking for main in -lgnumalloc""... $ac_c" 1>&6
-echo "configure:3720: checking for main in -lgnumalloc" >&5
+echo "configure:3722: checking for main in -lgnumalloc" >&5
 ac_lib_var=`echo gnumalloc'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3724,14 +3726,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgnumalloc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3728 "configure"
+#line 3730 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:3735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3737: \"$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
@@ -3774,7 +3776,7 @@ fi
                        *)
   
                                echo $ac_n "checking for main in -lmalloc""... $ac_c" 1>&6
-echo "configure:3778: checking for main in -lmalloc" >&5
+echo "configure:3780: checking for main in -lmalloc" >&5
 ac_lib_var=`echo malloc'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3782,14 +3784,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lmalloc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3786 "configure"
+#line 3788 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:3793: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3795: \"$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
@@ -3822,7 +3824,7 @@ fi
 fi
 
 echo $ac_n "checking for main in -lbsd""... $ac_c" 1>&6
-echo "configure:3826: checking for main in -lbsd" >&5
+echo "configure:3828: checking for main in -lbsd" >&5
 ac_lib_var=`echo bsd'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3830,14 +3832,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lbsd  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3834 "configure"
+#line 3836 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:3841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3843: \"$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
@@ -3865,7 +3867,7 @@ else
 fi
 
 echo $ac_n "checking for main in -lregex""... $ac_c" 1>&6
-echo "configure:3869: checking for main in -lregex" >&5
+echo "configure:3871: checking for main in -lregex" >&5
 ac_lib_var=`echo regex'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3873,14 +3875,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lregex  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3877 "configure"
+#line 3879 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:3884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3886: \"$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
@@ -3901,7 +3903,7 @@ else
 fi
 
 echo $ac_n "checking for gethostbyname in -lbind""... $ac_c" 1>&6
-echo "configure:3905: checking for gethostbyname in -lbind" >&5
+echo "configure:3907: checking for gethostbyname in -lbind" >&5
 ac_lib_var=`echo bind'_'gethostbyname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3909,7 +3911,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lbind  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3913 "configure"
+#line 3915 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3920,7 +3922,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:3924: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3926: \"$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
@@ -3954,7 +3956,7 @@ if test $ac_cv_lib_bind_gethostbyname = "no" ; then
                ;;
        *)
                echo $ac_n "checking for inet_aton in -lresolv""... $ac_c" 1>&6
-echo "configure:3958: checking for inet_aton in -lresolv" >&5
+echo "configure:3960: checking for inet_aton in -lresolv" >&5
 ac_lib_var=`echo resolv'_'inet_aton | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3962,7 +3964,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lresolv  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3966 "configure"
+#line 3968 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3973,7 +3975,7 @@ int main() {
 inet_aton()
 ; return 0; }
 EOF
-if { (eval echo configure:3977: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3979: \"$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
@@ -3989,7 +3991,7 @@ fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for inet_aton in -l44bsd""... $ac_c" 1>&6
-echo "configure:3993: checking for inet_aton in -l44bsd" >&5
+echo "configure:3995: checking for inet_aton in -l44bsd" >&5
 ac_lib_var=`echo 44bsd'_'inet_aton | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3997,7 +3999,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l44bsd  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4001 "configure"
+#line 4003 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4008,7 +4010,7 @@ int main() {
 inet_aton()
 ; return 0; }
 EOF
-if { (eval echo configure:4012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4014: \"$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
@@ -4040,7 +4042,7 @@ else
 fi
 
                echo $ac_n "checking for main in -lresolv""... $ac_c" 1>&6
-echo "configure:4044: checking for main in -lresolv" >&5
+echo "configure:4046: checking for main in -lresolv" >&5
 ac_lib_var=`echo resolv'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4048,14 +4050,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lresolv  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4052 "configure"
+#line 4054 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:4059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4061: \"$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
@@ -4086,7 +4088,7 @@ fi
     esac
 fi
 echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:4090: checking for main in -lm" >&5
+echo "configure:4092: checking for main in -lm" >&5
 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4094,14 +4096,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4098 "configure"
+#line 4100 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:4105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4107: \"$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
@@ -4130,7 +4132,7 @@ fi
 
 
 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:4134: checking for crypt in -lcrypt" >&5
+echo "configure:4136: 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
@@ -4138,7 +4140,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcrypt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4142 "configure"
+#line 4144 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4149,7 +4151,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:4153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4155: \"$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
@@ -4182,7 +4184,7 @@ fi
 
 
 echo $ac_n "checking for main in -lpthread""... $ac_c" 1>&6
-echo "configure:4186: checking for main in -lpthread" >&5
+echo "configure:4188: checking for main in -lpthread" >&5
 ac_lib_var=`echo pthread'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4190,14 +4192,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lpthread  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4194 "configure"
+#line 4196 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:4201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4203: \"$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
@@ -4232,7 +4234,7 @@ fi
 case "$host" in
        *-pc-sco3.2*)
                echo $ac_n "checking for strftime in -lintl""... $ac_c" 1>&6
-echo "configure:4236: checking for strftime in -lintl" >&5
+echo "configure:4238: checking for strftime in -lintl" >&5
 ac_lib_var=`echo intl'_'strftime | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4240,7 +4242,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4244 "configure"
+#line 4246 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4251,7 +4253,7 @@ int main() {
 strftime()
 ; return 0; }
 EOF
-if { (eval echo configure:4255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4257: \"$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
@@ -4325,6 +4327,18 @@ EOF
                ;;
 esac
 
+# Remove optimization for GCC 2.95.[12]
+# gcc -O[2] on *BSD and Linux (x86) causes pointers to magically become NULL
+if test "$GCC" = "yes"; then
+       GCCVER=`$CC -v 2>&1 | awk '$2 ==  "version" {print $3}'`
+       case "$GCCVER" in
+       2.95.[12])
+               echo "Removing -O for gcc on $host with GCC $GCCVER"
+               CFLAGS="`echo $CFLAGS | sed -e 's/-O[0-9]*//'`"
+               ;;
+       esac
+fi
+
 # Recommended by Balint Nagy Endre <bne@CareNet.hu>
 case "$host" in
        *-univel-sysv4.2MP)
@@ -4419,12 +4433,12 @@ for ac_func in \
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4423: checking for $ac_func" >&5
+echo "configure:4437: 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 4428 "configure"
+#line 4442 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4447,7 +4461,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4465: \"$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
@@ -4473,7 +4487,7 @@ done
 
 
 echo $ac_n "checking if setresuid is implemented""... $ac_c" 1>&6
-echo "configure:4477: checking if setresuid is implemented" >&5
+echo "configure:4491: checking if setresuid is implemented" >&5
 if eval "test \"`echo '$''{'ac_cv_func_setresuid'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4481,7 +4495,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4485 "configure"
+#line 4499 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -4494,7 +4508,7 @@ else
   }
   
 EOF
-if { (eval echo configure:4498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_setresuid="yes"
 else
@@ -4519,7 +4533,7 @@ fi
 
 if test "$IPF_TRANSPARENT" ; then
     echo $ac_n "checking if IP-Filter header files are installed""... $ac_c" 1>&6
-echo "configure:4523: checking if IP-Filter header files are installed" >&5
+echo "configure:4537: checking if IP-Filter header files are installed" >&5
     if test "$ac_cv_header_ip_compat_h" = "yes" &&
        test "$ac_cv_header_ip_fil_h" = "yes" &&
        test "$ac_cv_header_ip_nat_h" = "yes" ; then
@@ -4562,13 +4576,13 @@ if test -z "$USE_GNUREGEX" ; then
     esac
 fi
 echo $ac_n "checking if GNUregex needs to be compiled""... $ac_c" 1>&6
-echo "configure:4566: checking if GNUregex needs to be compiled" >&5
+echo "configure:4580: checking if GNUregex needs to be compiled" >&5
 if test -z "$USE_GNUREGEX"; then
 if test "$ac_cv_func_regcomp" = "no" || test "$USE_GNUREGEX" = "yes" ; then
        USE_GNUREGEX="yes"
 else
        cat > conftest.$ac_ext <<EOF
-#line 4572 "configure"
+#line 4586 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <regex.h>
@@ -4576,7 +4590,7 @@ int main() {
 regex_t t; regcomp(&t,"",0);
 ; return 0; }
 EOF
-if { (eval echo configure:4580: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4594: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   USE_GNUREGEX="no"
 else
@@ -4607,12 +4621,12 @@ for ac_func in \
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4611: checking for $ac_func" >&5
+echo "configure:4625: 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 4616 "configure"
+#line 4630 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4635,7 +4649,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4653: \"$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
@@ -4663,12 +4677,12 @@ done
 
 
 echo $ac_n "checking Default FD_SETSIZE value""... $ac_c" 1>&6
-echo "configure:4667: checking Default FD_SETSIZE value" >&5
+echo "configure:4681: checking Default FD_SETSIZE value" >&5
 if test "$cross_compiling" = yes; then
   DEFAULT_FD_SETSIZE=256
 else
   cat > conftest.$ac_ext <<EOF
-#line 4672 "configure"
+#line 4686 "configure"
 #include "confdefs.h"
 
 #if HAVE_STDIO_H
@@ -4693,7 +4707,7 @@ main() {
 }
 
 EOF
-if { (eval echo configure:4697: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   DEFAULT_FD_SETSIZE=`cat conftestval`
 else
@@ -4712,7 +4726,7 @@ EOF
 
 
 echo $ac_n "checking Maximum number of filedescriptors we can open""... $ac_c" 1>&6
-echo "configure:4716: checking Maximum number of filedescriptors we can open" >&5
+echo "configure:4730: checking Maximum number of filedescriptors we can open" >&5
 TLDFLAGS="$LDFLAGS"
 case $host in
 i386-unknown-freebsd*)
@@ -4724,7 +4738,7 @@ if test "$cross_compiling" = yes; then
   SQUID_MAXFD=256
 else
   cat > conftest.$ac_ext <<EOF
-#line 4728 "configure"
+#line 4742 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4781,7 +4795,7 @@ main() {
 }
 
 EOF
-if { (eval echo configure:4785: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   SQUID_MAXFD=`cat conftestval`
 else
@@ -4808,12 +4822,12 @@ fi
 LDFLAGS="$TLDFLAGS"
 
 echo $ac_n "checking Default UDP send buffer size""... $ac_c" 1>&6
-echo "configure:4812: checking Default UDP send buffer size" >&5
+echo "configure:4826: checking Default UDP send buffer size" >&5
 if test "$cross_compiling" = yes; then
   SQUID_UDP_SO_SNDBUF=16384
 else
   cat > conftest.$ac_ext <<EOF
-#line 4817 "configure"
+#line 4831 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -4834,7 +4848,7 @@ main ()
 }
 
 EOF
-if { (eval echo configure:4838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4852: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   SQUID_UDP_SO_SNDBUF=`cat conftestval`
 else
@@ -4853,12 +4867,12 @@ EOF
 
 
 echo $ac_n "checking Default UDP receive buffer size""... $ac_c" 1>&6
-echo "configure:4857: checking Default UDP receive buffer size" >&5
+echo "configure:4871: checking Default UDP receive buffer size" >&5
 if test "$cross_compiling" = yes; then
   SQUID_UDP_SO_RCVBUF=16384
 else
   cat > conftest.$ac_ext <<EOF
-#line 4862 "configure"
+#line 4876 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -4879,7 +4893,7 @@ main ()
 }
 
 EOF
-if { (eval echo configure:4883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   SQUID_UDP_SO_RCVBUF=`cat conftestval`
 else
@@ -4898,12 +4912,12 @@ EOF
 
 
 echo $ac_n "checking Default TCP send buffer size""... $ac_c" 1>&6
-echo "configure:4902: checking Default TCP send buffer size" >&5
+echo "configure:4916: checking Default TCP send buffer size" >&5
 if test "$cross_compiling" = yes; then
   SQUID_TCP_SO_SNDBUF=16384
 else
   cat > conftest.$ac_ext <<EOF
-#line 4907 "configure"
+#line 4921 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -4924,7 +4938,7 @@ main ()
 }
 
 EOF
-if { (eval echo configure:4928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4942: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   SQUID_TCP_SO_SNDBUF=`cat conftestval`
 else
@@ -4943,12 +4957,12 @@ EOF
 
 
 echo $ac_n "checking Default TCP receive buffer size""... $ac_c" 1>&6
-echo "configure:4947: checking Default TCP receive buffer size" >&5
+echo "configure:4961: checking Default TCP receive buffer size" >&5
 if test "$cross_compiling" = yes; then
   SQUID_TCP_SO_RCVBUF=16384
 else
   cat > conftest.$ac_ext <<EOF
-#line 4952 "configure"
+#line 4966 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -4969,7 +4983,7 @@ main ()
 }
 
 EOF
-if { (eval echo configure:4973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4987: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   SQUID_TCP_SO_RCVBUF=`cat conftestval`
 else
@@ -4988,19 +5002,19 @@ EOF
 
 
 echo $ac_n "checking if sys_errlist is already defined""... $ac_c" 1>&6
-echo "configure:4992: checking if sys_errlist is already defined" >&5
+echo "configure:5006: checking if sys_errlist is already defined" >&5
 if eval "test \"`echo '$''{'ac_cv_needs_sys_errlist'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4997 "configure"
+#line 5011 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 char *s = sys_errlist;
 ; return 0; }
 EOF
-if { (eval echo configure:5004: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5018: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_needs_sys_errlist="no"
 else
@@ -5022,16 +5036,16 @@ EOF
 fi
 
 echo $ac_n "checking for libresolv _dns_ttl_ hack""... $ac_c" 1>&6
-echo "configure:5026: checking for libresolv _dns_ttl_ hack" >&5
+echo "configure:5040: checking for libresolv _dns_ttl_ hack" >&5
 cat > conftest.$ac_ext <<EOF
-#line 5028 "configure"
+#line 5042 "configure"
 #include "confdefs.h"
 extern int _dns_ttl_;
 int main() {
 return _dns_ttl_;
 ; return 0; }
 EOF
-if { (eval echo configure:5035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5049: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 cat >> confdefs.h <<\EOF
@@ -5047,12 +5061,12 @@ fi
 rm -f conftest*
 
 echo $ac_n "checking if inet_ntoa() actually works""... $ac_c" 1>&6
-echo "configure:5051: checking if inet_ntoa() actually works" >&5
+echo "configure:5065: checking if inet_ntoa() actually works" >&5
 if test "$cross_compiling" = yes; then
   INET_NTOA_RESULT="broken"
 else
   cat > conftest.$ac_ext <<EOF
-#line 5056 "configure"
+#line 5070 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -5071,7 +5085,7 @@ main ()
 }
 
 EOF
-if { (eval echo configure:5075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   INET_NTOA_RESULT=`cat conftestval`
 else
@@ -5097,9 +5111,9 @@ fi
 
 if test "$ac_cv_header_sys_statvfs_h" = "yes" ; then
 echo $ac_n "checking for working statvfs() interface""... $ac_c" 1>&6
-echo "configure:5101: checking for working statvfs() interface" >&5
+echo "configure:5115: checking for working statvfs() interface" >&5
 cat > conftest.$ac_ext <<EOF
-#line 5103 "configure"
+#line 5117 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -5116,7 +5130,7 @@ statvfs("/tmp", &sfs);
 
 ; return 0; }
 EOF
-if { (eval echo configure:5120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5134: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_func_statvfs=yes
 else
@@ -5136,12 +5150,12 @@ fi
 fi
 
 echo $ac_n "checking for _res.nsaddr_list""... $ac_c" 1>&6
-echo "configure:5140: checking for _res.nsaddr_list" >&5
+echo "configure:5154: checking for _res.nsaddr_list" >&5
 if eval "test \"`echo '$''{'ac_cv_have_res_nsaddr_list'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5145 "configure"
+#line 5159 "configure"
 #include "confdefs.h"
 
 #if HAVE_SYS_TYPES_H
@@ -5164,7 +5178,7 @@ int main() {
 _res.nsaddr_list[0];
 ; return 0; }
 EOF
-if { (eval echo configure:5168: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5182: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_res_nsaddr_list="yes"
 else
@@ -5186,12 +5200,12 @@ fi
 
 if test $ac_cv_have_res_nsaddr_list = "no" ; then
 echo $ac_n "checking for _res.ns_list""... $ac_c" 1>&6
-echo "configure:5190: checking for _res.ns_list" >&5
+echo "configure:5204: checking for _res.ns_list" >&5
 if eval "test \"`echo '$''{'ac_cv_have_res_ns_list'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5195 "configure"
+#line 5209 "configure"
 #include "confdefs.h"
 
 #if HAVE_SYS_TYPES_H
@@ -5214,7 +5228,7 @@ int main() {
 _res.ns_list[0].addr;
 ; return 0; }
 EOF
-if { (eval echo configure:5218: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5232: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_res_ns_list="yes"
 else
index 38fe971979ca99e77792a31c55d964104fb7868f..f131be58bb66caf0c4bb27a528ab66d03761a4ce 100644 (file)
@@ -3,13 +3,13 @@ dnl  Configuration input file for Squid
 dnl
 dnl  Duane Wessels, wessels@nlanr.net, February 1996 (autoconf v2.9)
 dnl
-dnl  $Id: configure.in,v 1.187 2000/05/05 10:24:15 adrian Exp $
+dnl  $Id: configure.in,v 1.188 2000/05/16 07:05:52 wessels Exp $
 dnl
 dnl
 dnl
 AC_INIT(src/main.c)
 AC_CONFIG_HEADER(include/autoconf.h)
-AC_REVISION($Revision: 1.187 $)dnl
+AC_REVISION($Revision: 1.188 $)dnl
 AC_PREFIX_DEFAULT(/usr/local/squid)
 AC_CONFIG_AUX_DIR(cfgaux)
 
@@ -149,6 +149,8 @@ if test "${use_dlmalloc-unset}" = unset; then
        i386-*-solaris2.*)
                echo "Enabling dlmalloc for $host"
                use_dlmalloc="yes"
+               LIBDLMALLOC="libdlmalloc.a"
+               LIB_MALLOC="-L../lib -ldlmalloc"
                ;;
     esac
 fi
@@ -992,6 +994,18 @@ dnl during compile.
                ;;
 esac
 
+# Remove optimization for GCC 2.95.[12]
+# gcc -O[2] on *BSD and Linux (x86) causes pointers to magically become NULL
+if test "$GCC" = "yes"; then
+       GCCVER=`$CC -v 2>&1 | awk '$2 ==  "version" {print $3}'`
+       case "$GCCVER" in
+       [2.95.[12]])
+               echo "Removing -O for gcc on $host with GCC $GCCVER"
+               CFLAGS="`echo $CFLAGS | sed -e 's/-O[[0-9]]*//'`"
+               ;;
+       esac
+fi
+
 # Recommended by Balint Nagy Endre <bne@CareNet.hu>
 case "$host" in
        *-univel-sysv4.2MP)
index b0c3bd22fa64f64f73044e1b7f6febcfbd6eacdf..ecb679e65cc0abf87c373542dfdbf9498d97b93c 100644 (file)
@@ -12,7 +12,6 @@ The following error was encountered:
 Unable to determine IP address from host name for
 <I>%H</I>
 </BLOCKQUOTE>
-</UL>
 
 <P>
 The dnsserver returned:
index 6f70f585a54890e53a16d536c382384692135157..73bad240c23e94bc8e2aed5472dfce48df573ad2 100644 (file)
@@ -4,6 +4,3 @@
 <H1>Operation successful</H1>
 <H2>File created</H2>
 <HR>
-<P>
-</P>
-
index 95459cda2471966cedb9a5d4e500cf15a8ac1fd6..efae5694f5ced90a4ff11a7162fb8b6721232eb3 100644 (file)
@@ -4,6 +4,3 @@
 <H1>Operation successful</H1>
 <H2>File updated</H2>
 <HR>
-<P>
-</P>
-
index e89b7b1566819acc749127fb48d8bd90449c69ee..c93cf87a0127d689cb447d3f00965f99944c8bee 100644 (file)
@@ -9,7 +9,6 @@ While trying to retrieve the URL:
 <A HREF="%U">%U</A>
 <P>
 The following error was encountered:
-<UL>
 <P>
 This cache is in the process of shutting down and can not
 service your request at this time.  Please retry your
index cd1eee91c562d9ccdc86d4b6f88c2bb0dcae671b..d2fa85407af39ae082f1a6729187e37cd69e5426 100644 (file)
@@ -18,5 +18,5 @@ Juurdep&auml;&auml;s keelatud.
 Juurdep&auml;&auml;su kontrolli konfiguratsioon blokeerib teie p&auml;ringut.
 Kui te arvate, et blokeering pole &otilde;ige, kontakteeruge palun teenuse pakkujaga.
 </UL>
-</P>
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
 
index ddd59c25c3c58b07da1ee4e2a74bb29d38a86e9b..f1f1609104e025481c36531484f308f416e8b226 100644 (file)
@@ -1,9 +1,9 @@
 <HTML><HEAD>
-<TITLE>VIGA: Cache kasutamine blokeeritud</TITLE>
+<TITLE>VIGA: Vahemälu serveri kasutamine blokeeritud</TITLE>
 </HEAD>
 <BODY>
 <H1>VIGA</H1>
-<H2>Cache kasutamine keelatud</H2>
+<H2>Vahemälu serveri kasutamine keelatud</H2>
 <HR>
 <P>
 Sooritades p&auml;ringut URLile
@@ -13,7 +13,7 @@ tekkis j&auml;rgnev viga:
 <UL>
 <LI>
 <STRONG>
-Cache kasutamine keelatud.
+Vahemälu serveri kasutamine keelatud.
 </STRONG>
 </UL>
 </P>
@@ -26,7 +26,7 @@ kuni te pole l&auml;binud autoriseerimist.
 <P>
 Autoriseerimiseks on teil vaja brauserit mis toetab HTTP/1.1 standardit,
 nagu Netscape versioon 2.0 v&otilde;i uuem, v&otilde;i MS Internet Explorer
-3.0. Palun kontakteeruge <A HREF="mailto:%w">cache administraatoriga</a>,
+3.0. Palun kontakteeruge <A HREF="mailto:%w">vahemälu serveri administraatoriga</a>,
 kui teil on probleeme autoriseerimisega v&otilde;i
 <A HREF="http://%h/cgi-bin/chpasswd.cgi\">vahetage/a> oma parool.
 </P>
index cce944574d24f13a9e707495ede3369c6d818bb6..b27eb5c052d595774305c3a20df52698717302ee 100644 (file)
@@ -1,9 +1,9 @@
 <HTML><HEAD>
-<TITLE>VIGA: Cache haldaja kasutamine blokeeritud</TITLE>
+<TITLE>VIGA: Vahemälu serveri haldaja kasutamine blokeeritud</TITLE>
 </HEAD>
 <BODY>
 <H1>VIGA</H1>
-<H2>Cache haldaja kasutamine blokeeritud</H2>
+<H2>Vahemälu serveri haldaja kasutamine blokeeritud</H2>
 <HR>
 <P>
 Sooritades p&auml;ringut URLile
@@ -13,19 +13,19 @@ tekkis j&auml;rgnev viga:
 <UL>
 <LI>
 <STRONG>
-Cache haldaja kasutamine keelatud.
+Vahemälu serveri haldaja kasutamine keelatud.
 </STRONG>
 </UL>
 </P>
 
 <P>Vabandust, teil pole &otilde;igust p&auml;ringule:
 <PRE>    %U</PRE>
-sellele cache haldajale, kuni te pole l&auml;binud autoriseerimist.
+sellele vahemälu serveri haldajale, kuni te pole l&auml;binud autoriseerimist.
 </P>
 
 <P> Autoriseerimiseks on teil vaja brauserit mis toetab HTTP/1.1 standardit,
 nagu Netscape versioon 2.0 v&otilde;i uuem, v&otilde;i MS Internet Explorer
-3.0. Palun kontakteeruge <A HREF="mailto:%w">cache administraatoriga</a>,
+3.0. Palun kontakteeruge <A HREF="mailto:%w">vahemälu serveri administraatoriga</a>,
 kui teil on probleeme autoriseerimisega v&otilde;i kui te <em>olete</em>
-administraator, lugege Squidi dokumentatsiooni cache haldaja interfeisi kohta
-ja kontrollige cache logi vea t&auml;psema kirjelduse saamiseks.</P>
+administraator, lugege Squidi dokumentatsiooni vahemälu serveri haldaja interfeisi kohta
+ja kontrollige vahemälu serveri logi t&auml;psema veakirjelduse saamiseks.</P>
index 4e9e98b677b376b7204d7dd64db5c7703dd1dca3..fab425a2c78b2ad78ad8b04781e6292e5c138db8 100644 (file)
@@ -18,10 +18,10 @@ P&auml;ringu edastamine eba&otilde;nnestus.
 
 <P>
 P&auml;ringut ei &otilde;nnestunud edastada ei originaali serverile ega
-&uuml;helegi vanem cache serverile. Ilmselt on p&otilde;hjus:
+&uuml;helegi vanem vahemälu serverile. Ilmselt on p&otilde;hjus:
 <UL>
-<LI>Cache administraator ei v&otilde;imalda teha otseseid p&auml;ringuid
+<LI>Vahemälu serveri administraator ei v&otilde;imalda teha otseseid p&auml;ringuid
 originaali serverile ja
-<LI>K&otilde;ik kirjeldatud vanem vanem cached on hetkel k&auml;ttesaamatud.
+<LI>K&otilde;ik kirjeldatud vanem vahemälu serverid on hetkel k&auml;ttesaamatud.
 </UL>
-</P>
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 6950e5d658cce43b73824540c74393ad3b4a275b..d0d8989d7bed2e75e10d84863d392c20901e8085 100644 (file)
@@ -23,4 +23,4 @@ S&uuml;steem vastas:
 <P>
 Server v&otilde;i arvutiv&otilde;rk ei t&ouml;&ouml;ta. Palun korrake
 p&auml;ringut.
-</P>
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 5474d8572634c7935c904bcc1d79fd8066b8644a..820a2618fb92ef8cf1e18a0cd5ead089f530ae7a 100644 (file)
@@ -22,8 +22,7 @@ DNS server vastas:
 <P>
 Mis t&auml;hendab:
 <PRE>
Cache ei suutnud lahendada URLis antud hosti nime. Palun kontrollige
Vahemälu server ei suutnud lahendada URLis antud hosti nime. Palun kontrollige
  aadressi korrektsust.
 </PRE>
-</P>
-
+<P>Teie teenuseVahemälu serve aadress on <A HREF="mailto:%w">%w</A>.
index 32ad95ac59094f6186d7021446a303deb6b0afe8..b853dc1e01e5370d99c9b5891a16c9f1b5e6211e 100644 (file)
@@ -17,6 +17,6 @@ Edastamine keelatud.
 </UL>
 
 <P>
-Meie cache ei edasta teie p&auml;ringut, kuna ta kasutab andmete edastamisel
-ainult naaber cache meetodit. Ilmselt on %i vigaselt konfigureeritud cache.
-</P>
+Meie vahemälu server ei edasta teie p&auml;ringut, kuna ta kasutab andmete edastamisel
+ainult naaber vahemälu serverite meetodit. Ilmselt on %i vigaselt konfigureeritud vahemälu server.
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 52bdf0fd2c01a52184f6e43a10c5b0deacbabd41..24ff154820b84dccddaf79a96c8ff5e11d2164be 100644 (file)
@@ -17,5 +17,5 @@ FTP on blokeeritud
 </UL>
 
 <P>
-See cache ei toeta FTPd.
-</P>
+See vahemälu server ei toeta FTPd.
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 61847a840e54ff391498036cde66b5c5ff7feefc..53764d43dfb5eda122cd107e3f618656fc2ede1e 100644 (file)
@@ -17,5 +17,4 @@ ja sai j&auml;rgneva vastuse
 See olukord v&otilde;ib olla tekkinud, kui FTP URL on antud absoluutse
 teega (mis on vastuolus RFC 1738-ga). Kui see on nii, siis saab faili 
 aadressilt <A HREF="%B">%B</A>.
-</P>
-
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index e4caa782c3185160be35d3a054f1b0ad90b68ff0..322a67246c8c8edc97a1f6266857cb7ce94d3730 100644 (file)
@@ -12,5 +12,4 @@ Squid saatis j&auml;rgneva FTP k&auml;su:
 ja sai sellise vastuse
 <blockquote><strong><pre>%F</pre></strong></blockquote>
 <blockquote><strong><pre>%g</pre></strong></blockquote>
-</P>
-
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 08718ef18d389c2b8434f1d672f48a04fd4ca4a2..9b3cb5daae176057453647b84223cd4b35957055 100644 (file)
@@ -16,5 +16,4 @@ ja sai sellise vastuse
 See olukord v&otilde;ib olla tekkinud, kui FTP URL on antud absoluutse
 teega (mis on vastuolus RFC 1738-ga). Kui see on nii, siis saab faili 
 aadressilt <A HREF="%B">%B</A>.
-</P>
-
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 8f013079a13116f19f2bab3778c5c8c3b74a6f6b..5b861cc5a00acf3490dcd73c0a3fce0887f5f11c 100644 (file)
@@ -21,5 +21,4 @@ Mis t&auml;hendab:
 <PRE>
 Kontrolli failiteed, &otilde;iguseid, ketta ruumi ja proovi uuesti.
 </PRE>
-</P>
-
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 705908c2ae377c67c75b65dfd6dfa83795895782..ae62459ad0e6d99c763716cdb8770bda4cf31a3c 100644 (file)
@@ -13,5 +13,4 @@ Squid saatis j&auml;rgneva FTP k&auml;su:
 ja sai sellise vastuse
 <blockquote><strong><pre>%F</pre></strong></blockquote>
 <blockquote><strong><pre>%g</pre></strong></blockquote>
-</P>
-
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 1287e7f153ed9dfe035dc50c6f6e834c3abe08ec..a7ea6eb76309ef5f8578efd02df737dae39b7940 100644 (file)
@@ -28,4 +28,4 @@ M&otilde;ni osa HTTP p&auml;ringust on vigane. V&otilde;imalikud probleemid:
 <LI>POST v&otilde;i PUT p&auml;ringutel puudub Content-Length
 <LI>keelatud s&uuml;mbolid hosti nimes; alakriipsud pole lubatud
 </UL>
-</P>
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index a528693e33f5fe387f7787197cd92630c54456d4..21ca2b3cc09ba86511bbd043e8c17cf0af0e00b2 100644 (file)
@@ -24,4 +24,4 @@ M&otilde;ni osa URList on vigane. V&otilde;imalikud probleemid:
 <LI>Vigane topelt-kaldkriips URLi teel
 <LI>Vigane s&uuml;mbol hosti nimes; alakriipsud pole lubatud
 </UL>
-</P>
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 2df6e9722772d4a88937fe6a83116bd5e1193e5d..32792abd9dd427f76733eb85ced9db3d5d7b5665 100644 (file)
@@ -18,4 +18,4 @@ tekkis j&auml;rgnev viga:
 
 <P>
 Squid katkestas p&auml;ringu, kuna see kestis liiga kaua.
-</P>
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 53bcfe79d2ec360d7ed204c89339685c929b90fd..336bbbe374aef6d80eaaf5e01c01e8ddaece7874 100644 (file)
@@ -17,6 +17,6 @@ Wais edastaja puudub
 </UL>
 
 <P>
-Selles Caches on WAISi edastav host kirjeldamata!  Kontakteeruge
+Selles vahemälu serveris on WAISi edastav host kirjeldamata!  Kontakteeruge
 administraatoriga.
-</P>
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 21362c99e7e9e254b6bc1a48244fec4e69957e76..6e7f7d0904987340b2c2e01ed9be4c473d4c84ee 100644 (file)
@@ -12,17 +12,16 @@ tekkis j&auml;rgnev viga:
 <UL>
 <LI>
 <STRONG>
-Kehtiv dokument puudub cachest ja <code>only-if-cached</code>
-Valid document was not found in the cache and p&auml;ring sisaldas
+Kehtiv dokument puudub vahemälu serverist ja p&auml;ring sisaldas
 <code>only-if-cached</code> direktiivi.
 </STRONG>
 </UL>
 
 <P>
 
-Te edastasite p&auml;ringu <code>only-if-cached</code> cache kontrolli
-direktiiviga. Dokumenti ei leitud cachest <em>v&otilde;i</em>ta
+Te edastasite p&auml;ringu <code>only-if-cached</code> vahemälu kontrolli
+direktiiviga. Dokumenti ei leitud vahemälu serverist <em>v&otilde;i</em>ta
 n&otilde;udis uuendamist, mis on aga keelatud <code>only-if-cached</code>
 direktiiviga.
 
-</P>
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index dcc85715c2e9c51e26a8d508802e6971bbde400b..8476e5ca4c5544dff74ef8c576568903ed8c4777 100644 (file)
@@ -22,4 +22,4 @@ S&uuml;steem vastas:
 
 <P>
 Andmete lugemisel tekkis veasituatsioon. Palun korrake p&auml;ringut.
-</P>
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 4175c4ed4671b1cceb9f31e70eff31c1d2d789d0..ead00a7cd5060a52402a4c6d1f6ea663ddb76651 100644 (file)
@@ -23,4 +23,4 @@ S&uuml;steem vastas:
 <P>
 Lugejal katkes v&otilde;rgust andmeid lugedes kannatus. V&otilde;rk v&otilde;i
 server v&otilde;ib olla maas v&otilde;i umbes. Proovige uuesti.
-</P>
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 9db0092e922a057758702c20f7ed1bf039c5d14a..6b9f9813c4ae9135db39fb946eca45b91c305f69 100644 (file)
@@ -14,4 +14,4 @@ Tekkis j&auml;rgnev viga:
 Meie server on saanud k&auml;su t&ouml;&ouml; l&otilde;petada ja 
 ei saa teie p&auml;ringut hetkel teenindada. Palun korrake oma
 p&auml;ringut motilde;ne aja p&auml;rast.
-</P>
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index cfb0890dda0d4404f4c43c783609fabddc6f4016..4b225322e0c345d8b276df228dd0adbda77aaf06 100644 (file)
@@ -23,4 +23,4 @@ S&uuml;steem vastas:
 <P>
 Squid ei suuda tekitada TCP pistikut, ilmselt &uuml;lekoormuse t&otilde;ttu.
 palun korrake p&auml;ringut.
-</P>
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 337538ee431a29eac6a2b966b17f55342bd5ce45..5c561da2f15cc1f99f447cda6b7b9f45fa2e4067 100644 (file)
@@ -1,26 +1,25 @@
 <HTML><HEAD>
-<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
+<TITLE>IGA: P&auml;ring URLile ei saa vastust</TITLE>
 </HEAD><BODY>
-<H1>ERROR</H1>
-<H2>The requested URL could not be retrieved</H2>
+<H1>Viga</H1>
+<H2>P&auml;ring URLile ei saa vastust</H2>
 <HR>
 <P>
-While trying to retrieve the URL:
+Sooritades p&auml;ringut URLile
 <A HREF="%U">%U</A>
 <P>
-The following error was encountered:
+tekkis j&auml;rgnev viga:
 <UL>
 <LI>
 <STRONG>
-The request or reply is too large.
+Päring või vastus on liiga suur.
 </STRONG>
 <P>
-If you are making a POST or PUT request, then your request body
-(the thing you are trying to upload) is too large.  If you are 
-making a GET request, then the reply body (what you are trying
-to download) is too large.   These limits have been established
-by the Internet Service Provider who operates this cache.  Please
-contact them directly if you feel this is an error.
+Kui te sooritate POST või PUT päringut, siis teie päringu keha
+(see asi, mida te serverisse laete) on liiga suur. Kui te
+sooritate GET päringut, siis on vastuse keha (asi, mida te serverist
+laete) liiga suur. Need piirangus on seadnud teie teenusepakkuja, kes
+haldab seda vahemälu serverit. Kui te arvate, et tegemist on veaga,
+kontakteeruge palun otse oma teenusepakkujaga.
 </UL>
-<P>
-Your cache administrator is <A HREF="mailto:%w">%w</A>.
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 953c3fb2fd403793eb0fcb55a801818a92d15a56..20caff84f7ff4654d014bde0576bfd7fb84c85f0 100644 (file)
@@ -19,5 +19,4 @@ Tundmatu p&auml;ringu meetod ja protokoll
 <P>
 Squid ei toeta k&otilde;iki p&auml;ringu meetodeid k&otilde;ikide protokollidega.
 N&auml;iteks, te ei saa teha POST operatsiooni Gopher p&auml;ringus.
-</P>
-
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 49789e1994a9f53a4ad9342a9ce1b6004898c69a..dfb1e511a283e9d89a75c5720647a4aa18e8fbdd 100644 (file)
@@ -18,4 +18,4 @@ Ei suuda lahendada URN
 
 <P>
 Hei, mida sa ootad URNidelt %T peal:)
-</P>
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 55e6e94f85f0247268e8022744495e85e12cf44d..c267db45aa323babd6a387d026f01d90c1352b77 100644 (file)
@@ -22,4 +22,4 @@ S&uuml;steem vastas:
 
 <P>
 V&otilde;rku kirjutades tekkis viga. Palun korrake p&auml;ringut.
-</P>
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 9192ba9f6f9cb1a0c29cf608f2a558fd46c672dc..dc166c1b4433e453694a8932727d84d3d112c5cd 100644 (file)
@@ -18,4 +18,4 @@ Vastus on t&uuml;hi
 
 <P>
 Squid ei saanud selle p&auml;ringu vastuseks midagi...
-</P>
+<P>Teie teenusepakkuja aadress on <A HREF="mailto:%w">%w</A>.
index 337538ee431a29eac6a2b966b17f55342bd5ce45..574c1da2614e4e1a91b644ef9d10de3e266a11ae 100644 (file)
@@ -1,26 +1,28 @@
 <HTML><HEAD>
-<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
+<TITLE>HIBA: A kért URL nem tölthetõ le</TITLE>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2"></HEAD>
 </HEAD><BODY>
-<H1>ERROR</H1>
-<H2>The requested URL could not be retrieved</H2>
+<H1>HIBA</H1>
+<H2>A kért URL nem tölthetõ le</H2>
 <HR>
 <P>
-While trying to retrieve the URL:
+Az alábbi URL letöltésekor:
 <A HREF="%U">%U</A>
 <P>
-The following error was encountered:
+a következõ hiba lépett fel:
 <UL>
 <LI>
 <STRONG>
-The request or reply is too large.
+A kérés vagy a válasz túl nagy méretû.
 </STRONG>
 <P>
-If you are making a POST or PUT request, then your request body
-(the thing you are trying to upload) is too large.  If you are 
-making a GET request, then the reply body (what you are trying
-to download) is too large.   These limits have been established
-by the Internet Service Provider who operates this cache.  Please
-contact them directly if you feel this is an error.
+POST vagy PUT kérés esetén a kérés törzse (az az anyag
+amit feltöltene) túl nagy méretû. Ha GET típusú
+kérésrõl van szó, akkor a válasz törzse (az az anyag amit éppen
+letöltene) túl nagy méretû. A cache-t mûködtetõ Internet 
+szolgáltató vezette be ezeket a korlátozásokat. Kérjük, forduljon
+közvetlenül szolgáltatójához amennyiben a szerver helytelen
+beállításában látja a hiba okát.
 </UL>
 <P>
-Your cache administrator is <A HREF="mailto:%w">%w</A>.
+A cache adminisztrátora: <A HREF="mailto:%w">%w</A>.
index 3cc9afaa054472be85e87cdff055bd2bf21af463..13560846ee66dbb27945d80af42dc71e2fe22d13 100644 (file)
@@ -1,17 +1,18 @@
 <HTML><HEAD>
-<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-JP">
+<TITLE>¥¨¥é¡¼: ¥ê¥¯¥¨¥¹¥È¤µ¤ì¤¿ URL ¤Ï¼èÆÀ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿</TITLE>
 </HEAD><BODY>
 <H1>ERROR</H1>
-<H2>The requested URL could not be retrieved</H2>
+<H2>¥ê¥¯¥¨¥¹¥È¤µ¤ì¤¿ URL ¤Ï¼èÆÀ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿</H2>
 <HR>
 <P>
-While trying to retrieve the URL:
+°Ê²¼¤Î URL ¤ò¼èÆÀ¤·¤¿ºÝ¤Ë:
 <A HREF="%U">%U</A>
 <P>
-The following error was encountered:
+¼¡¤Î¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿:
 <UL>
 <P>
-This cache is in the process of shutting down and can not
-service your request at this time.  Please retry your
-request again soon.
+¤³¤Î¥­¥ã¥Ã¥·¥å¤Ï²ÔƯÄä»ß¤Î½èÍý¤ËÆþ¤Ã¤Æ¤¤¤Æ¡¢
+¸½ºß¤¢¤Ê¤¿¤Î¥ê¥¯¥¨¥¹¥È¤Ø¤Î¥µ¡¼¥Ó¥¹¤òÄ󶡤Ǥ­¤Þ¤»¤ó¡£
+¸å¤ÇºÆÅ٥ꥯ¥¨¥¹¥È¤·¤Æ¤¯¤À¤µ¤¤¡¥
 </P>
index 337538ee431a29eac6a2b966b17f55342bd5ce45..ec5e2f7c7909e6f70ae043e15a6a3abd084c5796 100644 (file)
@@ -1,26 +1,27 @@
 <HTML><HEAD>
-<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-JP">
+<TITLE>¥¨¥é¡¼: ¥ê¥¯¥¨¥¹¥È¤µ¤ì¤¿ URL ¤Ï¼èÆÀ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿</TITLE>
 </HEAD><BODY>
 <H1>ERROR</H1>
-<H2>The requested URL could not be retrieved</H2>
+<H2>¥ê¥¯¥¨¥¹¥È¤µ¤ì¤¿ URL ¤Ï¼èÆÀ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿</H2>
 <HR>
 <P>
-While trying to retrieve the URL:
+°Ê²¼¤Î URL ¤ò¼èÆÀ¤·¤¿ºÝ¤Ë:
 <A HREF="%U">%U</A>
 <P>
-The following error was encountered:
+¼¡¤Î¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿:
 <UL>
 <LI>
 <STRONG>
-The request or reply is too large.
+¥ê¥¯¥¨¥¹¥È¤Þ¤¿¤Ï¥ê¥×¥é¥¤¤¬Â礭¤¹¤®¤Þ¤¹¡£
 </STRONG>
 <P>
-If you are making a POST or PUT request, then your request body
-(the thing you are trying to upload) is too large.  If you are 
-making a GET request, then the reply body (what you are trying
-to download) is too large.   These limits have been established
-by the Internet Service Provider who operates this cache.  Please
-contact them directly if you feel this is an error.
+POST¤«PUT¤Î¥ê¥¯¥¨¥¹¥È¤ò¤·¤Æ¤¤¤¿¤Ê¤é¡¢¤¢¤Ê¤¿¤Î¥ê¥¯¥¨¥¹¥È¤ÎËÜÂÎ
+(¤¢¤Ê¤¿¤¬¥¢¥Ã¥×¥í¡¼¥É¤ò»î¤ß¤è¤¦¤È¤·¤Æ¤¤¤¿¤â¤Î)¤¬Â礭¤¹¤®¤Þ¤¹¡£
+GET¤Î¥ê¥¯¥¨¥¹¥È¤ò¤·¤Æ¤¤¤¿¤Ê¤é¡¢¥ê¥×¥é¥¤¤ÎËÜÂÎ(¥À¥¦¥ó¥í¡¼¥É¤·¤è¤¦
+¤È¤·¤Æ¤¤¤¿¤â¤Î)¤¬Â礭¤¹¤®¤Þ¤¹¡£¤³¤ì¤é¤ÎÀ©¸Â¤Ï¡¢¤³¤Î¥­¥ã¥Ã¥·¥å¤Î
+±¿ÍѼԤˤè¤Ã¤Æ²Ý¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
+¤³¤ì¤¬¥¨¥é¡¼¤À¤È´¶¤¸¤ë¤È¤­¤ÏľÀܱ¿ÍѼԤËÏ¢Íí¤·¤Æ²¼¤µ¤¤¡£
 </UL>
 <P>
-Your cache administrator is <A HREF="mailto:%w">%w</A>.
+¥­¥ã¥Ã¥·¥å¤Î´ÉÍý¼Ô¤Ï<A HREF="mailto:%w">%w</A>¤Ç¤¹¡£
diff --git a/errors/Korean/ERR_TOO_BIG b/errors/Korean/ERR_TOO_BIG
new file mode 100644 (file)
index 0000000..337538e
--- /dev/null
@@ -0,0 +1,26 @@
+<HTML><HEAD>
+<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
+</HEAD><BODY>
+<H1>ERROR</H1>
+<H2>The requested URL could not be retrieved</H2>
+<HR>
+<P>
+While trying to retrieve the URL:
+<A HREF="%U">%U</A>
+<P>
+The following error was encountered:
+<UL>
+<LI>
+<STRONG>
+The request or reply is too large.
+</STRONG>
+<P>
+If you are making a POST or PUT request, then your request body
+(the thing you are trying to upload) is too large.  If you are 
+making a GET request, then the reply body (what you are trying
+to download) is too large.   These limits have been established
+by the Internet Service Provider who operates this cache.  Please
+contact them directly if you feel this is an error.
+</UL>
+<P>
+Your cache administrator is <A HREF="mailto:%w">%w</A>.
diff --git a/errors/Romanian/ERR_FTP_FORBIDDEN b/errors/Romanian/ERR_FTP_FORBIDDEN
new file mode 100644 (file)
index 0000000..10e52e0
--- /dev/null
@@ -0,0 +1,17 @@
+<HTML><HEAD>
+<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
+</HEAD><BODY>
+<H1>ERROR</H1>
+<H2>The requested URL could not be retrieved</H2>
+<HR>
+<P>
+An FTP authentication failure occurred
+while trying to retrieve the URL:
+<A HREF="%U">%U</A>
+<P>
+Squid sent the following FTP command:
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+and then received this reply
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>Your cache administrator is <A HREF="mailto:%w">%w</A>. 
diff --git a/errors/Romanian/ERR_FTP_NOT_FOUND b/errors/Romanian/ERR_FTP_NOT_FOUND
new file mode 100644 (file)
index 0000000..ba290ca
--- /dev/null
@@ -0,0 +1,20 @@
+<HTML><HEAD>
+<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
+</HEAD><BODY>
+<H1>ERROR</H1>
+<H2>The requested URL could not be retrieved</H2>
+<HR>
+<P>
+The following URL could not be retrieved:
+<A HREF="%U">%U</A>
+<P>
+Squid sent the following FTP command:
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+and then received this reply
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>
+This might be caused by an FTP URL with an absolute path (which does
+not comply with RFC 1738).  If this is the cause, then the file
+can be found at <A HREF="%B">%B</A>.
+<P>Your cache administrator is <A HREF="mailto:%w">%w</A>. 
diff --git a/errors/Romanian/ERR_FTP_UNAVAILABLE b/errors/Romanian/ERR_FTP_UNAVAILABLE
new file mode 100644 (file)
index 0000000..b60b1a2
--- /dev/null
@@ -0,0 +1,16 @@
+<HTML><HEAD>
+<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
+</HEAD><BODY>
+<H1>ERROR</H1>
+<H2>The requested URL could not be retrieved</H2>
+<HR>
+<P>
+The FTP server was too busy while trying to retrieve the URL:
+<A HREF="%U">%U</A>
+<P>
+Squid sent the following FTP command:
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+and then received this reply
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>Your cache administrator is <A HREF="mailto:%w">%w</A>. 
diff --git a/errors/Simplify_Chinese/ERR_ACCESS_DENIED b/errors/Simplify_Chinese/ERR_ACCESS_DENIED
new file mode 100755 (executable)
index 0000000..e53e879
--- /dev/null
@@ -0,0 +1,29 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+Access Denied.
+<BR>¾Ü¾ø·ÃÎÊ
+</STRONG>
+<P>
+Access control configuration prevents your request from
+being allowed at this time.  Please contact your service provider if
+you feel this is incorrect.
+<BR>
+µ±Ç°µÄ´æÈ¡¿ØÖÆÉ趨½ûÖ¹ÄúµÄÇëÇó±»½ÓÊÜ£¬
+Èç¹ûÄú¾õµÃÕâÊÇ´íÎóµÄ£¬ÇëÓëÄúÍø··þÎñµÄÌṩÕßÁªÏµ¡£
+</UL>
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
+
diff --git a/errors/Simplify_Chinese/ERR_CACHE_ACCESS_DENIED b/errors/Simplify_Chinese/ERR_CACHE_ACCESS_DENIED
new file mode 100755 (executable)
index 0000000..3ae984c
--- /dev/null
@@ -0,0 +1,42 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÍøÂ绺´æ·þÎñÆ÷¾Ü¾ø·ÃÎÊ</TITLE>
+</HEAD>
+<BODY>
+<H1>´íÎó</H1>
+<H2>ÍøÂ绺´æ·þÎñÆ÷¾Ü¾ø·ÃÎÊ</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÏÂÃæµÄÍøÖ·£¨URL£©Ê±£º 
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎ󣺠
+<UL>
+<LI>
+<STRONG>
+Cache Access Denied.
+<BR>
+»º´æ·þÎñÆ÷¾Ü¾ø·ÃÎÊ
+</STRONG>
+</UL>
+</P>
+
+<P>
+±§Ç¸£¬Äú²»±»ÔÊÐíͨ¹ý±¾ÍøÂ绺´æ·þÎñÆ÷·ÃÎÊÏÂÁÐλÖãº
+<BR>    %U<BR>
+³ý·ÇÄúͨ¹ýÁËÎÒÃǵÄÉí·ÝÑéÖ¤¡£
+</P>
+
+<P>
+You need to use Netscape version 2.0 or greater, or Microsoft Internet
+Explorer 3.0, or an HTTP/1.1 compliant browser for this to work.  Please
+contact the <A HREF="mailto:%w">cache administrator</a> if you have
+difficulties authenticating yourself or 
+<A HREF="http://%h/cgi-bin/chpasswd.cgi\">change</a> your default password.
+<BR>
+ÄúÐèҪʹÓàNetscape version 2.0 »ò¸üеİ汾£¬»òÊÇʹÓàMicrosoft Internet 
+Explorer 3.0£¬»òÊÇÒ»¸ö HTTP/1.1 ÏàÈݵÄä¯ÀÀÆ÷À´½øÐй¤×÷¡£Èç¹ûÄúÔÚÉí·ÝÑéÖ¤ÉÏ
+·¢ÉúÀ§ÄÑ£¬ÇëÓë <A HREF="mailto:%w">¹ÜÀíÕß</a> ÁªÏµ¡£
+»òÊÇ<A HREF="http://%h/cgi-bin/chpasswd.cgi\">¸ü¸Ä</a>ÄúµÄÃÜÂë¡£
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_CACHE_MGR_ACCESS_DENIED b/errors/Simplify_Chinese/ERR_CACHE_MGR_ACCESS_DENIED
new file mode 100755 (executable)
index 0000000..47ea1d9
--- /dev/null
@@ -0,0 +1,43 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎ󣺻º´æ¹ÜÀíÆ÷¾Ü¾ø·ÃÎÊ</TITLE>
+</HEAD>
+<BODY>
+<H1>´íÎó</H1>
+<H2>»º´æ¹ÜÀíÆ÷¾Ü¾ø·ÃÎÊ</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÏÂÃæµÄÍøÖ·£¨URL£©Ê±£º 
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎ󣺠
+<UL>
+<LI>
+<STRONG>
+Cache Manager Access Denied.
+<BR>
+»º´æ¹ÜÀíÆ÷¾Ü¾ø·ÃÎÊ
+</STRONG>
+</UL>
+</P>
+
+<P>
+±§Ç¸£¬Äú²»±»ÔÊÐíͨ¹ý±¾»º´æ¹ÜÀíÆ÷·ÃÎÊÒÔÏÂλÖ㺠
+<BR>    %U<BR>
+³ý·ÇÄúͨ¹ýÎÒÃǵÄÉí·ÝÑéÖ¤¡£
+</P>
+
+<P> You need to use Netscape version 2.0 or greater, or Microsoft Internet
+Explorer 3.0, or an HTTP/1.1 compliant browser for this to work.  Please
+contact the <A HREF="mailto:%w">cache administrator</a> if you have
+difficulties authenticating yourself or, if you <em>are</em> the
+administrator, read Squid documentation on cache manager interface and check
+cache log for more detailed error messages.
+<BR>
+ÄúÐèҪʹÓàNetscape version 2.0 »ò×îеİ汾£¬»òÊÇʹÓàMicrosoft Internet 
+Explorer 3.0£¬»òÊÇÒ»¸ö HTTP/1.1 ÏàÈݵÄä¯ÀÀÆ÷À´½øÐй¤×÷¡£Èç¹ûÄúÊÇÔÚÉí·ÝÑéÖ¤ÉÏ·¢
+ÉúÎÊÌ⣬ÇëÏÈÈ·¶¨ÄúÓÐȨ¶Ô»º´æʹÓùÜÀíÆ÷¡£
+»òÊÇÓë<A HREF="mailto:%w">¹ÜÀíÕß</a>ÁªÏµ¡£Èç¹ûÄú<em>¾ÍÊÇ</em>¹ÜÀíÕߣ¬ÇëÏêϸÔĶÁ Squid Ëù¸½ÎļþÖÐÓë
+cache manager Óйز¿·Ý»ò¼ì²é cache log ÒÔ±ãµÃµ½¸üÏ꾡µÄϸ½Ú¡£
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_CANNOT_FORWARD b/errors/Simplify_Chinese/ERR_CANNOT_FORWARD
new file mode 100755 (executable)
index 0000000..03c1e62
--- /dev/null
@@ -0,0 +1,38 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£»ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÏÂÃæµÄÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+Unable to forward this request at this time.
+<BR>
+Ä¿Ç°ÎÞ·¨½«ÄúµÄÇëÇó½øÐÐתËͲÙ×÷
+</STRONG>
+</UL>
+
+<P>
+This request could not be forwarded to the origin server or to any
+parent caches.  The most likely cause for this error is that:
+<UL>
+<LI>The cache administrator does not allow this cache to make 
+    direct connections to origin servers, and
+<LI>All configured parent caches are currently unreachable.
+</UL>
+</P>
+<P>
+ÄúµÄÇëÇóÎÞ·¨±»×ªË͵½Ô­Ê¼ÍøÂç·þÎñÆ÷»òÆäËûµÄÉϲ㻺´æ·þÎñÆ÷£¬·¢ÉúÕâ¸öÎÊÌâ×î¿ÉÄܵÄÔ­ÒòÊÇ£º
+<UL>
+<LI>»º´æ·þÎñÆ÷¹ÜÀíÔ±²»ÔÊÐí±¾·þÎñÆ÷ÓëԭʼÍøÂç·þÎñÆ÷Ö±½ÓÁ¬½á£¬¶ø
+<LI>ËùÓб¾·þÎñÆ÷Ö¸¶¨µÄÉϲ㻺´æ·þÎñÆ÷¶¼ÔÝʱÎÞ·¨Á¬½á¡£
+</UL>
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_CONNECT_FAIL b/errors/Simplify_Chinese/ERR_CONNECT_FAIL
new file mode 100755 (executable)
index 0000000..86473a5
--- /dev/null
@@ -0,0 +1,31 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+Connection Failed
+<BR>
+Á¬½Óʧ°Ü
+</STRONG>
+</UL>
+
+<P>
+ϵͳ·µ»ØÒÔÏÂÄÚÈÝ£º
+<PRE><I>    %E</I></PRE>
+
+<P>
+The remote host or network may be down.  Please try the request again.
+<BR>
+ÄúÒªÁ¬½áµÄÍøÂç·þÎñÆ÷»òÍøÂç¿ÉÄÜ·¢Éú¹ÊÕÏ¡£ÇëÉÔºóÔÙÊÔ¡£
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_DNS_FAIL b/errors/Simplify_Chinese/ERR_DNS_FAIL
new file mode 100755 (executable)
index 0000000..87a976a
--- /dev/null
@@ -0,0 +1,32 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<BLOCKQUOTE>
+ÎÞ·¨½«ÄúÊäÈëµÄÖ÷»úÃû³Æ£º<I>%H</I>ת»»³É IP µØÖ·
+</BLOCKQUOTE>
+</UL>
+
+<P>
+ÓòÃû·þÎñÆ÷·µ»ØÒÔÏÂѶϢ£º
+<BLOCKQUOTE>
+%z
+</BLOCKQUOTE>
+
+<P>
+Õâ±íʾ£º
+<PRE>
+ The cache was not able to resolve the hostname presented in the URL. 
+ Check if the address is correct. 
+ »º´æ·þÎñÆ÷ÎÞ·¨½âÎöÄúÊäÈëÍøÖ·£¨URL£©ÖеÄÖ÷»úÃû³Æ£¬
+ Çë¼ì²é¸ÃÃû³ÆÊÇ·ñÕýÈ·¡£
+</PRE>
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_FORWARDING_DENIED b/errors/Simplify_Chinese/ERR_FORWARDING_DENIED
new file mode 100755 (executable)
index 0000000..cbcafb8
--- /dev/null
@@ -0,0 +1,30 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+Forwarding Denied.
+<BR>
+¾Ü¾øתËÍ
+</STRONG>
+</UL>
+
+<P>
+This cache will not forward your request because it is trying to enforce a
+sibling relationship.  Perhaps the client at %i is a cache which has been
+misconfigured.
+<BR>
+±¾»º´æ·þÎñÆ÷ÎÞ·¨×ªËÍÄúµÄÇëÇó£¬Ò²ÐíÄúÊÇͨ¹ýÒ»¸ö²¢Î´±»±¾»º´æ·þÎñÆ÷
+É趨ΪÔÊÐí´æÈ¡µÄ»º´æ·þÎñÆ÷£¨%i£©À´·ÃÎʵġ£
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_FTP_DISABLED b/errors/Simplify_Chinese/ERR_FTP_DISABLED
new file mode 100755 (executable)
index 0000000..f562ed2
--- /dev/null
@@ -0,0 +1,27 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+FTP is Disabled
+<BR>
+½ûֹʹÓÃÎļþ´«ÊäЭÒé
+</STRONG>
+</UL>
+
+<P>
+This cache does not support FTP.
+<BR>
+±¾»º´æ·þÎñÆ÷먦·ÅÎļþ´«Êä·þÎñ¡£
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_FTP_FAILURE b/errors/Simplify_Chinese/ERR_FTP_FAILURE
new file mode 100755 (executable)
index 0000000..af59114
--- /dev/null
@@ -0,0 +1,17 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±·¢ÉúÎļþ´«ÊäЭÒé´íÎó£º
+<A HREF="%U">%U</A>
+<P>
+±¾»º´æ·þÎñÆ÷·¢³öÒÔÏ FTP ÃüÁ
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+È»ºóÊÕµ½ÈçÏ»ØÓ¦£º
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_FTP_FORBIDDEN b/errors/Simplify_Chinese/ERR_FTP_FORBIDDEN
new file mode 100755 (executable)
index 0000000..0698438
--- /dev/null
@@ -0,0 +1,18 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±Îļþ´«ÊäЭÒ飨FTP£©Éí·ÝÑé֤ʧ°Ü£º
+<A HREF="%U">%U</A>
+<P>
+±¾»º´æ·þÎñÆ÷·¢³öÒÔÏ FTP ÃüÁ
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+È»ºóÊÕµ½ÈçÏ»ØÓ¦£º
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+</P>
+
diff --git a/errors/Simplify_Chinese/ERR_FTP_NOT_FOUND b/errors/Simplify_Chinese/ERR_FTP_NOT_FOUND
new file mode 100755 (executable)
index 0000000..ea836a2
--- /dev/null
@@ -0,0 +1,21 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+ÒÔÏÂÍøÖ·ÎÞ·¨¶ÁÈ¡£º
+<A HREF="%U">%U</A>
+<P>
+±¾»º´æ·þÎñÆ÷·¢³öÒÔÏ FTP ÃüÁ
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+È»ºóÊÕµ½ÈçÏ»ØÓ¦£º
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>
+Õâ¿ÉÄÜÊÇÓÉÓÚ FTP ÍøÖ·£¨URL£©Öаüº¬Á˾ø¶Ô·¾¶ËùÖ£¨²»·ûºÏ RFC1738£©¡£Èç¹ûÕæµÄÊÇÕâÑù£¬
+Îļþ¿ÉÒÔ´Ó<A HREF="%B">%B</A>λÖÃÕÒµ½¡£
+</P>
+
diff --git a/errors/Simplify_Chinese/ERR_FTP_PUT_CREATED b/errors/Simplify_Chinese/ERR_FTP_PUT_CREATED
new file mode 100755 (executable)
index 0000000..c712cef
--- /dev/null
@@ -0,0 +1,10 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>ÎļþÉÏ´« PUT Ö¸ÁîÍê³É£ºÎļþÒѱ»½¨Á¢</TITLE>
+</HEAD><BODY>
+<H1>²Ù×÷³É¹¦</H1>
+<H2>ÎļþÒѽ¨Á¢</H2>
+<HR>
+<P>
+</P>
+
diff --git a/errors/Simplify_Chinese/ERR_FTP_PUT_ERROR b/errors/Simplify_Chinese/ERR_FTP_PUT_ERROR
new file mode 100755 (executable)
index 0000000..e3242c1
--- /dev/null
@@ -0,0 +1,25 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÎļþÉÏ´«Ê§°Ü</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÎļþÉÏ´«£¨FTP PUT£©²Ù×÷ʧ°Ü</H2>
+<HR>
+<P>
+µ±³¢ÊÔÉÏ´«£¨PUT£©µ½ÒÔÏÂλÖÃʱ£º
+<A HREF="%U">%U</A>
+<P>
+±¾»º´æ·þÎñÆ÷·¢³öÒÔÏ FTP ÃüÁ
+<PRE><STRONG>
+        %f
+</STRONG></PRE>
+È»ºóÊÕµ½ÈçÏ»ØÓ¦£º
+<PRE><STRONG>
+        %F
+</STRONG></PRE>
+<P>
+<PRE>
+Çë¼ì²éÉÏ´«Â·¾¶£¬ÉÏ´«Î»ÖöÁдȨÏÞ£¬¿ÉÓôÅÅÌ¿Õ¼äºóÔÙ½øÐг¢ÊÔ¡£
+</PRE>
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_FTP_PUT_MODIFIED b/errors/Simplify_Chinese/ERR_FTP_PUT_MODIFIED
new file mode 100755 (executable)
index 0000000..d717743
--- /dev/null
@@ -0,0 +1,10 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>ÎļþÉÏ´« PUT Ö¸ÁîÍê³É£ºÎļþÒѱ»¸üÐÂ</TITLE>
+</HEAD><BODY>
+<H1>²Ù×÷³É¹¦</H1>
+<H2>ÎļþÒѸüÐÂ</H2>
+<HR>
+<P>
+</P>
+
diff --git a/errors/Simplify_Chinese/ERR_FTP_UNAVAILABLE b/errors/Simplify_Chinese/ERR_FTP_UNAVAILABLE
new file mode 100755 (executable)
index 0000000..2dea2b8
--- /dev/null
@@ -0,0 +1,18 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó: ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê± FTP ·þÎñÆ÷¹ý棺
+<A HREF="%U">%U</A>
+<P>
+±¾»º´æ·þÎñÆ÷·¢³öÒÔÏ FTP ÃüÁ
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+È»ºóÊÕµ½ÈçÏ»ØÓ¦£º
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_INVALID_REQ b/errors/Simplify_Chinese/ERR_INVALID_REQ
new file mode 100755 (executable)
index 0000000..59a7ad4
--- /dev/null
@@ -0,0 +1,43 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ½øÐÐÒÔÏÂÇëÇóʱ£º
+<PRE>
+%R
+</PRE>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+Invalid Request
+<BR>
+ÎÞЧµÄÇëÇó
+</STRONG>
+</UL>
+
+<P>
+Some aspect of the HTTP Request is invalid.  Possible problems:
+<BR>
+HTTP ÇëÇóµÄijЩ·½ÃæÊÇÎÞЧµÄ¡£¿ÉÄÜÊÇÏÂÁÐÎÊÌ⣺
+<UL>
+<LI>Missing or unknown request method
+<BR>ȱÉÙÇëÇó·½Ê½»òδ֪µÄÇëÇó·½Ê½
+<LI>Missing URL
+<BR>ȱÉÙÍøÖ·
+<LI>Missing HTTP Identifier (HTTP/1.0)
+<BR>ȱÉÙ HTTP ±êʶ£¨HTTP/1.0£©
+<LI>Request is too large
+<BR>ÇëÇóÃüÁî¹ý³¤
+<LI>Content-Length missing for POST or PUT requests
+<BR>POST »ò PUT ÇëÇóȱÉÙÄÚÈݳ¤¶È
+<LI>Illegal character in hostname; underscores are not allowed
+<BR>Ö÷»úÃû³ÆÖаüº¬²»ºÏ·¨µÄ×Ö·û£»Ï»®ÏßÊDz»ÔÊÐíµÄ¡£
+</UL>
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>. 
diff --git a/errors/Simplify_Chinese/ERR_INVALID_URL b/errors/Simplify_Chinese/ERR_INVALID_URL
new file mode 100755 (executable)
index 0000000..995b63e
--- /dev/null
@@ -0,0 +1,37 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+Invalid URL
+<BR>
+ÎÞЧµÄÍøÖ·
+</STRONG>
+</UL>
+
+<P>
+Some aspect of the requested URL is incorrect.  Possible problems:
+<BR>
+ÊäÈëÍøÖ·µÄijЩµØ·½ÓÐÎ󣬿ÉÄÜÊÇÒòΪ£º
+<UL>
+<LI>Missing or incorrect access protocol (should be `http://'' or similar)
+<BR>ȱÉÙ»ò²»ÕýÈ·µÄͨѶЭÒ飨Ӧ¸ÃÈç `http://''»òÀàËƵĿªÍ·£©
+<LI>Missing hostname
+<BR>ȱÉÙÓûÁ¬½áµÄÖ÷»úÃû³Æ
+<LI>Illegal double-escape in the URL-Path
+<BR>Íøַ·¾¶ÖÐÓв»ºÏ·¨Ë«ÖØתÒå·û
+<LI>Illegal character in hostname; underscores are not allowed
+<BR>Ö÷»úÃû³ÆÖаüº¬²»ºÏ·¨µÄ×Ö·û£»Ï»®ÏßÊDz»ÔÊÐíµÄ¡£
+</UL>
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_LIFETIME_EXP b/errors/Simplify_Chinese/ERR_LIFETIME_EXP
new file mode 100755 (executable)
index 0000000..c2f4e25
--- /dev/null
@@ -0,0 +1,28 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+Connection Lifetime Expired
+<BR>
+Á¬½Ó³¬Ê±
+</STRONG>
+</UL>
+
+<P>
+Squid has terminated the request because it has exceeded the maximum
+connection lifetime.
+<BR>
+»º´æ·þÎñÆ÷ÒÑÖÕÖ¹ÄúµÄÁ¬½ÓÇëÇó£¬ÒòΪÒѾ­³¬¹ýÁË×î´óÁ¬½ÓµÈ´ýʱ¼ä¡£
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_NO_RELAY b/errors/Simplify_Chinese/ERR_NO_RELAY
new file mode 100755 (executable)
index 0000000..c8a6428
--- /dev/null
@@ -0,0 +1,27 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+No Wais Relay
+<BR>
+ÎÞ Wais ÖмÌ
+</STRONG>
+</UL>
+
+<P>
+There is no WAIS Relay host defined for this Cache!  Yell at the administrator.
+<BR>
+±¾»º´æ·þÎñÆ÷ûÓÐÉ趨 WAIS ÖмÌÖ÷»ú£¡ÈçÓÐÒÉÎÊÇëÓ뻺´æ·þÎñÆ÷¹ÜÀíÔ±ÁªÏµ¡£
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_ONLY_IF_CACHED_MISS b/errors/Simplify_Chinese/ERR_ONLY_IF_CACHED_MISS
new file mode 100755 (executable)
index 0000000..73a99c0
--- /dev/null
@@ -0,0 +1,34 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+Valid document was not found in the cache and <code>only-if-cached</code>
+directive was specified.
+<BR>
+ÇëÇóµÄÎļþÔÚ±¾»º´æ·þÎñÆ÷ÉÏδÕÒµ½£¬¶øÄúÉ趨ÁË<code>only-if-cached</code>£¨Ö»¶ÁÈ¡»º´æ£©
+Ö¸Áî¡£
+</STRONG>
+</UL>
+
+<P>
+
+You have issued a request with a <code>only-if-cached</code> cache control
+directive. The document was not found in the cache, <em>or</em> it required
+revalidation prohibited by <code>only-if-cached</code> directive.
+<BR>
+ÄúËͳöÁËÒ»¸ö°üº¬ <code>only-if-cached</code> £¨Ö»¶ÁÈ¡»º´æ£©»º´æ¿ØÖÆÖ¸ÁîµÄÁ¬½áÇëÇó¡£
+¶øËùÒªµÄÎļþ²¢Î´´æÔÚÓÚ±¾»º´æ·þÎñÆ÷ÖУ¬<em>»òÕß</em>Õâ¸öÁ¬½áÇëÇóÐèҪˢÐÂÎļþ¶ø
+<code>only-if-cached</code> Ö¸Áî½ûÖ¹Õâô×ö¡£
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_READ_ERROR b/errors/Simplify_Chinese/ERR_READ_ERROR
new file mode 100755 (executable)
index 0000000..763f875
--- /dev/null
@@ -0,0 +1,32 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+Read Error
+<BR>
+¶ÁÈ¡´íÎó
+</STRONG>
+</UL>
+
+<P>
+ϵͳ»ØÓ¦£º
+<PRE><I>    %E</I></PRE>
+
+<P>
+An error condition occurred while reading data from the network.  Please
+retry your request.
+<BR>
+ÕýÔÚͨ¹ýÍøÂç¶ÁÈ¡Êý¾Ýʱ·¢ÉúÁË´íÎó£¬ÇëÖØг¢ÊÔ¡£
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_READ_TIMEOUT b/errors/Simplify_Chinese/ERR_READ_TIMEOUT
new file mode 100755 (executable)
index 0000000..595a874
--- /dev/null
@@ -0,0 +1,33 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+Read Timeout
+<BR>
+¶ÁÈ¡³¬Ê±
+</STRONG>
+</UL>
+
+<P>
+ϵͳ»ØÓ¦£º
+<PRE><I>    %E</I></PRE>
+
+<P>
+A Timeout occurred while waiting to read data from the network.  The network
+or server may be down or congested.  Please retry your request.
+<BR>
+µ±Í¨¹ýÍøÂç¶ÁÈ¡Êý¾Ýʱ£¬³¬¹ýÁ˵ȴýʱÏÞ¡£
+¿ÉÄÜÊÇÒòΪÍøÂç¶ÂÈû»òÁ¬½ÓµÄÍøÂç·þÎñÆ÷Òѹرա£ÇëÖØг¢ÊÔ¡£
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_SHUTTING_DOWN b/errors/Simplify_Chinese/ERR_SHUTTING_DOWN
new file mode 100755 (executable)
index 0000000..754d972
--- /dev/null
@@ -0,0 +1,22 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<P>
+This cache is in the process of shutting down and can not
+service your request at this time.  Please retry your
+request again soon.
+<BR>
+±¾»º´æ·þÎñÆ÷ÕýÔڹرգ¬ÔÝʱÎÞ·¨ÎªÄú·þÎñ¡£
+ÇëÉÔºîÔÙÊÔ¡£
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_SOCKET_FAILURE b/errors/Simplify_Chinese/ERR_SOCKET_FAILURE
new file mode 100755 (executable)
index 0000000..5636fc9
--- /dev/null
@@ -0,0 +1,33 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+Socket Failure
+<BR>
+Socket ½¨Á¢Ê§°Ü
+</STRONG>
+</UL>
+
+<P>
+ϵͳ»ØÓ¦£º
+<PRE><I>    %E</I></PRE>
+
+<P>
+Squid is unable to create a TCP socket, presumably due to excessive load.
+Please retry your request.
+<BR>
+Squid £¨»º´æ·þÎñÆ÷£©ÎÞ·¨½¨Á¢ TCP socket£¨ÎÞ·¨ÏòϵͳÉêÇ뽨Á¢ÐµÄÍøÂçÁ¬½Ó£©£¬
+¿ÉÄÜÊÇÒòΪ¸ººÉ¹ýÖØ£¬ÇëÖØг¢ÊÔ¡£
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_TOO_BIG b/errors/Simplify_Chinese/ERR_TOO_BIG
new file mode 100755 (executable)
index 0000000..83cebf9
--- /dev/null
@@ -0,0 +1,25 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+ÇëÇó»òÏìӦ̫´ó
+</STRONG>
+<P>
+Èç¹ûÄúÕýÔÚ½øÐРPOST »ò PUT ÇëÇó£¬ÔòÄúÇëÇó´«Ë͵ÄÄÚÈÝÌ«´ó£¨¿ÉÄÜÄú
+ÕýÔÚÉÏ´«Îļþ£©¡£Èç¹ûÄúÕýÔÚ½øÐРGET ÇëÇó£¬ÔòÏìÓ¦µÄÄÚÈÝÌ«³¤¡£ÕâЩ
+³¤¶ÈÏÞÖÆÓɲÙ×÷±¾»º´æ·þÎñÆ÷µÄ·þÎñÌṩÕßÖƶ¨¡£Èç¹ûÄú¾õµÃÕâÊÇ´íÎóµÄ£¬
+ÇëÓëËûÃÇÖ±½ÓÁªÏµ¡£
+</UL>
+<P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_UNSUP_REQ b/errors/Simplify_Chinese/ERR_UNSUP_REQ
new file mode 100755 (executable)
index 0000000..c9e5287
--- /dev/null
@@ -0,0 +1,29 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+Unsupported Request Method and Protocol
+<BR>
+²»Ö§³ÖµÄÇëÇó·½Ê½ºÍЭÒé
+</STRONG>
+</UL>
+
+<P>
+Squid does not support all request methods for all access protocols.
+For example, you can not POST a Gopher request.
+<BR>
+Squid £¨»º´æ·þÎñÆ÷£©²»ÄܶÔËùÓеĴæȡЭÒéÖ§³ÖËùÓеÄÇëÇó·½Ê½¡£
+±ÈÈç˵£¬Äã²»ÄܶԠGOPHER ½øÐÐÒ»¸ö POST ÇëÇó¡£
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_URN_RESOLVE b/errors/Simplify_Chinese/ERR_URN_RESOLVE
new file mode 100755 (executable)
index 0000000..88edf7b
--- /dev/null
@@ -0,0 +1,27 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄ URN ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>URN ÖеÄÒ»¸öÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏ URN Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+Cannot Resolve URN
+<BR>
+ÎÞ·¨½âÎö URN
+</STRONG>
+</UL>
+
+<P>
+Hey, don't expect too much from URNs on %T :)
+<BR>
+±§Ç¸£¡Äú²»ÄܶԠ%T ÉϵĠURNs ÆÚ´ýÌ«¶à :)
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_WRITE_ERROR b/errors/Simplify_Chinese/ERR_WRITE_ERROR
new file mode 100755 (executable)
index 0000000..87c5d51
--- /dev/null
@@ -0,0 +1,32 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+Write Error
+<BR>
+дÈë´íÎó
+</STRONG>
+</UL>
+
+<P>
+ϵͳ»ØÓ¦£º
+<PRE><I>    %E</I></PRE>
+
+<P>
+An error condition occurred while writing to the network.  Please retry your
+request.
+<BR>
+ͨ¹ýÍøÂçдÈëÊý¾Ýʱ·¢ÉúÁË´íÎó£¬ÇëÖØг¢ÊÔ¡£
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/ERR_ZERO_SIZE_OBJECT b/errors/Simplify_Chinese/ERR_ZERO_SIZE_OBJECT
new file mode 100755 (executable)
index 0000000..287dda3
--- /dev/null
@@ -0,0 +1,27 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+Zero Sized Reply
+<BR>
+ÏìÓ¦ÄÚÈݳ¤¶ÈΪÁã
+</STRONG>
+</UL>
+
+<P>
+Squid did not receive any data for this request.
+<BR>
+±¾»º´æ·þÎñÆ÷´Ó±»Á¬½ÓµÄ·þÎñÆ÷ÉÏûÓÐÊÕµ½ÈκÎÊý¾Ý¡£
+</P>
+<P>±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º<A HREF="mailto:%w">%w</A>
diff --git a/errors/Simplify_Chinese/README b/errors/Simplify_Chinese/README
new file mode 100755 (executable)
index 0000000..4b1bdbf
--- /dev/null
@@ -0,0 +1,11 @@
+This Simplify Chinese error pages is based on the 
+Erick C. Chang <erick@mail.thu.edu.tw> 's Traditional Chinese error pages.
+and suitable for SQUID 2.3 STABLE 1.
+
+I first translate these pages from Traditional Chinese to Simplify Chinese
+use a auto program. Then I check and compare with English pages to get more
+accurate result. It take me over one half of time than direct translation 
+from english. Because the technical terms are very different in two area. 
+And I also fixed some minor mistakes.
+
+Wang DaQing wdq@bigfoot.com
diff --git a/errors/Simplify_Chinese/generic b/errors/Simplify_Chinese/generic
new file mode 100755 (executable)
index 0000000..cc1a7b5
--- /dev/null
@@ -0,0 +1,30 @@
+<HTML><HEAD>
+<meta charset=gb2312">
+<TITLE>´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</TITLE>
+</HEAD><BODY>
+<H1>´íÎó</H1>
+<H2>ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡</H2>
+<HR>
+<P>
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+<A HREF="%U">%U</A>
+<P>
+·¢ÉúÁËÏÂÁеĴíÎó£º
+<UL>
+<LI>
+<STRONG>
+@SHORT_DESCRIPTION@
+</STRONG>
+</UL>
+
+<P>
+ϵͳ»ØÓ¦ÒÔÏÂÐÅÏ¢£º
+<PRE><I>    %E</I></PRE>
+
+<P>
+Õâ±íʾ£º
+<PRE>
+    @LONG_DESCRIPTION@
+</PRE>
+</P>
+
index a0e683d32258c4201f4968ac288a2fa71ba0ecad..aeaac4079252c9ec0b0ff652ffaae3458cc0b191 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: HttpReply.cc,v 1.41 2000/04/16 21:59:45 wessels Exp $
+ * $Id: HttpReply.cc,v 1.42 2000/05/16 07:06:02 wessels Exp $
  *
  * DEBUG: section 58    HTTP Reply (Response)
  * AUTHOR: Alex Rousskov
@@ -56,6 +56,7 @@ static void httpReplyHdrCacheClean(HttpReply * rep);
 static int httpReplyParseStep(HttpReply * rep, const char *parse_start, int atEnd);
 static int httpReplyParseError(HttpReply * rep);
 static int httpReplyIsolateStart(const char **parse_start, const char **blk_start, const char **blk_end);
+static time_t httpReplyHdrExpirationTime(const HttpReply * rep);
 
 
 /* module initialization */
@@ -292,6 +293,39 @@ httpReplyDoDestroy(HttpReply * rep)
     memFree(rep, MEM_HTTP_REPLY);
 }
 
+static time_t
+httpReplyHdrExpirationTime(const HttpReply * rep)
+{
+    /* The s-maxage and max-age directive takes priority over Expires */
+    if (rep->cache_control) {
+       if (rep->date >= 0) {
+           if (rep->cache_control->s_maxage >= 0)
+               return rep->date + rep->cache_control->s_maxage;
+           if (rep->cache_control->max_age >= 0)
+               return rep->date + rep->cache_control->max_age;
+       } else {
+           /*
+            * Conservatively handle the case when we have a max-age
+            * header, but no Date for reference?
+            */
+           if (rep->cache_control->s_maxage >= 0)
+               return squid_curtime;
+           if (rep->cache_control->max_age >= 0)
+               return squid_curtime;
+       }
+    }
+    if (httpHeaderHas(&rep->header, HDR_EXPIRES)) {
+       const time_t e = httpHeaderGetTime(&rep->header, HDR_EXPIRES);
+       /*
+        * HTTP/1.0 says that robust implementations should consider
+        * bad or malformed Expires header as equivalent to "expires
+        * immediately."
+        */
+       return e < 0 ? squid_curtime : e;
+    }
+    return -1;
+}
+
 /* sync this routine when you update HttpReply struct */
 static void
 httpReplyHdrCacheInit(HttpReply * rep)
@@ -301,7 +335,6 @@ httpReplyHdrCacheInit(HttpReply * rep)
     rep->content_length = httpHeaderGetInt(hdr, HDR_CONTENT_LENGTH);
     rep->date = httpHeaderGetTime(hdr, HDR_DATE);
     rep->last_modified = httpHeaderGetTime(hdr, HDR_LAST_MODIFIED);
-    rep->expires = httpHeaderGetTime(hdr, HDR_EXPIRES);
     str = httpHeaderGetStr(hdr, HDR_CONTENT_TYPE);
     if (str)
        stringLimitInit(&rep->content_type, str, strcspn(str, ";\t "));
@@ -310,19 +343,8 @@ httpReplyHdrCacheInit(HttpReply * rep)
     rep->cache_control = httpHeaderGetCc(hdr);
     rep->content_range = httpHeaderGetContRange(hdr);
     rep->keep_alive = httpMsgIsPersistent(rep->sline.version, &rep->header);
-    /* final adjustments */
-    /* The s-maxage and max-age directive takes priority over Expires */
-    if (rep->cache_control && rep->cache_control->s_maxage >= 0)
-       rep->expires = squid_curtime + rep->cache_control->s_maxage;
-    else if (rep->cache_control && rep->cache_control->max_age >= 0)
-       rep->expires = squid_curtime + rep->cache_control->max_age;
-    else
-       /*
-        * The HTTP/1.0 specs says that robust implementations should consider bad
-        * or malformed Expires header as equivalent to "expires immediately."
-        */
-    if (rep->expires < 0 && httpHeaderHas(hdr, HDR_EXPIRES))
-       rep->expires = squid_curtime;
+    /* be sure to set expires after date and cache-control */
+    rep->expires = httpReplyHdrExpirationTime(rep);
 }
 
 /* sync this routine when you update HttpReply struct */
index 0a9f547b07a037216d0a8ad29a12825a57b5ce1e..a9ba89adc1c09e2e8c5595a9c0547d9112654ca8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: asn.cc,v 1.61 2000/05/12 00:29:06 wessels Exp $
+ * $Id: asn.cc,v 1.62 2000/05/16 07:06:03 wessels Exp $
  *
  * DEBUG: section 53    AS Number handling
  * AUTHOR: Duane Wessels, Kostas Anagnostakis
@@ -237,6 +237,12 @@ asHandleReply(void *data, char *buf, ssize_t size)
        memFree(buf, MEM_4K_BUF);
        asStateFree(asState);
        return;
+    } else if (HTTP_OK != e->mem_obj->reply->sline.status) {
+       debug(53, 1) ("WARNING: AS %d whois request failed\n",
+           asState->as_number);
+       memFree(buf, MEM_4K_BUF);
+       asStateFree(asState);
+       return;
     }
     s = buf;
     while (s - buf < size && *s != '\0') {
index a8ccf7ca14acb9c8797168c23b26b1e7c3bae26d..6caa482ceeb0a85f830d8502b1a88e64d93ab2f6 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: cache_cf.cc,v 1.344 2000/05/12 00:29:06 wessels Exp $
+ * $Id: cache_cf.cc,v 1.345 2000/05/16 07:06:03 wessels Exp $
  *
  * DEBUG: section 3     Configuration File Parsing
  * AUTHOR: Harvest Derived
@@ -394,6 +394,31 @@ configDoConfigure(void)
     }
     if (aclPurgeMethodInUse(Config.accessList.http))
        Config2.onoff.enable_purge = 1;
+    if (NULL != Config.effectiveUser) {
+       struct passwd *pwd = getpwnam(Config.effectiveUser);
+       if (NULL == pwd)
+           /*
+            * Andres Kroonmaa <andre@online.ee>:
+            * Some getpwnam() implementations (Solaris?) require
+            * an available FD < 256 for opening a FILE* to the
+            * passwd file.
+            * DW:
+            * This should be safe at startup, but might still fail
+            * during reconfigure.
+            */
+           fatalf("getpwnam failed to find userid for effective user '%s'",
+               Config.effectiveUser,
+               xstrerror());
+       Config2.effectiveUserID = pwd->pw_uid;
+    }
+    if (NULL != Config.effectiveGroup) {
+       struct group *grp = getgrnam(Config.effectiveGroup);
+       if (NULL == grp)
+           fatalf("getgrnam failed to find groupid for effective group '%s'",
+               Config.effectiveGroup,
+               xstrerror());
+       Config2.effectiveGroupID = grp->gr_gid;
+    }
 }
 
 /* Parse a time specification from the config file.  Store the
@@ -1092,11 +1117,14 @@ parse_peer(peer ** head)
     p->tcp_up = PEER_TCP_MAGIC_COUNT;
     p->test_fd = -1;
 #if USE_CARP
+#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> ((sizeof(u_long)*8)-(n))))
     if (p->carp.load_factor) {
        /* calculate this peers hash for use in CARP */
        p->carp.hash = 0;
        for (token = p->host; *token != 0; token++)
-           p->carp.hash += (p->carp.hash << 19) + *token;
+           p->carp.hash += ROTATE_LEFT(p->carp.hash, 19) + *token;
+       p->carp.hash += p->carp.hash * 0x62531965;
+       p->carp.hash += ROTATE_LEFT(p->carp.hash, 21);
     }
 #endif
     /* This must preceed peerDigestCreate */
index ad9aa399a0af452e72e5f30f11fa61558bbb8a27..9cdd9aa72a897f451e0a6b6bbbd128f149df056a 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: cache_manager.cc,v 1.21 2000/03/06 16:23:29 wessels Exp $
+ * $Id: cache_manager.cc,v 1.22 2000/05/16 07:06:03 wessels Exp $
  *
  * DEBUG: section 16    Cache Manager Objects
  * AUTHOR: Duane Wessels
@@ -64,6 +64,7 @@ static char *cachemgrPasswdGet(cachemgr_passwd *, const char *);
 static const char *cachemgrActionProtection(const action_table * at);
 static OBJH cachemgrShutdown;
 static OBJH cachemgrMenu;
+static OBJH cachemgrOfflineToggle;
 
 action_table *ActionTable = NULL;
 
@@ -280,6 +281,16 @@ cachemgrShutdown(StoreEntry * entryunused)
     shut_down(0);
 }
 
+static void
+cachemgrOfflineToggle(StoreEntry * sentry)
+{
+    Config.onoff.offline = !Config.onoff.offline;
+    debug(16, 0) ("offline_mode now %s.\n",
+       Config.onoff.offline ? "ON" : "OFF");
+    storeAppendPrintf(sentry, "offline_mode is now %s\n",
+       Config.onoff.offline ? "ON" : "OFF");
+}
+
 static const char *
 cachemgrActionProtection(const action_table * at)
 {
@@ -330,4 +341,7 @@ cachemgrInit(void)
     cachemgrRegister("shutdown",
        "Shut Down the Squid Process",
        cachemgrShutdown, 1, 1);
+    cachemgrRegister("offline_toggle",
+       "Toggle offline_mode setting",
+       cachemgrOfflineToggle, 1, 1);
 }
index ab3d9f700a0e58d5139b633c7bb1f42023e8bf8a..179b139d08945c4ac3987cc95a410275d8c1d4e5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: carp.cc,v 1.7 2000/03/06 16:23:29 wessels Exp $
+ * $Id: carp.cc,v 1.8 2000/05/16 07:06:03 wessels Exp $
  *
  * DEBUG: section 39    Cache Array Routing Protocol
  * AUTHOR: Eric Stern
@@ -84,6 +84,7 @@ carpInit(void)
 peer *
 carpSelectParent(request_t * request)
 {
+#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> ((size(u_long)*8)-(n))))
     const char *c;
     peer *p = NULL;
     peer *tp;
@@ -94,7 +95,7 @@ carpSelectParent(request_t * request)
     /* calculate url hash */
     debug(39, 2) ("carpSelectParent: CARP Calculating hash for %s\n", url);
     for (c = url; *c != 0; c++)
-       url_hash += (url_hash << 19) + *c;
+       url_hash += ROTATE_LEFT(url_hash, 19) + *c;
     /* select peer */
     for (tp = Config.peers; tp; tp = tp->next) {
        if (0.0 == tp->carp.load_factor)
@@ -104,7 +105,7 @@ carpSelectParent(request_t * request)
        assert(tp->type == PEER_PARENT);
        combined_hash = (url_hash ^ tp->carp.hash);
        combined_hash += combined_hash * 0x62531965;
-       combined_hash = combined_hash << 21;
+       combined_hash = ROTATE_LEFT(combined_hash, 21);
        combined_hash = combined_hash * tp->carp.load_multiplier;
        debug(39, 3) ("carpSelectParent: %s combined_hash %d\n",
            tp->host, combined_hash);
index 630577189f6c452fffe4147bcaea6c3c4adbdad2..5c60379ff27bb8234485f8318a929c4880d2b824 100644 (file)
@@ -1,6 +1,6 @@
 
 #
-# $Id: cf.data.pre,v 1.182 2000/05/12 03:17:50 wessels Exp $
+# $Id: cf.data.pre,v 1.183 2000/05/16 07:06:03 wessels Exp $
 #
 #
 # SQUID Internet Object Cache  http://squid.nlanr.net/Squid/
@@ -547,6 +547,16 @@ DOC_START
        See replacement_policy below for a discussion of this policy.
 DOC_END
 
+NAME: minimum_object_size
+COMMENT: (bytes)
+TYPE: b_size_t
+DEFAULT: 0 KB
+LOC: Config.Store.minObjectSize
+DOC_START
+       Objects smaller than this size will NOT be saved on disk.  The
+       value is specified in kilobytes, and the default is 0 KB, which
+       means there is no minimum.
+DOC_END
 
 NAME: ipcache_size
 COMMENT: (number of entries)
@@ -851,6 +861,15 @@ DOC_START
        can cut off long filenames when browsing ftp sites.
 DOC_END
 
+NAME: ftp_passive
+TYPE: onoff
+DEFAULT: on
+LOC: Config.Ftp.passive
+DOC_START
+       If your firewall does not allow Squid to use passive
+       connections, then turn off this option.
+DOC_END
+
 NAME: cache_dns_program
 TYPE: string
 IFDEF: USE_DNSSERVERS
@@ -939,6 +958,8 @@ LOC: Config.Program.pinger
 IFDEF: USE_ICMP
 DOC_START
        Specify the location of the executable for the pinger process.
+       This is only useful if you configured Squid (during compilation)
+       with the '--enable-icmp' option.
 DOC_END
 
 
@@ -2641,6 +2662,17 @@ DOC_START
        disables WCCP.
 DOC_END
 
+NAME: wccp_version
+TYPE: int
+LOC: Config.Wccp.version
+DEFAULT: 4
+IFDEF: USE_WCCP
+DOC_START
+       According to some users, Cisco IOS 11.2 only supports WCCP
+       version 3.  If you're using that version of IOS, change
+       this value to 3.
+DOC_END
+
 NAME: wccp_incoming_address
 TYPE: address
 LOC: Config.Wccp.incoming
index b2f7368e5f35338b7421aec63e22040151feff83..164273b55bdae5c84d62e8ae5e5537589ef53eca 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: client.cc,v 1.87 2000/03/06 16:23:29 wessels Exp $
+ * $Id: client.cc,v 1.88 2000/05/16 07:06:03 wessels Exp $
  *
  * DEBUG: section 0     WWW Client
  * AUTHOR: Harvest Derived
@@ -253,6 +253,7 @@ main(int argc, char *argv[])
     }
     loops = ping ? pcount : 1;
     for (i = 0; loops == 0 || i < loops; i++) {
+       int fsize = 0;
        /* Connect to the server */
        if ((conn = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
            perror("client: socket");
@@ -297,6 +298,7 @@ main(int argc, char *argv[])
        /* Read the data */
 
        while ((len = read(conn, buf, sizeof(buf))) > 0) {
+           fsize += len;
            if (to_stdout)
                fwrite(buf, len, 1, stdout);
        }
@@ -314,10 +316,11 @@ main(int argc, char *argv[])
            elapsed_msec = tvSubMsec(tv1, tv2);
            t2s = tv2.tv_sec;
            tmp = localtime(&t2s);
-           fprintf(stderr, "%d-%02d-%02d %02d:%02d:%02d [%d]: %ld.%03ld secs\n",
+           fprintf(stderr, "%d-%02d-%02d %02d:%02d:%02d [%d]: %ld.%03ld secs, %f KB/s\n",
                tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
                tmp->tm_hour, tmp->tm_min, tmp->tm_sec, i + 1,
-               elapsed_msec / 1000, elapsed_msec % 1000);
+               elapsed_msec / 1000, elapsed_msec % 1000,
+               elapsed_msec ? (double) fsize / elapsed_msec : -1.0);
            if (i == 0 || elapsed_msec < ping_min)
                ping_min = elapsed_msec;
            if (i == 0 || elapsed_msec > ping_max)
index c0409fe317831e37e999c9b8fa39505175ae9325..bc8a3f29221de1b207f0ad741661f3b83f6f02f0 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: client_db.cc,v 1.48 2000/03/06 16:23:29 wessels Exp $
+ * $Id: client_db.cc,v 1.49 2000/05/16 07:06:03 wessels Exp $
  *
  * DEBUG: section 0     Client Database
  * AUTHOR: Duane Wessels
@@ -232,7 +232,6 @@ client_entry(struct in_addr *current)
 {
     ClientInfo *c = NULL;
     char *key;
-
     if (current) {
        key = inet_ntoa(*current);
        hash_first(client_table);
@@ -271,8 +270,7 @@ snmp_meshCtblFn(variable_list * Var, snint * ErrP)
     if (c == NULL) {
        debug(49, 5) ("snmp_meshCtblFn: not found.\n");
        *ErrP = SNMP_ERR_NOSUCHNAME;
-       snmp_var_free(Answer);
-       return (NULL);
+       return NULL;
     }
     switch (Var->name[LEN_SQ_NET + 2]) {
     case MESH_CTBL_ADDR:
index d2e7c38ae26340d16c4528d860c3a852589e7d0b..6cb7d030b3ee990f3032b8f03ad4c29c0ff4ea4e 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: client_side.cc,v 1.484 2000/05/12 03:43:00 wessels Exp $
+ * $Id: client_side.cc,v 1.485 2000/05/16 07:06:03 wessels Exp $
  *
  * DEBUG: section 33    Client-side Routines
  * AUTHOR: Duane Wessels
@@ -105,7 +105,7 @@ static void clientProcessOnlyIfCachedMiss(clientHttpRequest * http);
 static int clientCachable(clientHttpRequest * http);
 static int clientHierarchical(clientHttpRequest * http);
 static int clientCheckContentLength(request_t * r);
-static int httpAcceptDefer(void);
+static DEFER httpAcceptDefer;
 static log_type clientProcessRequest2(clientHttpRequest * http);
 static int clientReplyBodyTooLarge(int clen);
 static int clientRequestBodyTooLarge(int clen);
@@ -289,6 +289,9 @@ clientRedirectDone(void *data, char *result)
        new_request->my_addr = old_request->my_addr;
        new_request->my_port = old_request->my_port;
        new_request->flags.redirected = 1;
+       if (old_request->user_ident[0])
+           xstrncpy(new_request->user_ident, old_request->user_ident,
+               USER_IDENT_SZ);
        if (old_request->body) {
            new_request->body = xmalloc(old_request->body_sz);
            xmemcpy(new_request->body, old_request->body, old_request->body_sz);
@@ -564,7 +567,7 @@ clientPurgeRequest(clientHttpRequest * http)
     StoreEntry *entry;
     ErrorState *err = NULL;
     HttpReply *r;
-    debug(33, 1) ("Config2.onoff.enable_purge = %d\n", Config2.onoff.enable_purge);
+    debug(33, 3) ("Config2.onoff.enable_purge = %d\n", Config2.onoff.enable_purge);
     if (!Config2.onoff.enable_purge) {
        http->log_type = LOG_TCP_DENIED;
        err = errorCon(ERR_ACCESS_DENIED, HTTP_FORBIDDEN);
@@ -1220,9 +1223,10 @@ clientBuildReplyHeader(clientHttpRequest * http, HttpReply * rep)
         * the objects age, so a Age: 0 header does not add any useful
         * information to the reply in any case.
         */
-       if (http->entry->timestamp < squid_curtime)
-           httpHeaderPutInt(hdr, HDR_AGE,
-               squid_curtime - http->entry->timestamp);
+       if (http->entry->timestamp > -1)
+           if (http->entry->timestamp < squid_curtime)
+               httpHeaderPutInt(hdr, HDR_AGE,
+                   squid_curtime - http->entry->timestamp);
     }
     /* Append X-Cache */
     httpHeaderPutStrf(hdr, HDR_X_CACHE, "%s from %s",
@@ -1411,12 +1415,18 @@ clientCacheHit(void *data, char *buf, ssize_t size)
            http->log_type = LOG_TCP_IMS_HIT;
            clientSendMoreData(data, buf, size);
        } else {
+           time_t timestamp = e->timestamp;
            MemBuf mb = httpPacked304Reply(e->mem_obj->reply);
            http->log_type = LOG_TCP_IMS_HIT;
            memFree(buf, MEM_CLIENT_SOCK_BUF);
            storeUnregister(http->sc, e, http);
            storeUnlockObject(e);
            e = clientCreateStoreEntry(http, http->request->method, null_request_flags);
+           /*
+            * Copy timestamp from the original entry so the 304
+            * reply has a meaningful Age: header.
+            */
+           e->timestamp = timestamp;
            http->entry = e;
            httpReplyParse(e->mem_obj->reply, mb.buf, mb.size);
            storeAppend(e, mb.buf, mb.size);
@@ -2065,8 +2075,11 @@ clientProcessMiss(clientHttpRequest * http)
      * or IMS request.
      */
     if (http->entry) {
-       if (EBIT_TEST(http->entry->flags, ENTRY_SPECIAL))
+       if (EBIT_TEST(http->entry->flags, ENTRY_SPECIAL)) {
            debug(33, 0) ("clientProcessMiss: miss on a special object (%s).\n", url);
+           debug(33, 0) ("\tlog_type = %s\n", log_tags[http->log_type]);
+           storeEntryDump(http->entry, 1);
+       }
        storeUnregister(http->sc, http->entry, http);
        storeUnlockObject(http->entry);
        http->entry = NULL;
@@ -2652,7 +2665,7 @@ requestTimeout(int fd, void *data)
 }
 
 static int
-httpAcceptDefer(void)
+httpAcceptDefer(int fdunused, void *dataunused)
 {
     static time_t last_warn = 0;
     if (fdNFree() >= RESERVED_FD)
@@ -2678,7 +2691,7 @@ httpAccept(int sock, void *data)
     static aclCheck_t identChecklist;
 #endif
     commSetSelect(sock, COMM_SELECT_READ, httpAccept, NULL, 0);
-    while (max-- && !httpAcceptDefer()) {
+    while (max-- && !httpAcceptDefer(sock, NULL)) {
        memset(&peer, '\0', sizeof(struct sockaddr_in));
        memset(&me, '\0', sizeof(struct sockaddr_in));
        if ((fd = comm_accept(sock, &peer, &me)) < 0) {
@@ -2859,7 +2872,11 @@ clientHttpConnectionsOpen(void)
            continue;
        comm_listen(fd);
        commSetSelect(fd, COMM_SELECT_READ, httpAccept, NULL, 0);
-       /*commSetDefer(fd, httpAcceptDefer, NULL); */
+       /*
+        * We need to set a defer handler here so that we don't
+        * peg the CPU with select() when we hit the FD limit.
+        */
+       commSetDefer(fd, httpAcceptDefer, NULL);
        debug(1, 1) ("Accepting HTTP connections at %s, port %d, FD %d.\n",
            inet_ntoa(s->s.sin_addr),
            (int) ntohs(s->s.sin_port),
index 45f34daa4c5680dca40186e7d635f21c01bcdc3d..6060b881fdd099e5f6453b683ced6ce66d9eef22 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: delay_pools.cc,v 1.16 2000/05/12 00:29:07 wessels Exp $
+ * $Id: delay_pools.cc,v 1.17 2000/05/16 07:06:04 wessels Exp $
  *
  * DEBUG: section 77    Delay Pools
  * AUTHOR: David Luyer <luyer@ucs.uwa.edu.au>
 #include "squid.h"
 
 struct _class1DelayPool {
+    int class;
     int aggregate;
 };
 
 #define IND_MAP_SZ 256
 
 struct _class2DelayPool {
+    int class;
     int aggregate;
     /* OK: -1 is terminator.  individual[255] is always host 255. */
     /* 255 entries + 1 terminator byte */
@@ -58,6 +60,7 @@ struct _class2DelayPool {
 #define C3_IND_SZ (NET_MAP_SZ*IND_MAP_SZ)
 
 struct _class3DelayPool {
+    int class;
     int aggregate;
     /* OK: -1 is terminator.  network[255] is always host 255. */
     /* 255 entries + 1 terminator byte */
@@ -89,6 +92,7 @@ static delayPool *delay_data = NULL;
 static fd_set delay_no_delay;
 static time_t delay_pools_last_update = 0;
 static hash_table *delay_id_ptr_hash = NULL;
+static long memory_used = 0;
 
 static OBJH delayPoolStats;
 
@@ -139,7 +143,8 @@ delayInitDelayData(unsigned short pools)
 {
     if (!pools)
        return;
-    delay_data = xcalloc(pools, sizeof(delayPool));
+    delay_data = xcalloc(pools, sizeof(*delay_data));
+    memory_used += sizeof(*delay_data);
     eventAdd("delayPoolsUpdate", delayPoolsUpdate, NULL, 1.0, 1);
     delay_id_ptr_hash = hash_create(delayIdPtrHashCmp, 256, delayIdPtrHash);
 }
@@ -151,12 +156,14 @@ delayIdZero(void *hlink)
     delay_id *id = (delay_id *) h->key;
     *id = 0;
     xfree(h);
+    memory_used -= sizeof(*h);
 }
 
 void
 delayFreeDelayData(void)
 {
     safe_free(delay_data);
+    memory_used -= sizeof(*delay_data);
     if (!delay_id_ptr_hash)
        return;
     hashFreeItems(delay_id_ptr_hash, delayIdZero);
@@ -173,6 +180,7 @@ delayRegisterDelayIdPtr(delay_id * loc)
     if (*loc == 0)
        return;
     lnk = xmalloc(sizeof(hash_link));
+    memory_used += sizeof(hash_link);
     lnk->key = (char *) loc;
     hash_join(delay_id_ptr_hash, lnk);
 }
@@ -194,6 +202,7 @@ delayUnregisterDelayIdPtr(delay_id * loc)
     assert(lnk);
     hash_remove_link(delay_id_ptr_hash, lnk);
     xxfree(lnk);
+    memory_used -= sizeof(*lnk);
 }
 
 void
@@ -202,12 +211,18 @@ delayCreateDelayPool(unsigned short pool, u_char class)
     switch (class) {
     case 1:
        delay_data[pool].class1 = xmalloc(sizeof(class1DelayPool));
+       delay_data[pool].class1->class = 1;
+       memory_used += sizeof(class1DelayPool);
        break;
     case 2:
        delay_data[pool].class2 = xmalloc(sizeof(class2DelayPool));
+       delay_data[pool].class1->class = 2;
+       memory_used += sizeof(class2DelayPool);
        break;
     case 3:
        delay_data[pool].class3 = xmalloc(sizeof(class3DelayPool));
+       delay_data[pool].class1->class = 3;
+       memory_used += sizeof(class3DelayPool);
        break;
     default:
        assert(0);
@@ -248,6 +263,20 @@ void
 delayFreeDelayPool(unsigned short pool)
 {
     /* this is a union - and all free() cares about is the pointer location */
+    switch (delay_data[pool].class1->class) {
+    case 1:
+       memory_used -= sizeof(class1DelayPool);
+       break;
+    case 2:
+       memory_used -= sizeof(class2DelayPool);
+       break;
+    case 3:
+       memory_used -= sizeof(class3DelayPool);
+       break;
+    default:
+       debug(77, 1) ("delayFreeDelayPool: bad class %d\n",
+           delay_data[pool].class1->class);
+    }
     safe_free(delay_data[pool].class1);
 }
 
@@ -290,6 +319,10 @@ delayClient(request_t * r)
     ch.my_addr = r->my_addr;
     ch.my_port = r->my_port;
     ch.request = r;
+    if (r->client_addr.s_addr == INADDR_BROADCAST) {
+       debug(77, 2) ("delayClient: WARNING: Called with 'allones' address, ignoring\n");
+       return delayId(0, 0);
+    }
     for (pool = 0; pool < Config.Delay.pools; pool++) {
        if (aclCheckFast(Config.Delay.access[pool], &ch))
            break;
@@ -437,6 +470,7 @@ delayUpdateClass3(class3DelayPool * class3, delaySpecSet * rates, int incr)
     int individual_restore_bytes, network_restore_bytes;
     int mpos;
     unsigned int i, j;
+    char individual_255_used;
     /* delaySetSpec may be pointer to partial structure so MUST pass by
      * reference.
      */
@@ -452,21 +486,14 @@ delayUpdateClass3(class3DelayPool * class3, delaySpecSet * rates, int incr)
        return;
     individual_restore_bytes *= incr;
     network_restore_bytes *= incr;
-    if (class3->network_255_used)
-       i = 255;
-    else
-       i = 0;
-    for (;;) {
+    for (i = 0; i < ((class3->network_255_used) ? NET_MAP_SZ : NET_MAP_SZ - 1); ++i) {
        assert(i < NET_MAP_SZ);
        if (i != 255 && class3->network_map[i] == 255)
            return;
        if (individual_restore_bytes != -incr) {
            mpos = i << 8;
-           if (class3->individual_255_used[i / 8] & (1 << (i % 8)))
-               j = 255;
-           else
-               j = 0;
-           for (;;) {
+           individual_255_used = class3->individual_255_used[i / 8] & (1 << (i % 8));
+           for (j = 0; j < ((individual_255_used) ? IND_MAP_SZ : IND_MAP_SZ - 1); ++j, ++mpos) {
                assert(i < NET_MAP_SZ);
                assert(j < IND_MAP_SZ);
                if (j != 255 && class3->individual_map[i][j] == 255)
@@ -476,11 +503,6 @@ delayUpdateClass3(class3DelayPool * class3, delaySpecSet * rates, int incr)
                    (class3->individual[mpos] += individual_restore_bytes) >
                    rates->individual.max_bytes)
                    class3->individual[mpos] = rates->individual.max_bytes;
-               mpos++;
-               if (j == (IND_MAP_SZ - 1))
-                   mpos -= 256;
-               if (++j == (IND_MAP_SZ - 1))
-                   break;
            }
        }
        if (network_restore_bytes != -incr &&
@@ -814,6 +836,7 @@ delayPoolStats(StoreEntry * sentry)
            assert(0);
        }
     }
+    storeAppendPrintf(sentry, "Memory Used: %d bytes\n", (int) memory_used);
 }
 
 #endif
index 63005cd05c8f57f40b0f4c027644866d9a53cc18..c9b304ee9d1a9a3638b0872abfcbf3dfcceed463 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: dns.cc,v 1.81 2000/03/06 16:23:31 wessels Exp $
+ * $Id: dns.cc,v 1.82 2000/05/16 07:06:04 wessels Exp $
  *
  * DEBUG: section 34    Dnsserver interface
  * AUTHOR: Harvest Derived
@@ -106,10 +106,10 @@ variable_list *
 snmp_netDnsFn(variable_list * Var, snint * ErrP)
 {
     variable_list *Answer = NULL;
-    debug(49, 5) ("snmp_netDnsFn: Processing request:\n", Var->name[LEN_SQ_NET +
-           1]);
+    debug(49, 5) ("snmp_netDnsFn: Processing request:\n", Var->name[LEN_SQ_NET + 1]);
     snmpDebugOid(5, Var->name, Var->name_length);
     *ErrP = SNMP_ERR_NOERROR;
+#if USE_DNSSERVERS
     switch (Var->name[LEN_SQ_NET + 1]) {
     case DNS_REQ:
        Answer = snmp_var_new_integer(Var->name, Var->name_length,
@@ -130,6 +130,11 @@ snmp_netDnsFn(variable_list * Var, snint * ErrP)
        *ErrP = SNMP_ERR_NOSUCHNAME;
        break;
     }
+#else
+    Answer = snmp_var_new_integer(Var->name, Var->name_length,
+       0,
+       SMI_COUNTER32);
+#endif
     return Answer;
 }
 #endif /*SQUID_SNMP */
index c195de511777b6d53a4b87fbf0ae2e0138243843..d22de827c86a47f62248633a2b2f409e618fce75 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: dns_internal.cc,v 1.25 2000/05/12 00:29:07 wessels Exp $
+ * $Id: dns_internal.cc,v 1.26 2000/05/16 07:06:04 wessels Exp $
  *
  * DEBUG: section 78    DNS lookups; interacts with lib/rfc1035.c
  * AUTHOR: Duane Wessels
@@ -87,6 +87,11 @@ static void idnsTickleQueue(void);
 static void
 idnsAddNameserver(const char *buf)
 {
+    struct in_addr A;
+    if (!safe_inet_addr(buf, &A)) {
+       debug(78, 0) ("WARNING: rejecting '%s' as a name server, because it is not a numeric IP address\n", buf);
+       return;
+    }
     if (nns == nns_alloc) {
        int oldalloc = nns_alloc;
        ns *oldptr = nameservers;
@@ -103,7 +108,7 @@ idnsAddNameserver(const char *buf)
     assert(nns < nns_alloc);
     nameservers[nns].S.sin_family = AF_INET;
     nameservers[nns].S.sin_port = htons(DOMAIN_PORT);
-    nameservers[nns].S.sin_addr.s_addr = inet_addr(buf);
+    nameservers[nns].S.sin_addr.s_addr = A.s_addr;
     debug(78, 3) ("idnsAddNameserver: Added nameserver #%d: %s\n",
        nns, inet_ntoa(nameservers[nns].S.sin_addr));
     nns++;
@@ -141,13 +146,13 @@ idnsParseResolvConf(void)
        t = strtok(buf, w_space);
        if (NULL == t)
            continue;
-       if (strcasecmp(t, "nameserver") == 0) {
-           t = strtok(NULL, w_space);
-           if (t == NULL)
-               continue;;
-           debug(78, 1) ("Adding nameserver %s from %s\n", t, _PATH_RESOLV_CONF);
-           idnsAddNameserver(t);
-       }
+       if (strcasecmp(t, "nameserver"))
+           continue;
+       t = strtok(NULL, w_space);
+       if (t == NULL)
+           continue;
+       debug(78, 1) ("Adding nameserver %s from %s\n", t, _PATH_RESOLV_CONF);
+       idnsAddNameserver(t);
     }
     fclose(fp);
 }
index fcf275e69188b1e6c92267fe5de6022a508c0cfb..75ef5f0ca6ff4876fa971e27f15b2656c5f5892d 100644 (file)
@@ -1,7 +1,7 @@
 
 
 /*
- * $Id: fqdncache.cc,v 1.132 2000/03/06 16:23:31 wessels Exp $
+ * $Id: fqdncache.cc,v 1.133 2000/05/16 07:06:04 wessels Exp $
  *
  * DEBUG: section 35    FQDN Cache
  * AUTHOR: Harvest Derived
@@ -652,20 +652,10 @@ fqdncacheChangeKey(fqdncache_entry * f)
     hash_join(fqdn_table, (hash_link *) f);
 }
 
-/* call during reconfigure phase to clear out all the
- * pending and dispatched reqeusts that got lost */
+/* Recalculate FQDN cache size upon reconfigure */
 void
 fqdncache_restart(void)
 {
-    fqdncache_entry *this;
-    assert(fqdn_table);
-    hash_first(fqdn_table);
-    while ((this = (fqdncache_entry *) hash_next(fqdn_table))) {
-       if (this->status == FQDN_CACHED)
-           continue;
-       if (this->status == FQDN_NEGATIVE_CACHED)
-           continue;
-    }
     fqdncache_high = (long) (((float) Config.fqdncache.size *
            (float) FQDN_HIGH_WATER) / (float) 100);
     fqdncache_low = (long) (((float) Config.fqdncache.size *
@@ -681,8 +671,7 @@ variable_list *
 snmp_netFqdnFn(variable_list * Var, snint * ErrP)
 {
     variable_list *Answer = NULL;
-    debug(49, 5) ("snmp_netFqdnFn: Processing request:\n", Var->name[LEN_SQ_NET +
-           1]);
+    debug(49, 5) ("snmp_netFqdnFn: Processing request:\n", Var->name[LEN_SQ_NET + 1]);
     snmpDebugOid(5, Var->name, Var->name_length);
     *ErrP = SNMP_ERR_NOERROR;
     switch (Var->name[LEN_SQ_NET + 1]) {
index ec3c1d4eef457ef63c92538c9ccf379f496a5e48..679bb5126f3870875562de8e588a3aaf04b491d1 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: ftp.cc,v 1.292 2000/05/02 20:41:22 hno Exp $
+ * $Id: ftp.cc,v 1.293 2000/05/16 07:06:04 wessels Exp $
  *
  * DEBUG: section 9     File Transfer Protocol (FTP)
  * AUTHOR: Harvest Derived
@@ -422,11 +422,10 @@ ftpListingFinish(FtpStateData * ftpState)
     }
     storeAppendPrintf(e, "<HR>\n");
     storeAppendPrintf(e, "<ADDRESS>\n");
-    storeAppendPrintf(e, "Generated %s by %s (<a href=\"http://squid.nlanr.net/Squid/\">%s</a>)\n",
+    storeAppendPrintf(e, "Generated %s by %s (%s)\n",
        mkrfc1123(squid_curtime),
        getMyHostname(),
-       full_appname_string,
-       version_string);
+       full_appname_string);
     storeAppendPrintf(e, "</ADDRESS></BODY></HTML>\n");
     storeBufferFlush(e);
 }
@@ -1052,7 +1051,12 @@ ftpStart(FwdState * fwd)
     ftpState->data.fd = -1;
     ftpState->size = -1;
     ftpState->mdtm = -1;
-    ftpState->flags.pasv_supported = !fwd->flags.ftp_pasv_failed;
+    if (!Config.Ftp.passive)
+       ftpState->flags.rest_supported = 0;
+    else if (fwd->flags.ftp_pasv_failed)
+       ftpState->flags.pasv_supported = 0;
+    else
+       ftpState->flags.pasv_supported = 1;
     ftpState->flags.rest_supported = 1;
     ftpState->fwd = fwd;
     comm_add_close_handler(fd, ftpStateFree, ftpState);
@@ -1819,7 +1823,7 @@ ftpOpenListenSocket(FtpStateData * ftpState, int fallback)
        return -1;
     }
     ftpState->data.fd = fd;
-    ftpState->data.port = comm_local_port(fd);;
+    ftpState->data.port = comm_local_port(fd);
     ftpState->data.host = NULL;
     return fd;
 }
@@ -1869,10 +1873,10 @@ static void
 ftpAcceptDataConnection(int fd, void *data)
 {
     FtpStateData *ftpState = data;
-    struct sockaddr_in peer, me;
+    struct sockaddr_in my_peer, me;
     debug(9, 3) ("ftpAcceptDataConnection\n");
 
-    fd = comm_accept(fd, &peer, &me);
+    fd = comm_accept(fd, &my_peer, &me);
     if (fd < 0) {
        debug(9, 1) ("ftpHandleDataAccept: comm_accept(%d): %s", fd, xstrerror());
        /* XXX Need to set error message */
@@ -1883,8 +1887,8 @@ ftpAcceptDataConnection(int fd, void *data)
     comm_close(ftpState->data.fd);
     debug(9, 3) ("ftpAcceptDataConnection: Connected data socket on FD %d\n", fd);
     ftpState->data.fd = fd;
-    ftpState->data.port = ntohs(peer.sin_port);
-    ftpState->data.host = xstrdup(inet_ntoa(peer.sin_addr));
+    ftpState->data.port = ntohs(my_peer.sin_port);
+    ftpState->data.host = xstrdup(inet_ntoa(my_peer.sin_addr));
     commSetTimeout(ftpState->ctrl.fd, -1, NULL, NULL);
     commSetTimeout(ftpState->data.fd, Config.Timeout.read, ftpTimeout,
        ftpState);
@@ -2341,8 +2345,8 @@ ftpFailedErrorMessage(FtpStateData * ftpState, err_type error)
        err = errorCon(ERR_FTP_FAILURE, HTTP_BAD_GATEWAY);
     err->xerrno = errno;
     err->request = requestLink(ftpState->request);
-    err->ftp.server_msg = ftpState->cwd_message;
-    ftpState->cwd_message = NULL;
+    err->ftp.server_msg = ftpState->ctrl.message;
+    ftpState->ctrl.message = NULL;
     if (ftpState->old_request)
        command = ftpState->old_request;
     else
index feb6dbb03c75eb7c0e3ea40dae148899e77e87cc..69c639e9890b872e7024bf33f5489851976a8c83 100644 (file)
@@ -1,7 +1,7 @@
 
 
 /*
- * $Id: gopher.cc,v 1.152 2000/03/06 16:23:31 wessels Exp $
+ * $Id: gopher.cc,v 1.153 2000/05/16 07:06:04 wessels Exp $
  *
  * DEBUG: section 10    Gopher
  * AUTHOR: Harvest Derived
@@ -284,7 +284,7 @@ gopherToHTML(GopherStateData * gopherState, char *inbuf, int len)
     char *host = NULL;
     char *port = NULL;
     char *escaped_selector = NULL;
-    char *icon_url = NULL;
+    const char *icon_url = NULL;
     char gtype;
     StoreEntry *entry = NULL;
 
index b56f66d2f2c4ea5de85c505c9c4b855e11f59d6d..8e5f4a9f96eb23a5abfea50e146b61215236b49f 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: http.cc,v 1.360 2000/05/12 00:29:07 wessels Exp $
+ * $Id: http.cc,v 1.361 2000/05/16 07:06:04 wessels Exp $
  *
  * DEBUG: section 11    Hypertext Transfer Protocol (HTTP)
  * AUTHOR: Harvest Derived
@@ -342,17 +342,9 @@ httpProcessReplyHeader(HttpStateData * httpState, const char *buf, int size)
     t = httpState->reply_hdr + hdr_len;
     /* headers can be incomplete only if object still arriving */
     if (!httpState->eof) {
-       size_t k = headersEnd(httpState->reply_hdr, hdr_len);
-       if (0 == k) {
-           if (hdr_len >= 8191 || room == 0) {
-               debug(11, 3) ("httpProcessReplyHeader: Too large HTTP header: '%s'\n", httpState->reply_hdr);
-               httpState->reply_hdr_state += 2;
-               reply->sline.status = HTTP_INVALID_HEADER;
-               return;
-           } else {
-               return;         /* headers not complete */
-           }
-       }
+       size_t k = headersEnd(httpState->reply_hdr, 8192);
+       if (0 == k)
+           return;             /* headers not complete */
        t = httpState->reply_hdr + k;
     }
     *t = '\0';
index 2dc1e8c0d9ba38dc5ef2e37abefeacb8d6febe71..8cd8097ca7b43286e5ca25e04194c4015a048db4 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: icmp.cc,v 1.70 2000/03/06 16:23:32 wessels Exp $
+ * $Id: icmp.cc,v 1.71 2000/05/16 07:06:05 wessels Exp $
  *
  * DEBUG: section 37    ICMP Routines
  * AUTHOR: Duane Wessels
@@ -56,6 +56,7 @@ icmpSendEcho(struct in_addr to, int opcode, const char *payload, int len)
     static pingerEchoData pecho;
     if (payload && len == 0)
        len = strlen(payload);
+    assert(len <= PINGER_PAYLOAD_SZ);
     pecho.to = to;
     pecho.opcode = (unsigned char) opcode;
     pecho.psize = len;
@@ -112,10 +113,12 @@ icmpSend(pingerEchoData * pkt, int len)
     int x;
     if (icmp_sock < 0)
        return;
+    debug(37, 2) ("icmpSend: to %s, opcode %d, len %d\n",
+       inet_ntoa(pkt->to), (int) pkt->opcode, pkt->psize);
     x = send(icmp_sock, (char *) pkt, len, 0);
     if (x < 0) {
        debug(50, 1) ("icmpSend: send: %s\n", xstrerror());
-       if (errno == ECONNREFUSED) {
+       if (errno == ECONNREFUSED || errno == EPIPE) {
            icmpClose();
            return;
        }
index 84de369b0a8cf6a8f4a0e119075a142a904bbab6..45023da234d47824b53c9e266adccaedde10ac5c 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: icp_v2.cc,v 1.62 2000/03/06 16:23:32 wessels Exp $
+ * $Id: icp_v2.cc,v 1.63 2000/05/16 07:06:05 wessels Exp $
  *
  * DEBUG: section 12    Internet Cache Protocol
  * AUTHOR: Duane Wessels
@@ -223,6 +223,7 @@ icpHandleIcpV2(int fd, struct sockaddr_in from, char *buf, int len)
            icpUdpSend(fd, &from, reply, LOG_UDP_INVALID, 0);
            break;
        }
+       memset(&checklist, '\0', sizeof(checklist));
        checklist.src_addr = from.sin_addr;
        checklist.my_addr = no_addr;
        checklist.request = icp_request;
index 9e2271ab8661d76b96882233481b927e93dc45b3..0be5883c597116e2379d412462be4b4734674c89 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: icp_v3.cc,v 1.31 2000/03/06 16:23:32 wessels Exp $
+ * $Id: icp_v3.cc,v 1.32 2000/05/16 07:06:05 wessels Exp $
  *
  * DEBUG: section 12    Internet Cache Protocol
  * AUTHOR: Duane Wessels
@@ -77,6 +77,7 @@ icpHandleIcpV3(int fd, struct sockaddr_in from, char *buf, int len)
            icpUdpSend(fd, &from, reply, LOG_UDP_INVALID, 0);
            break;
        }
+       memset(&checklist, '\0', sizeof(checklist));
        checklist.src_addr = from.sin_addr;
        checklist.my_addr = no_addr;
        checklist.request = icp_request;
index 57571a3e8e35445195e208ce784be4b69ebe26f9..4a7fb1369e270b4b2d063a6a30313f32396b9b30 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: ident.cc,v 1.51 2000/03/06 16:23:32 wessels Exp $
+ * $Id: ident.cc,v 1.52 2000/05/16 07:06:05 wessels Exp $
  *
  * DEBUG: section 30    Ident (RFC 931)
  * AUTHOR: Duane Wessels
@@ -51,7 +51,7 @@ typedef struct _IdentStateData {
     struct _IdentStateData *next;
     int fd;                    /* IDENT fd */
     struct sockaddr_in me;
-    struct sockaddr_in peer;
+    struct sockaddr_in my_peer;
     IdentClient *clients;
 } IdentStateData;
 
@@ -94,7 +94,7 @@ identTimeout(int fd, void *data)
 {
     IdentStateData *state = data;
     debug(30, 3) ("identTimeout: FD %d, %s\n", fd,
-       inet_ntoa(state->peer.sin_addr));
+       inet_ntoa(state->my_peer.sin_addr));
     comm_close(fd);
 }
 
@@ -123,7 +123,7 @@ identConnectDone(int fd, int status, void *data)
     }
     memBufDefInit(&mb);
     memBufPrintf(&mb, "%d, %d\r\n",
-       ntohs(state->peer.sin_port),
+       ntohs(state->my_peer.sin_port),
        ntohs(state->me.sin_port));
     comm_write_mbuf(fd, mb, NULL, state);
     commSetSelect(fd, COMM_SELECT_READ, identReadReply, state, 0);
@@ -185,7 +185,7 @@ identClientAdd(IdentStateData * state, IDCB * callback, void *callback_data)
  * start a TCP connection to the peer host on port 113
  */
 void
-identStart(struct sockaddr_in *me, struct sockaddr_in *peer, IDCB * callback, void *data)
+identStart(struct sockaddr_in *me, struct sockaddr_in *my_peer, IDCB * callback, void *data)
 {
     IdentStateData *state;
     int fd;
@@ -196,8 +196,8 @@ identStart(struct sockaddr_in *me, struct sockaddr_in *peer, IDCB * callback, vo
        inet_ntoa(me->sin_addr),
        ntohs(me->sin_port));
     snprintf(key2, IDENT_KEY_SZ, "%s:%d",
-       inet_ntoa(peer->sin_addr),
-       ntohs(peer->sin_port));
+       inet_ntoa(my_peer->sin_addr),
+       ntohs(my_peer->sin_port));
     snprintf(key, IDENT_KEY_SZ, "%s,%s", key1, key2);
     if ((state = hash_lookup(ident_hash, key)) != NULL) {
        identClientAdd(state, callback, data);
@@ -219,7 +219,7 @@ identStart(struct sockaddr_in *me, struct sockaddr_in *peer, IDCB * callback, vo
     state->key = xstrdup(key);
     state->fd = fd;
     state->me = *me;
-    state->peer = *peer;
+    state->my_peer = *my_peer;
     identClientAdd(state, callback, data);
     hash_join(ident_hash, (hash_link *) state);
     comm_add_close_handler(fd,
@@ -227,7 +227,7 @@ identStart(struct sockaddr_in *me, struct sockaddr_in *peer, IDCB * callback, vo
        state);
     commSetTimeout(fd, Config.Timeout.ident, identTimeout, state);
     commConnectStart(fd,
-       inet_ntoa(state->peer.sin_addr),
+       inet_ntoa(state->my_peer.sin_addr),
        IDENT_PORT,
        identConnectDone,
        state);
index eb6ee01bc8990145bb9f79b2bf617328166b8619..adf7b6c6b2877a8cc461b40daf86d7ad2e03ad72 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: ipcache.cc,v 1.219 2000/03/06 16:23:32 wessels Exp $
+ * $Id: ipcache.cc,v 1.220 2000/05/16 07:06:05 wessels Exp $
  *
  * DEBUG: section 14    IP Cache
  * AUTHOR: Harvest Derived
@@ -730,7 +730,7 @@ ipcacheCycleAddr(const char *name, ipcache_addrs * ia)
        if (++ia->cur == ia->count)
            ia->cur = 0;
        if (!ia->bad_mask[ia->cur])
-           break;;
+           break;
     }
     if (k == ia->count) {
        /* All bad, reset to All good */
@@ -837,21 +837,10 @@ ipcacheChangeKey(ipcache_entry * i)
     hash_join(ip_table, (hash_link *) i);
 }
 
-/* call during reconfigure phase to clear out all the 
- * pending and dispatched reqeusts that got lost */
+/* Recalculate IP cache size upon reconfigure */
 void
 ipcache_restart(void)
 {
-    ipcache_entry *this;
-    assert(ip_table != NULL);
-    hash_first(ip_table);
-    while ((this = (ipcache_entry *) hash_next(ip_table))) {
-       if (this->status == IP_CACHED)
-           continue;
-       if (this->status == IP_NEGATIVE_CACHED)
-           continue;
-    }
-    /* recalculate these while we're at it */
     ipcache_high = (long) (((float) Config.ipcache.size *
            (float) Config.ipcache.high) / (float) 100);
     ipcache_low = (long) (((float) Config.ipcache.size *
index ee007bb29b5b9ab3249d6ea15757b7db0c7f35f5..507be53d4f5c673b0689f391fb59364065eba62c 100644 (file)
@@ -1,6 +1,8 @@
-SQUID-MIB  DEFINITIONS ::= BEGIN
+SQUID-MIB  { iso org(3) dod(6) internet(1) private(4) enterprises(1) 3495 }
+
+DEFINITIONS ::= BEGIN
 --
--- $Id: mib.txt,v 1.24 1999/06/11 22:40:33 wessels Exp $
+-- $Id: mib.txt,v 1.25 2000/05/16 07:06:05 wessels Exp $
 --
 
 IMPORTS
@@ -17,28 +19,19 @@ squid MODULE-IDENTITY
     LAST-UPDATED "9809220000Z"
     ORGANIZATION "National Laboratory for Applied Network Research"
     CONTACT-INFO
-            "        Glenn Chisholm
-
-             Postal: National Centre for Atmospheric Research (NCAR)
-                    Room 36, SCD
-                    PO Box 3000
-                     Boulder, Colorado 80307  
-                     US
-
-                Tel: +1 303 497 1289
-                Fax: +1 303 497 1818
+            "        Squid Developers
 
-             E-mail: glenn@ircache.net"
+             E-mail: squid@squid-cache.org"
     DESCRIPTION
-               "Squid MIB defined for the management of the squid
-               proxy server. See http://squid.nlanr.net/."
-           
+               "Squid MIB defined for the management of the Squid
+               proxy server. See http://www.squid-cache.org/."
+       
     REVISION      "9809220000Z"
     DESCRIPTION
                "Move to SMIv2. Prepare to split into proxy/squid."
     REVISION      "9901010000Z"
     DESCRIPTION
-               "Added objects and corrected asn.1 syntax and 
+               "Added objects and corrected asn.1 syntax and
                descriptions."
     ::= { nlanr 1 }
 
@@ -49,7 +42,7 @@ squid MODULE-IDENTITY
        cacheSystem     OBJECT IDENTIFIER ::= { squid 1 }
        cacheConfig     OBJECT IDENTIFIER ::= { squid 2 }
        cachePerf       OBJECT IDENTIFIER ::= { squid 3 }
-       cacheNetwork    OBJECT IDENTIFIER ::= { squid 4 } 
+       cacheNetwork    OBJECT IDENTIFIER ::= { squid 4 }
        cacheMesh       OBJECT IDENTIFIER ::= { squid 5 }
 
 
@@ -62,7 +55,7 @@ squid MODULE-IDENTITY
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
-                       " Storage Mem size in KB"
+                       " Storage Mem size in KB "
        ::= { cacheSystem 1 }
 
        cacheSysStorage OBJECT-TYPE
@@ -70,15 +63,15 @@ squid MODULE-IDENTITY
                MAX-ACCESS read-only
                 STATUS current
                 DESCRIPTION
-                        " Storage Swap size in KB"
+                        " Storage Swap size in KB "
         ::= { cacheSystem 2 }
 
        cacheUptime  OBJECT-TYPE
-                SYNTAX Timeticks
+                SYNTAX TimeTicks
                 MAX-ACCESS read-only
                 STATUS current
                 DESCRIPTION
-                        " The Uptime of the cache in timeticks"
+                        " The Uptime of the cache in timeticks "
        ::= { cacheSystem 3 }
 
 --
@@ -117,9 +110,9 @@ squid MODULE-IDENTITY
                STATUS current
                DESCRIPTION
                        " Logging Facility. An informational string
-                         indicating logging info like debug level, 
-                         local/syslog/remote logging etc " 
-       ::= { cacheConfig 4 } 
+                         indicating logging info like debug level,
+                         local/syslog/remote logging etc "
+       ::= { cacheConfig 4 }
 
 -- cacheStorageConfig group
 
@@ -130,7 +123,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                 DESCRIPTION
-                        " The value of the cache_mem parameter in MB"
+                        " The value of the cache_mem parameter in MB "
         ::= { cacheStorageConfig 1 }
 
         cacheSwapMaxSize OBJECT-TYPE
@@ -138,7 +131,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                 DESCRIPTION
-                        " The total of the cache_dir space allocated in MB"
+                        " The total of the cache_dir space allocated in MB "
         ::= { cacheStorageConfig 2 }
 
         cacheSwapHighWM OBJECT-TYPE
@@ -146,7 +139,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                 DESCRIPTION
-                        " Cache Swap High Water Mark"
+                        " Cache Swap High Water Mark "
         ::= { cacheStorageConfig 3 }
 
         cacheSwapLowWM OBJECT-TYPE
@@ -154,7 +147,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                 DESCRIPTION
-                        " Cache Swap Low Water Mark"
+                        " Cache Swap Low Water Mark "
         ::= { cacheStorageConfig 4 }
 
 -- end of  cacheStorageConfig group
@@ -163,11 +156,11 @@ squid MODULE-IDENTITY
 -- performance group { squid 3 }
 --
 
-       cacheSysPerf    OBJECT IDENTIFIER ::= { cachePerf 1 } 
+       cacheSysPerf    OBJECT IDENTIFIER ::= { cachePerf 1 }
         cacheProtoStats OBJECT IDENTIFIER ::= { cachePerf 2 }
 
        --
-       -- cacheSysPerf 
+       -- cacheSysPerf
        --
 
         cacheSysPageFaults OBJECT-TYPE
@@ -175,15 +168,15 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                 DESCRIPTION
-                        " Page faults with physical i/o"
+                        " Page faults with physical i/o "
         ::= { cacheSysPerf 1 }
 
         cacheSysNumReads OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS not-accessible
-                STATUS current 
+                STATUS current
                 DESCRIPTION
-                        " HTTP I/O number of reads
+                        " HTTP I/O number of reads "
                ::= { cacheSysPerf 2 }
 
        cacheMemUsage OBJECT-TYPE
@@ -191,15 +184,15 @@ squid MODULE-IDENTITY
                MAX-ACCESS read-only
                STATUS  current
                DESCRIPTION
-                       " Total memory accounted for KB"
-       ::= { cacheSysPerf 3 } 
+                       " Total memory accounted for KB "
+       ::= { cacheSysPerf 3 }
 
        cacheCpuTime OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                 STATUS  current
                 DESCRIPTION
-                        " Amount of cpu seconds consumed"
+                        " Amount of cpu seconds consumed "
        ::= { cacheSysPerf 4 }
 
        cacheCpuUsage OBJECT-TYPE
@@ -207,7 +200,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS  current
                 DESCRIPTION
-                        " The percentage use of the CPU"
+                        " The percentage use of the CPU "
         ::= { cacheSysPerf 5 }
 
        cacheMaxResSize OBJECT-TYPE
@@ -215,15 +208,15 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS  current
                 DESCRIPTION
-                        " Maximum Resident Size in KB"
+                        " Maximum Resident Size in KB "
         ::= { cacheSysPerf 6 }
 
        cacheNumObjCount OBJECT-TYPE
-                SYNTAX Counter32                 
+                SYNTAX Counter32
                MAX-ACCESS read-only
                 STATUS  current
                 DESCRIPTION
-                        " Number of objects stored by the cache"
+                        " Number of objects stored by the cache "
         ::= { cacheSysPerf 7 }
 
         cacheCurrentLRUExpiration OBJECT-TYPE
@@ -231,7 +224,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                       " Storage LRU Expiration Age"
+                       " Storage LRU Expiration Age "
         ::= { cacheSysPerf 8 }
 
         cacheCurrentUnlinkRequests OBJECT-TYPE
@@ -239,23 +232,23 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                       " Requests given to unlinkd"
+                       " Requests given to unlinkd "
         ::= { cacheSysPerf 9 }
 
-        cacheCurrentUnusedFileDescrCount OBJECT-TYPE
+        cacheCurrentUnusedFDescrCnt OBJECT-TYPE
                 SYNTAX Gauge32
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                       " Available number of file descriptors"
+                       " Available number of file descriptors "
         ::= { cacheSysPerf 10 }
 
-       cacheCurrentReservedFileDescrCount  OBJECT-TYPE
+       cacheCurrentResFileDescrCnt  OBJECT-TYPE
                 SYNTAX Gauge32
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                       " Reserved number of file descriptors"
+                       " Reserved number of file descriptors "
         ::= { cacheSysPerf 11 }
 
        --
@@ -268,12 +261,12 @@ squid MODULE-IDENTITY
        cacheProtoAggregateStats OBJECT IDENTIFIER ::= { cacheProtoStats 1 }
 
 
-       cacheClientHttpRequests  OBJECT-TYPE
+       cacheProtoClientHttpRequests  OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                       " Number of HTTP requests received"
+                       " Number of HTTP requests received "
         ::= { cacheProtoAggregateStats 1 }
 
         cacheHttpHits OBJECT-TYPE
@@ -281,7 +274,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                       " Number of HTTP Hits"
+                       " Number of HTTP Hits "
         ::= { cacheProtoAggregateStats 2 }
 
         cacheHttpErrors OBJECT-TYPE
@@ -289,7 +282,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                       " Number of HTTP Errors"
+                       " Number of HTTP Errors "
         ::= { cacheProtoAggregateStats 3 }
 
         cacheHttpInKb OBJECT-TYPE
@@ -297,7 +290,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                       " Number of HTTP KB's recieved"
+                       " Number of HTTP KB's recieved "
         ::= { cacheProtoAggregateStats 4 }
 
         cacheHttpOutKb OBJECT-TYPE
@@ -305,7 +298,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " Number of HTTP KB's transmitted"
+                        " Number of HTTP KB's transmitted "
         ::= { cacheProtoAggregateStats 5 }
 
        cacheIcpPktsSent OBJECT-TYPE
@@ -313,7 +306,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " Number of ICP messages sent"
+                        " Number of ICP messages sent "
         ::= { cacheProtoAggregateStats 6 }
 
        cacheIcpPktsRecv OBJECT-TYPE
@@ -321,7 +314,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " Number of ICP messages received"
+                        " Number of ICP messages received "
         ::= { cacheProtoAggregateStats 7 }
 
         cacheIcpKbSent OBJECT-TYPE
@@ -329,7 +322,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " Number of ICP KB's transmitted"
+                        " Number of ICP KB's transmitted "
         ::= { cacheProtoAggregateStats 8 }
 
         cacheIcpKbRecv OBJECT-TYPE
@@ -337,7 +330,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " Number of ICP KB's recieved"
+                        " Number of ICP KB's recieved "
         ::= { cacheProtoAggregateStats 9 }
 
         cacheServerRequests OBJECT-TYPE
@@ -345,7 +338,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " All requests from the client for the cache server"
+                        " All requests from the client for the cache server "
         ::= { cacheProtoAggregateStats 10 }
 
         cacheServerErrors OBJECT-TYPE
@@ -353,7 +346,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " All errors for the cache server from client requests"
+                        " All errors for the cache server from client requests "
         ::= { cacheProtoAggregateStats 11 }
 
        cacheServerInKb OBJECT-TYPE
@@ -361,7 +354,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " KB's of traffic recieved from servers"
+                        " KB's of traffic recieved from servers "
         ::= { cacheProtoAggregateStats 12 }
 
         cacheServerOutKb OBJECT-TYPE
@@ -369,7 +362,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " KB's of traffic sent to servers"
+                        " KB's of traffic sent to servers "
         ::= { cacheProtoAggregateStats 13 }
 
        cacheCurrentSwapSize OBJECT-TYPE
@@ -377,7 +370,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " Storage Swap size"
+                        " Storage Swap size "
         ::= { cacheProtoAggregateStats 14 }
 
        cacheClients OBJECT-TYPE
@@ -385,12 +378,12 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " Number of clients accessing cache"
+                        " Number of clients accessing cache "
         ::= { cacheProtoAggregateStats 15 }
 
        --
        -- cacheProtoMedianSvcStats group
-       -- 
+       --
        -- This is a table, indexed by the interval we want statistics for
        -- Example: cacheDnsSvcTime.10 gives 10-min medians for Dns Service Time.
 
@@ -398,14 +391,16 @@ squid MODULE-IDENTITY
                 SYNTAX SEQUENCE OF CacheMedianSvcEntry
                 MAX-ACCESS read-only
                 STATUS current
+                DESCRIPTION
+                        " CacheMedianSvcTable "
        ::= { cacheProtoStats 2 }
 
         cacheMedianSvcEntry OBJECT-TYPE
                 SYNTAX CacheMedianSvcEntry
                 MAX-ACCESS not-accessible
                 STATUS current
-                DESCRIPTION 
-                        " An entry in cacheMedianSvcTable " 
+                DESCRIPTION
+                        " An entry in cacheMedianSvcTable "
                 INDEX   { cacheMedianTime }
         ::= { cacheMedianSvcTable 1 }
 
@@ -435,63 +430,63 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " HTTP all service time
-        ::= { cacheMedianSvcEntry 2 } 
+                        " HTTP all service time "
+        ::= { cacheMedianSvcEntry 2 }
 
        cacheHttpMissSvcTime OBJECT-TYPE
                 SYNTAX Integer32
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " HTTP miss service time"
-        ::= { cacheMedianSvcEntry 3 } 
+                        " HTTP miss service time "
+        ::= { cacheMedianSvcEntry 3 }
 
        cacheHttpNmSvcTime OBJECT-TYPE
                 SYNTAX Integer32
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " HTTP near miss service time"
-        ::= { cacheMedianSvcEntry 4 } 
+                        " HTTP near miss service time "
+        ::= { cacheMedianSvcEntry 4 }
 
        cacheHttpHitSvcTime OBJECT-TYPE
                 SYNTAX Integer32
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " HTTP hit service time"
-        ::= { cacheMedianSvcEntry 5 } 
+                        " HTTP hit service time "
+        ::= { cacheMedianSvcEntry 5 }
 
        cacheIcpQuerySvcTime OBJECT-TYPE
                 SYNTAX Integer32
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " ICP query service time"
-        ::= { cacheMedianSvcEntry 6 } 
+                        " ICP query service time "
+        ::= { cacheMedianSvcEntry 6 }
 
        cacheIcpReplySvcTime OBJECT-TYPE
                 SYNTAX Integer32
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " ICP reply service time"
-        ::= { cacheMedianSvcEntry 7 } 
+                        " ICP reply service time "
+        ::= { cacheMedianSvcEntry 7 }
 
        cacheDnsSvcTime OBJECT-TYPE
                 SYNTAX Integer32
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " DNS service time"
-        ::= { cacheMedianSvcEntry 8 } 
+                        " DNS service time "
+        ::= { cacheMedianSvcEntry 8 }
 
         cacheRequestHitRatio OBJECT-TYPE
                 SYNTAX Integer32
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " Request Hit Ratios"
+                        " Request Hit Ratios "
         ::= { cacheMedianSvcEntry 9 }
 
         cacheRequestByteRatio OBJECT-TYPE
@@ -499,7 +494,7 @@ squid MODULE-IDENTITY
                 MAX-ACCESS read-only
                 STATUS current
                DESCRIPTION
-                        " Byte Hit Ratios"
+                        " Byte Hit Ratios "
         ::= { cacheMedianSvcEntry 10 }
 
 --
@@ -510,128 +505,164 @@ squid MODULE-IDENTITY
 --
 
        cacheIpCache    OBJECT IDENTIFIER ::= { cacheNetwork 1 }
-       cacheFqdnCache  OBJECT IDENTIFIER ::= { cacheNetwork 2 } 
+       cacheFqdnCache  OBJECT IDENTIFIER ::= { cacheNetwork 2 }
        cacheDns        OBJECT IDENTIFIER ::= { cacheNetwork 3 }
 
 --
 -- cacheIpCache
 --
 
-       cacheEntries OBJECT-TYPE
+       cacheIpEntries OBJECT-TYPE
                 SYNTAX Gauge32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheIpCache 1 } 
+               DESCRIPTION
+                       " IP Cache Entries "
+        ::= { cacheIpCache 1 }
 
-       cacheRequests OBJECT-TYPE
+       cacheIpRequests OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheIpCache 2 } 
+               DESCRIPTION
+                       " Number of IP Cache requests "
+        ::= { cacheIpCache 2 }
 
-       cacheHits OBJECT-TYPE
+       cacheIpHits OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheIpCache 3 } 
+               DESCRIPTION
+                       " Number of IP Cache hits "
+        ::= { cacheIpCache 3 }
 
-       cachePendingHits OBJECT-TYPE
+       cacheIpPendingHits OBJECT-TYPE
                 SYNTAX Gauge32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheIpCache 4 } 
+               DESCRIPTION
+                       " Number of IP Cache pending hits "
+        ::= { cacheIpCache 4 }
 
-       cacheNegativeHits OBJECT-TYPE
+       cacheIpNegativeHits OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheIpCache 5 } 
+               DESCRIPTION
+                       " Number of IP Cache negative hits "
+        ::= { cacheIpCache 5 }
 
-       cacheMisses OBJECT-TYPE
+       cacheIpMisses OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheIpCache 6 } 
+               DESCRIPTION
+                       " Number of IP Cache misses "
+        ::= { cacheIpCache 6 }
 
        cacheBlockingGetHostByName OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheIpCache 7 } 
+               DESCRIPTION
+                       " Number of blocking gethostbyname requests "
+        ::= { cacheIpCache 7 }
 
-       cacheAttemptReleaseLockedEntries OBJECT-TYPE
+       cacheAttemptReleaseLckEntries OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheIpCache 8 } 
+               DESCRIPTION
+                       " Number of attempts to release locked IP Cache entries "
+        ::= { cacheIpCache 8 }
 
 --
 -- cacheFqdnCache
 --
 
-       cacheEntries OBJECT-TYPE
+       cacheFqdnEntries OBJECT-TYPE
                 SYNTAX Gauge32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheFqdnCache 1 } 
+               DESCRIPTION
+                       " FQDN Cache entries "
+        ::= { cacheFqdnCache 1 }
 
-       cacheRequests OBJECT-TYPE
+       cacheFqdnRequests OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheFqdnCache 2 } 
+               DESCRIPTION
+                       " Number of FQDN Cache requests "
+        ::= { cacheFqdnCache 2 }
 
-       cacheHits OBJECT-TYPE
+       cacheFqdnHits OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheFqdnCache 3 } 
+               DESCRIPTION
+                       " Number of FQDN Cache hits "
+        ::= { cacheFqdnCache 3 }
 
-       cachePendingHits OBJECT-TYPE
+       cacheFqdnPendingHits OBJECT-TYPE
                 SYNTAX Gauge32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheFqdnCache 4 } 
+               DESCRIPTION
+                       " Number of FQDN Cache pending hits "
+        ::= { cacheFqdnCache 4 }
 
-       cacheNegativeHits OBJECT-TYPE
+       cacheFqdnNegativeHits OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheFqdnCache 5 } 
+               DESCRIPTION
+                       " Number of FQDN Cache negative hits "
+        ::= { cacheFqdnCache 5 }
 
-       cacheMisses OBJECT-TYPE
+       cacheFqdnMisses OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheFqdnCache 6 } 
+               DESCRIPTION
+                       " Number of FQDN Cache misses "
+        ::= { cacheFqdnCache 6 }
 
        cacheBlockingGetHostByAddr OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheFqdnCache 7 } 
+               DESCRIPTION
+                       " Number of blocking gethostbyaddr requests "
+        ::= { cacheFqdnCache 7 }
 
 --
---     cacheDNS 
+--     cacheDNS
 --
 
        cacheDnsRequests OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheDns 1 } 
+               DESCRIPTION
+                       " Number of external dnsserver requests "
+        ::= { cacheDns 1 }
 
        cacheDnsReplies OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheDns 2 } 
+               DESCRIPTION
+                       " Number of external dnsserver replies "
+        ::= { cacheDns 2 }
 
        cacheDnsNumberServers OBJECT-TYPE
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-        ::= { cacheDns 3 } 
+               DESCRIPTION
+                       " Number of external dnsserver processes "
+        ::= { cacheDns 3 }
        
 --
 -- cacheMesh group
@@ -650,8 +681,8 @@ squid MODULE-IDENTITY
                SYNTAX CachePeerEntry
                MAX-ACCESS not-accessible
                STATUS current
-               DESCRIPTION 
-                       " An entry in cachePeerTable " 
+               DESCRIPTION
+                       " An entry in cachePeerTable "
                INDEX   { cachePeerAddr }
        ::= { cachePeerTable 1 }
 
@@ -675,16 +706,16 @@ squid MODULE-IDENTITY
                SYNTAX DisplayString
                MAX-ACCESS read-only
                STATUS current
-               DESCRIPTION 
+               DESCRIPTION
                          " The FQDN name or internal alias for the
-                           peer cache"
-       ::= { cachePeerEntry 1 } 
+                           peer cache "
+       ::= { cachePeerEntry 1 }
 
        cachePeerAddr OBJECT-TYPE
                 SYNTAX IpAddress
                 MAX-ACCESS read-only
                 STATUS current
-               DESCRIPTION 
+               DESCRIPTION
                        " The IP Address of the peer cache "
         ::= { cachePeerEntry 2 }
 
@@ -692,7 +723,7 @@ squid MODULE-IDENTITY
                 SYNTAX Integer32
                 MAX-ACCESS read-only
                 STATUS current
-               DESCRIPTION 
+               DESCRIPTION
                        " The port the peer listens for HTTP requests "
         ::= { cachePeerEntry 3 }
 
@@ -700,32 +731,24 @@ squid MODULE-IDENTITY
                 SYNTAX Integer32
                 MAX-ACCESS read-only
                 STATUS current
-               DESCRIPTION 
-                       " The port the peer listens for ICP requests 
+               DESCRIPTION
+                       " The port the peer listens for ICP requests
                          should be 0 if not configured to send ICP requests "
         ::= { cachePeerEntry 4 }
 
        cachePeerType OBJECT-TYPE
-                SYNTAX INTEGER {
-                               none(0), 
-                               sibling(1), 
-                                parent(2), 
-                               multicast(3)
-                                }
+                SYNTAX INTEGER
                 MAX-ACCESS not-accessible
                 STATUS current
-                DESCRIPTION 
+                DESCRIPTION
                         " Peer Type "
-       ::= { cachePeerEntry 5 } 
+       ::= { cachePeerEntry 5 }
 
        cachePeerState OBJECT-TYPE
-                SYNTAX INTEGER { 
-                               down(0), 
-                               up(1)
-                               }
+                SYNTAX INTEGER
                 MAX-ACCESS read-only
                 STATUS current
-               DESCRIPTION 
+               DESCRIPTION
                        " The operational state of this peer "
         ::= { cachePeerEntry 6 }
 
@@ -733,7 +756,7 @@ squid MODULE-IDENTITY
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-               DESCRIPTION 
+               DESCRIPTION
                        " Number of pings sent to peer "
         ::= { cachePeerEntry 7 }
 
@@ -741,7 +764,7 @@ squid MODULE-IDENTITY
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-               DESCRIPTION 
+               DESCRIPTION
                        " Number of pings received from peer "
         ::= {  cachePeerEntry 8 }
 
@@ -749,7 +772,7 @@ squid MODULE-IDENTITY
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-               DESCRIPTION 
+               DESCRIPTION
                        " Number of times this peer was selected  "
         ::= { cachePeerEntry 9 }
 
@@ -757,7 +780,7 @@ squid MODULE-IDENTITY
                 SYNTAX Integer32
                 MAX-ACCESS read-only
                 STATUS current
-               DESCRIPTION 
+               DESCRIPTION
                        " Last known round-trip time to the peer (in ms) "
         ::= { cachePeerEntry 10 }
 
@@ -765,7 +788,7 @@ squid MODULE-IDENTITY
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-               DESCRIPTION 
+               DESCRIPTION
                        " How many times this peer was ignored "
         ::= { cachePeerEntry 11 }
 
@@ -773,7 +796,7 @@ squid MODULE-IDENTITY
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-               DESCRIPTION 
+               DESCRIPTION
                        " Number of keepalives sent "
         ::= { cachePeerEntry 12 }
 
@@ -781,7 +804,7 @@ squid MODULE-IDENTITY
                 SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
-               DESCRIPTION 
+               DESCRIPTION
                        " Number of keepalives received "
         ::= { cachePeerEntry 13 }
 
@@ -791,7 +814,7 @@ squid MODULE-IDENTITY
 ---    
 
         cacheClientTable OBJECT-TYPE
-           SYNTAX  SEQUENCE OF cacheClientEntry
+           SYNTAX  SEQUENCE OF CacheClientEntry
            ACCESS  not-accessible
            STATUS  mandatory
            DESCRIPTION
@@ -803,12 +826,12 @@ squid MODULE-IDENTITY
            ACCESS  not-accessible
            STATUS  mandatory
            DESCRIPTION
-                    "An entry in cacheClientTable"
+                    "An entry in cacheClientTable "
           INDEX { cacheClientAddr }
        ::= { cacheClientTable 1 }
 
        CacheClientEntry ::= SEQUENCE {
-                       cacheClientAddr         IpAddress
+                       cacheClientAddr         IpAddress,
                        cacheClientHttpRequests Counter32,
                        cacheClientHttpKb       Counter32,
                        cacheClientHttpHits     Counter32,
@@ -892,10 +915,11 @@ squid MODULE-IDENTITY
         ::= { cacheClientEntry 9 }
 
        -- end of cacheClientTable
-  
+
+
     -- end of cacheMesh group
 
 -- end of SQUID-MIB
 --
 END
+
index 2bf36bc1e9d468c11154ac468e6722507c136907..e3320cd0fcdb85e91cc6a8771cfc02aa1d478c10 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: mime.cc,v 1.93 2000/03/06 16:23:33 wessels Exp $
+ * $Id: mime.cc,v 1.94 2000/05/16 07:06:05 wessels Exp $
  *
  * DEBUG: section 25    MIME Parsing
  * AUTHOR: Harvest Derived
@@ -216,12 +216,12 @@ mimeGetIcon(const char *fn)
     return m->icon;
 }
 
-char *
+const char *
 mimeGetIconURL(const char *fn)
 {
     char *icon = mimeGetIcon(fn);
     if (icon == NULL)
-       return NULL;
+       return null_string;
     return internalLocalUri("/squid-internal-static/icons/", icon);
 }
 
index ddc7ef40db2b67a2acebc8f0c03f6b5f3a33aba1..3b5d860b8010f81488bc1b805a2fec807172339f 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: neighbors.cc,v 1.283 2000/05/12 00:29:07 wessels Exp $
+ * $Id: neighbors.cc,v 1.284 2000/05/16 07:06:05 wessels Exp $
  *
  * DEBUG: section 15    Neighbor Routines
  * AUTHOR: Harvest Derived
@@ -146,6 +146,7 @@ peerAllowedToUse(const peer * p, request_t * request)
        return do_ping;
     if (p->access == NULL)
        return do_ping;
+    memset(&checklist, '\0', sizeof(checklist));
     checklist.src_addr = request->client_addr;
     checklist.my_addr = request->my_addr;
     checklist.my_port = request->my_port;
index aedb2e39928c691bc84106679fcad668f43a2b0c..a24bd541e1ebc375fd0ab758da7843ca4aacf8ba 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: net_db.cc,v 1.144 2000/05/07 16:18:19 adrian Exp $
+ * $Id: net_db.cc,v 1.145 2000/05/16 07:06:06 wessels Exp $
  *
  * DEBUG: section 38    Network Measurement Database
  * AUTHOR: Duane Wessels
@@ -569,6 +569,10 @@ netdbExchangeHandleReply(void *data, char *buf, ssize_t size)
                o += sizeof(int);
                hops = (double) ntohl(j) / 1000.0;
                break;
+           default:
+               debug(38, 1) ("netdbExchangeHandleReply: corrupt data, aborting\n");
+               netdbExchangeDone(ex);
+               return;
            }
        }
        if (addr.s_addr != any_addr.s_addr && rtt > 0)
@@ -966,7 +970,7 @@ netdbExchangeStart(void *data)
     assert(NULL != ex->r);
     ex->r->http_ver = 1.0;
     ex->e = storeCreateEntry(uri, uri, null_request_flags, METHOD_GET);
-    ex->buf_sz = 4096;;
+    ex->buf_sz = 4096;
     ex->buf = memAllocate(MEM_4K_BUF);
     assert(NULL != ex->e);
     ex->sc = storeClientListAdd(ex->e, ex);
index 4f39b48118c119b198b8edf0a9c6b99e558d47c0..7c551d52ccc351d00e6bbf764f3368ef196bde40 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: pinger.cc,v 1.43 2000/03/06 16:23:33 wessels Exp $
+ * $Id: pinger.cc,v 1.44 2000/05/16 07:06:06 wessels Exp $
  *
  * DEBUG: section 42    ICMP Pinger program
  * AUTHOR: Duane Wessels
@@ -215,7 +215,11 @@ pingerRecv(void)
        0,
        (struct sockaddr *) &from,
        &fromlen);
+#if GETTIMEOFDAY_NO_TZP
+    gettimeofday(&now);
+#else
     gettimeofday(&now, NULL);
+#endif
     debug(42, 9) ("pingerRecv: %d bytes from %s\n", n, inet_ntoa(from.sin_addr));
     ip = (struct iphdr *) (void *) pkt;
 #if HAVE_IP_HL
@@ -304,12 +308,18 @@ pingerReadRequest(void)
     n = recv(0, (char *) &pecho, sizeof(pecho), 0);
     if (n < 0)
        return n;
+    if (0 == n) {
+       /* EOF indicator */
+       fprintf(stderr, "EOF encountered\n");
+       errno = 0;
+       return -1;
+    }
     guess_size = n - (sizeof(pingerEchoData) - PINGER_PAYLOAD_SZ);
     if (guess_size != pecho.psize) {
        fprintf(stderr, "size mismatch, guess=%d psize=%d\n",
            guess_size, pecho.psize);
-       errno = 0;
-       return -1;
+       /* don't process this message, but keep running */
+       return 0;
     }
     pingerSendEcho(pecho.to,
        pecho.opcode,
index 07584db56597f59c694065d2b2aacf83af707704..3b6a72c0b3809ceb318efd1e76754ae6927f7948 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: protos.h,v 1.365 2000/05/12 00:29:08 wessels Exp $
+ * $Id: protos.h,v 1.366 2000/05/16 07:06:06 wessels Exp $
  *
  *
  * SQUID Internet Object Cache  http://squid.nlanr.net/Squid/
@@ -590,7 +590,7 @@ extern void mimeFreeMemory(void);
 extern char *mimeGetContentEncoding(const char *fn);
 extern char *mimeGetContentType(const char *fn);
 extern char *mimeGetIcon(const char *fn);
-extern char *mimeGetIconURL(const char *fn);
+extern const char *mimeGetIconURL(const char *fn);
 extern char mimeGetTransferMode(const char *fn);
 extern int mimeGetDownloadOption(const char *fn);
 extern int mimeGetViewOption(const char *fn);
index 8abe1d1cf1f7c6c0901e70b5172f4f17bba75315..7994332ccef0ed29e455f68a7b09a833f949d071 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: snmp_agent.cc,v 1.75 2000/05/12 00:29:08 wessels Exp $
+ * $Id: snmp_agent.cc,v 1.76 2000/05/16 07:06:06 wessels Exp $
  *
  * DEBUG: section 49     SNMP Interface
  * AUTHOR: Kostas Anagnostakis
@@ -104,22 +104,22 @@ snmp_confFn(variable_list * Var, snint * ErrP)
     case CONF_STORAGE:
        switch (Var->name[LEN_SQ_CONF + 1]) {
        case CONF_ST_MMAXSZ:
-           snmp_var_new_integer(Var->name, Var->name_length,
+           Answer = snmp_var_new_integer(Var->name, Var->name_length,
                (snint) Config.memMaxSize >> 20,
                ASN_INTEGER);
            break;
        case CONF_ST_SWMAXSZ:
-           snmp_var_new_integer(Var->name, Var->name_length,
+           Answer = snmp_var_new_integer(Var->name, Var->name_length,
                (snint) Config.Swap.maxSize >> 10,
                ASN_INTEGER);
            break;
        case CONF_ST_SWHIWM:
-           snmp_var_new_integer(Var->name, Var->name_length,
+           Answer = snmp_var_new_integer(Var->name, Var->name_length,
                (snint) Config.Swap.highWaterMark,
                ASN_INTEGER);
            break;
        case CONF_ST_SWLOWM:
-           snmp_var_new_integer(Var->name, Var->name_length,
+           Answer = snmp_var_new_integer(Var->name, Var->name_length,
                (snint) Config.Swap.lowWaterMark,
                ASN_INTEGER);
            break;
index a0b2bc713d67a6c2cd57defab3a1f6ecf1906874..678ea2ca90bd8827e221f8abee4a5335880957fe 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: snmp_core.cc,v 1.41 2000/03/06 16:23:34 wessels Exp $
+ * $Id: snmp_core.cc,v 1.42 2000/05/16 07:06:06 wessels Exp $
  *
  * DEBUG: section 49    SNMP support
  * AUTHOR: Glenn Chisholm
@@ -499,7 +499,7 @@ snmpDecodePacket(snmp_request_t * rq)
     PDU = snmp_pdu_create(0);
     Session.Version = SNMP_VERSION_1;
     Community = snmp_parse(&Session, PDU, buf, len);
-
+    memset(&checklist, '\0', sizeof(checklist));
     checklist.src_addr = rq->from.sin_addr;
     checklist.snmp_community = (char *) Community;
 
index 57001d19fd203e6e7b49b53dbf35edb9558fb06c..11fc6a74053d4dc268b0df73bc321113b3696def 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store.cc,v 1.522 2000/05/12 00:29:08 wessels Exp $
+ * $Id: store.cc,v 1.523 2000/05/16 07:06:06 wessels Exp $
  *
  * DEBUG: section 20    Storage Manager
  * AUTHOR: Harvest Derived
@@ -97,9 +97,9 @@ static EVH storeLateRelease;
 #else
 static dlink_list inmem_list;
 #endif
-int store_pages_max = 0;
-int store_swap_high = 0;
-int store_swap_low = 0;
+static int store_pages_max = 0;
+static int store_swap_high = 0;
+static int store_swap_low = 0;
 static Stack LateReleaseStack;
 
 #if URL_CHECKSUM_DEBUG
@@ -421,7 +421,7 @@ storeCreateEntry(const char *url, const char *log_url, request_flags flags, meth
     e->swap_dirn = -1;
     e->refcount = 0;
     e->lastref = squid_curtime;
-    e->timestamp = 0;          /* set in storeTimestampsSet() */
+    e->timestamp = -1;         /* set in storeTimestampsSet() */
     e->ping_status = PING_NONE;
     EBIT_SET(e->flags, ENTRY_VALIDATED);
     return e;
@@ -498,6 +498,7 @@ struct _store_check_cachable_hist {
        int wrong_content_length;
        int negative_cached;
        int too_big;
+       int too_small;
        int private_key;
        int too_many_open_files;
        int too_many_open_fds;
@@ -517,6 +518,19 @@ storeTooManyDiskFilesOpen(void)
     return 0;
 }
 
+static int
+storeCheckTooSmall(StoreEntry * e)
+{
+    MemObject *mem = e->mem_obj;
+    if (STORE_OK == e->store_status)
+       if (mem->object_sz < Config.Store.minObjectSize)
+           return 1;
+    if (mem->reply->content_length > -1)
+       if (mem->reply->content_length < (int) Config.Store.minObjectSize)
+           return 1;
+    return 0;
+}
+
 int
 storeCheckCachable(StoreEntry * e)
 {
@@ -547,6 +561,9 @@ storeCheckCachable(StoreEntry * e)
     } else if (e->mem_obj->reply->content_length > (int) Config.Store.maxObjectSize) {
        debug(20, 2) ("storeCheckCachable: NO: too big\n");
        store_check_cachable_hist.no.too_big++;
+    } else if (storeCheckTooSmall(e)) {
+       debug(20, 2) ("storeCheckCachable: NO: too small\n");
+       store_check_cachable_hist.no.too_small++;
     } else if (EBIT_TEST(e->flags, KEY_PRIVATE)) {
        debug(20, 3) ("storeCheckCachable: NO: private key\n");
        store_check_cachable_hist.no.private_key++;
@@ -589,6 +606,8 @@ storeCheckCachableStats(StoreEntry * sentry)
        store_check_cachable_hist.no.negative_cached);
     storeAppendPrintf(sentry, "no.too_big\t%d\n",
        store_check_cachable_hist.no.too_big);
+    storeAppendPrintf(sentry, "no.too_small\t%d\n",
+       store_check_cachable_hist.no.too_small);
     storeAppendPrintf(sentry, "no.private_key\t%d\n",
        store_check_cachable_hist.no.private_key);
     storeAppendPrintf(sentry, "no.too_many_open_files\t%d\n",
@@ -624,8 +643,14 @@ storeComplete(StoreEntry * e)
     if (e->mem_obj->request)
        e->mem_obj->request->hier.store_complete_stop = current_time;
 #endif
-    InvokeHandlers(e);
+    /*
+     * We used to call InvokeHandlers, then storeSwapOut.  However,
+     * Madhukar Reddy <myreddy@persistence.com> reported that
+     * responses without content length would sometimes get released
+     * in client_side, thinking that the response is incomplete.
+     */
     storeSwapOut(e);
+    InvokeHandlers(e);
 }
 
 /*
index 37b65154363e744d3affadd9b33a8946ed7635bb..8a11130c589a403f48777433e2e231b0be5ca11a 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_client.cc,v 1.89 2000/05/12 00:29:09 wessels Exp $
+ * $Id: store_client.cc,v 1.90 2000/05/16 07:06:07 wessels Exp $
  *
  * DEBUG: section 20    Storage Manager Client-Side Interface
  * AUTHOR: Duane Wessels
@@ -297,8 +297,8 @@ storeClientCopy3(StoreEntry * e, store_client * sc)
            /* yuck -- this causes a TCP_SWAPFAIL_MISS on the client side */
            storeClientCallback(sc, -1);
            return;
-       }
-       if (!sc->flags.disk_io_pending) {
+       } else if (!sc->flags.disk_io_pending) {
+           sc->flags.disk_io_pending = 1;
            storeSwapInStart(sc);
            if (NULL == sc->swapin_sio) {
                storeClientCallback(sc, -1);
index 7de7572079099a6e880e7b2f53bbcc44ddb57b20..f66343bbc76a680af443f4e78f921d2eef564eeb 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_dir.cc,v 1.108 2000/05/12 00:29:09 wessels Exp $
+ * $Id: store_dir.cc,v 1.109 2000/05/16 07:06:07 wessels Exp $
  *
  * DEBUG: section 47    Store Directory Routines
  * AUTHOR: Duane Wessels
@@ -313,7 +313,7 @@ storeDirConfigure(void)
     int i;
     Config.Swap.maxSize = 0;
     for (i = 0; i < Config.cacheSwap.n_configured; i++) {
-       SD = &Config.cacheSwap.swapDirs[i];;
+       SD = &Config.cacheSwap.swapDirs[i];
        Config.Swap.maxSize += SD->max_size;
        SD->low_size = (int) (((float) SD->max_size *
                (float) Config.Swap.lowWaterMark) / 100.0);
index dc4540fdb3e71c9fd7e1cf9aacb6a23f782a17f0..c9188cee1324e836348b4c6d5ee25ccc5c36d302 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: structs.h,v 1.333 2000/05/12 03:43:00 wessels Exp $
+ * $Id: structs.h,v 1.334 2000/05/16 07:06:07 wessels Exp $
  *
  *
  * SQUID Internet Object Cache  http://squid.nlanr.net/Squid/
@@ -286,6 +286,7 @@ struct _SquidConfig {
        struct in_addr router;
        struct in_addr incoming;
        struct in_addr outgoing;
+       int version;
     } Wccp;
 #endif
     char *as_whois_server;
@@ -372,6 +373,7 @@ struct _SquidConfig {
        int objectsPerBucket;
        size_t avgObjectSize;
        size_t maxObjectSize;
+       size_t minObjectSize;
     } Store;
     struct {
        int high;
@@ -441,6 +443,7 @@ struct _SquidConfig {
        size_t list_width;
        int list_wrap;
        char *anon_user;
+       int passive;
     } Ftp;
     refresh_t *Refresh;
     struct _cacheSwap {
@@ -504,6 +507,8 @@ struct _SquidConfig2 {
     struct {
        int enable_purge;
     } onoff;
+    uid_t effectiveUserID;
+    gid_t effectiveGroupID;
 };
 
 struct _close_handler {
index 0a3a94bf7557e2f9b62fd63a52489d785ad833f0..f0c45b8309fc34968ecd42a169a22ecba18c7e1f 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: tools.cc,v 1.190 2000/04/17 17:24:57 wessels Exp $
+ * $Id: tools.cc,v 1.191 2000/05/16 07:06:07 wessels Exp $
  *
  * DEBUG: section 21    Misc Functions
  * AUTHOR: Harvest Derived
@@ -416,46 +416,47 @@ getMyHostname(void)
     const struct hostent *h = NULL;
     if (Config.visibleHostname != NULL)
        return Config.visibleHostname;
-    if (present) {
-       (void) 0;
-    } else if (Config.Sockaddr.http->s.sin_addr.s_addr != any_addr.s_addr) {
+    if (present)
+       return host;
+    host[0] = '\0';
+    if (Config.Sockaddr.http->s.sin_addr.s_addr != any_addr.s_addr) {
        /*
         * If the first http_port address has a specific address, try a
         * reverse DNS lookup on it.
         */
-       host[0] = '\0';
        h = gethostbyaddr((char *) &Config.Sockaddr.http->s.sin_addr,
            sizeof(Config.Sockaddr.http->s.sin_addr), AF_INET);
        if (h != NULL) {
            /* DNS lookup successful */
            /* use the official name from DNS lookup */
-           strcpy(host, h->h_name);
-           debug(50, 4) ("getMyHostname: resolved tcp_incoming_addr to '%s'\n",
+           xstrncpy(host, h->h_name, SQUIDHOSTNAMELEN);
+           debug(50, 4) ("getMyHostname: resolved %s to '%s'\n",
+               inet_ntoa(Config.Sockaddr.http->s.sin_addr),
                host);
            present = 1;
-       } else {
-           debug(50, 6) ("getMyHostname: failed to resolve tcp_incoming_addr\n");
+           return host;
        }
+       debug(50, 1) ("WARNING: failed to resolve %s to a hostname\n",
+           inet_ntoa(Config.Sockaddr.http->s.sin_addr));
+    }
+    /*
+     * Get the host name and store it in host to return
+     */
+    if (gethostname(host, SQUIDHOSTNAMELEN) < 0) {
+       debug(50, 1) ("WARNING: gethostname failed: %s\n", xstrerror());
+    } else if ((h = gethostbyname(host)) == NULL) {
+       debug(50, 1) ("WARNING: gethostbyname failed for %s\n", host);
     } else {
-       /*
-        * Get the host name and store it in host to return
-        */
-       host[0] = '\0';
-       if (gethostname(host, SQUIDHOSTNAMELEN) == -1) {
-           debug(50, 1) ("getMyHostname: gethostname failed: %s\n",
-               xstrerror());
-       } else {
-           if ((h = gethostbyname(host)) != NULL) {
-               debug(50, 6) ("getMyHostname: '%s' resolved into '%s'\n",
-                   host, h->h_name);
-               /* DNS lookup successful */
-               /* use the official name from DNS lookup */
-               strcpy(host, h->h_name);
-           }
-       }
+       debug(50, 6) ("getMyHostname: '%s' resolved into '%s'\n",
+           host, h->h_name);
+       /* DNS lookup successful */
+       /* use the official name from DNS lookup */
+       xstrncpy(host, h->h_name, SQUIDHOSTNAMELEN);
        present = 1;
+       return host;
     }
-    return present ? host : NULL;
+    fatal("Could not determine fully qualified hostname.  Please set 'visible_hostname'\n");
+    return NULL;               /* keep compiler happy */
 }
 
 const char *
@@ -480,38 +481,28 @@ safeunlink(const char *s, int quiet)
 void
 leave_suid(void)
 {
-    struct passwd *pwd = NULL;
-    struct group *grp = NULL;
-    gid_t gid;
     debug(21, 3) ("leave_suid: PID %d called\n", getpid());
     if (geteuid() != 0)
        return;
     /* Started as a root, check suid option */
     if (Config.effectiveUser == NULL)
        return;
-    if ((pwd = getpwnam(Config.effectiveUser)) == NULL)
-       return;
-    if (Config.effectiveGroup && (grp = getgrnam(Config.effectiveGroup))) {
-       gid = grp->gr_gid;
-    } else {
-       gid = pwd->pw_gid;
-    }
 #if HAVE_SETGROUPS
-    setgroups(1, &gid);
+    setgroups(1, &Config2.effectiveGroupID);
 #endif
-    if (setgid(gid) < 0)
-       debug(50, 1) ("leave_suid: setgid: %s\n", xstrerror());
+    if (setgid(Config2.effectiveGroupID) < 0)
+       debug(50, 0) ("ALERT: setgid: %s\n", xstrerror());
     debug(21, 3) ("leave_suid: PID %d giving up root, becoming '%s'\n",
-       getpid(), pwd->pw_name);
+       getpid(), Config.effectiveUser);
 #if HAVE_SETRESUID
-    if (setresuid(pwd->pw_uid, pwd->pw_uid, 0) < 0)
-       debug(50, 1) ("leave_suid: setresuid: %s\n", xstrerror());
+    if (setresuid(Config2.effectiveUserID, Config2.effectiveUserID, 0) < 0)
+       debug(50, 0) ("ALERT: setresuid: %s\n", xstrerror());
 #elif HAVE_SETEUID
-    if (seteuid(pwd->pw_uid) < 0)
-       debug(50, 1) ("leave_suid: seteuid: %s\n", xstrerror());
+    if (seteuid(Config2.effectiveUserID) < 0)
+       debug(50, 0) ("ALERT: seteuid: %s\n", xstrerror());
 #else
-    if (setuid(pwd->pw_uid) < 0)
-       debug(50, 1) ("leave_suid: setuid: %s\n", xstrerror());
+    if (setuid(Config2.effectiveUserID) < 0)
+       debug(50, 0) ("ALERT: setuid: %s\n", xstrerror());
 #endif
 }
 
index 61a644b47f56874931aaee9a38d8e9d4c6e8e8e9..5704b55bbb40671170392aed5fe64c9e604d8543 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: unlinkd.cc,v 1.36 2000/05/03 17:15:44 adrian Exp $
+ * $Id: unlinkd.cc,v 1.37 2000/05/16 07:06:08 wessels Exp $
  *
  * DEBUG: section 12    Unlink Daemon
  * AUTHOR: Duane Wessels
@@ -78,6 +78,7 @@ static int unlinkd_rfd = -1;
 void
 unlinkdUnlink(const char *path)
 {
+#if USE_UNLINKD
     char buf[MAXPATHLEN];
     int l;
     int x;
@@ -140,6 +141,7 @@ unlinkdUnlink(const char *path)
     }
     Counter.unlink.requests++;
     queuelen++;
+#endif
 }
 
 void
@@ -157,6 +159,7 @@ unlinkdClose(void)
 void
 unlinkdInit(void)
 {
+#if USE_UNLINKD
     int x;
     char *args[2];
     struct timeval slp;
@@ -193,6 +196,9 @@ unlinkdInit(void)
     if (FD_PIPE == fd_table[unlinkd_wfd].type)
        commUnsetNonBlocking(unlinkd_wfd);
     debug(12, 1) ("Unlinkd pipe opened on FD %d\n", unlinkd_wfd);
+#else
+    debug(12, 1) ("Unlinkd is disabled\n");
+#endif
 }
 
 #endif /* ndef UNLINK_DAEMON */
index 21de56e078c0ccdb7b36d0e8a566909420561b0d..c5c0cc13ed4af09fc6fccf686eae54b903f5e579 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: url.cc,v 1.124 2000/05/12 00:29:10 wessels Exp $
+ * $Id: url.cc,v 1.125 2000/05/16 07:06:08 wessels Exp $
  *
  * DEBUG: section 23    URL Parsing
  * AUTHOR: Duane Wessels
@@ -127,7 +127,7 @@ urlInitialize(void)
      * way we expect it to.
      */
     assert(0 == matchDomainName("foo.com", "foo.com"));
-    assert(0 < matchDomainName(".foo.com", "foo.com"));
+    assert(0 == matchDomainName(".foo.com", "foo.com"));
     assert(0 == matchDomainName("foo.com", ".foo.com"));
     assert(0 == matchDomainName(".foo.com", ".foo.com"));
     assert(0 == matchDomainName("x.foo.com", ".foo.com"));
@@ -142,6 +142,7 @@ urlInitialize(void)
     assert(0 == matchDomainName("FOO.com", "foo.COM"));
     assert(0 < matchDomainName("bfoo.com", "afoo.com"));
     assert(0 > matchDomainName("afoo.com", "bfoo.com"));
+    assert(0 < matchDomainName("x-foo.com", ".foo.com"));
     /* more cases? */
 }
 
@@ -256,6 +257,17 @@ urlParse(method_t method, char *url)
     }
     for (t = host; *t; t++)
        *t = xtolower(*t);
+    if (stringHasWhitespace(host)) {
+       if (URI_WHITESPACE_STRIP == Config.uri_whitespace) {
+           t = q = host;
+           while (*t) {
+               if (!xisspace(*t))
+                   *q++ = *t;
+               t++;
+           }
+           *q = '\0';
+       }
+    }
     if (strspn(host, valid_hostname_chars) != strlen(host)) {
        debug(23, 1) ("urlParse: Illegal character in hostname '%s'\n", host);
        return NULL;
@@ -399,12 +411,15 @@ urlCanonicalClean(const request_t * request)
  *    HOST          DOMAIN        MATCH?
  * ------------- -------------    ------
  *    foo.com       foo.com         YES
- *   .foo.com       foo.com          NO
+ *   .foo.com       foo.com         YES
  *  x.foo.com       foo.com          NO
  *    foo.com      .foo.com         YES
  *   .foo.com      .foo.com         YES
  *  x.foo.com      .foo.com         YES
  *
+ *  We strip leading dots on hosts (but not domains!) so that
+ *  ".foo.com" is is always the same as "foo.com".
+ *
  *  Return values:
  *     0 means the host matches the domain
  *     1 means the host is greater than the domain
@@ -416,6 +431,8 @@ matchDomainName(const char *h, const char *d)
 {
     int dl;
     int hl;
+    while ('.' == *h)
+       h++;
     hl = strlen(h);
     dl = strlen(d);
     /*
@@ -458,6 +475,15 @@ matchDomainName(const char *h, const char *d)
     /*
      * We found different characters in the same position (from the end).
      */
+    /*
+     * If one of those character is '.' then its special.  In order
+     * for splay tree sorting to work properly, "x-foo.com" must
+     * be greater than ".foo.com" even though '-' is less than '.'.
+     */
+    if ('.' == d[dl])
+       return 1;
+    if ('.' == h[hl])
+       return -1;
     return (xtolower(h[hl]) - xtolower(d[dl]));
 }
 
index 326985a12d07cce439194edb9cd6249438df6237..4ffb417b0209cc1a2297da0d2fe36bff34ba7499 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: wccp.cc,v 1.14 2000/03/06 16:23:36 wessels Exp $
+ * $Id: wccp.cc,v 1.15 2000/05/16 07:06:08 wessels Exp $
  *
  * DEBUG: section 80    WCCP Support
  * AUTHOR: Glenn Chisholm
@@ -37,7 +37,6 @@
 #if USE_WCCP
 
 #define WCCP_PORT 2048
-#define WCCP_VERSION 4
 #define WCCP_REVISION 0
 #define WCCP_RESPONSE_SIZE 12448
 #define WCCP_ACTIVE_CACHES 32
@@ -108,7 +107,7 @@ wccpInit(void)
        return;
     memset(&wccp_here_i_am, '\0', sizeof(wccp_here_i_am));
     wccp_here_i_am.type = htonl(WCCP_HERE_I_AM);
-    wccp_here_i_am.version = htonl(WCCP_VERSION);
+    wccp_here_i_am.version = htonl(Config.Wccp.version);
     wccp_here_i_am.revision = htonl(WCCP_REVISION);
     change = 0;
     if (Config.Wccp.router.s_addr != any_addr.s_addr)
@@ -232,7 +231,7 @@ wccpHandleUdp(int sock, void *not_used)
        return;
     if (Config.Wccp.router.s_addr != from.sin_addr.s_addr)
        return;
-    if (ntohl(wccp_i_see_you.version) != WCCP_VERSION)
+    if (ntohl(wccp_i_see_you.version) != Config.Wccp.version)
        return;
     if (ntohl(wccp_i_see_you.type) != WCCP_I_SEE_YOU)
        return;
index 133296bddf597d2b3484a03252e5df572e5ae1e9..6491de232fe9e135c95a9ceafb97072e1c498140 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: whois.cc,v 1.10 2000/03/06 16:23:36 wessels Exp $
+ * $Id: whois.cc,v 1.11 2000/05/16 07:06:08 wessels Exp $
  *
  * DEBUG: section 75    WHOIS protocol
  * AUTHOR: Duane Wessels, Kostas Anagnostakis
@@ -86,6 +86,7 @@ whoisReadReply(int fd, void *data)
     WhoisState *p = data;
     StoreEntry *entry = p->entry;
     char *buf = memAllocate(MEM_4K_BUF);
+    MemObject *mem = entry->mem_obj;
     int len;
     Counter.syscalls.sock.reads++;
     len = read(fd, buf, 4095);
@@ -93,6 +94,8 @@ whoisReadReply(int fd, void *data)
     debug(75, 3) ("whoisReadReply: FD %d read %d bytes\n", fd, len);
     debug(75, 5) ("{%s}\n", buf);
     if (len > 0) {
+       if (0 == mem->inmem_hi)
+           mem->reply->sline.status = HTTP_OK;
        fd_bytes(fd, len, FD_READ);
        kb_incr(&Counter.server.all.kbytes_in, len);
        kb_incr(&Counter.server.http.kbytes_in, len);
@@ -103,7 +106,7 @@ whoisReadReply(int fd, void *data)
            fd, xstrerror());
        if (ignoreErrno(errno)) {
            commSetSelect(fd, COMM_SELECT_READ, whoisReadReply, p, Config.Timeout.read);
-       } else if (entry->mem_obj->inmem_hi == 0) {
+       } else if (mem->inmem_hi == 0) {
            ErrorState *err;
            err = errorCon(ERR_READ_ERROR, HTTP_INTERNAL_SERVER_ERROR);
            err->xerrno = errno;