+Changes to squid-3.0.STABLE1 (1 Mar 2008):
+
+ - Add myportname ACL for matching the accepting port name (see release notes)
+ - Add include directive for squid.conf (see release notes)
+ - Add ability to strip kerberos realm from usernames during Auth
+ - License cleanup to comply with GPLv2 or later
+ - Updated Error Pages and Translations
+ - Updated configuration examples
+ - Updated valgrind support for valgrind-3.3.0
+ - Improved support for Windows and MacOS X Leopard
+ - Improved support for files larger than 2GB
+ - Improved support for CARP arrays and WCCPv2
+ - Improved cachmgr, SNMP, and log reporting
+ - ... and as usual Many bug fixes since STABLE 1
+
Changes to squid-3.0.STABLE1 (13 Dec 2007):
- Major rewrite translating the code to C++, originally based on
#! /bin/sh
-# From configure.in Revision.
+# From configure.in Revision: 1.488.2.2 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61 for Squid Web Proxy 3.0.STABLE1-CVS.
#
+
for ac_header in \
fcntl.h \
fnmatch.h \
getopt.h \
+ glob.h \
gnumalloc.h \
grp.h \
ip_compat.h \
+
for ac_func in \
getrusage \
getspnam \
gettimeofday \
+ glob \
htobe16 \
htole16 \
kqueue\
dnl Configuration input file for Squid
dnl
-dnl $Id: configure.in,v 1.488.2.1.2.1 2007/12/27 20:34:51 serassio Exp $
+dnl $Id: configure.in,v 1.488.2.1.2.2 2008/02/29 18:29:52 serassio Exp $
dnl
dnl
dnl
AC_CONFIG_AUX_DIR(cfgaux)
AC_CONFIG_SRCDIR([src/main.cc])
AM_INIT_AUTOMAKE([tar-ustar])
-AC_REVISION($Revision: 1.488.2.1.2.1 $)dnl
+AC_REVISION($Revision: 1.488.2.1.2.2 $)dnl
AC_PREFIX_DEFAULT(/usr/local/squid)
AM_MAINTAINER_MODE
fcntl.h \
fnmatch.h \
getopt.h \
+ glob.h \
gnumalloc.h \
grp.h \
ip_compat.h \
getrusage \
getspnam \
gettimeofday \
+ glob \
htobe16 \
htole16 \
kqueue\
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
- <TITLE>Squid 3.0.RC1 release notes</TITLE>
+ <TITLE>Squid 3.0.STABLE2 release notes</TITLE>
</HEAD>
<BODY>
-<H1>Squid 3.0.RC1 release notes</H1>
+<H1>Squid 3.0.STABLE2 release notes</H1>
-<H2>Squid Developers</H2>$Id: release-3.0.html,v 1.12 2007/11/18 17:23:01 serassio Exp $
+<H2>Squid Developers</H2>$Id: release-3.0.html,v 1.12.4.1 2008/02/29 18:29:52 serassio Exp $
<HR>
<EM>This document contains the release notes for version 3.0 of Squid.
Squid is a WWW Cache application developed by the National Laboratory
<HR>
<H2><A NAME="s1">1. Notice</A></H2>
-<P>The Squid Team are pleased to announce the release of Squid-3.0.RC1 for pre-release testing.</P>
+<P>The Squid Team are pleased to announce the release of Squid-3.0.STABLE2.</P>
<P>This new release is available for download from
<A HREF="http://www.squid-cache.org/Versions/v3/3.0/">http://www.squid-cache.org/Versions/v3/3.0/</A> or the
<A HREF="http://www.squid-cache.org/Mirrors/http-mirrors.html">mirrors</A>.</P>
-<P>A large number of the show-stopper bugs have been fixed along with general improvements to the ICAP support.
-While this release is not deemed ready for production use, we believe it is ready for wider testing by the community.</P>
+<P>A large number of the show-stopper bugs have been fixed along with general improvements to the ICAP support and additional Languages.</P>
<P>We welcome feedback and bug reports. If you find a bug, please see
<A HREF="http://wiki.squid-cache.org/SquidFaq/TroubleShooting#head-7067fc0034ce967e67911becaabb8c95a34d576d">http://wiki.squid-cache.org/SquidFaq/TroubleShooting#head-7067fc0034ce967e67911becaabb8c95a34d576d</A> for how to submit a report with a stack trace.</P>
<H2><A NAME="s2">2. Known issues</A></H2>
-<P>Although this release is deemed good enough for testing in many setups, please note the existence of
+<P>Although this release is deemed good enough for use in many setups, please note the existence of
<A HREF="http://www.squid-cache.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&target_milestone=3.0&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=bugs.bug_severity&field0-0-0=noop&type0-0-0=noop&value0-0-0=">open bugs against Squid-3.0</A>.</P>
-<H2><A NAME="s3">3. Changes since earlier PRE releases of Squid-3.0</A></H2>
+<H2><A NAME="s3">3. Changes since earlier STABLE releases of Squid-3.0</A></H2>
<P>The 3.0 change history can be
<A HREF="http://www.squid-cache.org/Versions/v3/3.0/changesets/">viewed here</A>.</P>
</H2>
<P>Some of the features found in Squid-2.6 is not available in Squid-3.
-Some has been dropped as they are not needed. Some has not yet been forward-ported to Squid-3 and may appear in a later release.</P>
+Some have been dropped as they are not needed. Some have not yet been forward-ported to Squid-3 and may appear in a later release.</P>
<P>
<UL>
<LI>refresh_stale_hit option. Not yet ported.</LI>
<P>The TCP_REFRESH_HIT and TCP_REFRESH_MISS log types have been replaced because they were misleading (all refreshes need to query the origin server, so they could never be hits). The following log types have been introduced to replace them:</P>
<P>
<DL>
-<DT><B>TCP_REFRESH_UNMODIFIED</B><DD><P>The requested object was cached but STALE. The IMS query for the object resulted in "304 not modified".</P>
-<DT><B>TCP_REFRESH_MODIFIED</B><DD><P>The requested object was cached but STALE. The IMS query returned the new content.</P>
+<DT><B>TCP_REFRESH_UNMODIFIED</B><DD>
+<P>The requested object was cached but STALE. The IMS query for the object resulted in "304 not modified".</P>
+<DT><B>TCP_REFRESH_MODIFIED</B><DD>
+<P>The requested object was cached but STALE. The IMS query returned the new content.</P>
</DL>
</P>
<P>See
<P>
<DL>
-<DT><B>minimum_icp_query_timeout (msec)</B><DD><P>
+<DT><B>minimum_icp_query_timeout (msec)</B><DD>
+<P>
<PRE>
Default: 5
</PRE>
</P>
-<DT><B>background_ping_rate</B><DD><P>
+<DT><B>background_ping_rate</B><DD>
+<P>
<PRE>
Default: 10 seconds
</PRE>
</P>
-<DT><B>httpd_accel_surrogate_id</B><DD><P>
+<DT><B>httpd_accel_surrogate_id</B><DD>
+<P>
<PRE>
Default: unset
</PRE>
</P>
-<DT><B>http_accel_surrogate_remote on|off</B><DD><P>
+<DT><B>http_accel_surrogate_remote on|off</B><DD>
+<P>
<PRE>
Default: off
</PRE>
</P>
-<DT><B>esi_parser libxml2|expat|custom</B><DD><P>
+<DT><B>esi_parser libxml2|expat|custom</B><DD>
+<P>
<PRE>
Default: custom
</PRE>
</P>
-<DT><B>email_err_data on|off</B><DD><P>
+<DT><B>email_err_data on|off</B><DD>
+<P>
<PRE>
Default: on
</PRE>
</P>
-<DT><B>refresh_all_ims on|off</B><DD><P>
+<DT><B>refresh_all_ims on|off</B><DD>
+<P>
<PRE>
Default: off
</PRE>
</P>
-<DT><B>request_header_access</B><DD><P>Replaces the header_access directive of Squid-2.6 and earlier, but applies to requests only.</P>
-<DT><B>reply_header_access</B><DD><P>Replaces the header_access directive of Squid-2.6 and earlier, but applies to replies only.</P>
+<DT><B>request_header_access</B><DD>
+<P>Replaces the header_access directive of Squid-2.6 and earlier, but applies to requests only.</P>
+<DT><B>reply_header_access</B><DD>
+<P>Replaces the header_access directive of Squid-2.6 and earlier, but applies to replies only.</P>
-<DT><B>icap_enable on|off</B><DD><P>
+<DT><B>icap_enable on|off</B><DD>
+<P>
<PRE>
Default: off
</PRE>
</P>
-<DT><B>icap_preview_enable on|off</B><DD><P>
+<DT><B>icap_preview_enable on|off</B><DD>
+<P>
<PRE>
Default: off
</PRE>
</P>
-<DT><B>icap_preview_size</B><DD><P>
+<DT><B>icap_preview_size</B><DD>
+<P>
<PRE>
Default: -1
</PRE>
</P>
-<DT><B>icap_default_options_ttl (seconds)</B><DD><P>
+<DT><B>icap_default_options_ttl (seconds)</B><DD>
+<P>
<PRE>
Default: 60
</PRE>
</P>
-<DT><B>icap_persistent_connections on|off</B><DD><P>
+<DT><B>icap_persistent_connections on|off</B><DD>
+<P>
<PRE>
Default: on
</PRE>
</P>
-<DT><B>icap_send_client_ip on|off</B><DD><P>
+<DT><B>icap_send_client_ip on|off</B><DD>
+<P>
<PRE>
Default: off
</PRE>
</P>
-<DT><B>icap_send_client_username on|off</B><DD><P>
+<DT><B>icap_send_client_username on|off</B><DD>
+<P>
<PRE>
Default: off
</PRE>
</P>
-<DT><B>icap_service</B><DD><P>
+<DT><B>icap_service</B><DD>
+<P>
<PRE>
Default: none
</PRE>
</P>
-<DT><B>icap_class</B><DD><P>
+<DT><B>icap_class</B><DD>
+<P>
<PRE>
Default: none
</PRE>
</P>
-<DT><B>icap_access</B><DD><P>
+<DT><B>icap_access</B><DD>
+<P>
<PRE>
Default: none
</PRE>
</P>
-<DT><B>accept_filter</B><DD><P>
+<DT><B>accept_filter</B><DD>
+<P>
<PRE>
The name of an accept(2) filter to install on Squid's
listen socket(s). This feature is perhaps specific to
</PRE>
</P>
+
+<DT><B>include</B><DD>
+<P>New option to import entire secondary configuration files into squid.conf.
+<PRE>
+ Squid will follow the files immediately and insert all their content
+ as if it was at that position in squid.conf. As per squid.conf some
+ options are order-specific within the config as a whole.
+
+ A few layers of include are allowed, but too many are confusing and
+ squid will enforce an include depth of 16 files.
+
+ Syntax:
+ include /path/to/file1 /path/to/file2
+
+</PRE>
+</P>
+
+<DT><B>acl myportname</B><DD>
+<P>New acl type myportname, matching the name of the http(s)_port where the request was accepted
+<PRE>
+ acl aclname myportname 3128 ... # http(s)_port name
+
+</PRE>
+</P>
+
</DL>
</P>
<P>
<DL>
-<DT><B>http_port</B><DD><P>New options:
+<DT><B>http_port</B><DD>
+<P>New options:
<PRE>
disable-pmtu-discovery=
Control Path-MTU discovery usage:
</PRE>
</P>
-<DT><B> https_port</B><DD><P>Removed options:
+<DT><B> https_port</B><DD>
+<P>Removed options:
<PRE>
urlgroup=, not yet ported to Squid-3.
</PRE>
</P>
-<DT><B>cache_peer</B><DD><P>New options:
+<DT><B>cache_peer</B><DD>
+<P>New options:
<PRE>
basetime=n
</PRE>
</P>
-<DT><B>cache_dir</B><DD><P>Common options
+<DT><B>cache_dir</B><DD>
+<P>Common options
<PRE>
no-store, replaces the older read-only option
</PRE>
</P>
-<DT><B>auth_param</B><DD><P>Removed Basic auth option
+<DT><B>auth_param</B><DD>
+<P>Removed Basic auth option
<PRE>
blankpasswor, not yet ported to squid-3.
auth_param basic concurrency 0
</PRE>
</P>
-<DT><B>external_acl_type</B><DD><P>New format specifications:
+<DT><B>external_acl_type</B><DD>
+<P>New format specifications:
<PRE>
%URI Requested URI
</PRE>
</P>
-<DT><B>refresh_pattern</B><DD><P>New options:
+<DT><B>refresh_pattern</B><DD>
+<P>New options:
<PRE>
ignore-no-store
refresh-ims
</PRE>
</P>
-<DT><B>acl</B><DD><P>New types:
+<DT><B>acl</B><DD>
+<P>New types:
<PRE>
acl aclname http_status 200 301 500- 400-403 ... # status code in reply
</PRE>
</P>
-<DT><B>short_icon_urls</B><DD><P>New default:
+<DT><B>short_icon_urls</B><DD>
+<P>New default:
<PRE>
Default: on
(Old default: off)
</PRE>
</P>
-<DT><B>delay_class</B><DD><P>New delay classes:
+<DT><B>delay_class</B><DD>
+<P>New delay classes:
<PRE>
class 4 Everything in a class 3 delay pool, with an
additional limit on a per user basis. This
</PRE>
</P>
-<DT><B>htcp_port</B><DD><P>New default to require the feature to be enabled in squid.conf:
+<DT><B>htcp_port</B><DD>
+<P>New default to require the feature to be enabled in squid.conf:
<PRE>
Default: 0 (disabled)
(Old default: 4827)
</PRE>
</P>
-<DT><B>icp_port</B><DD><P>New default to require the feature to be enabled in squid.conf:
+<DT><B>icp_port</B><DD>
+<P>New default to require the feature to be enabled in squid.conf:
<PRE>
Default: 0 (disabled)
(Old default: 3130)
</PRE>
</P>
-<DT><B>snmp_port</B><DD><P>New default to require the feature to be enabled in squid.conf:
+<DT><B>snmp_port</B><DD>
+<P>New default to require the feature to be enabled in squid.conf:
<PRE>
Default: 0 (disabled)
(Old default: 3401)
</PRE>
</P>
-<DT><B>logformat</B><DD><P>New format tags:
+<DT><B>logformat</B><DD>
+<P>New format tags:
<PRE>
rp Request URL-Path excluding hostname
</PRE>
</P>
-<DT><B>reply_body_max_size</B><DD><P>Syntax changed:
+<DT><B>reply_body_max_size</B><DD>
+<P>Syntax changed:
<PRE>
reply_body_max_size size [acl acl...]
</P>
<P>allow/deny no longer used.</P>
-<DT><B>url_rewrite_program</B><DD><P>No urlgroup support in either requests or responese</P>
+<DT><B>url_rewrite_program</B><DD>
+<P>No urlgroup support in either requests or responese</P>
</DL>
</P>
<P>
<DL>
-<DT><B>broken_vary_encoding</B><DD><P>Not yet ported to Squid-3.</P>
-<DT><B>cache_vary</B><DD><P>Not yet ported to Squid-3.</P>
-<DT><B>collapsed_forwarding</B><DD><P>Not yet ported to Squid-3.</P>
-<DT><B>follow_x_forwarded_for</B><DD><P>Not yet ported to Squid-3.</P>
-<DT><B>*_uses_indirect_client</B><DD><P>Not yet ported to Squid-3.</P>
-<DT><B>error_map</B><DD><P>Not yet ported to Squid-3.</P>
-<DT><B>header_access</B><DD><P>This has been replaced by request_header_access and reply_header_access</P>
-<DT><B>http_access2</B><DD><P>Not yet ported to Squid-3.</P>
-<DT><B>httpd_accel_no_pmtu_disc</B><DD><P>Replaced by disable-pmtu-discovery http_port option</P>
-<DT><B>location_rewrite_*</B><DD><P>Not yet ported to Squid-3.</P>
-<DT><B>refresh_stale_hit</B><DD><P>Not yet ported to Squid-3.</P>
-<DT><B>umask</B><DD><P>Not yet ported to Squid-3.</P>
-<DT><B>wais_relay_*</B><DD><P>equivalent to cache_peer + cache_peer_access.</P>
+<DT><B>broken_vary_encoding</B><DD>
+<P>Not yet ported to Squid-3.</P>
+<DT><B>cache_vary</B><DD>
+<P>Not yet ported to Squid-3.</P>
+<DT><B>collapsed_forwarding</B><DD>
+<P>Not yet ported to Squid-3.</P>
+<DT><B>follow_x_forwarded_for</B><DD>
+<P>Not yet ported to Squid-3.</P>
+<DT><B>*_uses_indirect_client</B><DD>
+<P>Not yet ported to Squid-3.</P>
+<DT><B>error_map</B><DD>
+<P>Not yet ported to Squid-3.</P>
+<DT><B>header_access</B><DD>
+<P>This has been replaced by request_header_access and reply_header_access</P>
+<DT><B>http_access2</B><DD>
+<P>Not yet ported to Squid-3.</P>
+<DT><B>httpd_accel_no_pmtu_disc</B><DD>
+<P>Replaced by disable-pmtu-discovery http_port option</P>
+<DT><B>location_rewrite_*</B><DD>
+<P>Not yet ported to Squid-3.</P>
+<DT><B>refresh_stale_hit</B><DD>
+<P>Not yet ported to Squid-3.</P>
+<DT><B>umask</B><DD>
+<P>Not yet ported to Squid-3.</P>
+<DT><B>wais_relay_*</B><DD>
+<P>equivalent to cache_peer + cache_peer_access.</P>
</DL>
</P>
<P>
<DL>
-<DT><B>--enable-shared[=PKGS]</B><DD><P>Build shared libraries. The default is to build without.</P>
+<DT><B>--enable-shared[=PKGS]</B><DD>
+<P>Build shared libraries. The default is to build without.</P>
-<DT><B>--enable-static[=PKGS]</B><DD><P>Build static libraries. The default is on.</P>
+<DT><B>--enable-static[=PKGS]</B><DD>
+<P>Build static libraries. The default is on.</P>
-<DT><B>--enable-fast-install[=PKGS]</B><DD><P>
+<DT><B>--enable-fast-install[=PKGS]</B><DD>
+<P>
<PRE>
Optimize for fast installation
default: yes
</PRE>
</P>
-<DT><B>--disable-libtool-lock</B><DD><P>Avoid locking (might break parallel builds)</P>
+<DT><B>--disable-libtool-lock</B><DD>
+<P>Avoid locking (might break parallel builds)</P>
-<DT><B>--disable-optimizations</B><DD><P>Don't compile Squid with compiler optimizations enabled.
+<DT><B>--disable-optimizations</B><DD>
+<P>Don't compile Squid with compiler optimizations enabled.
Optimization is good for production builds, but not
good for debugging. During development, use
--disable-optimizations to reduce compilation times
and allow easier debugging. This option implicitly
also enables --disable-inline</P>
-<DT><B>--disable-inline</B><DD><P>Don't compile trivial methods as inline. Squid
+<DT><B>--disable-inline</B><DD>
+<P>Don't compile trivial methods as inline. Squid
is coded with much of the code able to be inlined.
Inlining is good for production builds, but not
good for development. During development, use
--enable-inline to have squid make all trivial
methods inlinable by the compiler.</P>
-<DT><B>--enable-debug-cbdata</B><DD><P>Provide some debug information in cbdata</P>
+<DT><B>--enable-debug-cbdata</B><DD>
+<P>Provide some debug information in cbdata</P>
-<DT><B>--enable-disk-io=\"list of modules\"</B><DD><P>Build support for the list of disk I/O modules.
+<DT><B>--enable-disk-io=\"list of modules\"</B><DD>
+<P>Build support for the list of disk I/O modules.
The default is only to build the "Blocking" module.
See src/DiskIO for a list of available modules, or
Programmers Guide for details on how to build your
custom disk module.</P>
-<DT><B>--enable-esi</B><DD><P>Enable ESI for accelerators. Requires libexpat.
+<DT><B>--enable-esi</B><DD>
+<P>Enable ESI for accelerators. Requires libexpat.
Enabling ESI will cause squid to follow the Edge
Acceleration Specification (www.esi.org). This
causes squid to IGNORE client Cache-Control headers.</P>
proxy, ONLY use it in a squid configured for
webserver acceleration.</P>
-<DT><B>--enable-icap-client</B><DD><P>Enable the ICAP client.</P>
+<DT><B>--enable-icap-client</B><DD>
+<P>Enable the ICAP client.</P>
-<DT><B>--disable-snmp</B><DD><P>Disable SNMP monitoring support which is now built by default.</P>
+<DT><B>--disable-snmp</B><DD>
+<P>Disable SNMP monitoring support which is now built by default.</P>
-<DT><B>--disable-htcp</B><DD><P>Disable HTCP protocol support which is now built by default.</P>
+<DT><B>--disable-htcp</B><DD>
+<P>Disable HTCP protocol support which is now built by default.</P>
-<DT><B>--enable-kqueue</B><DD><P>Enable kqueue() support. Marked as experimental in 3.0.</P>
+<DT><B>--enable-kqueue</B><DD>
+<P>Enable kqueue() support. Marked as experimental in 3.0.</P>
-<DT><B>--enable-ipfw-transparent</B><DD><P>Enable Transparent Proxy support for systems
+<DT><B>--enable-ipfw-transparent</B><DD>
+<P>Enable Transparent Proxy support for systems
using FreeBSD IPFW style redirection.</P>
-<DT><B>--disable-mempools</B><DD><P>Disable memPools. Note that this option now simply sets the
+<DT><B>--disable-mempools</B><DD>
+<P>Disable memPools. Note that this option now simply sets the
default behaviour. Specific classes can override this at runtime, and
only lib/MemPool.c needs to be altered to change the squid-wide
default for all classes.</P>
-<DT><B>--enable-cpu-profiling</B><DD><P>This option allows you to see which internal functions
+<DT><B>--enable-cpu-profiling</B><DD>
+<P>This option allows you to see which internal functions
in Squid are consuming how much CPU. Compiles in probes
that measure time spent in probed functions. Needs
source modifications to add new probes. This is meant
you shouldn't enable this, as overhead added, although
small, is still overhead. See lib/Profiler.c for more.</P>
-<DT><B>--with-gnu-ld</B><DD><P>Assume the C compiler uses GNU ld. The default is to auto-detect.</P>
+<DT><B>--with-gnu-ld</B><DD>
+<P>Assume the C compiler uses GNU ld. The default is to auto-detect.</P>
-<DT><B>--with-pic</B><DD><P>Try to use only PIC/non-PIC objects. The default is to use both.</P>
+<DT><B>--with-pic</B><DD>
+<P>Try to use only PIC/non-PIC objects. The default is to use both.</P>
-<DT><B>--with-tags[=TAGS]</B><DD><P>Include additional configurations. The default is automatic.</P>
+<DT><B>--with-tags[=TAGS]</B><DD>
+<P>Include additional configurations. The default is automatic.</P>
-<DT><B>--with-default-user=USER</B><DD><P>Sets the default System User account for squid permissions.
+<DT><B>--with-default-user=USER</B><DD>
+<P>Sets the default System User account for squid permissions.
The default is 'nobody' as in other releases of squid.</P>
-<DT><B>--with-cppunit-basedir=[PATH]</B><DD><P>Path where the cppunit headers and libraries are found
+<DT><B>--with-cppunit-basedir=[PATH]</B><DD>
+<P>Path where the cppunit headers and libraries are found
for unit testing. The default is automatic detection.</P>
<P>NOTE: Since 3.0-PRE6 and 2.6STABLE14 squid no longer comes
bundled with CPPUnit. Compile-time validation will be disabled
<P>
<DL>
-<DT><B>--enable-carp</B><DD><P>CARP support is now built by default.
---disable-carp can be used to buidl without it.</P>
+<DT><B>--enable-carp</B><DD>
+<P>CARP support is now built by default.
+--disable-carp can be used to build without it.</P>
-<DT><B>--enable-htcp</B><DD><P>HTCP protocol support is now built by default.
+<DT><B>--enable-htcp</B><DD>
+<P>HTCP protocol support is now built by default.
Use --disable-htcp to build without it.</P>
-<DT><B>--enable-snmp</B><DD><P>SNMP monitoring is now build by default.
+<DT><B>--enable-snmp</B><DD>
+<P>SNMP monitoring is now build by default.
Use --disable-snmp to build without it.</P>
-<DT><B>--enable-heap-replacement</B><DD><P>Please use --enable-removal-policies directive instead.</P>
+<DT><B>--enable-heap-replacement</B><DD>
+<P>Please use --enable-removal-policies directive instead.</P>
-<DT><B>--with-maxfd=N</B><DD><P>Replaced by --with-filedescriptors=N</P>
+<DT><B>--with-maxfd=N</B><DD>
+<P>Replaced by --with-filedescriptors=N</P>
<P>Override maximum number of filedescriptors. Useful
if you build as another user who is not privileged
to use the number of filedescriptors you want the
resulting binary to support</P>
-<DT><B>--enable-select</B><DD><P>Deprecated.
+<DT><B>--enable-select</B><DD>
+<P>Deprecated.
Automatic checks will enable best I/O loop method available.</P>
-<DT><B>--enable-epoll</B><DD><P>Deprecated.
+<DT><B>--enable-epoll</B><DD>
+<P>Deprecated.
Automatic checks will enable best I/O loop method available.</P>
-<DT><B>--enable-poll</B><DD><P>Deprecated.
+<DT><B>--enable-poll</B><DD>
+<P>Deprecated.
Automatic checks will enable best I/O loop method available.</P>
-<DT><B>--enable-kqueue</B><DD><P>kqueue support is marked Experimental in Squid 3.0. Known to have some issues under load.</P>
+<DT><B>--enable-kqueue</B><DD>
+<P>kqueue support is marked Experimental in Squid 3.0. Known to have some issues under load.</P>
</DL>
</P>
porting one of these from Squid-2 to Squid-3 is most welcome.</P>
<P>
<DL>
-<DT><B>--enable-devpoll</B><DD><P>Support for Solaris /dev/poll</P>
+<DT><B>--enable-devpoll</B><DD>
+<P>Support for Solaris /dev/poll</P>
-<DT><B>--enable-select-simple</B><DD><P>Basic POSIX select() loop without any binary fd_set optimizations.</P>
+<DT><B>--enable-select-simple</B><DD>
+<P>Basic POSIX select() loop without any binary fd_set optimizations.</P>
-<DT><B>--enable-follow-x-forwarded-for</B><DD><P>Support following the X-Forwarded-For HTTP header for determining the
+<DT><B>--enable-follow-x-forwarded-for</B><DD>
+<P>Support following the X-Forwarded-For HTTP header for determining the
client IP address</P>
</DL>
</P>
<P>The following configure options have been removed.</P>
<P>
<DL>
-<DT><B>--enable-dlmalloc</B><DD><P>Most OS:es have good malloc implementations these days, and the version we used to ship with Squid was very very old..</P>
-<DT><B>--enable-mempool-debug</B><DD><P>Debug option, not needed and therefore removed.</P>
-<DT><B>--enable-forward-log</B><DD><P>Rarely used extra log file. Removed.</P>
-<DT><B>--enable-multicast-miss</B><DD><P>Rarely used feature, and multicast ICP acheives almost the same result. Removed.</P>
-<DT><B>--enable-coss-aio-ops</B><DD><P>Specific to the COSS implementation in Squid-2</P>
-<DT><B>--enable-large-cache-files</B><DD><P>Now enabled by default. Configure option was redundant and therefore removed.</P>
-<DT><B>--enable-truncate</B><DD><P>Known to cause race conditions where cache objects may get corrupted, and this for at most a marginal performance improvement. Removed.</P>
+<DT><B>--enable-dlmalloc</B><DD>
+<P>Most OS:es have good malloc implementations these days, and the version we used to ship with Squid was very very old..</P>
+<DT><B>--enable-mempool-debug</B><DD>
+<P>Debug option, not needed and therefore removed.</P>
+<DT><B>--enable-forward-log</B><DD>
+<P>Rarely used extra log file. Removed.</P>
+<DT><B>--enable-multicast-miss</B><DD>
+<P>Rarely used feature, and multicast ICP acheives almost the same result. Removed.</P>
+<DT><B>--enable-coss-aio-ops</B><DD>
+<P>Specific to the COSS implementation in Squid-2</P>
+<DT><B>--enable-large-cache-files</B><DD>
+<P>Now enabled by default. Configure option was redundant and therefore removed.</P>
+<DT><B>--enable-truncate</B><DD>
+<P>Known to cause race conditions where cache objects may get corrupted, and this for at most a marginal performance improvement. Removed.</P>
</DL>
</P>
<!doctype linuxdoc system>\r
<article>\r
-<title>Squid 3.0.RC1 release notes</title>\r
+<title>Squid 3.0.STABLE2 release notes</title>\r
<author>Squid Developers</author>\r
-<date>$Id: release-3.0.sgml,v 1.30.4.1 2008/02/24 12:41:27 serassio Exp $</date>\r
+<date>$Id: release-3.0.sgml,v 1.30.4.2 2008/02/29 18:29:52 serassio Exp $</date>\r
\r
<abstract>\r
This document contains the release notes for version 3.0 of Squid.\r
\r
<sect>Notice\r
<p>\r
-The Squid Team are pleased to announce the release of Squid-3.0.RC1 for pre-release testing.\r
+The Squid Team are pleased to announce the release of Squid-3.0.STABLE2.\r
\r
This new release is available for download from <url url="http://www.squid-cache.org/Versions/v3/3.0/"> or the <url url="http://www.squid-cache.org/Mirrors/http-mirrors.html" name="mirrors">.\r
\r
-A large number of the show-stopper bugs have been fixed along with general improvements to the ICAP support.\r
-While this release is not deemed ready for production use, we believe it is ready for wider testing by the community.\r
+A large number of the show-stopper bugs have been fixed along with general improvements to the ICAP support and additional Languages.\r
\r
We welcome feedback and bug reports. If you find a bug, please see <url url="http://wiki.squid-cache.org/SquidFaq/TroubleShooting#head-7067fc0034ce967e67911becaabb8c95a34d576d"> for how to submit a report with a stack trace.\r
\r
<sect>Known issues\r
<p>\r
-Although this release is deemed good enough for testing in many setups, please note the existence of <url url="http://www.squid-cache.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&target_milestone=3.0&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=bugs.bug_severity&field0-0-0=noop&type0-0-0=noop&value0-0-0=" name="open bugs against Squid-3.0">.\r
+Although this release is deemed good enough for use in many setups, please note the existence of <url url="http://www.squid-cache.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&target_milestone=3.0&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=bugs.bug_severity&field0-0-0=noop&type0-0-0=noop&value0-0-0=" name="open bugs against Squid-3.0">.\r
\r
-<sect>Changes since earlier PRE releases of Squid-3.0\r
+<sect>Changes since earlier STABLE releases of Squid-3.0\r
<p>\r
The 3.0 change history can be <url url="http://www.squid-cache.org/Versions/v3/3.0/changesets/" name="viewed here">.\r
\r
<sect1>2.6 features not found in Squid-3.0\r
<p>\r
Some of the features found in Squid-2.6 is not available in Squid-3.\r
-Some has been dropped as they are not needed. Some has not yet been forward-ported to Squid-3 and may appear in a later release.\r
+Some have been dropped as they are not needed. Some have not yet been forward-ported to Squid-3 and may appear in a later release.\r
\r
<itemize>\r
<item>refresh_stale_hit option. Not yet ported.\r
to Squid until a full HTTP request has been received.\r
See the accf_http(9) man page.\r
</verb>\r
+\r
+ <tag>include</tag>\r
+ <p>New option to import entire secondary configuration files into squid.conf.\r
+ <verb>\r
+ Squid will follow the files immediately and insert all their content\r
+ as if it was at that position in squid.conf. As per squid.conf some\r
+ options are order-specific within the config as a whole.\r
+\r
+ A few layers of include are allowed, but too many are confusing and\r
+ squid will enforce an include depth of 16 files.\r
+\r
+ Syntax:\r
+ include /path/to/file1 /path/to/file2\r
+ </verb>\r
+\r
+ <tag>acl myportname</tag>\r
+ <p>New acl type myportname, matching the name of the http(s)_port where the request was accepted\r
+ <verb>\r
+ acl aclname myportname 3128 ... # http(s)_port name\r
+ </verb>\r
+\r
</descrip>\r
\r
\r
## Process this file with automake to produce Makefile.in
#
-# $Id: Makefile.am,v 1.14 2007/08/22 00:20:10 hno Exp $
+# $Id: Makefile.am,v 1.14.4.1 2008/02/29 18:29:54 serassio Exp $
#
errordir = $(datadir)/errors
Spanish \
Swedish \
Traditional_Chinese \
- Turkish
+ Turkish \
+ Ukrainian-1251 \
+ Ukrainian-koi8-u \
+ Ukrainian-utf8
install-data-local:
@for l in $(INSTALL_LANGUAGES); do \
@SET_MAKE@
#
-# $Id: Makefile.in,v 1.105.4.2 2007/12/27 20:37:22 serassio Exp $
+# $Id: Makefile.in,v 1.105.4.3 2008/02/29 18:29:54 serassio Exp $
#
srcdir = @srcdir@
top_srcdir = @top_srcdir@
Spanish \
Swedish \
Traditional_Chinese \
- Turkish
+ Turkish \
+ Ukrainian-1251 \
+ Ukrainian-koi8-u \
+ Ukrainian-utf8
all: all-am
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<HTML><HEAD>
-<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
-<STYLE type="text/css"><!--BODY{background-color:#ffffff; font-family:verdana,sans-serif}--></STYLE>
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+<TITLE>FEL: Begärd URL kunde inte hämtas</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
</HEAD><BODY>
-<H2>The requested URL could not be retrieved</H2>
+<H2>Begärd URL kunde inte hämtas</H2>
<HR noshade size="1px">
<P>
-While trying to retrieve the URL:
+Vid försöket att hämta URL:
<A HREF="%U">%U</A>
<P>
-The following error was encountered:
+Mottogs följande fel:
<BLOCKQUOTE>
-ESI Processing failed.
+ESI bearbetning misslyckades.
+<I>%H</I>
</BLOCKQUOTE>
+</UL>
<P>
-The ESI processor returned:
+ESI motorn returnerade:
<BLOCKQUOTE>
-%Z
+%z
</BLOCKQUOTE>
<P>
-This means that:
+Detta betyder att:
<PRE>
- The surrogate was not able to process the ESI template. Please report this error to the webmaster.
+ Surrogat servern kunde inte bearbeta ESI mallen.
+ Vänligen kontakta den ansvariga för webbservern ifråga.
</PRE>
-<P>Your webmaster is <A HREF="mailto:%w">%w</A>.</P>
-<P>This page is in english because a translation has not been made. If you are able to, please create a translation and contact the squid project to get it included.</P>
+<P>
+Addressen till ansvarig administratör är <A HREF="mailto:%w">%w</A>.
+</P>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Äîñòóï çàáîðîíåíèé.
+</STRONG>
+<P>
+Íàñòðîéêà êîíòðîëþ äîñòóïó íå äîçâîëÿº âèêîíàòè Âàø
+çàïèò â äàíèé ÷àñ. ßêùî Âè ââàæàºòå öå íåïðàâèëüíèì, òî,
+áóäü-ëàñêà, êîíòàêòóéòå ç Âàøèì ²íòåðíåò ïðîâàéäåðîì.
+</UL>
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Äîñòóï äî êåøó çàáîðîíåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD>
+<BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Äîñòóï äî êåøó çàáîðîíåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Äîñòóï äî êåøó çàáîðîíåíèé
+</STRONG>
+</UL>
+</P>
+
+<P>Âèáà÷òå, àëå Âè íå ìîæåòå çàïðîñèòè:
+<PRE> %U</PRE>
+ç öüîãî êåøó äî òèõ ï³ð, ïîêè íå ïðîéäåòå àóòåíòèô³êàö³þ.
+</P>
+
+<P>
+Âàì ïîòð³áíî âèêîðèñòîâóâàòè Netscape âåðñ³¿ 2.0 ÷è âèùå, àáî Microsoft Internet
+Explorer 3.0, àáî HTTP/1.1 ñóì³ñíèé áðîóçåð. Áóäü-ëàñêà, çâ'ÿæ³òüñÿ
+ç <A HREF="mailto:%w">àäì³í³ñòðàòîðîì êåøó</a>, ÿêùî ó Âàñ âèíèêëè òðóäíîù³
+ç àóòåíòèô³êàö³ºþ, àáî <A HREF="http://%h/cgi-bin/chpasswd.cgi">çì³í³òü</a>
+Âàø ïàðîëü ïî çàìîâ÷óâàííþ.
+</P>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Äîñòóï äî êåðóâàííÿ êåøîì çàáîðîíåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD>
+<BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Äîñòóï äî êåðóâàííÿ êåøîì çàáîðîíåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Äîñòóï äî êåðóâàííÿ êåøîì çàáîðîíåíèé
+</STRONG>
+</UL>
+</P>
+
+<P>Âèáà÷òå, Âè íå ìîæåòå çàïðîñèòè:
+<PRE> %U</PRE>
+ç öüîãî êåø ìåíåäæåðà äî òèõ ï³ð, ïîêè íå ïðîéäåòå àóòåíòèô³êàö³þ.
+</P>
+<P>
+Âàì ïîòð³áíî âèêîðèñòîâóâàòè Netscape âåðñ³¿ 2.0 ÷è âèùå, àáî Microsoft Internet
+Explorer 3.0, àáî HTTP/1.1 ñóì³ñíèé áðîóçåð. Áóäü-ëàñêà, çâ'ÿæ³òüñÿ
+ç <A HREF="mailto:%w">àäì³í³ñòðàòîðîì êåøó</a>, ÿêùî ó Âàñ âèíèêëè òðóäíîù³
+ç àóòåíòèô³êàö³ºþ, à ÿêùî <em>Âè</em> º àäì³í³ñòðàòîðîì,
+ïðî÷èòàéòå äîêóìåíòàö³þ Squid ïî ³íòåðôåéñó êåðóâàííÿ êåøîì ³ ïåðåâ³ðòå
+æóðíàë êåøó (cache log) íà ïðåäìåò á³ëüø äåòàëüíèõ ïîâ³äîìëåíü ïðî ïîìèëêè.</P>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Â äàíèé ìîìåíò íåìîæëèâî ïåðåñëàòè öåé çàïèò
+</STRONG>
+</UL>
+
+<P>
+Äàíèé çàïèò íå ìîæå áóòè ïåðåñëàíèé äî ñåðâåðà-äæåðåëà, ÷è äî áóäü-ÿêîãî
+ç âèùåñòîÿ÷èõ êåø³â. Íàéá³ëüø â³ðîã³äíà ïðè÷èíà ïîìèëêè:
+<UL>
+<LI>Àäì³í³ñòðàòîð êåøó çàáîðîíèâ âèêîíóâàòè ïðÿì³ ç'ºäíàííÿ
+ç ñåðâåðàìè-äæåðåëàìè (origin servers) ³
+<LI>óñ³ âèùåñòîÿ÷³ êåø-ñåðâåðà (parent caches) â äàíèé ìîìåíò íåäîñòóïí³.
+</UL>
+<P>Âàøèì êåø àäì³í³ñòðàòîðîì º <A HREF="mailto:%w">%w</A>.
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Íå âäàëîñü âñòàíîâèòè ç'ºäíàííÿ
+</STRONG>
+</UL>
+
+<P>
+Ñèñòåìà ïîâ³äîìëÿº:
+<PRE><I> %E</I></PRE>
+
+<P>
+³ääàëåí³ õîñò ÷è ìåðåæà íå â³äïîâ³äàþòü. Áóäü-ëàñêà, ïîâòîð³òü ñâ³é çàïèò ùå ðàç.
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<BLOCKQUOTE>
+Íåìîæëèâî âèçíà÷èòè IP àäðåñó âóçëà
+<I>%H</I>
+</BLOCKQUOTE>
+
+<P>
+DNS ñåðâåð ïîâ³äîìëÿº:
+<BLOCKQUOTE>
+%z
+</BLOCKQUOTE>
+
+<P>
+Öå îçíà÷àº:
+<PRE>
+ Êåøó íå âäàëîñÿ âèçíà÷èòè ³ì'ÿ ñåðâåðà, âêàçàíå â URL.
+ Ïåðåâ³ðòå ïðàâèëüí³ñòü íàïèñàííÿ àäðåñó.
+</PRE>
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<BLOCKQUOTE>
+Îáðîáêà ESI çàâåðøèëàñü íåâäàëî.
+</BLOCKQUOTE>
+
+<P>
+ESI ïðîöåñîð ïîâ³äîìèâ:
+<BLOCKQUOTE>
+%Z
+</BLOCKQUOTE>
+
+<P>
+Öå îçíà÷ຠùî:
+<PRE>
+ Çàì³ííèê íå çì³ã îáðîáèòè ESI òåìïëåéò. Áóäü-ëàñêà ïîâ³äîìòå ïðî öþ ïîìèëêó âåáìàéñòðà.
+</PRE>
+<P>Âàøèì âåáìàéñòðîì º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Ïåðåñèëêà çàáîðîíåíà
+</STRONG>
+</UL>
+
+<P>
+Öåé êåø íå ïåðåñèëàòèìå Âàø çàïèò, òîìó ùî â³í íàìàãàºòüñÿ âñòàíîâèòè áðàòí³ â³äíîñèíè (sibling relationship).
+Ìîæëèâî, ê볺íò %i - íåâ³ðíî ñêîíô³ãóðîâàíèé êåø.
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+FTP äîñòóï çàáîðîíåíèé.
+</STRONG>
+</UL>
+
+<P>
+Öåé êåø íå ï³äòðèìóº ïðîòîêîë FTP.
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL
+âèíèêëà ïîìèëêà ïðîòîêîëó FTP:
+<A HREF="%U">%U</A>
+<P>
+Squid ïîñëàâ íàñòóïíó êîìàíäó FTP:
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+³ ïîò³ì îòðèìàâ òàêó â³äïîâ³äü
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+Ñòàëàñü íåâäàëà FTP àóòåíòèô³êàö³ÿ
+<P>
+Squid ïîñëàâ íàñòóïíó FTP êîìàíäó:
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+³ ïîò³ì îòðèìàâ òàêó â³äïîâ³äü
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+Äàíèé URL íå ìîæå áóòè äîñòàâëåíèé:
+<A HREF="%U">%U</A>
+<P>
+Squid ïîñëàâ íàñòóïíó FTP êîìàíäó:
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+³ ïîò³ì îòðèìàâ òàêó â³äïîâ³äü
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>
+Öå ìîæå áóòè âèêëèêàíî FTP àäðåñîþ ç àáñîëþòíèì øëÿõîì (ÿêèé íå
+â³äïîâ³äຠñòàíäàðòó RFC 1738).  òàêîìó âèïàäêó, ôàéë ìîæå áóòè
+çíàéäåíèé çà àäðåñîþ <A HREF="%B">%B</A>.
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>Êîìàíäà FTP PUT çàâåðøèëàñü óñï³øíî: Ôàéë ñòâîðåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>Îïåðàö³ÿ çàâåðøèëàñü óñï³øíî</H1>
+<H2>Ôàéë ñòâîðåíèé</H2>
+<HR noshade size="1px">
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Êîìàíäà FTP PUT/upload çàâåðøèëàñü íåâäàëî</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>FTP PUT/upload çàâåðøèëàñü íåâäàëî</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè ôàéëà çà àäðåñîþ:
+<A HREF="%U">%U</A>
+<P>
+Squid ïîñëàâ íàñòóïíó FTP êîìàíäó:
+<PRE><STRONG>
+ %f
+</STRONG></PRE>
+³ ïîò³ì îòðèìàâ òàêó â³äïîâ³äü
+<PRE><STRONG>
+ %F
+</STRONG></PRE>
+<P>
+Öå îçíà÷ຠùî:
+<PRE>
+Âàì ñë³ä ïåðåâ³ðèòè øëÿõ, ïðàâà äîñòóïó, â³ëüíå ì³ñöå ³ ï³ñëÿ öüîãî ñïðîáóâàòè çíîâó.
+</PRE>
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>Êîìàíäà FTP PUT çàâåðøèëàñü óñï³øíî: Ôàéë îíîâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>Îïåðàö³ÿ çàâåðøèëàñü óñï³øíî.</H1>
+<H2>Ôàéë îíîâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+</P>
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+FTP ñåðâåð áóâ ïåðåãðóæåíèé
+<P>
+Squid ïîñëàâ íàñòóïíó FTP êîìàíäó:
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+³ ïîò³ì îòðèìàâ òàêó â³äïîâ³äü
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff; font-family:verdana,sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Ïîìèëêà ïðîòîêîëó ICAP.
+</STRONG>
+</UL>
+
+<P>
+Ñèñòåìà ïîâ³äîìèëà:
+<PRE><I> %E</I></PRE>
+
+<P>
+Öå ìîæå îçíà÷àòè:
+Äåÿê³ àñïåêòè ICAP ç'ºäíàííÿ íåñïðàâí³. Ìîæëèâ³ ïðîáëåìè:
+<UL>
+<LI>Äîñòóï äî ICAP ñåðâåðó íåìîæëèâèé.
+<LI>Íåâ³ðíà â³äïîâ³äü â³ä ICAP ñåðâåðó.
+</UL>
+</P>
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Íåâ³ðíèé çàïèò
+</STRONG>
+</UL>
+
+<P>
+Äåÿê³ àñïåêòè HTTP çàïèòó íåâ³ðí³. Ìîæëèâ³ ïðîáëåìè:
+<UL>
+<LI>³äñóòí³é àáî íåâ³äîìèé ìåòîä çàïèòó (GET, POST)
+<LI>³äñóòí³é URL
+<LI>³äñóòí³é HTTP ³äåíòèô³êàòîð (HTTP/1.0)
+<LI>Çàïèò íàäòî âåëèêèé
+<LI>Íå âêàçàíèé Content-Length äëÿ çàïèò³â POST ÷è PUT
+<LI>Íåäîïóñòèìèé ñèìâîë â ³ìåí³ ñåðâåðà; ï³ä÷åðêóâàííÿ íåäîïóñòèì³
+</UL>
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Íåâ³ðíèé çàïèò
+</STRONG>
+</UL>
+
+<P>
+The HTTP â³äïîâ³äíå ïîâ³äîìëåííÿ, îòðèìàíå â³ä ñåðâåðà
+íå ìîæå áóòè âèçíà÷åíå àáî º íåïðàâèëüíî çôîðìîâàíèì.
+Áóäü-ëàñêà, êîíòàêòóéòå ç àäì³í³ñòðàòîðîì ñàéòó. Âàø àäì³í³ñòðàòîð
+êåøó ìîæå íàäàòè Âàì á³ëüø äåòàëüíó ³íôîðìàö³þ ïðî
+äàíó ïîìèëêó, ÿêùî öå íåîáõ³äíî.
+
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Íåïðàâèëüíèé URL
+</STRONG>
+</UL>
+
+<P>
+Äåÿê³ àñïåêòè çàïðîøåíîãî URL º íåïðàâèëüíèìè. Ìîæëèâ³ ïðîáëåìè:
+<UL>
+<LI>³äñóòí³é ÷è íåâ³ðíèé ïðîòîêîë äîñòóïó (ïîâèíåí áóòè `http://'' àáî
+ñõîæèé)
+<LI>³äñóòíº ³ì'ÿ ñåðâåðà
+<LI>Íåäîïóñòèìèé ïîäâ³éíèé êåðóþ÷èé ñèìâîë â URL-øëÿõó
+<LI>Íåäîïóñòèìèé ñèìâîë â ³ìåí³ ñåðâåðà; ï³ä÷åðêóâàííÿ íåäîïóñòèì³
+</UL>
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+×àñ ç'ºäíàííÿ çàê³í÷èâñÿ
+</STRONG>
+</UL>
+
+<P>
+Squid çàâåðøèâ Âàø çàïèò ó çâ'ÿçêó ç ïåðåâèùåííÿì
+ìàêñèìàëüíîãî ÷àñó ç'ºäíàííÿ.
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Wais Relay íå âèçíà÷åíèé
+</STRONG>
+</UL>
+
+<P>
+Äëÿ öüîãî êåøó íå âèçíà÷åíèé WAIS Relay host! Çâåðí³òüñÿ äî àäì³í³ñòðàòîðà.
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+³äïîâ³äíèé îá'ºêò íå áóâ çíàéäåíèé â êåø³, â ðåçóëüòàò³ ÷îãî áóëà
+âèçíà÷åíà äèðåêòèâà <code>only-if-cached</code>.
+</STRONG>
+</UL>
+
+<P>
+Âû ïîñëàëè çàïèò ç äèðåêòèâîþ êåø-êîíòðîëþ <code>only-if-cached</code>.
+Îá'ºêò íå áóâ çíàéäåíèé â êåø³, <em>àáî</em> â³í âèìàãຠîíîâëåííÿ,
+ÿêå çàáîðîíåíî <code>only-if-cached</code> äèðåêòèâîþ.
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Ïîìèëêà ÷èòàííÿ
+</STRONG>
+</UL>
+
+<P>
+Ñèñòåìà ïîâ³äîìèëà:
+<PRE><I> %E</I></PRE>
+
+<P>
+ϳä ÷àñ ÷èòàííÿ äàíèõ ç ìåðåæ³ âèíèêëà ïîìèëêà. Áóäü-ëàñêà, ïîâòîð³òü
+Âàø çàïèò.
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Ïåðåâèùåíèé ÷àñ î÷³êóâàííÿ â³äïîâ³ä³.
+</STRONG>
+</UL>
+
+<P>
+Ñèñòåìà ïîâ³äîìèëà:
+<PRE><I> %E</I></PRE>
+
+<P>
+Ïåðåâèùåíèé ÷àñ î÷³êóâàííÿ â³äïîâ³ä³ ï³ä ÷àñ ÷èòàííÿ äàíèõ ç ìåðåæ³. Ìåðåæà
+÷è ñåðâåð ìîæóòü íå ïðàöþâàòè ÷è áóòè ïåðåãðóæåíèìè. Áóäü-ëàñêà, ïîâòîð³òü Âàø çàïèò.
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ERROR</H1>
+<H2>The requested URL could not be retrieved</H2>
+<HR noshade size="1px">
+<P>
+While trying to retrieve the URL:
+<A HREF="%U">%U</A>
+<P>
+The following error was encountered:
+<UL>
+<LI>
+<STRONG>
+Failed to establish a secure connection to %I
+</STRONG>
+</UL>
+
+<P>
+The system returned:
+<PRE><I> %E</I></PRE>
+
+<P>
+This proxy and the remote host failed to negotiate a mutually acceptable
+security settings for handling your request. It is possible that the remote
+host does not support secure connections, or the proxy is not satisfied with
+the host security credentials.
+
+<P>Your cache administrator is <A HREF="mailto:%w%W">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<P>
+Öåé êåø â äàíèé ìîìåíò ÷àñó çíàõîäèòüñÿ â ïðîöåñ³ çóïèíêè ³ íå ìîæå îáñëóæèòè
+âàø çàïèò. Áóäü-ëàñêà, ïîâòîð³òü Âàø çàïèò ÷åðåç äåÿêèé ÷àñ çíîâó.
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Ïîìèëêà TCP socket.
+</STRONG>
+</UL>
+
+<P>
+Ñèñòåìà ïîâ³äîìèëà:
+<PRE><I> %E</I></PRE>
+
+<P>
+Squid íå ìîæå ñòâîðèòè TCP socket, ñêîð³ø çà âñå ÷åðåç äóæå âèñîêó çàãðóçêó ñåðâåðà.
+Áóäü-ëàñêà, ïîâòîð³òü Âàø çàïèò.
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Çàïèò ÷è â³äïîâ³äü íàäòî âåëèêà.
+</STRONG>
+
+<P>
+Ó âèïàäêó, ÿêùî Âè çä³éñíþâàëè POST ÷è PUT çàïèò, òîä³ Âàø çàïèò
+(òå, ùî Âè íàìàãàëèñü çàêà÷àòè) º íàäòî âåëèêèì. ßêùî Âè
+çä³éñíþâàëè GET çàïèò, òîä³ â³äêëèê (òå, ùî Âè íàìàãàëèñü âèêà÷àòè
+) º íàäòî âåëèêèì. Ö³ îáìåæåííÿ áóëè âñòàíîâëåí³
+Âàøèì ²íòåðíåò Ïðîâàéäåðîì, ÿêèé êåðóº êåøîì. Áóäü-ëàñêà,
+ïîâ³äîìòå éîãî, ÿêùî Âè ââàæàºòå äàíå ïîâ³äîìëåííÿ ïîìèëêîþ.
+</UL>
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Ìåòîä ÷è ïðîòîêîë çàïèòó íå ï³äòðèìóþòüñÿ
+</STRONG>
+</UL>
+
+<P>
+Squid íå ï³äòðèìóº âñ³ ìåòîäè çàïèò³â äëÿ óñ³õ ïðîòîêîë³â.
+Íàïðèêëàä, äëÿ ïðîòîêîëó Gopher Âè íå ìîæåòå âèêîíàòè çàïèò POST.
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URN íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>URL äëÿ çàïðîøåíîãî URN íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URN:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Íåìîæëèâî âèçíà÷èòè URN <br>
+(Cannot Resolve URN)
+</STRONG>
+</UL>
+
+<P>
+Íå âàðòî áàãàòî ÷îãî î÷³êóâàòè â³ä ö³º¿ òåõíîëî㳿 URNs íà %T :)
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+Ïîìèëêà çàïèñó
+</STRONG>
+</UL>
+
+<P>
+Ñèñòåìà ïîâ³äîìèëà:
+<PRE><I> %E</I></PRE>
+
+<P>
+ϳä ÷àñ â³äïðàâëåííÿ ³íôîðìàö³¿ â ìåðåæó âèíèêëà ïîìèëêà. Áóäü-ëàñêà, ïîâòîð³òü
+Âàø çàïèò
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
+
+
+
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
+<TITLE>ÏÎÌÈËÊÀ: Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ÏÎÌÈËÊÀ</H1>
+<H2>Çàïðîøåíèé URL íå ìîæå áóòè äîñòàâëåíèé</H2>
+<HR noshade size="1px">
+<P>
+ϳä ÷àñ äîñòàâêè URL:
+<A HREF="%U">%U</A>
+<P>
+Âèíèêëà íàñòóïíà ïîìèëêà:
+<UL>
+<LI>
+<STRONG>
+³äïîâ³äü íóëüîâî¿ äîâæèíè
+</STRONG>
+</UL>
+
+<P>
+Squid íå îòðèìàâ áóäü-ÿêèõ äàíèõ äëÿ öüîãî çàïèòó.
+<P>Âàøèì àäì³í³ñòðàòîðîì êåøó º <A HREF="mailto:%w">%w</A>.
--- /dev/null
+Thank you to
+ Ïåòðî Íåê <mr.petruccio@gmail.com>
+ Vitaliy Matytsyn (main) <vm@if.bank.gov.ua>
+for creating these error pages in Ukrainian!
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+äÏÓÔÕÐ ÚÁÂÏÒÏÎÅÎÉÊ.
+</STRONG>
+<P>
+îÁÓÔÒÏÊËÁ ËÏÎÔÒÏÌÀ ÄÏÓÔÕÐÕ ÎÅ ÄÏÚ×ÏÌѤ ×ÉËÏÎÁÔÉ ÷ÁÛ
+ÚÁÐÉÔ × ÄÁÎÉÊ ÞÁÓ. ñËÝÏ ÷É ××ÁÖÁ¤ÔÅ ÃÅ ÎÅÐÒÁ×ÉÌØÎÉÍ, ÔÏ,
+ÂÕÄØ-ÌÁÓËÁ, ËÏÎÔÁËÔÕÊÔÅ Ú ÷ÁÛÉÍ ¶ÎÔÅÒÎÅÔ ÐÒÏ×ÁÊÄÅÒÏÍ.
+</UL>
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: äÏÓÔÕÐ ÄÏ ËÅÛÕ ÚÁÂÏÒÏÎÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD>
+<BODY>
+<H1>ðïíéìëá</H1>
+<H2>äÏÓÔÕÐ ÄÏ ËÅÛÕ ÚÁÂÏÒÏÎÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+äÏÓÔÕÐ ÄÏ ËÅÛÕ ÚÁÂÏÒÏÎÅÎÉÊ
+</STRONG>
+</UL>
+</P>
+
+<P>÷ÉÂÁÞÔÅ, ÁÌÅ ÷É ÎÅ ÍÏÖÅÔÅ ÚÁÐÒÏÓÉÔÉ:
+<PRE> %U</PRE>
+Ú ÃØÏÇÏ ËÅÛÕ ÄÏ ÔÉÈ Ð¦Ò, ÐÏËÉ ÎÅ ÐÒÏÊÄÅÔÅ ÁÕÔÅÎÔÉÆ¦ËÁæÀ.
+</P>
+
+<P>
+÷ÁÍ ÐÏÔÒ¦ÂÎÏ ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ Netscape ×ÅÒÓ¦§ 2.0 ÞÉ ×ÉÝÅ, ÁÂÏ Microsoft Internet
+Explorer 3.0, ÁÂÏ HTTP/1.1 ÓÕͦÓÎÉÊ ÂÒÏÕÚÅÒ. âÕÄØ-ÌÁÓËÁ, Ú×'ÑÖ¦ÔØÓÑ
+Ú <A HREF="mailto:%w">ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ</a>, ÑËÝÏ Õ ÷ÁÓ ×ÉÎÉËÌÉ ÔÒÕÄÎÏݦ
+Ú ÁÕÔÅÎÔÉÆ¦ËÁæ¤À, ÁÂÏ <A HREF="http://%h/cgi-bin/chpasswd.cgi">ÚÍ¦Î¦ÔØ</a>
+÷ÁÛ ÐÁÒÏÌØ ÐÏ ÚÁÍÏ×ÞÕ×ÁÎÎÀ.
+</P>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: äÏÓÔÕÐ ÄÏ ËÅÒÕ×ÁÎÎÑ ËÅÛÏÍ ÚÁÂÏÒÏÎÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD>
+<BODY>
+<H1>ðïíéìëá</H1>
+<H2>äÏÓÔÕÐ ÄÏ ËÅÒÕ×ÁÎÎÑ ËÅÛÏÍ ÚÁÂÏÒÏÎÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+äÏÓÔÕÐ ÄÏ ËÅÒÕ×ÁÎÎÑ ËÅÛÏÍ ÚÁÂÏÒÏÎÅÎÉÊ
+</STRONG>
+</UL>
+</P>
+
+<P>÷ÉÂÁÞÔÅ, ÷É ÎÅ ÍÏÖÅÔÅ ÚÁÐÒÏÓÉÔÉ:
+<PRE> %U</PRE>
+Ú ÃØÏÇÏ ËÅÛ ÍÅÎÅÄÖÅÒÁ ÄÏ ÔÉÈ Ð¦Ò, ÐÏËÉ ÎÅ ÐÒÏÊÄÅÔÅ ÁÕÔÅÎÔÉÆ¦ËÁæÀ.
+</P>
+<P>
+÷ÁÍ ÐÏÔÒ¦ÂÎÏ ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ Netscape ×ÅÒÓ¦§ 2.0 ÞÉ ×ÉÝÅ, ÁÂÏ Microsoft Internet
+Explorer 3.0, ÁÂÏ HTTP/1.1 ÓÕͦÓÎÉÊ ÂÒÏÕÚÅÒ. âÕÄØ-ÌÁÓËÁ, Ú×'ÑÖ¦ÔØÓÑ
+Ú <A HREF="mailto:%w">ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ</a>, ÑËÝÏ Õ ÷ÁÓ ×ÉÎÉËÌÉ ÔÒÕÄÎÏݦ
+Ú ÁÕÔÅÎÔÉÆ¦ËÁæ¤À, Á ÑËÝÏ <em>÷É</em> ¤ ÁÄͦΦÓÔÒÁÔÏÒÏÍ,
+ÐÒÏÞÉÔÁÊÔÅ ÄÏËÕÍÅÎÔÁæÀ Squid ÐÏ ¦ÎÔÅÒÆÅÊÓÕ ËÅÒÕ×ÁÎÎÑ ËÅÛÏÍ ¦ ÐÅÒÅצÒÔÅ
+ÖÕÒÎÁÌ ËÅÛÕ (cache log) ÎÁ ÐÒÅÄÍÅÔ Â¦ÌØÛ ÄÅÔÁÌØÎÉÈ ÐÏצÄÏÍÌÅÎØ ÐÒÏ ÐÏÍÉÌËÉ.</P>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+÷ ÄÁÎÉÊ ÍÏÍÅÎÔ ÎÅÍÏÖÌÉ×Ï ÐÅÒÅÓÌÁÔÉ ÃÅÊ ÚÁÐÉÔ
+</STRONG>
+</UL>
+
+<P>
+äÁÎÉÊ ÚÁÐÉÔ ÎÅ ÍÏÖÅ ÂÕÔÉ ÐÅÒÅÓÌÁÎÉÊ ÄÏ ÓÅÒ×ÅÒÁ-ÄÖÅÒÅÌÁ, ÞÉ ÄÏ ÂÕÄØ-ÑËÏÇÏ
+Ú ×ÉÝÅÓÔÏÑÞÉÈ ËÅÛ¦×. îÁÊÂ¦ÌØÛ ×¦ÒÏǦÄÎÁ ÐÒÉÞÉÎÁ ÐÏÍÉÌËÉ:
+<UL>
+<LI>áÄͦΦÓÔÒÁÔÏÒ ËÅÛÕ ÚÁÂÏÒÏÎÉ× ×ÉËÏÎÕ×ÁÔÉ ÐÒÑͦ Ú'¤ÄÎÁÎÎÑ
+Ú ÓÅÒ×ÅÒÁÍÉ-ÄÖÅÒÅÌÁÍÉ (origin servers) ¦
+<LI>ÕÓ¦ ×ÉÝÅÓÔÏÑÞ¦ ËÅÛ-ÓÅÒ×ÅÒÁ (parent caches) × ÄÁÎÉÊ ÍÏÍÅÎÔ ÎÅÄÏÓÔÕÐΦ.
+</UL>
+<P>÷ÁÛÉÍ ËÅÛ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ¤ <A HREF="mailto:%w">%w</A>.
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+îÅ ×ÄÁÌÏÓØ ×ÓÔÁÎÏ×ÉÔÉ Ú'¤ÄÎÁÎÎÑ
+</STRONG>
+</UL>
+
+<P>
+óÉÓÔÅÍÁ ÐÏצÄÏÍÌѤ:
+<PRE><I> %E</I></PRE>
+
+<P>
+÷¦ÄÄÁÌÅΦ ÈÏÓÔ ÞÉ ÍÅÒÅÖÁ ΊצÄÐÏצÄÁÀÔØ. âÕÄØ-ÌÁÓËÁ, ÐÏ×ÔÏÒ¦ÔØ Ó×¦Ê ÚÁÐÉÔ ÝÅ ÒÁÚ.
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<BLOCKQUOTE>
+îÅÍÏÖÌÉ×Ï ×ÉÚÎÁÞÉÔÉ IP ÁÄÒÅÓÕ ×ÕÚÌÁ
+<I>%H</I>
+</BLOCKQUOTE>
+
+<P>
+DNS ÓÅÒ×ÅÒ ÐÏצÄÏÍÌѤ:
+<BLOCKQUOTE>
+%z
+</BLOCKQUOTE>
+
+<P>
+ãÅ ÏÚÎÁÞÁ¤:
+<PRE>
+ ëÅÛÕ ÎÅ ×ÄÁÌÏÓÑ ×ÉÚÎÁÞÉÔÉ ¦Í'Ñ ÓÅÒ×ÅÒÁ, ×ËÁÚÁÎÅ × URL.
+ ðÅÒÅצÒÔÅ ÐÒÁ×ÉÌØÎ¦ÓÔØ ÎÁÐÉÓÁÎÎÑ ÁÄÒÅÓÕ.
+</PRE>
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<BLOCKQUOTE>
+ïÂÒÏÂËÁ ESI ÚÁ×ÅÒÛÉÌÁÓØ ÎÅ×ÄÁÌÏ.
+</BLOCKQUOTE>
+
+<P>
+ESI ÐÒÏÃÅÓÏÒ ÐÏצÄÏÍÉ×:
+<BLOCKQUOTE>
+%Z
+</BLOCKQUOTE>
+
+<P>
+ãÅ ÏÚÎÁÞÁ¤ ÝÏ:
+<PRE>
+ úÁͦÎÎÉË ÎÅ ÚÍ¦Ç ÏÂÒÏÂÉÔÉ ESI ÔÅÍÐÌÅÊÔ. âÕÄØ-ÌÁÓËÁ ÐÏצÄÏÍÔÅ ÐÒÏ ÃÀ ÐÏÍÉÌËÕ ×ÅÂÍÁÊÓÔÒÁ.
+</PRE>
+<P>÷ÁÛÉÍ ×ÅÂÍÁÊÓÔÒÏÍ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+ðÅÒÅÓÉÌËÁ ÚÁÂÏÒÏÎÅÎÁ
+</STRONG>
+</UL>
+
+<P>
+ãÅÊ ËÅÛ ÎÅ ÐÅÒÅÓÉÌÁÔÉÍÅ ÷ÁÛ ÚÁÐÉÔ, ÔÏÍÕ ÝÏ ×¦Î ÎÁÍÁÇÁ¤ÔØÓÑ ×ÓÔÁÎÏ×ÉÔÉ ÂÒÁÔΦ צÄÎÏÓÉÎÉ (sibling relationship).
+íÏÖÌÉ×Ï, Ë̦¤ÎÔ %i - ÎÅצÒÎÏ ÓËÏÎÆ¦ÇÕÒÏ×ÁÎÉÊ ËÅÛ.
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+FTP ÄÏÓÔÕÐ ÚÁÂÏÒÏÎÅÎÉÊ.
+</STRONG>
+</UL>
+
+<P>
+ãÅÊ ËÅÛ ÎŠЦÄÔÒÉÍÕ¤ ÐÒÏÔÏËÏÌ FTP.
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL
+×ÉÎÉËÌÁ ÐÏÍÉÌËÁ ÐÒÏÔÏËÏÌÕ FTP:
+<A HREF="%U">%U</A>
+<P>
+Squid ÐÏÓÌÁ× ÎÁÓÔÕÐÎÕ ËÏÍÁÎÄÕ FTP:
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+¦ ÐÏÔ¦Í ÏÔÒÉÍÁ× ÔÁËÕ ×¦ÄÐÏצĨ
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+óÔÁÌÁÓØ ÎÅ×ÄÁÌÁ FTP ÁÕÔÅÎÔÉÆ¦ËÁæÑ
+<P>
+Squid ÐÏÓÌÁ× ÎÁÓÔÕÐÎÕ FTP ËÏÍÁÎÄÕ:
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+¦ ÐÏÔ¦Í ÏÔÒÉÍÁ× ÔÁËÕ ×¦ÄÐÏצĨ
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+äÁÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ:
+<A HREF="%U">%U</A>
+<P>
+Squid ÐÏÓÌÁ× ÎÁÓÔÕÐÎÕ FTP ËÏÍÁÎÄÕ:
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+¦ ÐÏÔ¦Í ÏÔÒÉÍÁ× ÔÁËÕ ×¦ÄÐÏצĨ
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>
+ãÅ ÍÏÖÅ ÂÕÔÉ ×ÉËÌÉËÁÎÏ FTP ÁÄÒÅÓÏÀ Ú ÁÂÓÏÌÀÔÎÉÍ ÛÌÑÈÏÍ (ÑËÉÊ ÎÅ
+צÄÐÏצÄÁ¤ ÓÔÁÎÄÁÒÔÕ RFC 1738). ÷ ÔÁËÏÍÕ ×ÉÐÁÄËÕ, ÆÁÊÌ ÍÏÖÅ ÂÕÔÉ
+ÚÎÁÊÄÅÎÉÊ ÚÁ ÁÄÒÅÓÏÀ <A HREF="%B">%B</A>.
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ëÏÍÁÎÄÁ FTP PUT ÚÁ×ÅÒÛÉÌÁÓØ ÕÓЦÛÎÏ: æÁÊÌ ÓÔ×ÏÒÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ïÐÅÒÁÃ¦Ñ ÚÁ×ÅÒÛÉÌÁÓØ ÕÓЦÛÎÏ</H1>
+<H2>æÁÊÌ ÓÔ×ÏÒÅÎÉÊ</H2>
+<HR noshade size="1px">
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: ëÏÍÁÎÄÁ FTP PUT/upload ÚÁ×ÅÒÛÉÌÁÓØ ÎÅ×ÄÁÌÏ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>FTP PUT/upload ÚÁ×ÅÒÛÉÌÁÓØ ÎÅ×ÄÁÌÏ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ ÆÁÊÌÁ ÚÁ ÁÄÒÅÓÏÀ:
+<A HREF="%U">%U</A>
+<P>
+Squid ÐÏÓÌÁ× ÎÁÓÔÕÐÎÕ FTP ËÏÍÁÎÄÕ:
+<PRE><STRONG>
+ %f
+</STRONG></PRE>
+¦ ÐÏÔ¦Í ÏÔÒÉÍÁ× ÔÁËÕ ×¦ÄÐÏצĨ
+<PRE><STRONG>
+ %F
+</STRONG></PRE>
+<P>
+ãÅ ÏÚÎÁÞÁ¤ ÝÏ:
+<PRE>
+÷ÁÍ ÓÌ¦Ä ÐÅÒÅצÒÉÔÉ ÛÌÑÈ, ÐÒÁ×Á ÄÏÓÔÕÐÕ, ×¦ÌØÎŠͦÓÃÅ ¦ ЦÓÌÑ ÃØÏÇÏ ÓÐÒÏÂÕ×ÁÔÉ ÚÎÏ×Õ.
+</PRE>
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ëÏÍÁÎÄÁ FTP PUT ÚÁ×ÅÒÛÉÌÁÓØ ÕÓЦÛÎÏ: æÁÊÌ ÏÎÏ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ïÐÅÒÁÃ¦Ñ ÚÁ×ÅÒÛÉÌÁÓØ ÕÓЦÛÎÏ.</H1>
+<H2>æÁÊÌ ÏÎÏ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+</P>
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+FTP ÓÅÒ×ÅÒ ÂÕ× ÐÅÒÅÇÒÕÖÅÎÉÊ
+<P>
+Squid ÐÏÓÌÁ× ÎÁÓÔÕÐÎÕ FTP ËÏÍÁÎÄÕ:
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+¦ ÐÏÔ¦Í ÏÔÒÉÍÁ× ÔÁËÕ ×¦ÄÐÏצĨ
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff; font-family:verdana,sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+ðÏÍÉÌËÁ ÐÒÏÔÏËÏÌÕ ICAP.
+</STRONG>
+</UL>
+
+<P>
+óÉÓÔÅÍÁ ÐÏצÄÏÍÉÌÁ:
+<PRE><I> %E</I></PRE>
+
+<P>
+ãÅ ÍÏÖÅ ÏÚÎÁÞÁÔÉ:
+äÅÑ˦ ÁÓÐÅËÔÉ ICAP Ú'¤ÄÎÁÎÎÑ ÎÅÓÐÒÁ×Φ. íÏÖÌÉצ ÐÒÏÂÌÅÍÉ:
+<UL>
+<LI>äÏÓÔÕÐ ÄÏ ICAP ÓÅÒ×ÅÒÕ ÎÅÍÏÖÌÉ×ÉÊ.
+<LI>îÅצÒÎÁ צÄÐÏצĨ ×¦Ä ICAP ÓÅÒ×ÅÒÕ.
+</UL>
+</P>
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+îÅצÒÎÉÊ ÚÁÐÉÔ
+</STRONG>
+</UL>
+
+<P>
+äÅÑ˦ ÁÓÐÅËÔÉ HTTP ÚÁÐÉÔÕ ÎÅצÒΦ. íÏÖÌÉצ ÐÒÏÂÌÅÍÉ:
+<UL>
+<LI>÷¦ÄÓÕÔÎ¦Ê ÁÂÏ ÎÅצÄÏÍÉÊ ÍÅÔÏÄ ÚÁÐÉÔÕ (GET, POST)
+<LI>÷¦ÄÓÕÔÎ¦Ê URL
+<LI>÷¦ÄÓÕÔÎ¦Ê HTTP ¦ÄÅÎÔÉÆ¦ËÁÔÏÒ (HTTP/1.0)
+<LI>úÁÐÉÔ ÎÁÄÔÏ ×ÅÌÉËÉÊ
+<LI>îÅ ×ËÁÚÁÎÉÊ Content-Length ÄÌÑ ÚÁÐÉÔ¦× POST ÞÉ PUT
+<LI>îÅÄÏÐÕÓÔÉÍÉÊ ÓÉÍ×ÏÌ × ¦ÍÅΦ ÓÅÒ×ÅÒÁ; ЦÄÞÅÒËÕ×ÁÎÎÑ ÎÅÄÏÐÕÓÔÉͦ
+</UL>
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+îÅצÒÎÉÊ ÚÁÐÉÔ
+</STRONG>
+</UL>
+
+<P>
+The HTTP צÄÐÏצÄÎÅ ÐÏצÄÏÍÌÅÎÎÑ, ÏÔÒÉÍÁÎÅ ×¦Ä ÓÅÒ×ÅÒÁ
+ÎÅ ÍÏÖÅ ÂÕÔÉ ×ÉÚÎÁÞÅÎÅ ÁÂÏ ¤ ÎÅÐÒÁ×ÉÌØÎÏ ÚÆÏÒÍÏ×ÁÎÉÍ.
+âÕÄØ-ÌÁÓËÁ, ËÏÎÔÁËÔÕÊÔÅ Ú ÁÄͦΦÓÔÒÁÔÏÒÏÍ ÓÁÊÔÕ. ÷ÁÛ ÁÄͦΦÓÔÒÁÔÏÒ
+ËÅÛÕ ÍÏÖÅ ÎÁÄÁÔÉ ÷ÁÍ Â¦ÌØÛ ÄÅÔÁÌØÎÕ ¦ÎÆÏÒÍÁæÀ ÐÒÏ
+ÄÁÎÕ ÐÏÍÉÌËÕ, ÑËÝÏ ÃÅ ÎÅÏÂȦÄÎÏ.
+
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+îÅÐÒÁ×ÉÌØÎÉÊ URL
+</STRONG>
+</UL>
+
+<P>
+äÅÑ˦ ÁÓÐÅËÔÉ ÚÁÐÒÏÛÅÎÏÇÏ URL ¤ ÎÅÐÒÁ×ÉÌØÎÉÍÉ. íÏÖÌÉצ ÐÒÏÂÌÅÍÉ:
+<UL>
+<LI>÷¦ÄÓÕÔÎ¦Ê ÞÉ ÎÅצÒÎÉÊ ÐÒÏÔÏËÏÌ ÄÏÓÔÕÐÕ (ÐÏ×ÉÎÅÎ ÂÕÔÉ `http://'' ÁÂÏ
+ÓÈÏÖÉÊ)
+<LI>÷¦ÄÓÕÔΤ ¦Í'Ñ ÓÅÒ×ÅÒÁ
+<LI>îÅÄÏÐÕÓÔÉÍÉÊ ÐÏÄצÊÎÉÊ ËÅÒÕÀÞÉÊ ÓÉÍ×ÏÌ × URL-ÛÌÑÈÕ
+<LI>îÅÄÏÐÕÓÔÉÍÉÊ ÓÉÍ×ÏÌ × ¦ÍÅΦ ÓÅÒ×ÅÒÁ; ЦÄÞÅÒËÕ×ÁÎÎÑ ÎÅÄÏÐÕÓÔÉͦ
+</UL>
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+þÁÓ Ú'¤ÄÎÁÎÎÑ ÚÁ˦ÎÞÉ×ÓÑ
+</STRONG>
+</UL>
+
+<P>
+Squid ÚÁ×ÅÒÛÉ× ÷ÁÛ ÚÁÐÉÔ Õ Ú×'ÑÚËÕ Ú ÐÅÒÅ×ÉÝÅÎÎÑÍ
+ÍÁËÓÉÍÁÌØÎÏÇÏ ÞÁÓÕ Ú'¤ÄÎÁÎÎÑ.
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+Wais Relay ÎÅ ×ÉÚÎÁÞÅÎÉÊ
+</STRONG>
+</UL>
+
+<P>
+äÌÑ ÃØÏÇÏ ËÅÛÕ ÎÅ ×ÉÚÎÁÞÅÎÉÊ WAIS Relay host! ú×ÅÒÎ¦ÔØÓÑ ÄÏ ÁÄͦΦÓÔÒÁÔÏÒÁ.
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+÷¦ÄÐÏצÄÎÉÊ ÏÂ'¤ËÔ ÎÅ ÂÕ× ÚÎÁÊÄÅÎÉÊ × ËÅÛ¦, × ÒÅÚÕÌØÔÁÔ¦ ÞÏÇÏ ÂÕÌÁ
+×ÉÚÎÁÞÅÎÁ ÄÉÒÅËÔÉ×Á <code>only-if-cached</code>.
+</STRONG>
+</UL>
+
+<P>
+÷Ù ÐÏÓÌÁÌÉ ÚÁÐÉÔ Ú ÄÉÒÅËÔÉ×ÏÀ ËÅÛ-ËÏÎÔÒÏÌÀ <code>only-if-cached</code>.
+ïÂ'¤ËÔ ÎÅ ÂÕ× ÚÎÁÊÄÅÎÉÊ × ËÅÛ¦, <em>ÁÂÏ</em> צΠ×ÉÍÁÇÁ¤ ÏÎÏ×ÌÅÎÎÑ,
+ÑËÅ ÚÁÂÏÒÏÎÅÎÏ <code>only-if-cached</code> ÄÉÒÅËÔÉ×ÏÀ.
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+ðÏÍÉÌËÁ ÞÉÔÁÎÎÑ
+</STRONG>
+</UL>
+
+<P>
+óÉÓÔÅÍÁ ÐÏצÄÏÍÉÌÁ:
+<PRE><I> %E</I></PRE>
+
+<P>
+ð¦Ä ÞÁÓ ÞÉÔÁÎÎÑ ÄÁÎÉÈ Ú ÍÅÒÅÖ¦ ×ÉÎÉËÌÁ ÐÏÍÉÌËÁ. âÕÄØ-ÌÁÓËÁ, ÐÏ×ÔÏÒ¦ÔØ
+÷ÁÛ ÚÁÐÉÔ.
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+ðÅÒÅ×ÉÝÅÎÉÊ ÞÁÓ ÏÞ¦ËÕ×ÁÎÎÑ ×¦ÄÐÏצĦ.
+</STRONG>
+</UL>
+
+<P>
+óÉÓÔÅÍÁ ÐÏצÄÏÍÉÌÁ:
+<PRE><I> %E</I></PRE>
+
+<P>
+ðÅÒÅ×ÉÝÅÎÉÊ ÞÁÓ ÏÞ¦ËÕ×ÁÎÎÑ ×¦ÄÐÏצĦ Ð¦Ä ÞÁÓ ÞÉÔÁÎÎÑ ÄÁÎÉÈ Ú ÍÅÒÅÖ¦. íÅÒÅÖÁ
+ÞÉ ÓÅÒ×ÅÒ ÍÏÖÕÔØ ÎÅ ÐÒÁÃÀ×ÁÔÉ ÞÉ ÂÕÔÉ ÐÅÒÅÇÒÕÖÅÎÉÍÉ. âÕÄØ-ÌÁÓËÁ, ÐÏ×ÔÏÒ¦ÔØ ÷ÁÛ ÚÁÐÉÔ.
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ERROR</H1>
+<H2>The requested URL could not be retrieved</H2>
+<HR noshade size="1px">
+<P>
+While trying to retrieve the URL:
+<A HREF="%U">%U</A>
+<P>
+The following error was encountered:
+<UL>
+<LI>
+<STRONG>
+Failed to establish a secure connection to %I
+</STRONG>
+</UL>
+
+<P>
+The system returned:
+<PRE><I> %E</I></PRE>
+
+<P>
+This proxy and the remote host failed to negotiate a mutually acceptable
+security settings for handling your request. It is possible that the remote
+host does not support secure connections, or the proxy is not satisfied with
+the host security credentials.
+
+<P>Your cache administrator is <A HREF="mailto:%w%W">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<P>
+ãÅÊ ËÅÛ × ÄÁÎÉÊ ÍÏÍÅÎÔ ÞÁÓÕ ÚÎÁÈÏÄÉÔØÓÑ × ÐÒÏÃÅÓ¦ ÚÕÐÉÎËÉ ¦ ÎÅ ÍÏÖÅ ÏÂÓÌÕÖÉÔÉ
+×ÁÛ ÚÁÐÉÔ. âÕÄØ-ÌÁÓËÁ, ÐÏ×ÔÏÒ¦ÔØ ÷ÁÛ ÚÁÐÉÔ ÞÅÒÅÚ ÄÅÑËÉÊ ÞÁÓ ÚÎÏ×Õ.
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+ðÏÍÉÌËÁ TCP socket.
+</STRONG>
+</UL>
+
+<P>
+óÉÓÔÅÍÁ ÐÏצÄÏÍÉÌÁ:
+<PRE><I> %E</I></PRE>
+
+<P>
+Squid ÎÅ ÍÏÖÅ ÓÔ×ÏÒÉÔÉ TCP socket, ÓËÏÒ¦Û ÚÁ ×ÓÅ ÞÅÒÅÚ ÄÕÖÅ ×ÉÓÏËÕ ÚÁÇÒÕÚËÕ ÓÅÒ×ÅÒÁ.
+âÕÄØ-ÌÁÓËÁ, ÐÏ×ÔÏÒ¦ÔØ ÷ÁÛ ÚÁÐÉÔ.
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+úÁÐÉÔ ÞÉ ×¦ÄÐÏצĨ ÎÁÄÔÏ ×ÅÌÉËÁ.
+</STRONG>
+
+<P>
+õ ×ÉÐÁÄËÕ, ÑËÝÏ ÷É ÚĦÊÓÎÀ×ÁÌÉ POST ÞÉ PUT ÚÁÐÉÔ, ÔÏĦ ÷ÁÛ ÚÁÐÉÔ
+(ÔÅ, ÝÏ ÷É ÎÁÍÁÇÁÌÉÓØ ÚÁËÁÞÁÔÉ) ¤ ÎÁÄÔÏ ×ÅÌÉËÉÍ. ñËÝÏ ÷É
+ÚĦÊÓÎÀ×ÁÌÉ GET ÚÁÐÉÔ, ÔÏĦ צÄËÌÉË (ÔÅ, ÝÏ ÷É ÎÁÍÁÇÁÌÉÓØ ×ÉËÁÞÁÔÉ
+) ¤ ÎÁÄÔÏ ×ÅÌÉËÉÍ. 㦠ÏÂÍÅÖÅÎÎÑ ÂÕÌÉ ×ÓÔÁÎÏ×ÌÅΦ
+÷ÁÛÉÍ ¶ÎÔÅÒÎÅÔ ðÒÏ×ÁÊÄÅÒÏÍ, ÑËÉÊ ËÅÒÕ¤ ËÅÛÏÍ. âÕÄØ-ÌÁÓËÁ,
+ÐÏצÄÏÍÔÅ ÊÏÇÏ, ÑËÝÏ ÷É ××ÁÖÁ¤ÔÅ ÄÁÎÅ ÐÏצÄÏÍÌÅÎÎÑ ÐÏÍÉÌËÏÀ.
+</UL>
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+íÅÔÏÄ ÞÉ ÐÒÏÔÏËÏÌ ÚÁÐÉÔÕ ÎŠЦÄÔÒÉÍÕÀÔØÓÑ
+</STRONG>
+</UL>
+
+<P>
+Squid ΊЦÄÔÒÉÍÕ¤ ×Ó¦ ÍÅÔÏÄÉ ÚÁÐÉÔ¦× ÄÌÑ ÕÓ¦È ÐÒÏÔÏËÏ̦×.
+îÁÐÒÉËÌÁÄ, ÄÌÑ ÐÒÏÔÏËÏÌÕ Gopher ÷É ÎÅ ÍÏÖÅÔÅ ×ÉËÏÎÁÔÉ ÚÁÐÉÔ POST.
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URN ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>URL ÄÌÑ ÚÁÐÒÏÛÅÎÏÇÏ URN ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URN:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+îÅÍÏÖÌÉ×Ï ×ÉÚÎÁÞÉÔÉ URN <br>
+(Cannot Resolve URN)
+</STRONG>
+</UL>
+
+<P>
+îÅ ×ÁÒÔÏ ÂÁÇÁÔÏ ÞÏÇÏ ÏÞ¦ËÕ×ÁÔÉ ×¦Ä Ã¦¤§ ÔÅÈÎÏÌÏǦ§ URNs ÎÁ %T :)
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+ðÏÍÉÌËÁ ÚÁÐÉÓÕ
+</STRONG>
+</UL>
+
+<P>
+óÉÓÔÅÍÁ ÐÏצÄÏÍÉÌÁ:
+<PRE><I> %E</I></PRE>
+
+<P>
+ð¦Ä ÞÁÓ ×¦ÄÐÒÁ×ÌÅÎÎÑ ¦ÎÆÏÒÍÁæ§ × ÍÅÒÅÖÕ ×ÉÎÉËÌÁ ÐÏÍÉÌËÁ. âÕÄØ-ÌÁÓËÁ, ÐÏ×ÔÏÒ¦ÔØ
+÷ÁÛ ÚÁÐÉÔ
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
+
+
+
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-u">
+<TITLE>ðïíéìëá: úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ðïíéìëá</H1>
+<H2>úÁÐÒÏÛÅÎÉÊ URL ÎÅ ÍÏÖÅ ÂÕÔÉ ÄÏÓÔÁ×ÌÅÎÉÊ</H2>
+<HR noshade size="1px">
+<P>
+ð¦Ä ÞÁÓ ÄÏÓÔÁ×ËÉ URL:
+<A HREF="%U">%U</A>
+<P>
+÷ÉÎÉËÌÁ ÎÁÓÔÕÐÎÁ ÐÏÍÉÌËÁ:
+<UL>
+<LI>
+<STRONG>
+÷¦ÄÐÏצĨ ÎÕÌØÏ×ϧ ÄÏ×ÖÉÎÉ
+</STRONG>
+</UL>
+
+<P>
+Squid ÎÅ ÏÔÒÉÍÁ× ÂÕÄØ-ÑËÉÈ ÄÁÎÉÈ ÄÌÑ ÃØÏÇÏ ÚÁÐÉÔÕ.
+<P>÷ÁÛÉÍ ÁÄͦΦÓÔÒÁÔÏÒÏÍ ËÅÛÕ ¤ <A HREF="mailto:%w">%w</A>.
--- /dev/null
+Thank you to
+ ðÅÔÒÏ îÅË <mr.petruccio@gmail.com>
+ Vitaliy Matytsyn (main) <vm@if.bank.gov.ua>
+for creating these error pages in Ukrainian!
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Доступ заборонений.
+</STRONG>
+<P>
+Настройка контролю доступу не дозволяє виконати Ваш
+запит в даний час. Якщо Ви вважаєте це неправильним, то,
+будь-ласка, контактуйте з Вашим Інтернет провайдером.
+</UL>
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Доступ до кешу заборонений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD>
+<BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Доступ до кешу заборонений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Доступ до кешу заборонений
+</STRONG>
+</UL>
+</P>
+
+<P>Вибачте, але Ви не можете запросити:
+<PRE> %U</PRE>
+з цього кешу до тих пір, поки не пройдете аутентифікацію.
+</P>
+
+<P>
+Вам потрібно використовувати Netscape версії 2.0 чи вище, або Microsoft Internet
+Explorer 3.0, або HTTP/1.1 сумісний броузер. Будь-ласка, зв'яжіться
+з <A HREF="mailto:%w">адміністратором кешу</a>, якщо у Вас виникли труднощі
+з аутентифікацією, або <A HREF="http://%h/cgi-bin/chpasswd.cgi">змініть</a>
+Ваш пароль по замовчуванню.
+</P>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Доступ до керування кешом заборонений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD>
+<BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Доступ до керування кешом заборонений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Доступ до керування кешом заборонений
+</STRONG>
+</UL>
+</P>
+
+<P>Вибачте, Ви не можете запросити:
+<PRE> %U</PRE>
+з цього кеш менеджера до тих пір, поки не пройдете аутентифікацію.
+</P>
+<P>
+Вам потрібно використовувати Netscape версії 2.0 чи вище, або Microsoft Internet
+Explorer 3.0, або HTTP/1.1 сумісний броузер. Будь-ласка, зв'яжіться
+з <A HREF="mailto:%w">адміністратором кешу</a>, якщо у Вас виникли труднощі
+з аутентифікацією, а якщо <em>Ви</em> є адміністратором,
+прочитайте документацію Squid по інтерфейсу керування кешом і перевірте
+журнал кешу (cache log) на предмет більш детальних повідомлень про помилки.</P>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+В даний момент неможливо переслати цей запит
+</STRONG>
+</UL>
+
+<P>
+Даний запит не може бути пересланий до сервера-джерела, чи до будь-якого
+з вищестоячих кешів. Найбільш вірогідна причина помилки:
+<UL>
+<LI>Адміністратор кешу заборонив виконувати прямі з'єднання
+з серверами-джерелами (origin servers) і
+<LI>усі вищестоячі кеш-сервера (parent caches) в даний момент недоступні.
+</UL>
+<P>Вашим кеш адміністратором є <A HREF="mailto:%w">%w</A>.
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Не вдалось встановити з'єднання
+</STRONG>
+</UL>
+
+<P>
+Система повідомляє:
+<PRE><I> %E</I></PRE>
+
+<P>
+Віддалені хост чи мережа не відповідають. Будь-ласка, повторіть свій запит ще раз.
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<BLOCKQUOTE>
+Неможливо визначити IP адресу вузла
+<I>%H</I>
+</BLOCKQUOTE>
+
+<P>
+DNS сервер повідомляє:
+<BLOCKQUOTE>
+%z
+</BLOCKQUOTE>
+
+<P>
+Це означає:
+<PRE>
+ Кешу не вдалося визначити ім'я сервера, вказане в URL.
+ Перевірте правильність написання адресу.
+</PRE>
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<BLOCKQUOTE>
+Обробка ESI завершилась невдало.
+</BLOCKQUOTE>
+
+<P>
+ESI процесор повідомив:
+<BLOCKQUOTE>
+%Z
+</BLOCKQUOTE>
+
+<P>
+Це означає що:
+<PRE>
+ Замінник не зміг обробити ESI темплейт. Будь-ласка повідомте про цю помилку вебмайстра.
+</PRE>
+<P>Вашим вебмайстром є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Пересилка заборонена
+</STRONG>
+</UL>
+
+<P>
+Цей кеш не пересилатиме Ваш запит, тому що він намагається встановити братні відносини (sibling relationship).
+Можливо, клієнт %i - невірно сконфігурований кеш.
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+FTP доступ заборонений.
+</STRONG>
+</UL>
+
+<P>
+Цей кеш не підтримує протокол FTP.
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL
+виникла помилка протоколу FTP:
+<A HREF="%U">%U</A>
+<P>
+Squid послав наступну команду FTP:
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+і потім отримав таку відповідь
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+Сталась невдала FTP аутентифікація
+<P>
+Squid послав наступну FTP команду:
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+і потім отримав таку відповідь
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Даний URL не може бути доставлений:
+<A HREF="%U">%U</A>
+<P>
+Squid послав наступну FTP команду:
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+і потім отримав таку відповідь
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>
+Це може бути викликано FTP адресою з абсолютним шляхом (який не
+відповідає стандарту RFC 1738). В такому випадку, файл може бути
+знайдений за адресою <A HREF="%B">%B</A>.
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>Команда FTP PUT завершилась успішно: Файл створений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>Операція завершилась успішно</H1>
+<H2>Файл створений</H2>
+<HR noshade size="1px">
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Команда FTP PUT/upload завершилась невдало</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>FTP PUT/upload завершилась невдало</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки файла за адресою:
+<A HREF="%U">%U</A>
+<P>
+Squid послав наступну FTP команду:
+<PRE><STRONG>
+ %f
+</STRONG></PRE>
+і потім отримав таку відповідь
+<PRE><STRONG>
+ %F
+</STRONG></PRE>
+<P>
+Це означає що:
+<PRE>
+Вам слід перевірити шлях, права доступу, вільне місце і після цього спробувати знову.
+</PRE>
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>Команда FTP PUT завершилась успішно: Файл оновлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>Операція завершилась успішно.</H1>
+<H2>Файл оновлений</H2>
+<HR noshade size="1px">
+<P>
+</P>
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+FTP сервер був перегружений
+<P>
+Squid послав наступну FTP команду:
+<blockquote><strong><pre>%f</pre></strong></blockquote>
+і потім отримав таку відповідь
+<blockquote><strong><pre>%F</pre></strong></blockquote>
+<blockquote><strong><pre>%g</pre></strong></blockquote>
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff; font-family:verdana,sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Помилка протоколу ICAP.
+</STRONG>
+</UL>
+
+<P>
+Система повідомила:
+<PRE><I> %E</I></PRE>
+
+<P>
+Це може означати:
+Деякі аспекти ICAP з'єднання несправні. Можливі проблеми:
+<UL>
+<LI>Доступ до ICAP серверу неможливий.
+<LI>Невірна відповідь від ICAP серверу.
+</UL>
+</P>
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Невірний запит
+</STRONG>
+</UL>
+
+<P>
+Деякі аспекти HTTP запиту невірні. Можливі проблеми:
+<UL>
+<LI>Відсутній або невідомий метод запиту (GET, POST)
+<LI>Відсутній URL
+<LI>Відсутній HTTP ідентифікатор (HTTP/1.0)
+<LI>Запит надто великий
+<LI>Не вказаний Content-Length для запитів POST чи PUT
+<LI>Недопустимий символ в імені сервера; підчеркування недопустимі
+</UL>
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Невірний запит
+</STRONG>
+</UL>
+
+<P>
+The HTTP відповідне повідомлення, отримане від сервера
+не може бути визначене або є неправильно зформованим.
+Будь-ласка, контактуйте з адміністратором сайту. Ваш адміністратор
+кешу може надати Вам більш детальну інформацію про
+дану помилку, якщо це необхідно.
+
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Неправильний URL
+</STRONG>
+</UL>
+
+<P>
+Деякі аспекти запрошеного URL є неправильними. Можливі проблеми:
+<UL>
+<LI>Відсутній чи невірний протокол доступу (повинен бути `http://'' або
+схожий)
+<LI>Відсутнє ім'я сервера
+<LI>Недопустимий подвійний керуючий символ в URL-шляху
+<LI>Недопустимий символ в імені сервера; підчеркування недопустимі
+</UL>
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Час з'єднання закінчився
+</STRONG>
+</UL>
+
+<P>
+Squid завершив Ваш запит у зв'язку з перевищенням
+максимального часу з'єднання.
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Wais Relay не визначений
+</STRONG>
+</UL>
+
+<P>
+Для цього кешу не визначений WAIS Relay host! Зверніться до адміністратора.
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Відповідний об'єкт не був знайдений в кеші, в результаті чого була
+визначена директива <code>only-if-cached</code>.
+</STRONG>
+</UL>
+
+<P>
+Вы послали запит з директивою кеш-контролю <code>only-if-cached</code>.
+Об'єкт не був знайдений в кеші, <em>або</em> він вимагає оновлення,
+яке заборонено <code>only-if-cached</code> директивою.
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Помилка читання
+</STRONG>
+</UL>
+
+<P>
+Система повідомила:
+<PRE><I> %E</I></PRE>
+
+<P>
+Під час читання даних з мережі виникла помилка. Будь-ласка, повторіть
+Ваш запит.
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Перевищений час очікування відповіді.
+</STRONG>
+</UL>
+
+<P>
+Система повідомила:
+<PRE><I> %E</I></PRE>
+
+<P>
+Перевищений час очікування відповіді під час читання даних з мережі. Мережа
+чи сервер можуть не працювати чи бути перегруженими. Будь-ласка, повторіть Ваш запит.
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ERROR</H1>
+<H2>The requested URL could not be retrieved</H2>
+<HR noshade size="1px">
+<P>
+While trying to retrieve the URL:
+<A HREF="%U">%U</A>
+<P>
+The following error was encountered:
+<UL>
+<LI>
+<STRONG>
+Failed to establish a secure connection to %I
+</STRONG>
+</UL>
+
+<P>
+The system returned:
+<PRE><I> %E</I></PRE>
+
+<P>
+This proxy and the remote host failed to negotiate a mutually acceptable
+security settings for handling your request. It is possible that the remote
+host does not support secure connections, or the proxy is not satisfied with
+the host security credentials.
+
+<P>Your cache administrator is <A HREF="mailto:%w%W">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<P>
+Цей кеш в даний момент часу знаходиться в процесі зупинки і не може обслужити
+ваш запит. Будь-ласка, повторіть Ваш запит через деякий час знову.
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Помилка TCP socket.
+</STRONG>
+</UL>
+
+<P>
+Система повідомила:
+<PRE><I> %E</I></PRE>
+
+<P>
+Squid не може створити TCP socket, скоріш за все через дуже високу загрузку сервера.
+Будь-ласка, повторіть Ваш запит.
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Запит чи відповідь надто велика.
+</STRONG>
+
+<P>
+У випадку, якщо Ви здійснювали POST чи PUT запит, тоді Ваш запит
+(те, що Ви намагались закачати) є надто великим. Якщо Ви
+здійснювали GET запит, тоді відклик (те, що Ви намагались викачати
+) є надто великим. Ці обмеження були встановлені
+Вашим Інтернет Провайдером, який керує кешом. Будь-ласка,
+повідомте його, якщо Ви вважаєте дане повідомлення помилкою.
+</UL>
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Метод чи протокол запиту не підтримуються
+</STRONG>
+</UL>
+
+<P>
+Squid не підтримує всі методи запитів для усіх протоколів.
+Наприклад, для протоколу Gopher Ви не можете виконати запит POST.
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URN не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>URL для запрошеного URN не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URN:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Неможливо визначити URN <br>
+(Cannot Resolve URN)
+</STRONG>
+</UL>
+
+<P>
+Не варто багато чого очікувати від цієї технології URNs на %T :)
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Помилка запису
+</STRONG>
+</UL>
+
+<P>
+Система повідомила:
+<PRE><I> %E</I></PRE>
+
+<P>
+Під час відправлення інформації в мережу виникла помилка. Будь-ласка, повторіть
+Ваш запит
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
+
+
+
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>ПОМИЛКА: Запрошений URL не може бути доставлений</TITLE>
+<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+</HEAD><BODY>
+<H1>ПОМИЛКА</H1>
+<H2>Запрошений URL не може бути доставлений</H2>
+<HR noshade size="1px">
+<P>
+Під час доставки URL:
+<A HREF="%U">%U</A>
+<P>
+Виникла наступна помилка:
+<UL>
+<LI>
+<STRONG>
+Відповідь нульової довжини
+</STRONG>
+</UL>
+
+<P>
+Squid не отримав будь-яких даних для цього запиту.
+<P>Вашим адміністратором кешу є <A HREF="mailto:%w">%w</A>.
--- /dev/null
+Thank you to
+ Петро Нек <mr.petruccio@gmail.com>
+ Vitaliy Matytsyn (main) <vm@if.bank.gov.ua>
+for creating these error pages in Ukrainian!
ERR_CACHE_ACCESS_DENIED
ERR_CACHE_MGR_ACCESS_DENIED
ERR_CANNOT_FORWARD
-ERR_CLIENT_ABORT
ERR_CONNECT_FAIL
ERR_DNS_FAIL
+ERR_ESI
ERR_FORWARDING_DENIED
ERR_FTP_DISABLED
ERR_FTP_FAILURE
+ERR_FTP_FORBIDDEN
+ERR_FTP_NOT_FOUND
ERR_FTP_PUT_CREATED
ERR_FTP_PUT_ERROR
ERR_FTP_PUT_MODIFIED
+ERR_FTP_UNAVAILABLE
+ERR_ICAP_FAILURE
ERR_INVALID_REQ
+ERR_INVALID_RESP
ERR_INVALID_URL
ERR_LIFETIME_EXP
ERR_NO_RELAY
ERR_ONLY_IF_CACHED_MISS
ERR_READ_ERROR
ERR_READ_TIMEOUT
+ERR_SHUTTING_DOWN
ERR_SOCKET_FAILURE
+ERR_TOO_BIG
ERR_UNSUP_REQ
ERR_URN_RESOLVE
ERR_WRITE_ERROR
#include "spnegohelp.h"
#endif
+#ifndef HOST_NAME_MAX
+#define HOST_NAME_MAX 256
+#endif
#ifndef MAXHOSTNAMELEN
#define MAXHOSTNAMELEN HOST_NAME_MAX
#endif
/* Define to 1 if you have the <glib.h> header file. */
#undef HAVE_GLIB_H
+/* Define to 1 if you have the `glob' function. */
+#undef HAVE_GLOB
+
+/* Define to 1 if you have the <glob.h> header file. */
+#undef HAVE_GLOB_H
+
/* Define to 1 if you have the <gnumalloc.h> header file. */
#undef HAVE_GNUMALLOC_H
/*
- * $Id: config.h,v 1.25 2007/09/20 11:07:53 amosjeffries Exp $
+ * $Id: config.h,v 1.25.4.1 2008/02/29 18:30:01 serassio Exp $
*
* AUTHOR: Duane Wessels
*
*/
#if WITH_VALGRIND
#include <valgrind/memcheck.h>
+#undef VALGRIND_MAKE_NOACCESS
+#undef VALGRIND_MAKE_WRITABLE
+#undef VALGRIND_MAKE_READABLE
+/* A little glue for older valgrind version prior to 3.2.0 */
+#ifndef VALGRIND_MAKE_MEM_NOACCESS
+#define VALGRIND_MAKE_MEM_NOACCESS VALGRIND_MAKE_NOACCESS
+#define VALGRIND_MAKE_MEM_UNDEFINED VALGRIND_MAKE_WRITABLE
+#define VALGRIND_MAKE_MEM_DEFINED VALGRIND_MAKE_READABLE
+#define VALGRIND_CHECK_MEM_IS_ADDRESSABLE VALGRIND_CHECK_WRITABLE
+#endif
#else
-#define VALGRIND_MAKE_NOACCESS(a,b) (0)
-#define VALGRIND_MAKE_WRITABLE(a,b) (0)
-#define VALGRIND_MAKE_READABLE(a,b) (0)
-#define VALGRIND_CHECK_WRITABLE(a,b) (0)
-#define VALGRIND_CHECK_READABLE(a,b) (0)
+#define VALGRIND_MAKE_MEM_NOACCESS(a,b) (0)
+#define VALGRIND_MAKE_MEM_UNDEFINED(a,b) (0)
+#define VALGRIND_MAKE_MEM_DEFINED(a,b) (0)
+#define VALGRIND_CHECK_MEM_IS_ADDRESSABLE(a,b) (0)
+#define VALGRIND_CHECK_MEM_IS_DEFINED(a,b) (0)
#define VALGRIND_MALLOCLIKE_BLOCK(a,b,c,d)
#define VALGRIND_FREELIKE_BLOCK(a,b)
#define RUNNING_ON_VALGRIND 0
/*
- * $Id: MemPool.cc,v 1.10 2007/11/13 23:25:33 rousskov Exp $
+ * $Id: MemPool.cc,v 1.10.4.1 2008/02/29 18:30:02 serassio Exp $
*
* DEBUG: section 63 Low Level Memory Pool Management
* AUTHOR: Alex Rousskov, Andres Kroonmaa, Robert Collins
for (int i = 1; i < pool->chunk_capacity; i++) {
*Free = (void *) ((char *) Free + pool->obj_size);
void **nextFree = (void **)*Free;
- (void) VALGRIND_MAKE_NOACCESS(Free, pool->obj_size);
+ (void) VALGRIND_MAKE_MEM_NOACCESS(Free, pool->obj_size);
Free = nextFree;
}
nextFreeChunk = pool->nextFreeChunk;
Free = (void **)obj;
*Free = freeCache;
freeCache = obj;
- (void) VALGRIND_MAKE_NOACCESS(obj, obj_size);
+ (void) VALGRIND_MAKE_MEM_NOACCESS(obj, obj_size);
}
/*
/* first, try cache */
if (freeCache) {
Free = (void **)freeCache;
- (void) VALGRIND_MAKE_READABLE(Free, obj_size);
+ (void) VALGRIND_MAKE_MEM_DEFINED(Free, obj_size);
freeCache = *Free;
*Free = NULL;
return Free;
/* last free in this chunk, so remove us from perchunk freelist chain */
nextFreeChunk = chunk->nextFreeChunk;
}
- (void) VALGRIND_MAKE_READABLE(Free, obj_size);
+ (void) VALGRIND_MAKE_MEM_DEFINED(Free, obj_size);
return Free;
}
MemImplementingAllocator::free(void *obj)
{
assert(obj != NULL);
- (void) VALGRIND_CHECK_WRITABLE(obj, obj_size);
+ (void) VALGRIND_CHECK_MEM_IS_ADDRESSABLE(obj, obj_size);
deallocate(obj);
++free_calls;
}
assert(splayLastResult == 0);
assert(chunk->inuse_count > 0);
chunk->inuse_count--;
- (void) VALGRIND_MAKE_READABLE(Free, sizeof(void *));
+ (void) VALGRIND_MAKE_MEM_DEFINED(Free, sizeof(void *));
freeCache = *(void **)Free; /* remove from global cache */
*(void **)Free = chunk->freeList; /* stuff into chunks freelist */
- (void) VALGRIND_MAKE_NOACCESS(Free, sizeof(void *));
+ (void) VALGRIND_MAKE_MEM_NOACCESS(Free, sizeof(void *));
chunk->freeList = Free;
chunk->lastref = squid_curtime;
}
/*
- * $Id: rfc2617.c,v 1.12 2007/11/15 16:47:34 wessels Exp $
+ * $Id: rfc2617.c,v 1.12.4.1 2008/02/29 18:30:02 serassio Exp $
*
* DEBUG:
* AUTHOR: RFC 2617 & Robert Collins
else
Bin[i / 2] |= n;
}
- for (; i <= HASHHEXLEN; i++) {
+ for (i = i / 2; i < HASHLEN; i++) {
Bin[i] = '\0';
}
}
/*
- * $Id: ACLChecklist.cc,v 1.42 2007/09/01 05:56:37 amosjeffries Exp $
+ * $Id: ACLChecklist.cc,v 1.42.4.1 2008/02/29 18:30:02 serassio Exp $
*
* DEBUG: section 28 Access Control
* AUTHOR: Duane Wessels
HTTPMSGUNLOCK(reply);
- /*
- * DPW 2007-05-08
- * If this fails, then we'll need a backup UNLOCK call in the
- * destructor.
- */
- assert(auth_user_request == NULL);
+ // no auth_user_request in builds without any Authentication configured
+ if (auth_user_request)
+ AUTHUSERREQUESTUNLOCK(auth_user_request, "ACLChecklist destructor");
conn_ = NULL;
/*
- * $Id: ACLDestinationDomain.cc,v 1.15 2007/11/03 04:49:53 wessels Exp $
+ * $Id: ACLDestinationDomain.cc,v 1.15.4.1 2008/02/29 18:30:02 serassio Exp $
*
* DEBUG: section 28 Access Control
* AUTHOR: Duane Wessels
int
ACLDestinationDomainStrategy::match (ACLData<MatchType> * &data, ACLChecklist *checklist)
{
+ assert(checklist != NULL && checklist->request != NULL);
+
const ipcache_addrs *ia = NULL;
const char *fqdn = NULL;
--- /dev/null
+
+/*
+ * $Id: ACLMyPortName.cc,v 1.2.6.1 2008/02/29 18:30:02 serassio Exp $
+ *
+ *
+ * SQUID Web Proxy Cache http://www.squid-cache.org/
+ * ----------------------------------------------------------
+ *
+ * Squid is the result of efforts by numerous individuals from
+ * the Internet community; see the CONTRIBUTORS file for full
+ * details. Many organizations have provided support for Squid's
+ * development; see the SPONSORS file for full details. Squid is
+ * Copyrighted (C) 2001 by the Regents of the University of
+ * California; see the COPYRIGHT file for full details. Squid
+ * incorporates software developed and/or copyrighted by other
+ * sources; see the CREDITS file for full details.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
+ *
+ *
+ * Copyright (c) 2003, Robert Collins <robertc@squid-cache.org>
+ */
+
+#include "squid.h"
+#include "ACLMyPortName.h"
+#include "ACLStringData.h"
+#include "ACLChecklist.h"
+
+/* explicit template instantiation required for some systems */
+
+template class ACLStrategised<const char *>;
+
+ACL::Prototype ACLMyPortName::RegistryProtoype(&ACLMyPortName::RegistryEntry_, "myportname");
+
+ACLStrategised<const char *> ACLMyPortName::RegistryEntry_(new ACLStringData, ACLMyPortNameStrategy::Instance(), "myportname");
+
+int
+ACLMyPortNameStrategy::match (ACLData<MatchType> * &data, ACLChecklist *checklist)
+{
+ if (checklist->conn() != NULL)
+ return data->match (checklist->conn()->port->name);
+ return 0;
+}
+
+ACLMyPortNameStrategy *
+ACLMyPortNameStrategy::Instance()
+{
+ return &Instance_;
+}
+
+ACLMyPortNameStrategy ACLMyPortNameStrategy::Instance_;
--- /dev/null
+
+/*
+ * $Id: ACLMyPortName.h,v 1.1.6.1 2008/02/29 18:30:02 serassio Exp $
+ *
+ *
+ * SQUID Web Proxy Cache http://www.squid-cache.org/
+ * ----------------------------------------------------------
+ *
+ * Squid is the result of efforts by numerous individuals from
+ * the Internet community; see the CONTRIBUTORS file for full
+ * details. Many organizations have provided support for Squid's
+ * development; see the SPONSORS file for full details. Squid is
+ * Copyrighted (C) 2001 by the Regents of the University of
+ * California; see the COPYRIGHT file for full details. Squid
+ * incorporates software developed and/or copyrighted by other
+ * sources; see the CREDITS file for full details.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
+ *
+ *
+ * Copyright (c) 2003, Robert Collins <robertc@squid-cache.org>
+ */
+
+#ifndef SQUID_ACLMYPORTNAME_H
+#define SQUID_ACLMYPORTNAME_H
+#include "ACLStrategy.h"
+#include "ACLStrategised.h"
+
+class ACLMyPortNameStrategy : public ACLStrategy<const char *>
+{
+
+public:
+ virtual int match (ACLData<MatchType> * &, ACLChecklist *);
+ static ACLMyPortNameStrategy *Instance();
+ /* Not implemented to prevent copies of the instance. */
+ /* Not private to prevent brain dead g+++ warnings about
+ * private constructors with no friends */
+ ACLMyPortNameStrategy(ACLMyPortNameStrategy const &);
+
+private:
+ static ACLMyPortNameStrategy Instance_;
+ ACLMyPortNameStrategy(){}
+
+ ACLMyPortNameStrategy&operator=(ACLMyPortNameStrategy const &);
+};
+
+class ACLMyPortName
+{
+
+private:
+ static ACL::Prototype RegistryProtoype;
+ static ACLStrategised<const char *> RegistryEntry_;
+};
+
+#endif /* SQUID_ACLMYPORTNAME_H */
/*
- * $Id: ESI.cc,v 1.26.4.2 2008/01/20 19:39:26 serassio Exp $
+ * $Id: ESI.cc,v 1.26.4.3 2008/02/29 18:30:02 serassio Exp $
*
* DEBUG: section 86 ESI processing
* AUTHOR: Robert Collins
assert (s);
buffer = new ESISegment;
ESISegment::Pointer local = buffer;
- off_t start = 0;
+ size_t start = 0;
int remainingCharacters = numberOfCharacters;
while (remainingCharacters > 0) {
/*
- * $Id: ESIContext.h,v 1.4 2003/08/04 22:14:40 robertc Exp $
+ * $Id: ESIContext.h,v 1.4.6.1 2008/02/29 18:30:02 serassio Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
* for some reason
*/
size_t outbound_offset;
- off_t readpos; /* the logical position we are reading from */
- off_t pos; /* the logical position of outbound_offset in the data stream */
+ int64_t readpos; /* the logical position we are reading from */
+ int64_t pos; /* the logical position of outbound_offset in the data stream */
class ParserState
{
/*
- * $Id: ESIInclude.cc,v 1.14.4.2 2008/01/20 19:39:26 serassio Exp $
+ * $Id: ESIInclude.cc,v 1.14.4.3 2008/02/29 18:30:02 serassio Exp $
*
* DEBUG: section 86 ESI processing
* AUTHOR: Robert Collins
ESIInclude::prepareRequestHeaders(HttpHeader &tempheaders, ESIVarState *vars)
{
tempheaders.update (&vars->header(), NULL);
- tempheaders.removeConnectionHeaderEntries();
+ tempheaders.removeHopByHopEntries();
}
/*
- * $Id: HttpHeader.cc,v 1.138 2007/11/26 13:09:55 hno Exp $
+ * $Id: HttpHeader.cc,v 1.138.4.1 2008/02/29 18:30:02 serassio Exp $
*
* DEBUG: section 55 HTTP Header
* AUTHOR: Alex Rousskov
HDR_USER_AGENT, HDR_X_FORWARDED_FOR, HDR_SURROGATE_CAPABILITY
};
+static http_hdr_type HopByHopHeadersArr[] =
+ {
+ HDR_CONNECTION, HDR_KEEP_ALIVE, HDR_PROXY_AUTHENTICATE, HDR_PROXY_AUTHORIZATION,
+ HDR_TE, HDR_TRAILERS, HDR_TRANSFER_ENCODING, HDR_UPGRADE
+ };
+
/* header accounting */
static HttpHeaderStat HttpHeaderStats[] =
{
return result;
}
+void
+HttpHeader::removeHopByHopEntries()
+{
+ removeConnectionHeaderEntries();
+
+ int count = countof(HopByHopHeadersArr);
+
+ for (int i=0; i<count; i++)
+ delById(HopByHopHeadersArr[i]);
+
+}
+
void
HttpHeader::removeConnectionHeaderEntries()
{
}
if (headers_deleted)
refreshMask();
-
- delById(HDR_CONNECTION);
}
}
/*
- * $Id: HttpHeader.h,v 1.24 2007/11/26 13:09:55 hno Exp $
+ * $Id: HttpHeader.h,v 1.24.4.1 2008/02/29 18:30:02 serassio Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
TimeOrTag getTimeOrTag(http_hdr_type id) const;
int hasListMember(http_hdr_type id, const char *member, const char separator) const;
int hasByNameListMember(const char *name, const char *member, const char separator) const;
- void removeConnectionHeaderEntries();
+ void removeHopByHopEntries();
/* protected, do not use these, use interface functions instead */
Vector<HttpHeaderEntry *> entries; /* parsed fields in raw format */
HttpHeaderMask mask; /* bit set <=> entry present */
http_hdr_owner_type owner; /* request or reply */
int len; /* length when packed, not counting terminating '\0' */
+protected:
+ void removeConnectionHeaderEntries();
+
private:
HttpHeaderEntry *findLastEntry(http_hdr_type id) const;
// Make it non-copyable. Our destructor is a bit nasty...
if (!TheICAPConfig.reuse_connections)
buf.Printf("Connection: close\r\n");
+ // we must forward "Proxy-Authenticate" and "Proxy-Authorization"
+ // as ICAP headers.
+ if (virgin.header->header.has(HDR_PROXY_AUTHENTICATE))
+ buf.Printf("Proxy-Authenticate: %s\r\n",
+ virgin.header->header.getByName("Proxy-Authenticate").buf());
+
+ if (virgin.header->header.has(HDR_PROXY_AUTHORIZATION))
+ buf.Printf("Proxy-Authorization: %s\r\n",
+ virgin.header->header.getByName("Proxy-Authorization").buf());
+
buf.Printf("Encapsulated: ");
MemBuf httpBuf;
// update ICAP header
icapBuf.Printf("%s=%d, ", section, (int) httpBuf.contentSize());
- // pack HTTP head
- packHead(httpBuf, head);
+ // begin cloning
+ HttpMsg *headClone = NULL;
+
+ if (const HttpRequest* old_request = dynamic_cast<const HttpRequest*>(head)) {
+ HttpRequest* new_request = new HttpRequest;
+ urlParse(old_request->method, old_request->canonical,new_request);
+ new_request->http_ver = old_request->http_ver;
+ inheritVirginProperties(*new_request, *old_request);
+ headClone = new_request;
+ }
+ else if (const HttpReply *old_reply = dynamic_cast<const HttpReply*>(head)) {
+ HttpReply* new_reply = new HttpReply;
+ new_reply->sline = old_reply->sline;
+ headClone = new_reply;
+ }
+
+ Must(headClone);
+
+ HttpHeaderPos pos = HttpHeaderInitPos;
+ HttpHeaderEntry* p_head_entry = NULL;
+ while (NULL != (p_head_entry = head->header.getEntry(&pos)) )
+ headClone->header.addEntry(p_head_entry->clone());
+
+ // end cloning
+
+ // remove all hop-by-hop headers from the clone
+ headClone->header.removeHopByHopEntries();
+
+ // pack polished HTTP header
+ packHead(httpBuf, headClone);
+
+ delete headClone;
}
void ICAPModXact::packHead(MemBuf &httpBuf, const HttpMsg *head)
#
# Makefile for the Squid Object Cache server
#
-# $Id: Makefile.am,v 1.193 2007/10/31 04:52:15 amosjeffries Exp $
+# $Id: Makefile.am,v 1.193.4.1 2008/02/29 18:30:02 serassio Exp $
#
# Uncomment and customize the following to suit your needs:
#
ACLMyIP.h \
ACLMyPort.cc \
ACLMyPort.h \
+ ACLMyPortName.cc \
+ ACLMyPortName.h \
ACLProtocol.cc \
ACLProtocol.h \
ACLProtocolData.cc \
#
# Makefile for the Squid Object Cache server
#
-# $Id: Makefile.in,v 1.447.4.2 2007/12/27 20:37:46 serassio Exp $
+# $Id: Makefile.in,v 1.447.4.3 2008/02/29 18:30:03 serassio Exp $
#
# Uncomment and customize the following to suit your needs:
#
ACLMaxConnection.cc ACLMaxConnection.h ACLMaxUserIP.cc \
ACLMaxUserIP.h ACLMethod.cc ACLMethod.h ACLMethodData.cc \
ACLMethodData.h ACLMyIP.cc ACLMyIP.h ACLMyPort.cc ACLMyPort.h \
- ACLProtocol.cc ACLProtocol.h ACLProtocolData.cc \
- ACLProtocolData.h ACLProxyAuth.cc ACLProxyAuth.h ACLReferer.cc \
- ACLReferer.h ACLRegexData.cc ACLRegexData.h \
- ACLReplyHeaderStrategy.h ACLReplyMIMEType.cc \
+ ACLMyPortName.cc ACLMyPortName.h ACLProtocol.cc ACLProtocol.h \
+ ACLProtocolData.cc ACLProtocolData.h ACLProxyAuth.cc \
+ ACLProxyAuth.h ACLReferer.cc ACLReferer.h ACLRegexData.cc \
+ ACLRegexData.h ACLReplyHeaderStrategy.h ACLReplyMIMEType.cc \
ACLReplyMIMEType.h ACLHTTPRepHeader.cc ACLHTTPRepHeader.h \
ACLHTTPReqHeader.cc ACLHTTPReqHeader.h \
ACLRequestHeaderStrategy.h ACLRequestMIMEType.cc \
ACLIntRange.$(OBJEXT) ACLIP.$(OBJEXT) \
ACLMaxConnection.$(OBJEXT) ACLMaxUserIP.$(OBJEXT) \
ACLMethod.$(OBJEXT) ACLMethodData.$(OBJEXT) ACLMyIP.$(OBJEXT) \
- ACLMyPort.$(OBJEXT) ACLProtocol.$(OBJEXT) \
- ACLProtocolData.$(OBJEXT) ACLProxyAuth.$(OBJEXT) \
- ACLReferer.$(OBJEXT) ACLRegexData.$(OBJEXT) \
- ACLReplyMIMEType.$(OBJEXT) ACLHTTPRepHeader.$(OBJEXT) \
- ACLHTTPReqHeader.$(OBJEXT) ACLRequestMIMEType.$(OBJEXT) \
- ACLSourceDomain.$(OBJEXT) ACLSourceIP.$(OBJEXT) \
- ACLStrategised.$(OBJEXT) ACLStringData.$(OBJEXT) \
- ACLTime.$(OBJEXT) ACLTimeData.$(OBJEXT) ACLUrl.$(OBJEXT) \
- ACLUrlPath.$(OBJEXT) ACLUrlPort.$(OBJEXT) \
- ACLUserData.$(OBJEXT)
+ ACLMyPort.$(OBJEXT) ACLMyPortName.$(OBJEXT) \
+ ACLProtocol.$(OBJEXT) ACLProtocolData.$(OBJEXT) \
+ ACLProxyAuth.$(OBJEXT) ACLReferer.$(OBJEXT) \
+ ACLRegexData.$(OBJEXT) ACLReplyMIMEType.$(OBJEXT) \
+ ACLHTTPRepHeader.$(OBJEXT) ACLHTTPReqHeader.$(OBJEXT) \
+ ACLRequestMIMEType.$(OBJEXT) ACLSourceDomain.$(OBJEXT) \
+ ACLSourceIP.$(OBJEXT) ACLStrategised.$(OBJEXT) \
+ ACLStringData.$(OBJEXT) ACLTime.$(OBJEXT) \
+ ACLTimeData.$(OBJEXT) ACLUrl.$(OBJEXT) ACLUrlPath.$(OBJEXT) \
+ ACLUrlPort.$(OBJEXT) ACLUserData.$(OBJEXT)
am__objects_7 = comm_select.$(OBJEXT) comm_select_win32.$(OBJEXT) \
comm_poll.$(OBJEXT) comm_epoll.$(OBJEXT) comm_kqueue.$(OBJEXT)
am__objects_8 = delay_pools.$(OBJEXT) DelayId.$(OBJEXT) \
ACLMyIP.h \
ACLMyPort.cc \
ACLMyPort.h \
+ ACLMyPortName.cc \
+ ACLMyPortName.h \
ACLProtocol.cc \
ACLProtocol.h \
ACLProtocolData.cc \
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ACLMethodData.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ACLMyIP.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ACLMyPort.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ACLMyPortName.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ACLProtocol.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ACLProtocolData.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ACLProxyAuth.Po@am__quote@
/*
- * $Id: Mem.h,v 1.4 2006/05/29 00:15:01 robertc Exp $
+ * $Id: Mem.h,v 1.4.6.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 13 High Level Memory Pool Management
* AUTHOR: Harvest Derived
public:
static void Init();
+ static void Report();
static void RegisterWithCacheManager(CacheManager & manager);
static void Stats(StoreEntry *);
static void CleanIdlePools(void *unused);
/*
- * $Id: Server.h,v 1.10 2007/09/27 14:34:06 rousskov Exp $
+ * $Id: Server.h,v 1.10.4.1 2008/02/29 18:30:03 serassio Exp $
*
* AUTHOR: Duane Wessels
*
size_t replyBodySpace(size_t space = 4096 * 10);
// These should be private
- off_t currentOffset; // Our current offset in the StoreEntry
+ int64_t currentOffset; // Our current offset in the StoreEntry
MemBuf *responseBodyBuffer; // Data temporarily buffered for ICAP
public: // should not be
/*
- * $Id: SquidString.h,v 1.12 2007/11/04 23:59:51 amosjeffries Exp $
+ * $Id: SquidString.h,v 1.12.4.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 67 String
* AUTHOR: Duane Wessels
#ifndef SQUID_STRING_H
#define SQUID_STRING_H
+#include "config.h"
+
/* forward decls */
class CacheManager;
/*
- * $Id: Store.h,v 1.40 2007/11/18 17:19:35 serassio Exp $
+ * $Id: Store.h,v 1.40.4.1 2008/02/29 18:30:03 serassio Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
typedef RefCount<Store> StorePointer;
SQUIDCEXTERN size_t storeEntryInUse();
-#if UNUSED_CODE_20070420
-SQUIDCEXTERN off_t storeLowestMemReaderOffset(const StoreEntry * entry);
-#endif
SQUIDCEXTERN const char *storeEntryFlags(const StoreEntry *);
extern void storeEntryReplaceObject(StoreEntry *, HttpReply *);
/*
- * $Id: StoreMetaUnpacker.cc,v 1.5.6.1 2008/02/24 12:41:29 serassio Exp $
+ * $Id: StoreMetaUnpacker.cc,v 1.5.6.2 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 20 Storage Manager Swapfile Unpacker
* AUTHOR: Robert Collins
#include "StoreMetaUnpacker.h"
#include "StoreMeta.h"
-off_t const StoreMetaUnpacker::MinimumBufferLength = sizeof(char) + sizeof(int);
+int const StoreMetaUnpacker::MinimumBufferLength = sizeof(char) + sizeof(int);
bool
StoreMetaUnpacker::isBufferSane()
/*
- * $Id: StoreMetaUnpacker.h,v 1.2 2003/02/21 22:50:06 robertc Exp $
+ * $Id: StoreMetaUnpacker.h,v 1.2.6.1 2008/02/29 18:30:03 serassio Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
bool isBufferSane();
private:
- static off_t const MinimumBufferLength;
+ static int const MinimumBufferLength;
void getBufferLength();
void getType();
char const * const buf;
ssize_t buflen;
int *hdr_len;
- off_t position;
+ int position;
char type;
int length;
StoreMeta **tail;
/*
- * $Id: String.cci,v 1.10 2007/11/04 23:59:52 amosjeffries Exp $
+ * $Id: String.cci,v 1.10.4.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 67 String
* AUTHOR: Duane Wessels
*
*/
+#include "assert.h"
+
String::String() : size_(0), len_(0), buf_ (NULL)
{
#if DEBUGSTRINGS
if(newLength < 0 || newLength > len_) return;
len_ = newLength;
+
+ if(len_ == 0 && buf_ == NULL) return; // buf_ may be NULL on zero-length strings.
buf_[newLength] = '\0';
}
/*
- * $Id: asn.cc,v 1.115 2007/09/21 11:41:52 amosjeffries Exp $
+ * $Id: asn.cc,v 1.115.4.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 53 AS Number handling
* AUTHOR: Duane Wessels, Kostas Anagnostakis
store_client *sc;
HttpRequest *request;
int as_number;
- off_t offset;
+ int64_t offset;
int reqofs;
char reqbuf[AS_REQBUF_SZ];
bool dataRead;
*/
s = buf;
- while (s - buf < (off_t)(result.length + asState->reqofs) && *s != '\0') {
+ while ((size_t)(s - buf) < result.length + asState->reqofs && *s != '\0') {
while (*s && xisspace(*s))
s++;
/*
- * $Id: auth_digest.cc,v 1.59 2007/08/27 12:50:45 hno Exp $
+ * $Id: auth_digest.cc,v 1.59.4.1 2008/02/29 18:30:05 serassio Exp $
*
* DEBUG: section 29 Authenticator
* AUTHOR: Robert Collins
}
} else {
credentials(Failed);
+ digest_request->flags.invalid_password = 1;
digest_request->setDenyMessage("Incorrect password");
return;
}
/* check for stale nonce */
if (!authDigestNonceIsValid(digest_request->nonce, digest_request->nc)) {
debugs(29, 3, "authenticateDigestAuthenticateuser: user '" << digest_user->username() << "' validated OK but nonce stale");
- digest_request->flags.nonce_stale = 1;
credentials(Failed);
digest_request->setDenyMessage("Stale nonce");
return;
case Failed:
- if (flags.nonce_stale)
- /* nonce is stale, send new challenge */
- return 1;
-
- return -2;
+ /* send new challenge */
+ return 1;
}
return -2;
if (!authenticate)
return;
- int stale = 0;
+ int stale = 1;
if (auth_user_request) {
AuthDigestUserRequest *digest_request;
digest_request = dynamic_cast < AuthDigestUserRequest * >(auth_user_request);
assert (digest_request != NULL);
- stale = digest_request->flags.nonce_stale;
+ stale = !digest_request->flags.invalid_password;
}
/* on a 407 or 401 we always use a new nonce */
if (reply && (strncasecmp(reply, "ERR", 3) == 0)) {
digest_request->credentials(AuthDigestUserRequest::Failed);
+ digest_request->flags.invalid_password = 1;
if (t && *t)
digest_request->setDenyMessage(t);
/* setup the necessary info to log the username */
static AuthUserRequest *
-authDigestLogUsername(char *username)
+authDigestLogUsername(char *username, AuthDigestUserRequest *auth_user_request)
{
- AuthDigestUserRequest *auth_user_request = new AuthDigestUserRequest();
assert(auth_user_request != NULL);
/* log the username */
if (digest_request->cnonce && strlen(digest_request->nc) != 8) {
debugs(29, 4, "authenticateDigestDecode: nonce count length invalid");
delete digest_request;
- return authDigestLogUsername(username);
+ return authDigestLogUsername(username, digest_request);
}
/* now the nonce */
if (!nonce) {
/* we couldn't find a matching nonce! */
debugs(29, 4, "authenticateDigestDecode: Unexpected or invalid nonce received");
- delete digest_request;
- return authDigestLogUsername(username);
+ return authDigestLogUsername(username, digest_request);
}
digest_request->nonce = nonce;
/* check the qop is what we expected. Note that for compatability with
* RFC 2069 we should support a missing qop. Tough. */
- if (!digest_request->qop || strcmp(digest_request->qop, QOP_AUTH)) {
+ if (digest_request->qop && strcmp(digest_request->qop, QOP_AUTH) != 0) {
/* we received a qop option we didn't send */
debugs(29, 4, "authenticateDigestDecode: Invalid qop option received");
delete digest_request;
- return authDigestLogUsername(username);
+ return authDigestLogUsername(username, digest_request);
}
/* we can't check the URI just yet. We'll check it in the
if (!digest_request->response || strlen(digest_request->response) != 32) {
debugs(29, 4, "authenticateDigestDecode: Response length invalid");
delete digest_request;
- return authDigestLogUsername(username);
+ return authDigestLogUsername(username, digest_request);
}
/* do we have a username ? */
if (!username || username[0] == '\0') {
debugs(29, 4, "authenticateDigestDecode: Empty or not present username");
delete digest_request;
- return authDigestLogUsername(username);
+ return authDigestLogUsername(username, digest_request);
}
/* check that we're not being hacked / the username hasn't changed */
if (nonce->user && strcmp(username, nonce->user->username())) {
debugs(29, 4, "authenticateDigestDecode: Username for the nonce does not equal the username for the request");
delete digest_request;
- return authDigestLogUsername(username);
+ return authDigestLogUsername(username, digest_request);
}
/* if we got a qop, did we get a cnonce or did we get a cnonce wihtout a qop? */
|| (!digest_request->qop && digest_request->cnonce)) {
debugs(29, 4, "authenticateDigestDecode: qop without cnonce, or vice versa!");
delete digest_request;
- return authDigestLogUsername(username);
+ return authDigestLogUsername(username, digest_request);
}
/* check the algorithm is present and supported */
&& strcmp(digest_request->algorithm, "MD5-sess")) {
debugs(29, 4, "authenticateDigestDecode: invalid algorithm specified!");
delete digest_request;
- return authDigestLogUsername(username);
+ return authDigestLogUsername(username, digest_request);
}
/* the method we'll check at the authenticate step as well */
unsigned int authinfo_sent:
1;
-unsigned int nonce_stale:
- 1;
+ unsigned int invalid_password:1;
unsigned int helper_queried:
1;
/*
- * $Id: cache_cf.cc,v 1.528 2007/11/15 23:33:05 wessels Exp $
+ * $Id: cache_cf.cc,v 1.528.4.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 3 Configuration File Parsing
* AUTHOR: Harvest Derived
#include "Parsing.h"
#include "MemBuf.h"
#include "wordlist.h"
+#if HAVE_GLOB_H
+#include <glob.h>
+#endif
#if SQUID_SNMP
#include "snmp.h"
static void parse_b_size_t(size_t * var);
static void parse_b_int64_t(int64_t * var);
+static int parseOneConfigFile(const char *file_name, unsigned int depth);
+
/*
* LegacyParser is a parser for legacy code that uses the global
* approach. This is static so that it is only exposed to cache_cf.
return s;
}
-int
-parseConfigFile(const char *file_name, CacheManager & manager)
+static int
+parseManyConfigFiles(char* files, int depth)
+{
+ int error_count = 0;
+ char* saveptr = NULL;
+#if HAVE_GLOB
+ char *path;
+ glob_t globbuf;
+ int i;
+ memset(&globbuf, 0, sizeof(globbuf));
+ for (path = strwordtok(files, &saveptr); path; path = strwordtok(NULL, &saveptr)) {
+ if (glob(path, globbuf.gl_pathc ? GLOB_APPEND : 0, NULL, &globbuf) != 0) {
+ fatalf("Unable to find configuration file: %s: %s",
+ path, xstrerror());
+ }
+ }
+ for (i = 0; i < (int)globbuf.gl_pathc; i++) {
+ error_count += parseOneConfigFile(globbuf.gl_pathv[i], depth);
+ }
+ globfree(&globbuf);
+#else
+ char* file = strwordtok(files, &saveptr);
+ while (file != NULL) {
+ error_count += parseOneConfigFile(file, depth);
+ file = strwordtok(NULL, &saveptr);
+ }
+#endif /* HAVE_GLOB */
+ return error_count;
+}
+
+static int
+parseOneConfigFile(const char *file_name, unsigned int depth)
{
FILE *fp = NULL;
+ const char *orig_cfg_filename = cfg_filename;
+ const int orig_config_lineno = config_lineno;
char *token = NULL;
char *tmp_line = NULL;
int tmp_line_len = 0;
int err_count = 0;
int is_pipe = 0;
- configFreeMemory();
- default_all();
+
+ debugs(3, 1, "Processing Configuration File: " << file_name << " (depth " << depth << ")");
+ if (depth > 16) {
+ fatalf("WARNING: can't include %s: includes are nested too deeply (>16)!\n", file_name);
+ return 1;
+ }
if (file_name[0] == '!' || file_name[0] == '|') {
fp = popen(file_name + 1, "r");
}
if (fp == NULL)
- fatalf("Unable to open configuration file: %s: %s",
- file_name, xstrerror());
+ fatalf("Unable to open configuration file: %s: %s", file_name, xstrerror());
#ifdef _SQUID_WIN32_
*token = '\0';
cfg_filename = new_file_name;
-
-#if PROBABLY_NOT_WANTED_HERE
-
- SetConfigFilename(cfg_filename, false);
-
-#endif
-
}
config_lineno = new_lineno;
debugs(3, 5, "Processing: '" << tmp_line << "'");
- if (!parse_line(tmp_line)) {
- debugs(3, 0, "parseConfigFile: '" << cfg_filename << "' line " <<
- config_lineno << " unrecognized: '" << config_input_line << "'");
- err_count++;
- }
+ /* Handle includes here */
+ if (tmp_line_len >= 9 && strncmp(tmp_line, "include", 7) == 0 && xisspace(tmp_line[7])) {
+ err_count += parseManyConfigFiles(tmp_line + 8, depth + 1);
+ } else if (!parse_line(tmp_line)) {
+ debugs(3, 0, HERE << cfg_filename << ":" << config_lineno << " unrecognized: '" << tmp_line << "'");
+ err_count++;
+ }
safe_free(tmp_line);
tmp_line_len = 0;
fclose(fp);
}
+ cfg_filename = orig_cfg_filename;
+ config_lineno = orig_config_lineno;
+
+ return err_count;
+}
+
+int
+parseConfigFile(const char *file_name, CacheManager & manager)
+{
+ int err_count = 0;
+
+ configFreeMemory();
+
+ default_all();
+
+ err_count = parseOneConfigFile(file_name, 0);
+
defaults_if_none();
/*
return err_count;
}
+
static void
configDoConfigure(void)
{
#define dump_eol dump_string
#define free_eol free_string
-void
-parse_debug(char *volatile *var)
-{
- parse_eol(var);
- safe_free(debug_options)
- debug_options = xstrdup(Config.debugOptions);
- Debug::parseOptions(Config.debugOptions);
-}
-
-#define dump_debug dump_string
-#define free_debug free_string
-
static void
dump_time_t(StoreEntry * entry, const char *name, time_t var)
{
char *t;
s->disable_pmtu_discovery = DISABLE_PMTU_OFF;
+ s->name = strdup(token);
if ((t = strchr(token, ':'))) {
/* host:port */
/*
- * $Id: carp.cc,v 1.26 2007/04/28 22:26:37 hno Exp $
+ * $Id: carp.cc,v 1.26.6.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 39 Cache Array Routing Protocol
* AUTHOR: Henrik Nordstrom
/* calculate this peers hash */
p->carp.hash = 0;
- for (t = p->host; *t != 0; t++)
+ for (t = p->name; *t != 0; t++)
p->carp.hash += ROTATE_LEFT(p->carp.hash, 19) + (unsigned int) *t;
p->carp.hash += p->carp.hash * 0x62531965;
combined_hash += combined_hash * 0x62531965;
combined_hash = ROTATE_LEFT(combined_hash, 21);
score = combined_hash * tp->carp.load_multiplier;
- debugs(39, 3, "carpSelectParent: " << tp->host << " combined_hash " << combined_hash <<
+ debugs(39, 3, "carpSelectParent: " << tp->name << " combined_hash " << combined_hash <<
" score " << std::setprecision(0) << score);
if ((score > high_score) && peerHTTPOkay(tp, request)) {
}
if (p)
- debugs(39, 2, "carpSelectParent: selected " << p->host);
+ debugs(39, 2, "carpSelectParent: selected " << p->name);
return p;
}
for (p = Config.peers; p; p = p->next) {
storeAppendPrintf(sentry, "%24s %10x %10f %10f %10f\n",
- p->host, p->carp.hash,
+ p->name, p->carp.hash,
p->carp.load_multiplier,
p->carp.load_factor,
sumfetches ? (double) p->stats.fetches / sumfetches : -1.0);
#
-# $Id: cf.data.pre,v 1.488.4.2 2008/02/10 10:07:53 serassio Exp $
+# $Id: cf.data.pre,v 1.488.4.3 2008/02/29 18:30:03 serassio Exp $
#
# SQUID Web Proxy Cache http://www.squid-cache.org/
# ----------------------------------------------------------
COMMENT_END
+COMMENT_START
+ Configuration options can be included using the "include" directive.
+ Include takes a list of files to include. Quoting and wildcards is
+ supported.
+
+ For example,
+
+ include /path/to/included/file/squid.acl.config
+
+ Includes can be nested up to a hard-coded depth of 16 levels.
+ This arbitrary restriction is to prevent recursive include references
+ from causing Squid entering an infinite loop whilst trying to load
+ configuration files.
+COMMENT_END
+
COMMENT_START
OPTIONS FOR AUTHENTICATION
-----------------------------------------------------------------------------
acl aclname port 80 70 21 ...
acl aclname port 0-1024 ... # ranges allowed
acl aclname myport 3128 ... # (local socket TCP port)
+ acl aclname myportname 3128 ... # http(s)_port name
acl aclname proto HTTP FTP ...
acl aclname method GET POST ...
acl aclname browser [-i] regexp ...
sporadically hang or never complete requests set
disable-pmtu-discovery option to 'transparent'.
+ name= Specifies a internal name for the port. Defaults to
+ the port specification (port or addr:port)
+
If you run Squid on a dual-homed machine with an internal
and an external interface we recommend you to specify the
internal address:port in http_port. This way Squid will only be
vport=NN As above, but uses specified port number rather
than the https_port number. Implies accel.
+ name= Specifies a internal name for the port. Defaults to
+ the port specification (port or addr:port)
+
DOC_END
NAME: tcp_outgoing_tos tcp_outgoing_ds tcp_outgoing_dscp
DOC_END
NAME: debug_options
-TYPE: debug
+TYPE: eol
DEFAULT: ALL,1
LOC: Config.debugOptions
DOC_START
/*
- * $Id: client_side.h,v 1.26 2007/10/31 04:52:16 amosjeffries Exp $
+ * $Id: client_side.h,v 1.26.4.1 2008/02/29 18:30:03 serassio Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
};
DeferredParams deferredparams;
- off_t writtenToSocket;
+ int64_t writtenToSocket;
void pullData();
int64_t getNextRangeOffset() const;
bool canPackMoreRanges() const;
/*
- * $Id: client_side_reply.cc,v 1.144.4.1 2008/02/24 12:41:29 serassio Exp $
+ * $Id: client_side_reply.cc,v 1.144.4.2 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 88 Client-side Reply Routines
* AUTHOR: Robert Collins (Originally Duane Wessels in client_side.c)
if (is_hit)
hdr->delById(HDR_SET_COOKIE);
- /*
- * Be sure to obey the Connection header
- */
- reply->header.removeConnectionHeaderEntries();
+ reply->header.removeHopByHopEntries();
// if (request->range)
// clientBuildRangeHeader(http, reply);
#endif
+ /* Check whether we should send keep-alive */
+ // TODO: disable proxy_keepalive only once
+
if (reply->bodySize(request->method) < 0) {
debugs(88, 3, "clientBuildReplyHeader: can't keep-alive, unknown body size" );
request->flags.proxy_keepalive = 0;
if (!Config.onoff.client_pconns && !request->flags.must_keepalive)
request->flags.proxy_keepalive = 0;
+ if (request->flags.proxy_keepalive && shutting_down) {
+ debugs(88, 3, "clientBuildReplyHeader: Shutting down, don't keep-alive.");
+ request->flags.proxy_keepalive = 0;
+ }
+
/* Append VIA */
if (Config.onoff.via) {
LOCAL_ARRAY(char, bbuf, MAX_URL + 32);
/*
- * $Id: client_side_reply.h,v 1.17 2007/05/09 07:36:24 wessels Exp $
+ * $Id: client_side_reply.h,v 1.17.6.1 2008/02/29 18:30:03 serassio Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
StoreIOBuffer tempBuffer; /* For use in validating requests via IMS */
int old_reqsize; /* ... again, for the buffer */
size_t reqsize;
- off_t reqofs;
+ size_t reqofs;
char tempbuf[HTTP_REQBUF_SZ]; /* a temporary buffer if we need working storage */
#if USE_CACHE_DIGESTS
/*
- * $Id: client_side_request.h,v 1.32 2007/08/13 17:20:51 hno Exp $
+ * $Id: client_side_request.h,v 1.32.4.1 2008/02/29 18:30:03 serassio Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
BodyPipe::Pointer icapBodySource;
bool request_satisfaction_mode;
- off_t request_satisfaction_offset;
+ int64_t request_satisfaction_offset;
#endif
};
/*
- * $Id: comm.cc,v 1.438 2007/10/31 04:52:16 amosjeffries Exp $
+ * $Id: comm.cc,v 1.438.4.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 5 Socket Functions
* AUTHOR: Harvest Derived
return 0;
}
+ commResetSelect(fd);
close(fd2);
fde *F = &fd_table[fd];
x = connect(sock, (struct sockaddr *) address, sizeof(*address));
+ // XXX: ICAP code refuses callbacks during a pending comm_ call
+ // Async calls development will fix this.
+ if (x == 0) {
+ x = -1;
+ errno = EINPROGRESS;
+ }
+
if (x < 0)
debugs(5, 9, "connect FD " << sock << ": " << xstrerror());
} else
/* A successful write, continue */
state->offset += len;
- if (state->offset < (off_t)state->size) {
+ if (state->offset < state->size) {
/* Not done, reinstall the write handler and write some more */
commSetSelect(fd,
COMM_SELECT_WRITE,
SQUIDCEXTERN int comm_set_tos(int fd, int tos);
SQUIDCEXTERN void commSetSelect(int, unsigned int, PF *, void *, time_t);
+SQUIDCEXTERN void commResetSelect(int);
SQUIDCEXTERN int comm_udp_sendto(int, const struct sockaddr_in *, int, const void *, int);
extern void comm_write(int fd, const char *buf, int len, IOCB *callback, void *callback_data, FREE *func);
/*
- * $Id: comm_epoll.cc,v 1.17 2007/07/19 13:33:18 hno Exp $
+ * $Id: comm_epoll.cc,v 1.17.4.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 5 Socket Functions
*
F->timeout = squid_curtime + timeout;
}
+void
+commResetSelect(int fd)
+{
+ fde *F = &fd_table[fd];
+ F->epoll_state = 0;
+ commSetSelect(fd, 0, NULL, NULL, 0);
+}
+
static void commIncomingStats(StoreEntry * sentry);
/*
- * $Id: comm_kqueue.cc,v 1.17 2007/07/19 13:33:18 hno Exp $
+ * $Id: comm_kqueue.cc,v 1.17.4.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 5 Socket Functions
*
}
+void
+commResetSelect(int fd)
+{
+ fde *F = &fd_table[fd];
+ if (F->read_handler) {
+ kq_update_events(fd, EVFILT_READ, (PF *)1);
+ }
+ if (F->write_handler) {
+ kq_update_events(fd, EVFILT_WRITE, (PF *)1);
+ }
+}
+
/*
* Check all connections for new connections and input data that is to be
* processed. Also check for connections with data queued and whether we can
/*
- * $Id: comm_poll.cc,v 1.24 2007/09/01 13:09:59 hno Exp $
+ * $Id: comm_poll.cc,v 1.24.4.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 5 Socket Functions
*
F->timeout = squid_curtime + timeout;
}
+void
+commResetSelect(int fd)
+{
+}
+
static int
fdIsIcp(int fd)
{
/*
- * $Id: comm_select.cc,v 1.81 2007/06/10 12:13:31 hno Exp $
+ * $Id: comm_select.cc,v 1.81.6.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 5 Socket Functions
*
F->timeout = squid_curtime + timeout;
}
+void
+commResetSelect(int fd)
+{
+}
static int
fdIsIcp(int fd)
/*
- * $Id: comm_select_win32.cc,v 1.4.6.2 2008/02/24 13:01:55 serassio Exp $
+ * $Id: comm_select_win32.cc,v 1.4.6.3 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 5 Socket Functions
*
F->timeout = squid_curtime + timeout;
}
+void
+commResetSelect(int fd)
+{
+}
+
static int
fdIsIcp(int fd)
/*
- * $Id: debug.cc,v 1.106 2007/12/04 15:20:22 rousskov Exp $
+ * $Id: debug.cc,v 1.106.4.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 0 Debug Routines
* AUTHOR: Harvest Derived
}
for (i = 0; i < MAX_DEBUG_SECTIONS; i++)
- Debug::Levels[i] = -1;
+ Debug::Levels[i] = 0;
if (options) {
p = xstrdup(options);
/*
- * $Id: forward.cc,v 1.168 2007/07/21 16:32:03 hno Exp $
+ * $Id: forward.cc,v 1.168.4.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 17 Request Forwarding
* AUTHOR: Duane Wessels
if (flags.dont_retry)
return false;
+ if (!checkRetriable())
+ return false;
+
if (request->bodyNibbled())
return false;
server_fd = fd;
n_tries++;
- if (!fs->_peer)
+ if (!fs->_peer) {
origin_tries++;
+ hierarchyNote(&request->hier, fs->code, request->host);
+ } else {
+ hierarchyNote(&request->hier, fs->code, fs->_peer->host);
+ }
comm_add_close_handler(fd, fwdServerClosedWrapper, this);
/*
- * $Id: helper.h,v 1.9 2007/05/07 18:38:40 wessels Exp $
+ * $Id: helper.h,v 1.9.6.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 84 Helper process maintenance
* AUTHOR: Harvest Derived?
MemBuf *writebuf;
char *rbuf;
size_t rbuf_sz;
- off_t roffset;
+ size_t roffset;
struct timeval dispatch_time;
/* MemBuf writebuf; */
char *rbuf;
size_t rbuf_sz;
- off_t roffset;
+ size_t roffset;
struct timeval dispatch_time;
/*
- * $Id: main.cc,v 1.451.4.2 2008/02/17 19:44:01 serassio Exp $
+ * $Id: main.cc,v 1.451.4.3 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 1 Startup and Main Loop
* AUTHOR: Harvest Derived
errorClean();
enter_suid(); /* root to read config file */
parseConfigFile(ConfigFile, manager);
+ Mem::Report();
setEffectiveUser();
_db_init(Config.Log.log, Config.debugOptions);
ipcache_restart(); /* clear stuck entries */
sbrk_start = sbrk(0);
#endif
- Debug::parseOptions("ALL,1");
+ Debug::parseOptions(NULL);
debug_log = stderr;
#if defined(SQUID_MAXFD_LIMIT)
mainParseOptions(argc, argv);
+ if (opt_parse_cfg_only) {
+ Debug::parseOptions("ALL,1");
+ }
+
#if USE_WIN32_SERVICE
if (opt_install_service)
parse_err = parseConfigFile(ConfigFile, manager);
+ Mem::Report();
+
if (opt_parse_cfg_only)
return parse_err;
/*
- * $Id: mem.cc,v 1.106 2007/11/15 16:47:35 wessels Exp $
+ * $Id: mem.cc,v 1.106.4.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 13 High Level Memory Pool Management
* AUTHOR: Harvest Derived
* debug messages here at level 0 or 1 will always be printed
* on stderr.
*/
- debugs(13, 3, "Memory pools are '" << ((Config.onoff.mem_pools ? "on" : "off")) << "'; limit: "<<
- std::setprecision(3) << toMB(MemPools::GetInstance().idleLimit()) << " MB");
/* set all pointers to null */
memset(MemPools, '\0', sizeof(MemPools));
}
}
+void
+Mem::Report()
+{
+ debugs(13, 3, "Memory pools are '" <<
+ (Config.onoff.mem_pools ? "on" : "off") << "'; limit: " <<
+ std::setprecision(3) << toMB(MemPools::GetInstance().idleLimit()) <<
+ " MB");
+}
+
void
Mem::RegisterWithCacheManager(CacheManager & manager)
{
/*
- * $Id: mem_node.cc,v 1.10 2007/08/13 17:20:51 hno Exp $
+ * $Id: mem_node.cc,v 1.10.4.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 19 Store Memory Primitives
* AUTHOR: Robert Collins
static int makeMemNodeDataOffset();
-unsigned long mem_node::store_mem_size;
static int _mem_node_data_offset = makeMemNodeDataOffset();
/*
{}
mem_node::~mem_node()
-{
- store_mem_size -= nodeBuffer.length;
-}
+{}
size_t
mem_node::InUseCount()
return Pool().inUseCount();
}
+size_t
+mem_node::StoreMemSize()
+{
+ return InUseCount() * SM_PAGE_SIZE;
+}
+
int64_t
mem_node::start() const
{
/*
- * $Id: mem_node.h,v 1.10 2007/08/13 17:20:51 hno Exp $
+ * $Id: mem_node.h,v 1.10.4.1 2008/02/29 18:30:03 serassio Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
public:
static size_t InUseCount();
- static unsigned long store_mem_size; /* 0 */
+ static size_t StoreMemSize();
MEMPROXY_CLASS(mem_node);
mem_node(int64_t);
/*
- * $Id: neighbors.cc,v 1.350 2007/11/13 23:25:34 rousskov Exp $
+ * $Id: neighbors.cc,v 1.350.4.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 15 Neighbor Routines
* AUTHOR: Harvest Derived
if (squid_curtime - p->stats.last_query > Config.Timeout.deadPeer)
return 1;
- if (p->icp.port == echo_port)
- if (!neighborUp(p))
- return 0;
+ if (!neighborUp(p))
+ return 0;
return 1;
}
/*
- * $Id: net_db.cc,v 1.198 2007/11/27 07:48:40 amosjeffries Exp $
+ * $Id: net_db.cc,v 1.198.4.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 38 Network Measurement Database
* AUTHOR: Duane Wessels
StoreEntry *e;
store_client *sc;
HttpRequest *r;
- off_t used;
+ int64_t used;
size_t buf_sz;
char buf[NETDB_REQBUF_SZ];
int buf_ofs;
{
netdbExchangeState *ex = (netdbExchangeState *)data;
int rec_sz = 0;
- off_t o;
+ int o;
struct IN_ADDR addr;
double rtt;
/*
- * $Id: peer_digest.cc,v 1.127 2007/08/27 12:50:43 hno Exp $
+ * $Id: peer_digest.cc,v 1.127.4.1 2008/02/29 18:30:03 serassio Exp $
*
* DEBUG: section 72 Peer Digest Routines
* AUTHOR: Alex Rousskov
fetch->mask_offset += size;
- if (fetch->mask_offset >= (off_t)pd->cd->mask_size) {
+ if (fetch->mask_offset >= pd->cd->mask_size) {
debugs(72, 2, "peerDigestSwapInMask: Done! Got " <<
fetch->mask_offset << ", expected " << pd->cd->mask_size);
- assert(fetch->mask_offset == (off_t)pd->cd->mask_size);
+ assert(fetch->mask_offset == pd->cd->mask_size);
assert(peerDigestFetchedEnough(fetch, NULL, 0, "peerDigestSwapInMask"));
return -1; /* XXX! */
} else {
/*
- * $Id: snmp_agent.cc,v 1.96 2007/04/28 22:26:37 hno Exp $
+ * $Id: snmp_agent.cc,v 1.96.6.1 2008/02/29 18:30:04 serassio Exp $
*
* DEBUG: section 49 SNMP Interface
* AUTHOR: Kostas Anagnostakis
case SYSVMSIZ:
Answer = snmp_var_new_integer(Var->name, Var->name_length,
- mem_node::store_mem_size >> 10,
+ mem_node::StoreMemSize() >> 10,
ASN_INTEGER);
break;
/*
- * $Id: snmp_core.cc,v 1.79 2007/07/06 11:30:45 amosjeffries Exp $
+ * $Id: snmp_core.cc,v 1.79.6.1 2008/02/29 18:30:04 serassio Exp $
*
* DEBUG: section 49 SNMP support
* AUTHOR: Glenn Chisholm
for (x = 0; x < Len; x++) {
snprintf(mbuf, sizeof(mbuf), ".%u", (unsigned int) Name[x]);
- strncat(objid, mbuf, sizeof(objid));
+ strncat(objid, mbuf, sizeof(objid) - strlen(objid) - 1);
}
debugs(49, lvl, " oid = " << objid);
/*
- * $Id: stat.cc,v 1.410 2007/09/20 20:22:20 hno Exp $
+ * $Id: stat.cc,v 1.410.4.1 2008/02/29 18:30:04 serassio Exp $
*
* DEBUG: section 18 Cache Manager Statistics
* AUTHOR: Harvest Derived
store_swap_size);
storeAppendPrintf(sentry, "\tStorage Swap capacity:\t%4.1f%% used, %4.1f%% free\n",
- dpercent((int) store_swap_size, (int) Store::Root().maxSize()),
- dpercent((int) (Store::Root().maxSize() - store_swap_size), (int) Store::Root().maxSize()));
+ dpercent(store_swap_size, Store::Root().maxSize()),
+ dpercent((Store::Root().maxSize() - store_swap_size), Store::Root().maxSize()));
storeAppendPrintf(sentry, "\tStorage Mem size:\t%d KB\n",
- (int) (mem_node::store_mem_size >> 10));
+ mem_node::StoreMemSize() >> 10);
storeAppendPrintf(sentry, "\tStorage Mem capacity:\t%4.1f%% used, %4.1f%% free\n",
dpercent(mem_node::InUseCount(), store_pages_max),
- dpercent(((double)store_pages_max - mem_node::InUseCount()), store_pages_max));
+ dpercent((store_pages_max - mem_node::InUseCount()), store_pages_max));
storeAppendPrintf(sentry, "\tMean Object Size:\t%0.2f KB\n",
n_disk_objects ? (double) store_swap_size / n_disk_objects : 0.0);
/*
- * $Id: stmem.cc,v 1.92 2007/08/13 18:25:14 hno Exp $
+ * $Id: stmem.cc,v 1.92.4.1 2008/02/29 18:30:04 serassio Exp $
*
* DEBUG: section 19 Store Memory Primitives
* AUTHOR: Harvest Derived
/* Adjust the ptr and len according to what was deposited in the page */
aNode->nodeBuffer.length += copyLen;
- mem_node::store_mem_size += copyLen;
-
return copyLen;
}
/*
- * $Id: store_client.cc,v 1.159 2007/08/27 12:50:43 hno Exp $
+ * $Id: store_client.cc,v 1.159.4.1 2008/02/29 18:30:04 serassio Exp $
*
* DEBUG: section 90 Storage Manager Client-Side Interface
* AUTHOR: Duane Wessels
return 1;
}
-#if UNUSED_CODE_20070420
-off_t
-storeLowestMemReaderOffset(const StoreEntry * entry)
-{
- return entry->mem_obj->lowestMemReaderOffset();
-}
-#endif
-
/* Call handlers waiting for data to be appended to E. */
void
StoreEntry::invokeHandlers()
/*
- * $Id: store_digest.cc,v 1.76 2007/08/13 17:20:51 hno Exp $
+ * $Id: store_digest.cc,v 1.76.4.1 2008/02/29 18:30:04 serassio Exp $
*
* DEBUG: section 71 Store Digest Manager
* AUTHOR: Alex Rousskov
assert(e);
/* _add_ check that nothing bad happened while we were waiting @?@ @?@ */
- if ((size_t)(sd_state.rewrite_offset + chunk_size) > store_digest->mask_size)
+ if (sd_state.rewrite_offset + chunk_size > store_digest->mask_size)
chunk_size = store_digest->mask_size - sd_state.rewrite_offset;
e->append(store_digest->mask + sd_state.rewrite_offset, chunk_size);
sd_state.rewrite_offset += chunk_size;
/* are we done ? */
- if ((size_t)sd_state.rewrite_offset >= store_digest->mask_size)
+ if (sd_state.rewrite_offset >= store_digest->mask_size)
storeDigestRewriteFinish(e);
else
eventAdd("storeDigestSwapOutStep", storeDigestSwapOutStep, data, 0.0, 1, false);
/*
- * $Id: store_swapmeta.cc,v 1.27 2007/11/15 16:47:35 wessels Exp $
+ * $Id: store_swapmeta.cc,v 1.27.4.1 2008/02/29 18:30:04 serassio Exp $
*
* DEBUG: section 20 Storage Manager Swapfile Metadata
* AUTHOR: Kostas Anagnostakis
{
int buflen = 0;
tlv *t;
- off_t j = 0;
+ int j = 0;
char *buf;
assert(length != NULL);
buflen++; /* STORE_META_OK */
/*
- * $Id: structs.h,v 1.568 2007/12/02 08:23:56 amosjeffries Exp $
+ * $Id: structs.h,v 1.568.4.1 2008/02/29 18:30:04 serassio Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
void *client_data;
};
-struct _dnsserver_t
-{
- int id;
- int inpipe;
- int outpipe;
- time_t answer;
- off_t offset;
- size_t size;
- char ip_inbuf[DNS_INBUF_SZ];
-
- struct timeval dispatch_time;
- void *data;
-};
-
struct _dwrite_q
{
off_t file_offset;
char *buf;
- int len;
- off_t buf_offset;
+ size_t len;
+ size_t buf_offset;
dwrite_q *next;
FREE *free_func;
};
{
/* public, read-only */
char *mask; /* bit mask */
- size_t mask_size; /* mask size in bytes */
+ int mask_size; /* mask size in bytes */
int capacity; /* expected maximum for .count, not a hard limit */
int bits_per_entry; /* number of bits allocated for each entry from capacity */
int count; /* number of digested entries */
char path[MAXPATHLEN];
char *buf;
size_t bufsz;
- off_t offset;
+ size_t offset;
struct
{
if (0 > system ("rm -rf " TESTDIR))
throw std::runtime_error("Failed to clean test work directory");
+ // This assertion may fail if previous test cases fail.
+ // Apparently, CPPUNIT_ASSERT* failure may prevent destructors of local
+ // objects such as "StorePointer aRoot" from being called.
+ CPPUNIT_ASSERT(!store_table); // or StoreHashIndex ctor will abort below
+
StorePointer aRoot (new StoreController);
Store::Root(aRoot);
SwapDirPointer aStore (new UFSSwapDir("ufs", "Blocking"));
/*
- * $Id: typedefs.h,v 1.190 2007/05/09 07:45:58 wessels Exp $
+ * $Id: typedefs.h,v 1.190.6.1 2008/02/29 18:30:04 serassio Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
typedef struct _dread_ctrl dread_ctrl;
-typedef struct _dnsserver_t dnsserver_t;
-
typedef struct _dwrite_q dwrite_q;
typedef struct _ETag ETag;
/*
- * $Id: wccp2.cc,v 1.19.4.1 2008/02/24 12:41:29 serassio Exp $
+ * $Id: wccp2.cc,v 1.19.4.2 2008/02/29 18:30:04 serassio Exp $
*
* DEBUG: section 80 WCCP Support
* AUTHOR: Steven Wilton
/* END WCCP V2 */
void wccp2_add_service_list(int service, int service_id, int service_priority,
int service_proto, int service_flags, int ports[], int security_type, char *password);
+static void wccp2SortCacheList(struct wccp2_cache_list_t *head);
/*
* The functions used during startup:
num_caches = 1;
}
+ wccp2SortCacheList(&router_list_ptr->cache_list_head);
+
router_list_ptr->num_caches = htonl(num_caches);
if ((found == 1) && (service_list_ptr->lowest_ip == 1)) {
}
}
+/* Sort the cache list by doing a "selection sort" by IP address */
+static void
+wccp2SortCacheList(struct wccp2_cache_list_t *head)
+{
+ struct wccp2_cache_list_t tmp;
+ struct wccp2_cache_list_t *this_item;
+ struct wccp2_cache_list_t *find_item;
+ struct wccp2_cache_list_t *next_lowest;
+
+ /* Go through each position in the list one at a time */
+ for (this_item = head; this_item->next; this_item = this_item->next) {
+ /* Find the item with the lowest IP */
+ next_lowest = this_item;
+
+ for (find_item = this_item; find_item->next; find_item = find_item->next) {
+ if (find_item->cache_ip.s_addr < next_lowest->cache_ip.s_addr) {
+ next_lowest = find_item;
+ }
+ }
+ /* Swap if we need to */
+ if (next_lowest != this_item) {
+ /* First make a copy of the current item */
+ memcpy(&tmp, this_item, sizeof(struct wccp2_cache_list_t));
+
+ /* Next update the pointers to maintain the linked list */
+ tmp.next = next_lowest->next;
+ next_lowest->next = this_item->next;
+
+ /* Finally copy the updated items to their correct location */
+ memcpy(this_item, next_lowest, sizeof(struct wccp2_cache_list_t));
+ memcpy(next_lowest, &tmp, sizeof(struct wccp2_cache_list_t));
+ }
+ }
+}
+
void
free_wccp2_service_info(void *v)
{}