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 +

      +·¢ÉúÁËÏÂÁеĴíÎó£º +

        +
      • + +Access Denied. +
        ¾Ü¾ø·ÃÎÊ +
        +

        +Access control configuration prevents your request from +being allowed at this time. Please contact your service provider if +you feel this is incorrect. +
        +µ±Ç°µÄ´æÈ¡¿ØÖÆÉ趨½ûÖ¹ÄúµÄÇëÇó±»½ÓÊÜ£¬ +Èç¹ûÄú¾õµÃÕâÊÇ´íÎóµÄ£¬ÇëÓëÄúÍøÂ··þÎñµÄÌṩÕßÁªÏµ¡£ +

      +

      +

      ±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%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 +

      +·¢ÉúÁËÏÂÁеĴíÎó£º +

        +
      • + +ÇëÇó»òÏìӦ̫´ó + +

        +Èç¹ûÄúÕýÔÚ½øÐÐ POST »ò PUT ÇëÇó£¬ÔòÄúÇëÇó´«Ë͵ÄÄÚÈÝÌ«´ó£¨¿ÉÄÜÄú +ÕýÔÚÉÏ´«Îļþ£©¡£Èç¹ûÄúÕýÔÚ½øÐÐ GET ÇëÇó£¬ÔòÏìÓ¦µÄÄÚÈÝÌ«³¤¡£ÕâЩ +³¤¶ÈÏÞÖÆÓɲÙ×÷±¾»º´æ·þÎñÆ÷µÄ·þÎñÌṩÕßÖÆ¶¨¡£Èç¹ûÄú¾õµÃÕâÊÇ´íÎóµÄ£¬ +ÇëÓëËûÃÇÖ±½ÓÁªÏµ¡£ +

      +

      +

      ±¾»º´æ·þÎñÆ÷¹ÜÀíÔ±£º%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