From d20b1cd0386b841df75fe2b06e321f468d8655c6 Mon Sep 17 00:00:00 2001
From: wessels <>
Date: Tue, 16 May 2000 13:05:50 +0000
Subject: [PATCH] DW: - 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.
---
ChangeLog | 101 ++++-
configure | 410 +++++++++---------
configure.in | 18 +-
errors/English/ERR_DNS_FAIL | 1 -
errors/English/ERR_FTP_PUT_CREATED | 3 -
errors/English/ERR_FTP_PUT_MODIFIED | 3 -
errors/English/ERR_SHUTTING_DOWN | 1 -
errors/Estonian/ERR_ACCESS_DENIED | 2 +-
errors/Estonian/ERR_CACHE_ACCESS_DENIED | 8 +-
errors/Estonian/ERR_CACHE_MGR_ACCESS_DENIED | 14 +-
errors/Estonian/ERR_CANNOT_FORWARD | 8 +-
errors/Estonian/ERR_CONNECT_FAIL | 2 +-
errors/Estonian/ERR_DNS_FAIL | 5 +-
errors/Estonian/ERR_FORWARDING_DENIED | 6 +-
errors/Estonian/ERR_FTP_DISABLED | 4 +-
errors/Estonian/ERR_FTP_FAILURE | 3 +-
errors/Estonian/ERR_FTP_FORBIDDEN | 3 +-
errors/Estonian/ERR_FTP_NOT_FOUND | 3 +-
errors/Estonian/ERR_FTP_PUT_ERROR | 3 +-
errors/Estonian/ERR_FTP_UNAVAILABLE | 3 +-
errors/Estonian/ERR_INVALID_REQ | 2 +-
errors/Estonian/ERR_INVALID_URL | 2 +-
errors/Estonian/ERR_LIFETIME_EXP | 2 +-
errors/Estonian/ERR_NO_RELAY | 4 +-
errors/Estonian/ERR_ONLY_IF_CACHED_MISS | 9 +-
errors/Estonian/ERR_READ_ERROR | 2 +-
errors/Estonian/ERR_READ_TIMEOUT | 2 +-
errors/Estonian/ERR_SHUTTING_DOWN | 2 +-
errors/Estonian/ERR_SOCKET_FAILURE | 2 +-
errors/Estonian/ERR_TOO_BIG | 27 +-
errors/Estonian/ERR_UNSUP_REQ | 3 +-
errors/Estonian/ERR_URN_RESOLVE | 2 +-
errors/Estonian/ERR_WRITE_ERROR | 2 +-
errors/Estonian/ERR_ZERO_SIZE_OBJECT | 2 +-
errors/Hungarian/ERR_TOO_BIG | 28 +-
errors/Japanese/ERR_SHUTTING_DOWN | 15 +-
errors/Japanese/ERR_TOO_BIG | 25 +-
errors/Korean/ERR_TOO_BIG | 26 ++
errors/Romanian/ERR_FTP_FORBIDDEN | 17 +
errors/Romanian/ERR_FTP_NOT_FOUND | 20 +
errors/Romanian/ERR_FTP_UNAVAILABLE | 16 +
errors/Simplify_Chinese/ERR_ACCESS_DENIED | 29 ++
.../Simplify_Chinese/ERR_CACHE_ACCESS_DENIED | 42 ++
.../ERR_CACHE_MGR_ACCESS_DENIED | 43 ++
errors/Simplify_Chinese/ERR_CANNOT_FORWARD | 38 ++
errors/Simplify_Chinese/ERR_CONNECT_FAIL | 31 ++
errors/Simplify_Chinese/ERR_DNS_FAIL | 32 ++
errors/Simplify_Chinese/ERR_FORWARDING_DENIED | 30 ++
errors/Simplify_Chinese/ERR_FTP_DISABLED | 27 ++
errors/Simplify_Chinese/ERR_FTP_FAILURE | 17 +
errors/Simplify_Chinese/ERR_FTP_FORBIDDEN | 18 +
errors/Simplify_Chinese/ERR_FTP_NOT_FOUND | 21 +
errors/Simplify_Chinese/ERR_FTP_PUT_CREATED | 10 +
errors/Simplify_Chinese/ERR_FTP_PUT_ERROR | 25 ++
errors/Simplify_Chinese/ERR_FTP_PUT_MODIFIED | 10 +
errors/Simplify_Chinese/ERR_FTP_UNAVAILABLE | 18 +
errors/Simplify_Chinese/ERR_INVALID_REQ | 43 ++
errors/Simplify_Chinese/ERR_INVALID_URL | 37 ++
errors/Simplify_Chinese/ERR_LIFETIME_EXP | 28 ++
errors/Simplify_Chinese/ERR_NO_RELAY | 27 ++
.../Simplify_Chinese/ERR_ONLY_IF_CACHED_MISS | 34 ++
errors/Simplify_Chinese/ERR_READ_ERROR | 32 ++
errors/Simplify_Chinese/ERR_READ_TIMEOUT | 33 ++
errors/Simplify_Chinese/ERR_SHUTTING_DOWN | 22 +
errors/Simplify_Chinese/ERR_SOCKET_FAILURE | 33 ++
errors/Simplify_Chinese/ERR_TOO_BIG | 25 ++
errors/Simplify_Chinese/ERR_UNSUP_REQ | 29 ++
errors/Simplify_Chinese/ERR_URN_RESOLVE | 27 ++
errors/Simplify_Chinese/ERR_WRITE_ERROR | 32 ++
errors/Simplify_Chinese/ERR_ZERO_SIZE_OBJECT | 27 ++
errors/Simplify_Chinese/README | 11 +
errors/Simplify_Chinese/generic | 30 ++
src/HttpReply.cc | 52 ++-
src/asn.cc | 8 +-
src/cache_cf.cc | 32 +-
src/cache_manager.cc | 16 +-
src/carp.cc | 7 +-
src/cf.data.pre | 34 +-
src/client.cc | 9 +-
src/client_db.cc | 6 +-
src/client_side.cc | 37 +-
src/delay_pools.cc | 57 ++-
src/dns.cc | 11 +-
src/dns_internal.cc | 23 +-
src/fqdncache.cc | 17 +-
src/ftp.cc | 28 +-
src/gopher.cc | 4 +-
src/http.cc | 16 +-
src/icmp.cc | 7 +-
src/icp_v2.cc | 3 +-
src/icp_v3.cc | 3 +-
src/ident.cc | 18 +-
src/ipcache.cc | 17 +-
src/mib.txt | 322 +++++++-------
src/mime.cc | 6 +-
src/neighbors.cc | 3 +-
src/net_db.cc | 8 +-
src/pinger.cc | 16 +-
src/protos.h | 4 +-
src/snmp_agent.cc | 10 +-
src/snmp_core.cc | 4 +-
src/store.cc | 37 +-
src/store_client.cc | 6 +-
src/store_dir.cc | 4 +-
src/structs.h | 7 +-
src/tools.cc | 83 ++--
src/unlinkd.cc | 8 +-
src/url.cc | 32 +-
src/wccp.cc | 7 +-
src/whois.cc | 7 +-
110 files changed, 1961 insertions(+), 680 deletions(-)
create mode 100644 errors/Korean/ERR_TOO_BIG
create mode 100644 errors/Romanian/ERR_FTP_FORBIDDEN
create mode 100644 errors/Romanian/ERR_FTP_NOT_FOUND
create mode 100644 errors/Romanian/ERR_FTP_UNAVAILABLE
create mode 100755 errors/Simplify_Chinese/ERR_ACCESS_DENIED
create mode 100755 errors/Simplify_Chinese/ERR_CACHE_ACCESS_DENIED
create mode 100755 errors/Simplify_Chinese/ERR_CACHE_MGR_ACCESS_DENIED
create mode 100755 errors/Simplify_Chinese/ERR_CANNOT_FORWARD
create mode 100755 errors/Simplify_Chinese/ERR_CONNECT_FAIL
create mode 100755 errors/Simplify_Chinese/ERR_DNS_FAIL
create mode 100755 errors/Simplify_Chinese/ERR_FORWARDING_DENIED
create mode 100755 errors/Simplify_Chinese/ERR_FTP_DISABLED
create mode 100755 errors/Simplify_Chinese/ERR_FTP_FAILURE
create mode 100755 errors/Simplify_Chinese/ERR_FTP_FORBIDDEN
create mode 100755 errors/Simplify_Chinese/ERR_FTP_NOT_FOUND
create mode 100755 errors/Simplify_Chinese/ERR_FTP_PUT_CREATED
create mode 100755 errors/Simplify_Chinese/ERR_FTP_PUT_ERROR
create mode 100755 errors/Simplify_Chinese/ERR_FTP_PUT_MODIFIED
create mode 100755 errors/Simplify_Chinese/ERR_FTP_UNAVAILABLE
create mode 100755 errors/Simplify_Chinese/ERR_INVALID_REQ
create mode 100755 errors/Simplify_Chinese/ERR_INVALID_URL
create mode 100755 errors/Simplify_Chinese/ERR_LIFETIME_EXP
create mode 100755 errors/Simplify_Chinese/ERR_NO_RELAY
create mode 100755 errors/Simplify_Chinese/ERR_ONLY_IF_CACHED_MISS
create mode 100755 errors/Simplify_Chinese/ERR_READ_ERROR
create mode 100755 errors/Simplify_Chinese/ERR_READ_TIMEOUT
create mode 100755 errors/Simplify_Chinese/ERR_SHUTTING_DOWN
create mode 100755 errors/Simplify_Chinese/ERR_SOCKET_FAILURE
create mode 100755 errors/Simplify_Chinese/ERR_TOO_BIG
create mode 100755 errors/Simplify_Chinese/ERR_UNSUP_REQ
create mode 100755 errors/Simplify_Chinese/ERR_URN_RESOLVE
create mode 100755 errors/Simplify_Chinese/ERR_WRITE_ERROR
create mode 100755 errors/Simplify_Chinese/ERR_ZERO_SIZE_OBJECT
create mode 100755 errors/Simplify_Chinese/README
create mode 100755 errors/Simplify_Chinese/generic
diff --git a/ChangeLog b/ChangeLog
index 8805e400a9..a03c596d8a 100644
--- 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
diff --git a/configure b/configure
index f36ed73817..ee062d6dd7 100755
--- 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 <
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 <
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 <
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 <
#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 <&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 <&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 <
#include
@@ -2401,7 +2403,7 @@ else
#include
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
@@ -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
@@ -2457,7 +2459,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <
#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
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 <&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 <
#include
@@ -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 <
#include
@@ -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 <&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 <&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 <
#include
@@ -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 <
#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 <
#include
@@ -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 <&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 <
#include
@@ -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 <
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 <
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 <
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 <
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 <&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 <&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 <&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 <&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 <
#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 <
#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 <
#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 <
#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 <
#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 <
#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 <
#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 <
#include
@@ -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 <&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 <&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 <&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 <&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 <&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 <&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 <&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 <&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 <&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 <&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 <&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 <&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 <&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 <&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
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 <&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 <
@@ -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 <
#include
@@ -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 <&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 <&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 <
@@ -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 <
@@ -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 <
@@ -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 <
@@ -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 <
@@ -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 <
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 <&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 <
@@ -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 <
@@ -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 <&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 <&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
diff --git a/configure.in b/configure.in
index 38fe971979..f131be58bb 100644
--- a/configure.in
+++ b/configure.in
@@ -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
case "$host" in
*-univel-sysv4.2MP)
diff --git a/errors/English/ERR_DNS_FAIL b/errors/English/ERR_DNS_FAIL
index b0c3bd22fa..ecb679e65c 100644
--- a/errors/English/ERR_DNS_FAIL
+++ b/errors/English/ERR_DNS_FAIL
@@ -12,7 +12,6 @@ The following error was encountered:
Unable to determine IP address from host name for
%H
-
The dnsserver returned:
diff --git a/errors/English/ERR_FTP_PUT_CREATED b/errors/English/ERR_FTP_PUT_CREATED
index 6f70f585a5..73bad240c2 100644
--- a/errors/English/ERR_FTP_PUT_CREATED
+++ b/errors/English/ERR_FTP_PUT_CREATED
@@ -4,6 +4,3 @@
Operation successful
File created
-
-
-
diff --git a/errors/English/ERR_FTP_PUT_MODIFIED b/errors/English/ERR_FTP_PUT_MODIFIED
index 95459cda24..efae5694f5 100644
--- a/errors/English/ERR_FTP_PUT_MODIFIED
+++ b/errors/English/ERR_FTP_PUT_MODIFIED
@@ -4,6 +4,3 @@
Operation successful
File updated
-
-
-
diff --git a/errors/English/ERR_SHUTTING_DOWN b/errors/English/ERR_SHUTTING_DOWN
index e89b7b1566..c93cf87a01 100644
--- a/errors/English/ERR_SHUTTING_DOWN
+++ b/errors/English/ERR_SHUTTING_DOWN
@@ -9,7 +9,6 @@ While trying to retrieve the URL:
%U
The following error was encountered:
-
This cache is in the process of shutting down and can not
service your request at this time. Please retry your
diff --git a/errors/Estonian/ERR_ACCESS_DENIED b/errors/Estonian/ERR_ACCESS_DENIED
index cd1eee91c5..d2fa85407a 100644
--- a/errors/Estonian/ERR_ACCESS_DENIED
+++ b/errors/Estonian/ERR_ACCESS_DENIED
@@ -18,5 +18,5 @@ Juurdepääs keelatud.
Juurdepääsu kontrolli konfiguratsioon blokeerib teie päringut.
Kui te arvate, et blokeering pole õige, kontakteeruge palun teenuse pakkujaga.
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_CACHE_ACCESS_DENIED b/errors/Estonian/ERR_CACHE_ACCESS_DENIED
index ddd59c25c3..f1f1609104 100644
--- a/errors/Estonian/ERR_CACHE_ACCESS_DENIED
+++ b/errors/Estonian/ERR_CACHE_ACCESS_DENIED
@@ -1,9 +1,9 @@
-VIGA: Cache kasutamine blokeeritud
+VIGA: Vahemälu serveri kasutamine blokeeritud
VIGA
-Cache kasutamine keelatud
+Vahemälu serveri kasutamine keelatud
Sooritades päringut URLile
@@ -13,7 +13,7 @@ tekkis järgnev viga:
-
-Cache kasutamine keelatud.
+Vahemälu serveri kasutamine keelatud.
@@ -26,7 +26,7 @@ kuni te pole läbinud autoriseerimist.
Autoriseerimiseks on teil vaja brauserit mis toetab HTTP/1.1 standardit,
nagu Netscape versioon 2.0 või uuem, või MS Internet Explorer
-3.0. Palun kontakteeruge cache administraatoriga,
+3.0. Palun kontakteeruge vahemälu serveri administraatoriga,
kui teil on probleeme autoriseerimisega või
vahetage/a> oma parool.
diff --git a/errors/Estonian/ERR_CACHE_MGR_ACCESS_DENIED b/errors/Estonian/ERR_CACHE_MGR_ACCESS_DENIED
index cce944574d..b27eb5c052 100644
--- a/errors/Estonian/ERR_CACHE_MGR_ACCESS_DENIED
+++ b/errors/Estonian/ERR_CACHE_MGR_ACCESS_DENIED
@@ -1,9 +1,9 @@
-VIGA: Cache haldaja kasutamine blokeeritud
+VIGA: Vahemälu serveri haldaja kasutamine blokeeritud
VIGA
-Cache haldaja kasutamine blokeeritud
+Vahemälu serveri haldaja kasutamine blokeeritud
Sooritades päringut URLile
@@ -13,19 +13,19 @@ tekkis järgnev viga:
-
-Cache haldaja kasutamine keelatud.
+Vahemälu serveri haldaja kasutamine keelatud.
Vabandust, teil pole õigust päringule:
%U
-sellele cache haldajale, kuni te pole läbinud autoriseerimist.
+sellele vahemälu serveri haldajale, kuni te pole läbinud autoriseerimist.
Autoriseerimiseks on teil vaja brauserit mis toetab HTTP/1.1 standardit,
nagu Netscape versioon 2.0 või uuem, või MS Internet Explorer
-3.0. Palun kontakteeruge cache administraatoriga,
+3.0. Palun kontakteeruge vahemälu serveri administraatoriga,
kui teil on probleeme autoriseerimisega või kui te olete
-administraator, lugege Squidi dokumentatsiooni cache haldaja interfeisi kohta
-ja kontrollige cache logi vea täpsema kirjelduse saamiseks.
+administraator, lugege Squidi dokumentatsiooni vahemälu serveri haldaja interfeisi kohta
+ja kontrollige vahemälu serveri logi täpsema veakirjelduse saamiseks.
diff --git a/errors/Estonian/ERR_CANNOT_FORWARD b/errors/Estonian/ERR_CANNOT_FORWARD
index 4e9e98b677..fab425a2c7 100644
--- a/errors/Estonian/ERR_CANNOT_FORWARD
+++ b/errors/Estonian/ERR_CANNOT_FORWARD
@@ -18,10 +18,10 @@ Päringu edastamine ebaõnnestus.
Päringut ei õnnestunud edastada ei originaali serverile ega
-ühelegi vanem cache serverile. Ilmselt on põhjus:
+ühelegi vanem vahemälu serverile. Ilmselt on põhjus:
-- Cache administraator ei võimalda teha otseseid päringuid
+
- Vahemälu serveri administraator ei võimalda teha otseseid päringuid
originaali serverile ja
-
- Kõik kirjeldatud vanem vanem cached on hetkel kättesaamatud.
+
- Kõik kirjeldatud vanem vahemälu serverid on hetkel kättesaamatud.
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_CONNECT_FAIL b/errors/Estonian/ERR_CONNECT_FAIL
index 6950e5d658..d0d8989d7b 100644
--- a/errors/Estonian/ERR_CONNECT_FAIL
+++ b/errors/Estonian/ERR_CONNECT_FAIL
@@ -23,4 +23,4 @@ Süsteem vastas:
Server või arvutivõrk ei tööta. Palun korrake
päringut.
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_DNS_FAIL b/errors/Estonian/ERR_DNS_FAIL
index 5474d85726..820a2618fb 100644
--- a/errors/Estonian/ERR_DNS_FAIL
+++ b/errors/Estonian/ERR_DNS_FAIL
@@ -22,8 +22,7 @@ DNS server vastas:
Mis tähendab:
- Cache ei suutnud lahendada URLis antud hosti nime. Palun kontrollige
+ Vahemälu server ei suutnud lahendada URLis antud hosti nime. Palun kontrollige
aadressi korrektsust.
-
-
+Teie teenuseVahemälu serve aadress on %w.
diff --git a/errors/Estonian/ERR_FORWARDING_DENIED b/errors/Estonian/ERR_FORWARDING_DENIED
index 32ad95ac59..b853dc1e01 100644
--- a/errors/Estonian/ERR_FORWARDING_DENIED
+++ b/errors/Estonian/ERR_FORWARDING_DENIED
@@ -17,6 +17,6 @@ Edastamine keelatud.
-Meie cache ei edasta teie päringut, kuna ta kasutab andmete edastamisel
-ainult naaber cache meetodit. Ilmselt on %i vigaselt konfigureeritud cache.
-
+Meie vahemälu server ei edasta teie päringut, kuna ta kasutab andmete edastamisel
+ainult naaber vahemälu serverite meetodit. Ilmselt on %i vigaselt konfigureeritud vahemälu server.
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_FTP_DISABLED b/errors/Estonian/ERR_FTP_DISABLED
index 52bdf0fd2c..24ff154820 100644
--- a/errors/Estonian/ERR_FTP_DISABLED
+++ b/errors/Estonian/ERR_FTP_DISABLED
@@ -17,5 +17,5 @@ FTP on blokeeritud
-See cache ei toeta FTPd.
-
+See vahemälu server ei toeta FTPd.
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_FTP_FAILURE b/errors/Estonian/ERR_FTP_FAILURE
index 61847a840e..53764d43df 100644
--- a/errors/Estonian/ERR_FTP_FAILURE
+++ b/errors/Estonian/ERR_FTP_FAILURE
@@ -17,5 +17,4 @@ ja sai järgneva vastuse
See olukord võib olla tekkinud, kui FTP URL on antud absoluutse
teega (mis on vastuolus RFC 1738-ga). Kui see on nii, siis saab faili
aadressilt %B.
-
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_FTP_FORBIDDEN b/errors/Estonian/ERR_FTP_FORBIDDEN
index e4caa782c3..322a67246c 100644
--- a/errors/Estonian/ERR_FTP_FORBIDDEN
+++ b/errors/Estonian/ERR_FTP_FORBIDDEN
@@ -12,5 +12,4 @@ Squid saatis järgneva FTP käsu:
ja sai sellise vastuse
%F
%g
-
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_FTP_NOT_FOUND b/errors/Estonian/ERR_FTP_NOT_FOUND
index 08718ef18d..9b3cb5daae 100644
--- a/errors/Estonian/ERR_FTP_NOT_FOUND
+++ b/errors/Estonian/ERR_FTP_NOT_FOUND
@@ -16,5 +16,4 @@ ja sai sellise vastuse
See olukord võib olla tekkinud, kui FTP URL on antud absoluutse
teega (mis on vastuolus RFC 1738-ga). Kui see on nii, siis saab faili
aadressilt %B.
-
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_FTP_PUT_ERROR b/errors/Estonian/ERR_FTP_PUT_ERROR
index 8f013079a1..5b861cc5a0 100644
--- a/errors/Estonian/ERR_FTP_PUT_ERROR
+++ b/errors/Estonian/ERR_FTP_PUT_ERROR
@@ -21,5 +21,4 @@ Mis tähendab:
Kontrolli failiteed, õiguseid, ketta ruumi ja proovi uuesti.
-
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_FTP_UNAVAILABLE b/errors/Estonian/ERR_FTP_UNAVAILABLE
index 705908c2ae..ae62459ad0 100644
--- a/errors/Estonian/ERR_FTP_UNAVAILABLE
+++ b/errors/Estonian/ERR_FTP_UNAVAILABLE
@@ -13,5 +13,4 @@ Squid saatis järgneva FTP käsu:
ja sai sellise vastuse
%F
%g
-
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_INVALID_REQ b/errors/Estonian/ERR_INVALID_REQ
index 1287e7f153..a7ea6eb763 100644
--- a/errors/Estonian/ERR_INVALID_REQ
+++ b/errors/Estonian/ERR_INVALID_REQ
@@ -28,4 +28,4 @@ Mõni osa HTTP päringust on vigane. Võimalikud probleemid:
POST või PUT päringutel puudub Content-Length
keelatud sümbolid hosti nimes; alakriipsud pole lubatud
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_INVALID_URL b/errors/Estonian/ERR_INVALID_URL
index a528693e33..21ca2b3cc0 100644
--- a/errors/Estonian/ERR_INVALID_URL
+++ b/errors/Estonian/ERR_INVALID_URL
@@ -24,4 +24,4 @@ Mõni osa URList on vigane. Võimalikud probleemid:
Vigane topelt-kaldkriips URLi teel
Vigane sümbol hosti nimes; alakriipsud pole lubatud
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_LIFETIME_EXP b/errors/Estonian/ERR_LIFETIME_EXP
index 2df6e97227..32792abd9d 100644
--- a/errors/Estonian/ERR_LIFETIME_EXP
+++ b/errors/Estonian/ERR_LIFETIME_EXP
@@ -18,4 +18,4 @@ tekkis järgnev viga:
Squid katkestas päringu, kuna see kestis liiga kaua.
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_NO_RELAY b/errors/Estonian/ERR_NO_RELAY
index 53bcfe79d2..336bbbe374 100644
--- a/errors/Estonian/ERR_NO_RELAY
+++ b/errors/Estonian/ERR_NO_RELAY
@@ -17,6 +17,6 @@ Wais edastaja puudub
-Selles Caches on WAISi edastav host kirjeldamata! Kontakteeruge
+Selles vahemälu serveris on WAISi edastav host kirjeldamata! Kontakteeruge
administraatoriga.
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_ONLY_IF_CACHED_MISS b/errors/Estonian/ERR_ONLY_IF_CACHED_MISS
index 21362c99e7..6e7f7d0904 100644
--- a/errors/Estonian/ERR_ONLY_IF_CACHED_MISS
+++ b/errors/Estonian/ERR_ONLY_IF_CACHED_MISS
@@ -12,17 +12,16 @@ tekkis järgnev viga:
-
-Kehtiv dokument puudub cachest ja
only-if-cached
-Valid document was not found in the cache and päring sisaldas
+Kehtiv dokument puudub vahemälu serverist ja päring sisaldas
only-if-cached
direktiivi.
-Te edastasite päringu only-if-cached
cache kontrolli
-direktiiviga. Dokumenti ei leitud cachest võita
+Te edastasite päringu only-if-cached
vahemälu kontrolli
+direktiiviga. Dokumenti ei leitud vahemälu serverist võita
nõudis uuendamist, mis on aga keelatud only-if-cached
direktiiviga.
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_READ_ERROR b/errors/Estonian/ERR_READ_ERROR
index dcc85715c2..8476e5ca4c 100644
--- a/errors/Estonian/ERR_READ_ERROR
+++ b/errors/Estonian/ERR_READ_ERROR
@@ -22,4 +22,4 @@ Süsteem vastas:
Andmete lugemisel tekkis veasituatsioon. Palun korrake päringut.
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_READ_TIMEOUT b/errors/Estonian/ERR_READ_TIMEOUT
index 4175c4ed46..ead00a7cd5 100644
--- a/errors/Estonian/ERR_READ_TIMEOUT
+++ b/errors/Estonian/ERR_READ_TIMEOUT
@@ -23,4 +23,4 @@ Süsteem vastas:
Lugejal katkes võrgust andmeid lugedes kannatus. Võrk või
server võib olla maas või umbes. Proovige uuesti.
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_SHUTTING_DOWN b/errors/Estonian/ERR_SHUTTING_DOWN
index 9db0092e92..6b9f9813c4 100644
--- a/errors/Estonian/ERR_SHUTTING_DOWN
+++ b/errors/Estonian/ERR_SHUTTING_DOWN
@@ -14,4 +14,4 @@ Tekkis järgnev viga:
Meie server on saanud käsu töö lõpetada ja
ei saa teie päringut hetkel teenindada. Palun korrake oma
päringut motilde;ne aja pärast.
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_SOCKET_FAILURE b/errors/Estonian/ERR_SOCKET_FAILURE
index cfb0890dda..4b225322e0 100644
--- a/errors/Estonian/ERR_SOCKET_FAILURE
+++ b/errors/Estonian/ERR_SOCKET_FAILURE
@@ -23,4 +23,4 @@ Süsteem vastas:
Squid ei suuda tekitada TCP pistikut, ilmselt ülekoormuse tõttu.
palun korrake päringut.
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_TOO_BIG b/errors/Estonian/ERR_TOO_BIG
index 337538ee43..5c561da2f1 100644
--- a/errors/Estonian/ERR_TOO_BIG
+++ b/errors/Estonian/ERR_TOO_BIG
@@ -1,26 +1,25 @@
-ERROR: The requested URL could not be retrieved
+IGA: Päring URLile ei saa vastust
-ERROR
-The requested URL could not be retrieved
+Viga
+Päring URLile ei saa vastust
-While trying to retrieve the URL:
+Sooritades päringut URLile
%U
-The following error was encountered:
+tekkis järgnev viga:
-
-The request or reply is too large.
+Päring või vastus on liiga suur.
-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.
-
-Your cache administrator is %w.
+
Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_UNSUP_REQ b/errors/Estonian/ERR_UNSUP_REQ
index 953c3fb2fd..20caff84f7 100644
--- a/errors/Estonian/ERR_UNSUP_REQ
+++ b/errors/Estonian/ERR_UNSUP_REQ
@@ -19,5 +19,4 @@ Tundmatu päringu meetod ja protokoll
Squid ei toeta kõiki päringu meetodeid kõikide protokollidega.
Näiteks, te ei saa teha POST operatsiooni Gopher päringus.
-
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_URN_RESOLVE b/errors/Estonian/ERR_URN_RESOLVE
index 49789e1994..dfb1e511a2 100644
--- a/errors/Estonian/ERR_URN_RESOLVE
+++ b/errors/Estonian/ERR_URN_RESOLVE
@@ -18,4 +18,4 @@ Ei suuda lahendada URN
Hei, mida sa ootad URNidelt %T peal:)
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_WRITE_ERROR b/errors/Estonian/ERR_WRITE_ERROR
index 55e6e94f85..c267db45aa 100644
--- a/errors/Estonian/ERR_WRITE_ERROR
+++ b/errors/Estonian/ERR_WRITE_ERROR
@@ -22,4 +22,4 @@ Süsteem vastas:
Võrku kirjutades tekkis viga. Palun korrake päringut.
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Estonian/ERR_ZERO_SIZE_OBJECT b/errors/Estonian/ERR_ZERO_SIZE_OBJECT
index 9192ba9f6f..dc166c1b44 100644
--- a/errors/Estonian/ERR_ZERO_SIZE_OBJECT
+++ b/errors/Estonian/ERR_ZERO_SIZE_OBJECT
@@ -18,4 +18,4 @@ Vastus on tühi
Squid ei saanud selle päringu vastuseks midagi...
-
+Teie teenusepakkuja aadress on %w.
diff --git a/errors/Hungarian/ERR_TOO_BIG b/errors/Hungarian/ERR_TOO_BIG
index 337538ee43..574c1da261 100644
--- a/errors/Hungarian/ERR_TOO_BIG
+++ b/errors/Hungarian/ERR_TOO_BIG
@@ -1,26 +1,28 @@
-ERROR: The requested URL could not be retrieved
+HIBA: A kért URL nem tölthetõ le
+
-ERROR
-The requested URL could not be retrieved
+HIBA
+A kért URL nem tölthetõ le
-While trying to retrieve the URL:
+Az alábbi URL letöltésekor:
%U
-The following error was encountered:
+a következõ hiba lépett fel:
-
-The request or reply is too large.
+A kérés vagy a válasz túl nagy méretû.
-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.
-Your cache administrator is %w.
+A cache adminisztrátora: %w.
diff --git a/errors/Japanese/ERR_SHUTTING_DOWN b/errors/Japanese/ERR_SHUTTING_DOWN
index 3cc9afaa05..13560846ee 100644
--- a/errors/Japanese/ERR_SHUTTING_DOWN
+++ b/errors/Japanese/ERR_SHUTTING_DOWN
@@ -1,17 +1,18 @@
-ERROR: The requested URL could not be retrieved
+
+¥¨¥é¡¼: ¥ê¥¯¥¨¥¹¥È¤µ¤ì¤¿ URL ¤Ï¼èÆÀ¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿
ERROR
-The requested URL could not be retrieved
+¥ê¥¯¥¨¥¹¥È¤µ¤ì¤¿ URL ¤Ï¼èÆÀ¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿
-While trying to retrieve the URL:
+°Ê²¼¤Î URL ¤ò¼èÆÀ¤·¤¿ºÝ¤Ë:
%U
-The following error was encountered:
+¼¡¤Î¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿:
-This cache is in the process of shutting down and can not
-service your request at this time. Please retry your
-request again soon.
+¤³¤Î¥¥ã¥Ã¥·¥å¤Ï²ÔƯÄä»ß¤Î½èÍý¤ËÆþ¤Ã¤Æ¤¤¤Æ¡¢
+¸½ºß¤¢¤Ê¤¿¤Î¥ê¥¯¥¨¥¹¥È¤Ø¤Î¥µ¡¼¥Ó¥¹¤òÄ󶡤Ǥ¤Þ¤»¤ó¡£
+¸å¤ÇºÆÅ٥ꥯ¥¨¥¹¥È¤·¤Æ¤¯¤À¤µ¤¤¡¥
diff --git a/errors/Japanese/ERR_TOO_BIG b/errors/Japanese/ERR_TOO_BIG
index 337538ee43..ec5e2f7c79 100644
--- a/errors/Japanese/ERR_TOO_BIG
+++ b/errors/Japanese/ERR_TOO_BIG
@@ -1,26 +1,27 @@
-ERROR: The requested URL could not be retrieved
+
+¥¨¥é¡¼: ¥ê¥¯¥¨¥¹¥È¤µ¤ì¤¿ URL ¤Ï¼èÆÀ¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿
ERROR
-The requested URL could not be retrieved
+¥ê¥¯¥¨¥¹¥È¤µ¤ì¤¿ URL ¤Ï¼èÆÀ¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿
-While trying to retrieve the URL:
+°Ê²¼¤Î URL ¤ò¼èÆÀ¤·¤¿ºÝ¤Ë:
%U
-The following error was encountered:
+¼¡¤Î¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿:
-
-The request or reply is too large.
+¥ê¥¯¥¨¥¹¥È¤Þ¤¿¤Ï¥ê¥×¥é¥¤¤¬Â礤¹¤®¤Þ¤¹¡£
-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¤Î¥ê¥¯¥¨¥¹¥È¤ò¤·¤Æ¤¤¤¿¤Ê¤é¡¢¥ê¥×¥é¥¤¤ÎËÜÂÎ(¥À¥¦¥ó¥í¡¼¥É¤·¤è¤¦
+¤È¤·¤Æ¤¤¤¿¤â¤Î)¤¬Â礤¹¤®¤Þ¤¹¡£¤³¤ì¤é¤ÎÀ©¸Â¤Ï¡¢¤³¤Î¥¥ã¥Ã¥·¥å¤Î
+±¿ÍѼԤˤè¤Ã¤Æ²Ý¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
+¤³¤ì¤¬¥¨¥é¡¼¤À¤È´¶¤¸¤ë¤È¤¤ÏľÀܱ¿ÍѼԤËÏ¢Íí¤·¤Æ²¼¤µ¤¤¡£
-Your cache administrator is %w.
+¥¥ã¥Ã¥·¥å¤Î´ÉÍý¼Ô¤Ï%w¤Ç¤¹¡£
diff --git a/errors/Korean/ERR_TOO_BIG b/errors/Korean/ERR_TOO_BIG
new file mode 100644
index 0000000000..337538ee43
--- /dev/null
+++ b/errors/Korean/ERR_TOO_BIG
@@ -0,0 +1,26 @@
+
+ERROR: The requested URL could not be retrieved
+
+ERROR
+The requested URL could not be retrieved
+
+
+While trying to retrieve the URL:
+%U
+
+The following error was encountered:
+
+-
+
+The request or reply is too large.
+
+
+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.
+
+
+Your cache administrator is %w.
diff --git a/errors/Romanian/ERR_FTP_FORBIDDEN b/errors/Romanian/ERR_FTP_FORBIDDEN
new file mode 100644
index 0000000000..10e52e0193
--- /dev/null
+++ b/errors/Romanian/ERR_FTP_FORBIDDEN
@@ -0,0 +1,17 @@
+
+ERROR: The requested URL could not be retrieved
+
+ERROR
+The requested URL could not be retrieved
+
+
+An FTP authentication failure occurred
+while trying to retrieve the URL:
+%U
+
+Squid sent the following FTP command:
+
%f
+and then received this reply
+%F
+%g
+Your cache administrator is %w.
diff --git a/errors/Romanian/ERR_FTP_NOT_FOUND b/errors/Romanian/ERR_FTP_NOT_FOUND
new file mode 100644
index 0000000000..ba290ca850
--- /dev/null
+++ b/errors/Romanian/ERR_FTP_NOT_FOUND
@@ -0,0 +1,20 @@
+
+ERROR: The requested URL could not be retrieved
+
+ERROR
+The requested URL could not be retrieved
+
+
+The following URL could not be retrieved:
+%U
+
+Squid sent the following FTP command:
+
%f
+and then received this reply
+%F
+%g
+
+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 %B.
+
Your cache administrator is %w.
diff --git a/errors/Romanian/ERR_FTP_UNAVAILABLE b/errors/Romanian/ERR_FTP_UNAVAILABLE
new file mode 100644
index 0000000000..b60b1a2033
--- /dev/null
+++ b/errors/Romanian/ERR_FTP_UNAVAILABLE
@@ -0,0 +1,16 @@
+
+ERROR: The requested URL could not be retrieved
+
+ERROR
+The requested URL could not be retrieved
+
+
+The FTP server was too busy while trying to retrieve the URL:
+%U
+
+Squid sent the following FTP command:
+
%f
+and then received this reply
+%F
+%g
+Your cache administrator is %w.
diff --git a/errors/Simplify_Chinese/ERR_ACCESS_DENIED b/errors/Simplify_Chinese/ERR_ACCESS_DENIED
new file mode 100755
index 0000000000..e53e8794ac
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_ACCESS_DENIED
@@ -0,0 +1,29 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
+
diff --git a/errors/Simplify_Chinese/ERR_CACHE_ACCESS_DENIED b/errors/Simplify_Chinese/ERR_CACHE_ACCESS_DENIED
new file mode 100755
index 0000000000..3ae984c5f1
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_CACHE_ACCESS_DENIED
@@ -0,0 +1,42 @@
+
+
+´íÎó£ºÍøÂ绺´æ·þÎñÆ÷¾Ü¾ø·ÃÎÊ
+
+
+´íÎó
+ÍøÂ绺´æ·þÎñÆ÷¾Ü¾ø·ÃÎÊ
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÏÂÃæµÄÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Cache Access Denied.
+
+»º´æ·þÎñÆ÷¾Ü¾ø·ÃÎÊ
+
+
+
+
+
+±§Ç¸£¬Äú²»±»ÔÊÐíͨ¹ý±¾ÍøÂ绺´æ·þÎñÆ÷·ÃÎÊÏÂÁÐλÖãº
+
%U
+³ý·ÇÄúͨ¹ýÁËÎÒÃǵÄÉí·ÝÑéÖ¤¡£
+
+
+
+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 cache administrator if you have
+difficulties authenticating yourself or
+change your default password.
+
+ÄúÐèҪʹÓà Netscape version 2.0 »ò¸üеİ汾£¬»òÊÇʹÓà Microsoft Internet
+Explorer 3.0£¬»òÊÇÒ»¸ö HTTP/1.1 ÏàÈݵÄä¯ÀÀÆ÷À´½øÐй¤×÷¡£Èç¹ûÄúÔÚÉí·ÝÑéÖ¤ÉÏ
+·¢ÉúÀ§ÄÑ£¬ÇëÓë ¹ÜÀíÕß ÁªÏµ¡£
+»òÊǸü¸ÄÄúµÄÃÜÂë¡£
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_CACHE_MGR_ACCESS_DENIED b/errors/Simplify_Chinese/ERR_CACHE_MGR_ACCESS_DENIED
new file mode 100755
index 0000000000..47ea1d9e7c
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_CACHE_MGR_ACCESS_DENIED
@@ -0,0 +1,43 @@
+
+
+´íÎ󣺻º´æ¹ÜÀíÆ÷¾Ü¾ø·ÃÎÊ
+
+
+´íÎó
+»º´æ¹ÜÀíÆ÷¾Ü¾ø·ÃÎÊ
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÏÂÃæµÄÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Cache Manager Access Denied.
+
+»º´æ¹ÜÀíÆ÷¾Ü¾ø·ÃÎÊ
+
+
+
+
+
+±§Ç¸£¬Äú²»±»ÔÊÐíͨ¹ý±¾»º´æ¹ÜÀíÆ÷·ÃÎÊÒÔÏÂλÖãº
+
%U
+³ý·ÇÄúͨ¹ýÎÒÃǵÄÉí·ÝÑéÖ¤¡£
+
+
+ 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 cache administrator if you have
+difficulties authenticating yourself or, if you are the
+administrator, read Squid documentation on cache manager interface and check
+cache log for more detailed error messages.
+
+ÄúÐèҪʹÓà Netscape version 2.0 »ò×îеİ汾£¬»òÊÇʹÓà Microsoft Internet
+Explorer 3.0£¬»òÊÇÒ»¸ö HTTP/1.1 ÏàÈݵÄä¯ÀÀÆ÷À´½øÐй¤×÷¡£Èç¹ûÄúÊÇÔÚÉí·ÝÑéÖ¤ÉÏ·¢
+ÉúÎÊÌ⣬ÇëÏÈÈ·¶¨ÄúÓÐȨ¶Ô»º´æÊ¹ÓùÜÀíÆ÷¡£
+»òÊÇÓë¹ÜÀíÕßÁªÏµ¡£Èç¹ûÄú¾ÍÊǹÜÀíÕߣ¬ÇëÏêϸÔĶÁ Squid Ëù¸½ÎļþÖÐÓë
+cache manager Óйز¿·Ý»ò¼ì²é cache log ÒÔ±ãµÃµ½¸üÏ꾡µÄϸ½Ú¡£
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_CANNOT_FORWARD b/errors/Simplify_Chinese/ERR_CANNOT_FORWARD
new file mode 100755
index 0000000000..03c1e62b4b
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_CANNOT_FORWARD
@@ -0,0 +1,38 @@
+
+
+´íÎó£»ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÏÂÃæµÄÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Unable to forward this request at this time.
+
+ĿǰÎÞ·¨½«ÄúµÄÇëÇó½øÐÐתËͲÙ×÷
+
+
+
+
+This request could not be forwarded to the origin server or to any
+parent caches. The most likely cause for this error is that:
+
+- The cache administrator does not allow this cache to make
+ direct connections to origin servers, and
+
- All configured parent caches are currently unreachable.
+
+
+
+ÄúµÄÇëÇóÎÞ·¨±»×ªË͵½ÔÊ¼ÍøÂç·þÎñÆ÷»òÆäËûµÄÉϲ㻺´æ·þÎñÆ÷£¬·¢ÉúÕâ¸öÎÊÌâ×î¿ÉÄܵÄÔÒòÊÇ£º
+
+- »º´æ·þÎñÆ÷¹ÜÀíÔ±²»ÔÊÐí±¾·þÎñÆ÷ÓëÔÊ¼ÍøÂç·þÎñÆ÷Ö±½ÓÁ¬½á£¬¶ø
+
- ËùÓб¾·þÎñÆ÷Ö¸¶¨µÄÉϲ㻺´æ·þÎñÆ÷¶¼ÔÝʱÎÞ·¨Á¬½á¡£
+
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_CONNECT_FAIL b/errors/Simplify_Chinese/ERR_CONNECT_FAIL
new file mode 100755
index 0000000000..86473a5f07
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_CONNECT_FAIL
@@ -0,0 +1,31 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Connection Failed
+
+Á¬½Óʧ°Ü
+
+
+
+
+ϵͳ·µ»ØÒÔÏÂÄÚÈÝ£º
+
%E
+
+
+The remote host or network may be down. Please try the request again.
+
+ÄúÒªÁ¬½áµÄÍøÂç·þÎñÆ÷»òÍøÂç¿ÉÄÜ·¢Éú¹ÊÕÏ¡£ÇëÉÔºóÔÙÊÔ¡£
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_DNS_FAIL b/errors/Simplify_Chinese/ERR_DNS_FAIL
new file mode 100755
index 0000000000..87a976a133
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_DNS_FAIL
@@ -0,0 +1,32 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+ÎÞ·¨½«ÄúÊäÈëµÄÖ÷»úÃû³Æ£º%Hת»»³É IP µØÖ·
+
+
+
+
+ÓòÃû·þÎñÆ÷·µ»ØÒÔÏÂѶϢ£º
+
+%z
+
+
+
+Õâ±íʾ£º
+
+ The cache was not able to resolve the hostname presented in the URL.
+ Check if the address is correct.
+ »º´æ·þÎñÆ÷ÎÞ·¨½âÎöÄúÊäÈëÍøÖ·£¨URL£©ÖеÄÖ÷»úÃû³Æ£¬
+ Çë¼ì²é¸ÃÃû³ÆÊÇ·ñÕýÈ·¡£
+
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_FORWARDING_DENIED b/errors/Simplify_Chinese/ERR_FORWARDING_DENIED
new file mode 100755
index 0000000000..cbcafb804a
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_FORWARDING_DENIED
@@ -0,0 +1,30 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Forwarding Denied.
+
+¾Ü¾ø×ªËÍ
+
+
+
+
+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.
+
+±¾»º´æ·þÎñÆ÷ÎÞ·¨×ªËÍÄúµÄÇëÇó£¬Ò²ÐíÄúÊÇͨ¹ýÒ»¸ö²¢Î´±»±¾»º´æ·þÎñÆ÷
+É趨ΪÔÊÐí´æÈ¡µÄ»º´æ·þÎñÆ÷£¨%i£©À´·ÃÎʵġ£
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_FTP_DISABLED b/errors/Simplify_Chinese/ERR_FTP_DISABLED
new file mode 100755
index 0000000000..f562ed2b4b
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_FTP_DISABLED
@@ -0,0 +1,27 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+FTP is Disabled
+
+½ûֹʹÓÃÎļþ´«ÊäÐÒé
+
+
+
+
+This cache does not support FTP.
+
+±¾»º´æ·þÎñÆ÷먦·ÅÎļþ´«Êä·þÎñ¡£
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_FTP_FAILURE b/errors/Simplify_Chinese/ERR_FTP_FAILURE
new file mode 100755
index 0000000000..af59114a20
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_FTP_FAILURE
@@ -0,0 +1,17 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±·¢ÉúÎļþ´«ÊäÐÒé´íÎó£º
+%U
+
+±¾»º´æ·þÎñÆ÷·¢³öÒÔÏ FTP ÃüÁ
+
%f
+È»ºóÊÕµ½ÈçÏ»ØÓ¦£º
+%F
+%g
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_FTP_FORBIDDEN b/errors/Simplify_Chinese/ERR_FTP_FORBIDDEN
new file mode 100755
index 0000000000..0698438a10
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_FTP_FORBIDDEN
@@ -0,0 +1,18 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±Îļþ´«ÊäÐÒ飨FTP£©Éí·ÝÑé֤ʧ°Ü£º
+%U
+
+±¾»º´æ·þÎñÆ÷·¢³öÒÔÏ FTP ÃüÁ
+
%f
+È»ºóÊÕµ½ÈçÏ»ØÓ¦£º
+%F
+%g
+
+
diff --git a/errors/Simplify_Chinese/ERR_FTP_NOT_FOUND b/errors/Simplify_Chinese/ERR_FTP_NOT_FOUND
new file mode 100755
index 0000000000..ea836a28b8
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_FTP_NOT_FOUND
@@ -0,0 +1,21 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+ÒÔÏÂÍøÖ·ÎÞ·¨¶ÁÈ¡£º
+%U
+
+±¾»º´æ·þÎñÆ÷·¢³öÒÔÏ FTP ÃüÁ
+
%f
+È»ºóÊÕµ½ÈçÏ»ØÓ¦£º
+%F
+%g
+
+Õâ¿ÉÄÜÊÇÓÉÓÚ FTP ÍøÖ·£¨URL£©Öаüº¬Á˾ø¶Ô·¾¶ËùÖ£¨²»·ûºÏ RFC1738£©¡£Èç¹ûÕæµÄÊÇÕâÑù£¬
+Îļþ¿ÉÒÔ´Ó%BλÖÃÕÒµ½¡£
+
+
diff --git a/errors/Simplify_Chinese/ERR_FTP_PUT_CREATED b/errors/Simplify_Chinese/ERR_FTP_PUT_CREATED
new file mode 100755
index 0000000000..c712cef588
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_FTP_PUT_CREATED
@@ -0,0 +1,10 @@
+
+
+ÎļþÉÏ´« PUT Ö¸ÁîÍê³É£ºÎļþÒѱ»½¨Á¢
+
+²Ù×÷³É¹¦
+ÎļþÒѽ¨Á¢
+
+
+
+
diff --git a/errors/Simplify_Chinese/ERR_FTP_PUT_ERROR b/errors/Simplify_Chinese/ERR_FTP_PUT_ERROR
new file mode 100755
index 0000000000..e3242c1e91
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_FTP_PUT_ERROR
@@ -0,0 +1,25 @@
+
+
+´íÎó£ºÎļþÉÏ´«Ê§°Ü
+
+´íÎó
+ÎļþÉÏ´«£¨FTP PUT£©²Ù×÷ʧ°Ü
+
+
+µ±³¢ÊÔÉÏ´«£¨PUT£©µ½ÒÔÏÂλÖÃʱ£º
+%U
+
+±¾»º´æ·þÎñÆ÷·¢³öÒÔÏ FTP ÃüÁ
+
+ %f
+
+È»ºóÊÕµ½ÈçÏ»ØÓ¦£º
+
+ %F
+
+
+
+Çë¼ì²éÉÏ´«Â·¾¶£¬ÉÏ´«Î»ÖöÁдȨÏÞ£¬¿ÉÓôÅÅ̿ռäºóÔÙ½øÐг¢ÊÔ¡£
+
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_FTP_PUT_MODIFIED b/errors/Simplify_Chinese/ERR_FTP_PUT_MODIFIED
new file mode 100755
index 0000000000..d7177435d1
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_FTP_PUT_MODIFIED
@@ -0,0 +1,10 @@
+
+
+ÎļþÉÏ´« PUT Ö¸ÁîÍê³É£ºÎļþÒѱ»¸üÐÂ
+
+²Ù×÷³É¹¦
+ÎļþÒѸüÐÂ
+
+
+
+
diff --git a/errors/Simplify_Chinese/ERR_FTP_UNAVAILABLE b/errors/Simplify_Chinese/ERR_FTP_UNAVAILABLE
new file mode 100755
index 0000000000..2dea2b894d
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_FTP_UNAVAILABLE
@@ -0,0 +1,18 @@
+
+
+´íÎó: ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê± FTP ·þÎñÆ÷¹ý棺
+%U
+
+±¾»º´æ·þÎñÆ÷·¢³öÒÔÏ FTP ÃüÁ
+
%f
+È»ºóÊÕµ½ÈçÏ»ØÓ¦£º
+%F
+%g
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_INVALID_REQ b/errors/Simplify_Chinese/ERR_INVALID_REQ
new file mode 100755
index 0000000000..59a7ad4f3f
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_INVALID_REQ
@@ -0,0 +1,43 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ½øÐÐÒÔÏÂÇëÇóʱ£º
+
+%R
+
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Invalid Request
+
+ÎÞЧµÄÇëÇó
+
+
+
+
+Some aspect of the HTTP Request is invalid. Possible problems:
+
+HTTP ÇëÇóµÄijЩ·½ÃæÊÇÎÞЧµÄ¡£¿ÉÄÜÊÇÏÂÁÐÎÊÌ⣺
+
+- Missing or unknown request method
+
ȱÉÙÇëÇó·½Ê½»òδ֪µÄÇëÇó·½Ê½
+ - Missing URL
+
ȱÉÙÍøÖ·
+ - Missing HTTP Identifier (HTTP/1.0)
+
ȱÉÙ HTTP ±êʶ£¨HTTP/1.0£©
+ - Request is too large
+
ÇëÇóÃüÁî¹ý³¤
+ - Content-Length missing for POST or PUT requests
+
POST »ò PUT ÇëÇóȱÉÙÄÚÈݳ¤¶È
+ - Illegal character in hostname; underscores are not allowed
+
Ö÷»úÃû³ÆÖаüº¬²»ºÏ·¨µÄ×Ö·û£»Ï»®ÏßÊDz»ÔÊÐíµÄ¡£
+
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w.
diff --git a/errors/Simplify_Chinese/ERR_INVALID_URL b/errors/Simplify_Chinese/ERR_INVALID_URL
new file mode 100755
index 0000000000..995b63e56c
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_INVALID_URL
@@ -0,0 +1,37 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Invalid URL
+
+ÎÞЧµÄÍøÖ·
+
+
+
+
+Some aspect of the requested URL is incorrect. Possible problems:
+
+ÊäÈëÍøÖ·µÄijЩµØ·½ÓÐÎ󣬿ÉÄÜÊÇÒòΪ£º
+
+- Missing or incorrect access protocol (should be `http://'' or similar)
+
ȱÉÙ»ò²»ÕýÈ·µÄͨѶÐÒ飨Ӧ¸ÃÈç `http://''»òÀàËÆµÄ¿ªÍ·£©
+ - Missing hostname
+
ȱÉÙÓûÁ¬½áµÄÖ÷»úÃû³Æ
+ - Illegal double-escape in the URL-Path
+
ÍøÖ·Â·¾¶ÖÐÓв»ºÏ·¨Ë«ÖØ×ªÒå·û
+ - Illegal character in hostname; underscores are not allowed
+
Ö÷»úÃû³ÆÖаüº¬²»ºÏ·¨µÄ×Ö·û£»Ï»®ÏßÊDz»ÔÊÐíµÄ¡£
+
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_LIFETIME_EXP b/errors/Simplify_Chinese/ERR_LIFETIME_EXP
new file mode 100755
index 0000000000..c2f4e25ed6
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_LIFETIME_EXP
@@ -0,0 +1,28 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Connection Lifetime Expired
+
+Á¬½Ó³¬Ê±
+
+
+
+
+Squid has terminated the request because it has exceeded the maximum
+connection lifetime.
+
+»º´æ·þÎñÆ÷ÒÑÖÕÖ¹ÄúµÄÁ¬½ÓÇëÇó£¬ÒòΪÒѾ³¬¹ýÁË×î´óÁ¬½ÓµÈ´ýʱ¼ä¡£
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_NO_RELAY b/errors/Simplify_Chinese/ERR_NO_RELAY
new file mode 100755
index 0000000000..c8a642859f
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_NO_RELAY
@@ -0,0 +1,27 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+No Wais Relay
+
+ÎÞ Wais ÖмÌ
+
+
+
+
+There is no WAIS Relay host defined for this Cache! Yell at the administrator.
+
+±¾»º´æ·þÎñÆ÷ûÓÐÉ趨 WAIS ÖмÌÖ÷»ú£¡ÈçÓÐÒÉÎÊÇëÓ뻺´æ·þÎñÆ÷¹ÜÀíÔ±ÁªÏµ¡£
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_ONLY_IF_CACHED_MISS b/errors/Simplify_Chinese/ERR_ONLY_IF_CACHED_MISS
new file mode 100755
index 0000000000..73a99c01a9
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_ONLY_IF_CACHED_MISS
@@ -0,0 +1,34 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Valid document was not found in the cache and
only-if-cached
+directive was specified.
+
+ÇëÇóµÄÎļþÔÚ±¾»º´æ·þÎñÆ÷ÉÏδÕÒµ½£¬¶øÄúÉ趨ÁËonly-if-cached
£¨Ö»¶ÁÈ¡»º´æ£©
+Ö¸Áî¡£
+
+
+
+
+
+You have issued a request with a only-if-cached
cache control
+directive. The document was not found in the cache, or it required
+revalidation prohibited by only-if-cached
directive.
+
+ÄúËͳöÁËÒ»¸ö°üº¬ only-if-cached
£¨Ö»¶ÁÈ¡»º´æ£©»º´æ¿ØÖÆÖ¸ÁîµÄÁ¬½áÇëÇó¡£
+¶øËùÒªµÄÎļþ²¢Î´´æÔÚÓÚ±¾»º´æ·þÎñÆ÷ÖУ¬»òÕßÕâ¸öÁ¬½áÇëÇóÐèҪˢÐÂÎļþ¶ø
+only-if-cached
Ö¸Áî½ûÖ¹Õâô×ö¡£
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_READ_ERROR b/errors/Simplify_Chinese/ERR_READ_ERROR
new file mode 100755
index 0000000000..763f8755e7
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_READ_ERROR
@@ -0,0 +1,32 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Read Error
+
+¶ÁÈ¡´íÎó
+
+
+
+
+ϵͳ»ØÓ¦£º
+
%E
+
+
+An error condition occurred while reading data from the network. Please
+retry your request.
+
+ÕýÔÚͨ¹ýÍøÂç¶ÁÈ¡Êý¾Ýʱ·¢ÉúÁË´íÎó£¬ÇëÖØÐ³¢ÊÔ¡£
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_READ_TIMEOUT b/errors/Simplify_Chinese/ERR_READ_TIMEOUT
new file mode 100755
index 0000000000..595a87498d
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_READ_TIMEOUT
@@ -0,0 +1,33 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Read Timeout
+
+¶ÁÈ¡³¬Ê±
+
+
+
+
+ϵͳ»ØÓ¦£º
+
%E
+
+
+A Timeout occurred while waiting to read data from the network. The network
+or server may be down or congested. Please retry your request.
+
+µ±Í¨¹ýÍøÂç¶ÁÈ¡Êý¾Ýʱ£¬³¬¹ýÁ˵ȴýʱÏÞ¡£
+¿ÉÄÜÊÇÒòÎªÍøÂç¶ÂÈû»òÁ¬½ÓµÄÍøÂç·þÎñÆ÷Òѹرա£ÇëÖØÐ³¢ÊÔ¡£
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_SHUTTING_DOWN b/errors/Simplify_Chinese/ERR_SHUTTING_DOWN
new file mode 100755
index 0000000000..754d972d84
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_SHUTTING_DOWN
@@ -0,0 +1,22 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+
+This cache is in the process of shutting down and can not
+service your request at this time. Please retry your
+request again soon.
+
+±¾»º´æ·þÎñÆ÷ÕýÔڹرգ¬ÔÝʱÎÞ·¨ÎªÄú·þÎñ¡£
+ÇëÉÔºîÔÙÊÔ¡£
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_SOCKET_FAILURE b/errors/Simplify_Chinese/ERR_SOCKET_FAILURE
new file mode 100755
index 0000000000..5636fc9249
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_SOCKET_FAILURE
@@ -0,0 +1,33 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Socket Failure
+
+Socket ½¨Á¢Ê§°Ü
+
+
+
+
+ϵͳ»ØÓ¦£º
+
%E
+
+
+Squid is unable to create a TCP socket, presumably due to excessive load.
+Please retry your request.
+
+Squid £¨»º´æ·þÎñÆ÷£©ÎÞ·¨½¨Á¢ TCP socket£¨ÎÞ·¨ÏòϵͳÉêÇ뽨Á¢ÐµÄÍøÂçÁ¬½Ó£©£¬
+¿ÉÄÜÊÇÒòΪ¸ººÉ¹ýÖØ£¬ÇëÖØÐ³¢ÊÔ¡£
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_TOO_BIG b/errors/Simplify_Chinese/ERR_TOO_BIG
new file mode 100755
index 0000000000..83cebf9512
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_TOO_BIG
@@ -0,0 +1,25 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+
+
±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_UNSUP_REQ b/errors/Simplify_Chinese/ERR_UNSUP_REQ
new file mode 100755
index 0000000000..c9e52872ea
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_UNSUP_REQ
@@ -0,0 +1,29 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Unsupported Request Method and Protocol
+
+²»Ö§³ÖµÄÇëÇó·½Ê½ºÍÐÒé
+
+
+
+
+Squid does not support all request methods for all access protocols.
+For example, you can not POST a Gopher request.
+
+Squid £¨»º´æ·þÎñÆ÷£©²»ÄܶÔËùÓеĴæÈ¡ÐÒéÖ§³ÖËùÓеÄÇëÇó·½Ê½¡£
+±ÈÈç˵£¬Äã²»ÄÜ¶Ô GOPHER ½øÐÐÒ»¸ö POST ÇëÇó¡£
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_URN_RESOLVE b/errors/Simplify_Chinese/ERR_URN_RESOLVE
new file mode 100755
index 0000000000..88edf7bd2a
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_URN_RESOLVE
@@ -0,0 +1,27 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄ URN ÎÞ·¨»ñÈ¡
+
+´íÎó
+URN ÖеÄÒ»¸öÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏ URN ʱ£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Cannot Resolve URN
+
+ÎÞ·¨½âÎö URN
+
+
+
+
+Hey, don't expect too much from URNs on %T :)
+
+±§Ç¸£¡Äú²»ÄÜ¶Ô %T É쵀 URNs ÆÚ´ýÌ«¶à :)
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_WRITE_ERROR b/errors/Simplify_Chinese/ERR_WRITE_ERROR
new file mode 100755
index 0000000000..87c5d5155b
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_WRITE_ERROR
@@ -0,0 +1,32 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Write Error
+
+дÈë´íÎó
+
+
+
+
+ϵͳ»ØÓ¦£º
+
%E
+
+
+An error condition occurred while writing to the network. Please retry your
+request.
+
+ͨ¹ýÍøÂçдÈëÊý¾Ýʱ·¢ÉúÁË´íÎó£¬ÇëÖØÐ³¢ÊÔ¡£
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/ERR_ZERO_SIZE_OBJECT b/errors/Simplify_Chinese/ERR_ZERO_SIZE_OBJECT
new file mode 100755
index 0000000000..287dda31e6
--- /dev/null
+++ b/errors/Simplify_Chinese/ERR_ZERO_SIZE_OBJECT
@@ -0,0 +1,27 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+Zero Sized Reply
+
+ÏìÓ¦ÄÚÈݳ¤¶ÈΪÁã
+
+
+
+
+Squid did not receive any data for this request.
+
+±¾»º´æ·þÎñÆ÷´Ó±»Á¬½ÓµÄ·þÎñÆ÷ÉÏûÓÐÊÕµ½ÈκÎÊý¾Ý¡£
+
+±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%w
diff --git a/errors/Simplify_Chinese/README b/errors/Simplify_Chinese/README
new file mode 100755
index 0000000000..4b1bdbf251
--- /dev/null
+++ b/errors/Simplify_Chinese/README
@@ -0,0 +1,11 @@
+This Simplify Chinese error pages is based on the
+Erick C. Chang '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
index 0000000000..cc1a7b552c
--- /dev/null
+++ b/errors/Simplify_Chinese/generic
@@ -0,0 +1,30 @@
+
+
+´íÎó£ºÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+´íÎó
+ÄúËùÇëÇóµÄÍøÖ·£¨URL£©ÎÞ·¨»ñÈ¡
+
+
+µ±³¢ÊÔ¶ÁÈ¡ÒÔÏÂÍøÖ·£¨URL£©Ê±£º
+%U
+
+·¢ÉúÁËÏÂÁеĴíÎó£º
+
+-
+
+@SHORT_DESCRIPTION@
+
+
+
+
+ϵͳ»ØÓ¦ÒÔÏÂÐÅÏ¢£º
+
%E
+
+
+Õâ±íʾ£º
+
+ @LONG_DESCRIPTION@
+
+
+
diff --git a/src/HttpReply.cc b/src/HttpReply.cc
index a0e683d322..aeaac40792 100644
--- a/src/HttpReply.cc
+++ b/src/HttpReply.cc
@@ -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 */
diff --git a/src/asn.cc b/src/asn.cc
index 0a9f547b07..a9ba89adc1 100644
--- a/src/asn.cc
+++ b/src/asn.cc
@@ -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') {
diff --git a/src/cache_cf.cc b/src/cache_cf.cc
index a8ccf7ca14..6caa482cee 100644
--- a/src/cache_cf.cc
+++ b/src/cache_cf.cc
@@ -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 :
+ * 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 */
diff --git a/src/cache_manager.cc b/src/cache_manager.cc
index ad9aa399a0..9cdd9aa72a 100644
--- a/src/cache_manager.cc
+++ b/src/cache_manager.cc
@@ -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);
}
diff --git a/src/carp.cc b/src/carp.cc
index ab3d9f700a..179b139d08 100644
--- a/src/carp.cc
+++ b/src/carp.cc
@@ -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);
diff --git a/src/cf.data.pre b/src/cf.data.pre
index 630577189f..5c60379ff2 100644
--- a/src/cf.data.pre
+++ b/src/cf.data.pre
@@ -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
diff --git a/src/client.cc b/src/client.cc
index b2f7368e5f..164273b55b 100644
--- a/src/client.cc
+++ b/src/client.cc
@@ -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)
diff --git a/src/client_db.cc b/src/client_db.cc
index c0409fe317..bc8a3f2922 100644
--- a/src/client_db.cc
+++ b/src/client_db.cc
@@ -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:
diff --git a/src/client_side.cc b/src/client_side.cc
index d2e7c38ae2..6cb7d030b3 100644
--- a/src/client_side.cc
+++ b/src/client_side.cc
@@ -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),
diff --git a/src/delay_pools.cc b/src/delay_pools.cc
index 45f34daa4c..6060b881fd 100644
--- a/src/delay_pools.cc
+++ b/src/delay_pools.cc
@@ -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
@@ -39,12 +39,14 @@
#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
diff --git a/src/dns.cc b/src/dns.cc
index 63005cd05c..c9b304ee9d 100644
--- a/src/dns.cc
+++ b/src/dns.cc
@@ -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 */
diff --git a/src/dns_internal.cc b/src/dns_internal.cc
index c195de5117..d22de827c8 100644
--- a/src/dns_internal.cc
+++ b/src/dns_internal.cc
@@ -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);
}
diff --git a/src/fqdncache.cc b/src/fqdncache.cc
index fcf275e691..75ef5f0ca6 100644
--- a/src/fqdncache.cc
+++ b/src/fqdncache.cc
@@ -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]) {
diff --git a/src/ftp.cc b/src/ftp.cc
index ec3c1d4eef..679bb5126f 100644
--- a/src/ftp.cc
+++ b/src/ftp.cc
@@ -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, "
\n");
storeAppendPrintf(e, "\n");
- storeAppendPrintf(e, "Generated %s by %s (%s)\n",
+ storeAppendPrintf(e, "Generated %s by %s (%s)\n",
mkrfc1123(squid_curtime),
getMyHostname(),
- full_appname_string,
- version_string);
+ full_appname_string);
storeAppendPrintf(e, "\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
diff --git a/src/gopher.cc b/src/gopher.cc
index feb6dbb03c..69c639e989 100644
--- a/src/gopher.cc
+++ b/src/gopher.cc
@@ -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;
diff --git a/src/http.cc b/src/http.cc
index b56f66d2f2..8e5f4a9f96 100644
--- a/src/http.cc
+++ b/src/http.cc
@@ -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';
diff --git a/src/icmp.cc b/src/icmp.cc
index 2dc1e8c0d9..8cd8097ca7 100644
--- a/src/icmp.cc
+++ b/src/icmp.cc
@@ -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;
}
diff --git a/src/icp_v2.cc b/src/icp_v2.cc
index 84de369b0a..45023da234 100644
--- a/src/icp_v2.cc
+++ b/src/icp_v2.cc
@@ -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;
diff --git a/src/icp_v3.cc b/src/icp_v3.cc
index 9e2271ab86..0be5883c59 100644
--- a/src/icp_v3.cc
+++ b/src/icp_v3.cc
@@ -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;
diff --git a/src/ident.cc b/src/ident.cc
index 57571a3e8e..4a7fb1369e 100644
--- a/src/ident.cc
+++ b/src/ident.cc
@@ -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);
diff --git a/src/ipcache.cc b/src/ipcache.cc
index eb6ee01bc8..adf7b6c6b2 100644
--- a/src/ipcache.cc
+++ b/src/ipcache.cc
@@ -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 *
diff --git a/src/mib.txt b/src/mib.txt
index ee007bb29b..507be53d4f 100644
--- a/src/mib.txt
+++ b/src/mib.txt
@@ -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
+
diff --git a/src/mime.cc b/src/mime.cc
index 2bf36bc1e9..e3320cd0fc 100644
--- a/src/mime.cc
+++ b/src/mime.cc
@@ -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);
}
diff --git a/src/neighbors.cc b/src/neighbors.cc
index ddc7ef40db..3b5d860b80 100644
--- a/src/neighbors.cc
+++ b/src/neighbors.cc
@@ -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;
diff --git a/src/net_db.cc b/src/net_db.cc
index aedb2e3992..a24bd541e1 100644
--- a/src/net_db.cc
+++ b/src/net_db.cc
@@ -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);
diff --git a/src/pinger.cc b/src/pinger.cc
index 4f39b48118..7c551d52cc 100644
--- a/src/pinger.cc
+++ b/src/pinger.cc
@@ -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,
diff --git a/src/protos.h b/src/protos.h
index 07584db565..3b6a72c0b3 100644
--- a/src/protos.h
+++ b/src/protos.h
@@ -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);
diff --git a/src/snmp_agent.cc b/src/snmp_agent.cc
index 8abe1d1cf1..7994332cce 100644
--- a/src/snmp_agent.cc
+++ b/src/snmp_agent.cc
@@ -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;
diff --git a/src/snmp_core.cc b/src/snmp_core.cc
index a0b2bc713d..678ea2ca90 100644
--- a/src/snmp_core.cc
+++ b/src/snmp_core.cc
@@ -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;
diff --git a/src/store.cc b/src/store.cc
index 57001d19fd..11fc6a7405 100644
--- a/src/store.cc
+++ b/src/store.cc
@@ -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 reported that
+ * responses without content length would sometimes get released
+ * in client_side, thinking that the response is incomplete.
+ */
storeSwapOut(e);
+ InvokeHandlers(e);
}
/*
diff --git a/src/store_client.cc b/src/store_client.cc
index 37b6515436..8a11130c58 100644
--- a/src/store_client.cc
+++ b/src/store_client.cc
@@ -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);
diff --git a/src/store_dir.cc b/src/store_dir.cc
index 7de7572079..f66343bbc7 100644
--- a/src/store_dir.cc
+++ b/src/store_dir.cc
@@ -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);
diff --git a/src/structs.h b/src/structs.h
index dc4540fdb3..c9188cee13 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -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 {
diff --git a/src/tools.cc b/src/tools.cc
index 0a3a94bf75..f0c45b8309 100644
--- a/src/tools.cc
+++ b/src/tools.cc
@@ -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
}
diff --git a/src/unlinkd.cc b/src/unlinkd.cc
index 61a644b47f..5704b55bbb 100644
--- a/src/unlinkd.cc
+++ b/src/unlinkd.cc
@@ -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 */
diff --git a/src/url.cc b/src/url.cc
index 21de56e078..c5c0cc13ed 100644
--- a/src/url.cc
+++ b/src/url.cc
@@ -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]));
}
diff --git a/src/wccp.cc b/src/wccp.cc
index 326985a12d..4ffb417b02 100644
--- a/src/wccp.cc
+++ b/src/wccp.cc
@@ -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;
diff --git a/src/whois.cc b/src/whois.cc
index 133296bddf..6491de232f 100644
--- a/src/whois.cc
+++ b/src/whois.cc
@@ -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;
--
2.39.5