]> git.pld-linux.org Git - packages/squid.git/commitdiff
6577071c711c2b03b7540813d6fd9bcb squid-2.5.STABLE10-64bit_cleanup.patch
authorhawk <hawk@pld-linux.org>
Mon, 5 Sep 2005 08:58:51 +0000 (08:58 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
0b3a36d933a5342138918a6d48ea4c69  squid-2.5.STABLE10-arp_ipfilter-2.patch
62f85558596e94c43959d9a877892725  squid-2.5.STABLE10-buildenv.patch
d3e76dbab6c22dcb18eeaf63d125e174  squid-2.5.STABLE10-cacheClientTable.patch
f22729393ededbe82acdf23bb298715b  squid-2.5.STABLE10-cache_dir_change.patch
4f4c0a21d75d77b17b7c35d80c0bd65e  squid-2.5.STABLE10-chroot-2.patch
0ed67d475016e10647112ca83988447f  squid-2.5.STABLE10-chroot_dir.patch
a3cc2465b99792e48c70963e0d08b1e0  squid-2.5.STABLE10-content_length.patch
fa3e859b2850f30c5df8b6601bc32b72  squid-2.5.STABLE10-errmsg.patch
a30ea35f5675532d3e6993df4e944766  squid-2.5.STABLE10-FORTIFY_SOURCE.patch
36e143222b2e337927e6264243183808  squid-2.5.STABLE10-ftp_250.patch
a12a2ef50275589c65238a2383dae4b9  squid-2.5.STABLE10-ftp_basehref.patch
b94e9fdd7a26942debb794df61670f61  squid-2.5.STABLE10-ftp_title-2.patch
520132a389135f09512324ec54412a3c  squid-2.5.STABLE10-Greek.patch
fe87792a7351c7d7a81a7b78f510ad60  squid-2.5.STABLE10-internal_date.patch
559d847418cb6e8bc0ac64ea83c6f1ce  squid-2.5.STABLE10-ldap_auth-U.patch
8a944c1d3f3bac0d1dadcb7aace0ad68  squid-2.5.STABLE10-mail_from.patch
a8cf7b7fea4c2dc7930d5eda88866e00  squid-2.5.STABLE10-mail_program.patch
3ab3faa007c77b763d4b11af5ebe694a  squid-2.5.STABLE10-redirect_flags.patch
187e8312b9c3b1f80ce78eb6470f4d6d  squid-2.5.STABLE10-snmp_getnext.patch
90764aa4d2bc198fcb9075d4380911de  squid-2.5.STABLE10-Solaris_IPFilter.patch
7542771b1f5581661aeddffff424bb74  squid-2.5.STABLE10-spanish.patch
f8e0a52bcd4771809b414e60108394ae  squid-2.5.STABLE10-sslConnectTimeout.patch
6c523256183b8b71935f92163ef2446d  squid-2.5.STABLE10-statHistAssert.patch
859947945228575403ba387d1a12f154  squid-2.5.STABLE10-STORE_PENDING.patch
0c40fb64d70670130115a3ac21c84ae8  squid-2.5.STABLE10-transparent-2.patch
6ae4e46ee7ba4c07fe159089d6ca43ad  squid-2.5.STABLE10-wbinfo_groups.patch
1872b550bb3346a7817ecfff4b3c1c12  squid-2.5.STABLE10-wb_ntlm_auth_silent.patch

Changed files:
    squid-2.5.STABLE10-64bit_cleanup.patch -> 1.1
    squid-2.5.STABLE10-FORTIFY_SOURCE.patch -> 1.1
    squid-2.5.STABLE10-Greek.patch -> 1.1
    squid-2.5.STABLE10-STORE_PENDING.patch -> 1.1
    squid-2.5.STABLE10-Solaris_IPFilter.patch -> 1.1
    squid-2.5.STABLE10-arp_ipfilter-2.patch -> 1.1
    squid-2.5.STABLE10-buildenv.patch -> 1.1
    squid-2.5.STABLE10-cacheClientTable.patch -> 1.1
    squid-2.5.STABLE10-cache_dir_change.patch -> 1.1
    squid-2.5.STABLE10-chroot-2.patch -> 1.1
    squid-2.5.STABLE10-chroot_dir.patch -> 1.1
    squid-2.5.STABLE10-content_length.patch -> 1.1
    squid-2.5.STABLE10-errmsg.patch -> 1.1
    squid-2.5.STABLE10-ftp_250.patch -> 1.1
    squid-2.5.STABLE10-ftp_basehref.patch -> 1.1
    squid-2.5.STABLE10-ftp_title-2.patch -> 1.1
    squid-2.5.STABLE10-internal_date.patch -> 1.1
    squid-2.5.STABLE10-ldap_auth-U.patch -> 1.1
    squid-2.5.STABLE10-mail_from.patch -> 1.1
    squid-2.5.STABLE10-mail_program.patch -> 1.1
    squid-2.5.STABLE10-redirect_flags.patch -> 1.1
    squid-2.5.STABLE10-snmp_getnext.patch -> 1.1
    squid-2.5.STABLE10-spanish.patch -> 1.1
    squid-2.5.STABLE10-sslConnectTimeout.patch -> 1.1
    squid-2.5.STABLE10-statHistAssert.patch -> 1.1
    squid-2.5.STABLE10-transparent-2.patch -> 1.1
    squid-2.5.STABLE10-wb_ntlm_auth_silent.patch -> 1.1
    squid-2.5.STABLE10-wbinfo_groups.patch -> 1.1

28 files changed:
squid-2.5.STABLE10-64bit_cleanup.patch [new file with mode: 0644]
squid-2.5.STABLE10-FORTIFY_SOURCE.patch [new file with mode: 0644]
squid-2.5.STABLE10-Greek.patch [new file with mode: 0644]
squid-2.5.STABLE10-STORE_PENDING.patch [new file with mode: 0644]
squid-2.5.STABLE10-Solaris_IPFilter.patch [new file with mode: 0644]
squid-2.5.STABLE10-arp_ipfilter-2.patch [new file with mode: 0644]
squid-2.5.STABLE10-buildenv.patch [new file with mode: 0644]
squid-2.5.STABLE10-cacheClientTable.patch [new file with mode: 0644]
squid-2.5.STABLE10-cache_dir_change.patch [new file with mode: 0644]
squid-2.5.STABLE10-chroot-2.patch [new file with mode: 0644]
squid-2.5.STABLE10-chroot_dir.patch [new file with mode: 0644]
squid-2.5.STABLE10-content_length.patch [new file with mode: 0644]
squid-2.5.STABLE10-errmsg.patch [new file with mode: 0644]
squid-2.5.STABLE10-ftp_250.patch [new file with mode: 0644]
squid-2.5.STABLE10-ftp_basehref.patch [new file with mode: 0644]
squid-2.5.STABLE10-ftp_title-2.patch [new file with mode: 0644]
squid-2.5.STABLE10-internal_date.patch [new file with mode: 0644]
squid-2.5.STABLE10-ldap_auth-U.patch [new file with mode: 0644]
squid-2.5.STABLE10-mail_from.patch [new file with mode: 0644]
squid-2.5.STABLE10-mail_program.patch [new file with mode: 0644]
squid-2.5.STABLE10-redirect_flags.patch [new file with mode: 0644]
squid-2.5.STABLE10-snmp_getnext.patch [new file with mode: 0644]
squid-2.5.STABLE10-spanish.patch [new file with mode: 0644]
squid-2.5.STABLE10-sslConnectTimeout.patch [new file with mode: 0644]
squid-2.5.STABLE10-statHistAssert.patch [new file with mode: 0644]
squid-2.5.STABLE10-transparent-2.patch [new file with mode: 0644]
squid-2.5.STABLE10-wb_ntlm_auth_silent.patch [new file with mode: 0644]
squid-2.5.STABLE10-wbinfo_groups.patch [new file with mode: 0644]

diff --git a/squid-2.5.STABLE10-64bit_cleanup.patch b/squid-2.5.STABLE10-64bit_cleanup.patch
new file mode 100644 (file)
index 0000000..e254ca3
--- /dev/null
@@ -0,0 +1,796 @@
+Index: squid/helpers/basic_auth/MSNT/smblib.c
+diff -c squid/helpers/basic_auth/MSNT/smblib.c:1.1.2.3 squid/helpers/basic_auth/MSNT/smblib.c:1.1.2.4
+*** squid/helpers/basic_auth/MSNT/smblib.c:1.1.2.3     Wed Mar  9 07:28:32 2005
+--- squid/helpers/basic_auth/MSNT/smblib.c     Thu Jun 30 12:50:55 2005
+***************
+*** 127,138 ****
+       * service we are going to call, sine some servers want it in uppercase */
+  
+      for (i = 0; i < strlen(server); i++)
+!      called[i] = toupper(server[i]);
+  
+      called[strlen(server)] = 0;      /* Make it a string */
+  
+      for (i = 0; i < strlen(con->myname); i++)
+!      calling[i] = toupper(con->myname[i]);
+  
+      calling[strlen(con->myname)] = 0;        /* Make it a string */
+  
+--- 127,138 ----
+       * service we are going to call, sine some servers want it in uppercase */
+  
+      for (i = 0; i < strlen(server); i++)
+!      called[i] = xtoupper(server[i]);
+  
+      called[strlen(server)] = 0;      /* Make it a string */
+  
+      for (i = 0; i < strlen(con->myname); i++)
+!      calling[i] = xtoupper(con->myname[i]);
+  
+      calling[strlen(con->myname)] = 0;        /* Make it a string */
+  
+***************
+*** 229,240 ****
+       * service we are going to call, sine some servers want it in uppercase */
+  
+      for (i = 0; i < strlen(host); i++)
+!      called[i] = toupper(host[i]);
+  
+      called[strlen(host)] = 0;        /* Make it a string */
+  
+      for (i = 0; i < strlen(con->myname); i++)
+!      calling[i] = toupper(con->myname[i]);
+  
+      calling[strlen(con->myname)] = 0;        /* Make it a string */
+  
+--- 229,240 ----
+       * service we are going to call, sine some servers want it in uppercase */
+  
+      for (i = 0; i < strlen(host); i++)
+!      called[i] = xtoupper(host[i]);
+  
+      called[strlen(host)] = 0;        /* Make it a string */
+  
+      for (i = 0; i < strlen(con->myname); i++)
+!      calling[i] = xtoupper(con->myname[i]);
+  
+      calling[strlen(con->myname)] = 0;        /* Make it a string */
+  
+Index: squid/helpers/basic_auth/MSNT/smblib.h
+diff -c squid/helpers/basic_auth/MSNT/smblib.h:1.1.2.1 squid/helpers/basic_auth/MSNT/smblib.h:1.1.2.2
+*** squid/helpers/basic_auth/MSNT/smblib.h:1.1.2.1     Wed Jun 26 13:11:17 2002
+--- squid/helpers/basic_auth/MSNT/smblib.h     Thu Jun 30 12:50:55 2005
+***************
+*** 23,28 ****
+--- 23,29 ----
+   * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+   */
+  
++ #include "util.h"
+  #include "std-defines.h"
+  #include "smblib-common.h"
+  
+Index: squid/helpers/external_acl/winbind_group/wb_check_group.c
+diff -c squid/helpers/external_acl/winbind_group/wb_check_group.c:1.2.2.11 squid/helpers/external_acl/winbind_group/wb_check_group.c:1.2.2.12
+*** squid/helpers/external_acl/winbind_group/wb_check_group.c:1.2.2.11 Fri Mar 25 19:50:50 2005
+--- squid/helpers/external_acl/winbind_group/wb_check_group.c  Thu Jun 30 12:50:55 2005
+***************
+*** 127,133 ****
+  
+  static int strCaseCmp (const char *s1, const char *s2)
+  {
+!     while (*s1 && toupper (*s1) == toupper (*s2)) s1++, s2++;
+      return *s1 - *s2;
+  }
+  
+--- 127,133 ----
+  
+  static int strCaseCmp (const char *s1, const char *s2)
+  {
+!     while (*s1 && xtoupper (*s1) == xtoupper (*s2)) s1++, s2++;
+      return *s1 - *s2;
+  }
+  
+Index: squid/helpers/ntlm_auth/SMB/ntlm_auth.c
+diff -c squid/helpers/ntlm_auth/SMB/ntlm_auth.c:1.12.2.2 squid/helpers/ntlm_auth/SMB/ntlm_auth.c:1.12.2.3
+*** squid/helpers/ntlm_auth/SMB/ntlm_auth.c:1.12.2.2   Wed Mar  9 07:30:37 2005
+--- squid/helpers/ntlm_auth/SMB/ntlm_auth.c    Thu Jun 30 12:50:55 2005
+***************
+*** 81,87 ****
+  {
+      char *p = string, c;
+      while ((c = *p)) {
+!      *p = toupper(c);
+       p++;
+      }
+  }
+--- 81,87 ----
+  {
+      char *p = string, c;
+      while ((c = *p)) {
+!      *p = xtoupper(c);
+       p++;
+      }
+  }
+***************
+*** 92,98 ****
+  {
+      char *p = string, c;
+      while ((c = *p)) {
+!      *p = tolower(c);
+       p++;
+      }
+  }
+--- 92,98 ----
+  {
+      char *p = string, c;
+      while ((c = *p)) {
+!      *p = xtolower(c);
+       p++;
+      }
+  }
+Index: squid/helpers/ntlm_auth/SMB/smbval/smbencrypt.c
+diff -c squid/helpers/ntlm_auth/SMB/smbval/smbencrypt.c:1.3.2.2 squid/helpers/ntlm_auth/SMB/smbval/smbencrypt.c:1.3.2.3
+*** squid/helpers/ntlm_auth/SMB/smbval/smbencrypt.c:1.3.2.2    Wed Mar  9 07:33:01 2005
+--- squid/helpers/ntlm_auth/SMB/smbval/smbencrypt.c    Thu Jun 30 12:50:55 2005
+***************
+*** 200,206 ****
+        * #endif *//* KANJI_WIN95_COMPATIBILITY */
+       {
+           if (islower((int)(unsigned char)*s))
+!              *s = toupper(*s);
+           s++;
+       }
+      }
+--- 200,206 ----
+        * #endif *//* KANJI_WIN95_COMPATIBILITY */
+       {
+           if (islower((int)(unsigned char)*s))
+!              *s = xtoupper(*s);
+           s++;
+       }
+      }
+Index: squid/helpers/ntlm_auth/SMB/smbval/smblib.c
+diff -c squid/helpers/ntlm_auth/SMB/smbval/smblib.c:1.3.2.2 squid/helpers/ntlm_auth/SMB/smbval/smblib.c:1.3.2.3
+*** squid/helpers/ntlm_auth/SMB/smbval/smblib.c:1.3.2.2        Wed Mar  9 07:28:32 2005
+--- squid/helpers/ntlm_auth/SMB/smbval/smblib.c        Thu Jun 30 12:50:55 2005
+***************
+*** 170,181 ****
+       * service we are going to call, sine some servers want it in uppercase */
+  
+      for (i = 0; i < strlen(server); i++)
+!      called[i] = toupper(server[i]);
+  
+      called[strlen(server)] = 0;      /* Make it a string */
+  
+      for (i = 0; i < strlen(con->myname); i++)
+!      calling[i] = toupper(con->myname[i]);
+  
+      calling[strlen(con->myname)] = 0;        /* Make it a string */
+  
+--- 170,181 ----
+       * service we are going to call, sine some servers want it in uppercase */
+  
+      for (i = 0; i < strlen(server); i++)
+!      called[i] = xtoupper(server[i]);
+  
+      called[strlen(server)] = 0;      /* Make it a string */
+  
+      for (i = 0; i < strlen(con->myname); i++)
+!      calling[i] = xtoupper(con->myname[i]);
+  
+      calling[strlen(con->myname)] = 0;        /* Make it a string */
+  
+***************
+*** 271,282 ****
+       * service we are going to call, sine some servers want it in uppercase */
+  
+      for (i = 0; i < strlen(host); i++)
+!      called[i] = toupper(host[i]);
+  
+      called[strlen(host)] = 0;        /* Make it a string */
+  
+      for (i = 0; i < strlen(con->myname); i++)
+!      calling[i] = toupper(con->myname[i]);
+  
+      calling[strlen(con->myname)] = 0;        /* Make it a string */
+  
+--- 271,282 ----
+       * service we are going to call, sine some servers want it in uppercase */
+  
+      for (i = 0; i < strlen(host); i++)
+!      called[i] = xtoupper(host[i]);
+  
+      called[strlen(host)] = 0;        /* Make it a string */
+  
+      for (i = 0; i < strlen(con->myname); i++)
+!      calling[i] = xtoupper(con->myname[i]);
+  
+      calling[strlen(con->myname)] = 0;        /* Make it a string */
+  
+Index: squid/helpers/ntlm_auth/SMB/smbval/std-includes.h
+diff -c squid/helpers/ntlm_auth/SMB/smbval/std-includes.h:1.2 squid/helpers/ntlm_auth/SMB/smbval/std-includes.h:1.2.2.1
+*** squid/helpers/ntlm_auth/SMB/smbval/std-includes.h:1.2      Fri Mar  9 17:55:38 2001
+--- squid/helpers/ntlm_auth/SMB/smbval/std-includes.h  Thu Jun 30 12:50:55 2005
+***************
+*** 25,30 ****
+--- 25,31 ----
+  
+  /* the types are provided by squid's configure preocess */
+  #include "squid_types.h"
++ #include "util.h"
+  #define BOOL int16_t
+  #define int16 int16_t
+  
+Index: squid/helpers/ntlm_auth/fakeauth/fakeauth_auth.c
+diff -c squid/helpers/ntlm_auth/fakeauth/fakeauth_auth.c:1.3.2.8 squid/helpers/ntlm_auth/fakeauth/fakeauth_auth.c:1.3.2.9
+*** squid/helpers/ntlm_auth/fakeauth/fakeauth_auth.c:1.3.2.8   Wed Mar  9 07:33:01 2005
+--- squid/helpers/ntlm_auth/fakeauth/fakeauth_auth.c   Thu Jun 30 12:50:55 2005
+***************
+*** 57,63 ****
+      char *p = string;
+      char c;
+      while ((c = *p)) {
+!      *p = tolower(c);
+       p++;
+      }
+  }
+--- 57,63 ----
+      char *p = string;
+      char c;
+      while ((c = *p)) {
+!      *p = xtolower(c);
+       p++;
+      }
+  }
+Index: squid/helpers/ntlm_auth/winbind/wb_ntlm_auth.c
+diff -c squid/helpers/ntlm_auth/winbind/wb_ntlm_auth.c:1.1.2.8 squid/helpers/ntlm_auth/winbind/wb_ntlm_auth.c:1.1.2.9
+*** squid/helpers/ntlm_auth/winbind/wb_ntlm_auth.c:1.1.2.8     Sun Feb 20 12:07:45 2005
+--- squid/helpers/ntlm_auth/winbind/wb_ntlm_auth.c     Thu Jun 30 12:50:56 2005
+***************
+*** 87,93 ****
+  {
+      char *p = string, c;
+      while ((c = *p)) {
+!      *p = tolower(c);
+       p++;
+      }
+  }
+--- 87,93 ----
+  {
+      char *p = string, c;
+      while ((c = *p)) {
+!      *p = xtolower(c);
+       p++;
+      }
+  }
+***************
+*** 97,103 ****
+  {
+      char *p = string, c;
+      while ((c = *p)) {
+!      *p = toupper(c);
+       p++;
+      }
+  }
+--- 97,103 ----
+  {
+      char *p = string, c;
+      while ((c = *p)) {
+!      *p = xtoupper(c);
+       p++;
+      }
+  }
+Index: squid/lib/Array.c
+diff -c squid/lib/Array.c:1.7.2.1 squid/lib/Array.c:1.7.2.2
+*** squid/lib/Array.c:1.7.2.1  Thu Jun  9 01:51:46 2005
+--- squid/lib/Array.c  Thu Jun 30 12:50:56 2005
+***************
+*** 65,78 ****
+  void
+  arrayInit(Array * a)
+  {
+!     assert(a);
+      memset(a, 0, sizeof(Array));
+  }
+  
+  void
+  arrayClean(Array * a)
+  {
+!     assert(a);
+      /* could also warn if some objects are left */
+      xfree(a->items);
+      a->items = NULL;
+--- 65,78 ----
+  void
+  arrayInit(Array * a)
+  {
+!     assert(a != NULL);
+      memset(a, 0, sizeof(Array));
+  }
+  
+  void
+  arrayClean(Array * a)
+  {
+!     assert(a != NULL);
+      /* could also warn if some objects are left */
+      xfree(a->items);
+      a->items = NULL;
+***************
+*** 81,87 ****
+  void
+  arrayDestroy(Array * a)
+  {
+!     assert(a);
+      arrayClean(a);
+      xfree(a);
+  }
+--- 81,87 ----
+  void
+  arrayDestroy(Array * a)
+  {
+!     assert(a != NULL);
+      arrayClean(a);
+      xfree(a);
+  }
+***************
+*** 89,95 ****
+  void
+  arrayAppend(Array * a, void *obj)
+  {
+!     assert(a);
+      if (a->count >= a->capacity)
+       arrayGrow(a, a->count + 1);
+      a->items[a->count++] = obj;
+--- 89,95 ----
+  void
+  arrayAppend(Array * a, void *obj)
+  {
+!     assert(a != NULL);
+      if (a->count >= a->capacity)
+       arrayGrow(a, a->count + 1);
+      a->items[a->count++] = obj;
+***************
+*** 97,103 ****
+  
+  void arrayInsert(Array *a, void *obj, int position)
+  {
+!     assert(a);
+      if (a->count >= a->capacity)
+       arrayGrow(a, a->count + 1);
+      if (position > a->count)
+--- 97,103 ----
+  
+  void arrayInsert(Array *a, void *obj, int position)
+  {
+!     assert(a != NULL);
+      if (a->count >= a->capacity)
+       arrayGrow(a, a->count + 1);
+      if (position > a->count)
+***************
+*** 112,118 ****
+  void
+  arrayPreAppend(Array * a, int app_count)
+  {
+!     assert(a);
+      if (a->count + app_count > a->capacity)
+       arrayGrow(a, a->count + app_count);
+  }
+--- 112,118 ----
+  void
+  arrayPreAppend(Array * a, int app_count)
+  {
+!     assert(a != NULL);
+      if (a->count + app_count > a->capacity)
+       arrayGrow(a, a->count + app_count);
+  }
+Index: squid/lib/Stack.c
+diff -c squid/lib/Stack.c:1.11 squid/lib/Stack.c:1.11.2.1
+*** squid/lib/Stack.c:1.11     Thu Jan 11 17:37:12 2001
+--- squid/lib/Stack.c  Thu Jun 30 12:50:56 2005
+***************
+*** 50,62 ****
+  void *
+  stackPop(Stack * s)
+  {
+!     assert(s);
+      return s->count ? s->items[--s->count] : NULL;
+  }
+  
+  void *
+  stackTop(Stack * s)
+  {
+!     assert(s);
+      return s->count ? s->items[s->count - 1] : NULL;
+  }
+--- 50,62 ----
+  void *
+  stackPop(Stack * s)
+  {
+!     assert(s != NULL);
+      return s->count ? s->items[--s->count] : NULL;
+  }
+  
+  void *
+  stackTop(Stack * s)
+  {
+!     assert(s != NULL);
+      return s->count ? s->items[s->count - 1] : NULL;
+  }
+Index: squid/lib/hash.c
+diff -c squid/lib/hash.c:1.12 squid/lib/hash.c:1.12.2.1
+*** squid/lib/hash.c:1.12      Wed Mar  7 10:57:37 2001
+--- squid/lib/hash.c   Thu Jun 30 12:50:56 2005
+***************
+*** 239,245 ****
+  void
+  hash_last(hash_table * hid)
+  {
+!     assert(hid);
+      hid->next = NULL;
+      hid->current_slot = 0;
+  }
+--- 239,245 ----
+  void
+  hash_last(hash_table * hid)
+  {
+!     assert(hid != NULL);
+      hid->next = NULL;
+      hid->current_slot = 0;
+  }
+***************
+*** 307,313 ****
+  void
+  hashFreeMemory(hash_table * hid)
+  {
+!     assert(hid);
+      if (hid->buckets)
+       xfree(hid->buckets);
+      xfree(hid);
+--- 307,313 ----
+  void
+  hashFreeMemory(hash_table * hid)
+  {
+!     assert(hid != NULL);
+      if (hid->buckets)
+       xfree(hid->buckets);
+      xfree(hid);
+Index: squid/lib/heap.c
+diff -c squid/lib/heap.c:1.8 squid/lib/heap.c:1.8.2.1
+*** squid/lib/heap.c:1.8       Wed Feb  7 11:56:50 2001
+--- squid/lib/heap.c   Thu Jun 30 12:50:56 2005
+***************
+*** 122,128 ****
+  delete_heap(heap * hp)
+  {
+      int i;
+!     assert(hp);
+      for (i = 0; i < hp->last; i++) {
+       xfree(hp->nodes[i]);
+      }
+--- 122,128 ----
+  delete_heap(heap * hp)
+  {
+      int i;
+!     assert(hp != NULL);
+      for (i = 0; i < hp->last; i++) {
+       xfree(hp->nodes[i]);
+      }
+Index: squid/lib/rfc1123.c
+diff -c squid/lib/rfc1123.c:1.29.2.2 squid/lib/rfc1123.c:1.29.2.3
+*** squid/lib/rfc1123.c:1.29.2.2       Wed Mar  9 07:51:39 2005
+--- squid/lib/rfc1123.c        Sun Jul  3 02:18:38 2005
+***************
+*** 230,236 ****
+  #elif defined(_SQUID_AIX_)
+  #elif defined(_SQUID_CYGWIN_)
+  #else
+!      extern time_t timezone;
+  #endif
+       /*
+        * The following assumes a fixed DST offset of 1 hour,
+--- 230,236 ----
+  #elif defined(_SQUID_AIX_)
+  #elif defined(_SQUID_CYGWIN_)
+  #else
+!      extern long timezone;
+  #endif
+       /*
+        * The following assumes a fixed DST offset of 1 hour,
+Index: squid/lib/util.c
+diff -c squid/lib/util.c:1.83.2.2 squid/lib/util.c:1.83.2.3
+*** squid/lib/util.c:1.83.2.2  Sun Aug 11 19:22:37 2002
+--- squid/lib/util.c   Thu Jun 30 12:50:56 2005
+***************
+*** 608,614 ****
+  xstrndup(const char *s, size_t n)
+  {
+      size_t sz;
+!     assert(s);
+      assert(n);
+      sz = strlen(s) + 1;
+      if (sz > n)
+--- 608,614 ----
+  xstrndup(const char *s, size_t n)
+  {
+      size_t sz;
+!     assert(s != NULL);
+      assert(n);
+      sz = strlen(s) + 1;
+      if (sz > n)
+Index: squid/snmplib/mib.c
+diff -c squid/snmplib/mib.c:1.22.2.1 squid/snmplib/mib.c:1.22.2.2
+*** squid/snmplib/mib.c:1.22.2.1       Wed Mar  9 07:33:02 2005
+--- squid/snmplib/mib.c        Thu Jun 30 12:50:56 2005
+***************
+*** 128,138 ****
+  
+      while (*s1 && *s2) {
+       if (xisupper(*s1))
+!          c1 = tolower(*s1);
+       else
+           c1 = *s1;
+       if (xisupper(*s2))
+!          c2 = tolower(*s2);
+       else
+           c2 = *s2;
+       if (c1 != c2)
+--- 128,138 ----
+  
+      while (*s1 && *s2) {
+       if (xisupper(*s1))
+!          c1 = xtolower(*s1);
+       else
+           c1 = *s1;
+       if (xisupper(*s2))
+!          c2 = xtolower(*s2);
+       else
+           c2 = *s2;
+       if (c1 != c2)
+Index: squid/snmplib/parse.c
+diff -c squid/snmplib/parse.c:1.26.2.1 squid/snmplib/parse.c:1.26.2.2
+*** squid/snmplib/parse.c:1.26.2.1     Wed Mar  9 07:33:02 2005
+--- squid/snmplib/parse.c      Thu Jun 30 12:50:56 2005
+***************
+*** 135,141 ****
+  #define      WRITEONLY   20
+  #undef NOACCESS
+  #define NOACCESS    21
+! #define STATUS           22
+  #define MANDATORY   23
+  #define OPTIONAL    24
+  #define OBSOLETE    25
+--- 135,141 ----
+  #define      WRITEONLY   20
+  #undef NOACCESS
+  #define NOACCESS    21
+! #define SNMP_STATUS  22
+  #define MANDATORY   23
+  #define OPTIONAL    24
+  #define OBSOLETE    25
+***************
+*** 193,199 ****
+      {"read-only", sizeof("read-only") - 1, READONLY},
+      {"ACCESS", sizeof("ACCESS") - 1, ACCESS},
+      {"MAX-ACCESS", sizeof("MAX-ACCESS") - 1, ACCESS},
+!     {"STATUS", sizeof("STATUS") - 1, STATUS},
+      {"SYNTAX", sizeof("SYNTAX") - 1, SYNTAX},
+      {"OBJECT-TYPE", sizeof("OBJECT-TYPE") - 1, OBJTYPE},
+      {"{", sizeof("{") - 1, LEFTBRACKET},
+--- 193,199 ----
+      {"read-only", sizeof("read-only") - 1, READONLY},
+      {"ACCESS", sizeof("ACCESS") - 1, ACCESS},
+      {"MAX-ACCESS", sizeof("MAX-ACCESS") - 1, ACCESS},
+!     {"STATUS", sizeof("STATUS") - 1, SNMP_STATUS},
+      {"SYNTAX", sizeof("SYNTAX") - 1, SYNTAX},
+      {"OBJECT-TYPE", sizeof("OBJECT-TYPE") - 1, OBJTYPE},
+      {"{", sizeof("{") - 1, LEFTBRACKET},
+***************
+*** 867,873 ****
+       return 0;
+      }
+      type = get_token(fp, token);
+!     if (type != STATUS) {
+       print_error("Should be STATUS", token, nexttype);
+       free_node(np);
+       return 0;
+--- 867,873 ----
+       return 0;
+      }
+      type = get_token(fp, token);
+!     if (type != SNMP_STATUS) {
+       print_error("Should be STATUS", token, nexttype);
+       free_node(np);
+       return 0;
+Index: squid/src/cf_gen.c
+diff -c squid/src/cf_gen.c:1.43.2.2 squid/src/cf_gen.c:1.43.2.3
+*** squid/src/cf_gen.c:1.43.2.2        Thu Aug 22 06:28:15 2002
+--- squid/src/cf_gen.c Thu Jun 30 12:50:56 2005
+***************
+*** 403,409 ****
+       "\tconfig_lineno = 0;\n"
+       );
+      for (entry = head; entry != NULL; entry = entry->next) {
+!      assert(entry->name);
+       assert(entry != entry->next);
+  
+       if (!strcmp(entry->name, "comment"))
+--- 403,409 ----
+       "\tconfig_lineno = 0;\n"
+       );
+      for (entry = head; entry != NULL; entry = entry->next) {
+!      assert(entry->name != NULL);
+       assert(entry != entry->next);
+  
+       if (!strcmp(entry->name, "comment"))
+***************
+*** 418,424 ****
+           rc |= 1;
+           continue;
+       }
+!      assert(entry->default_value);
+       if (entry->ifdef)
+           fprintf(fp, "#if %s\n", entry->ifdef);
+       if (strcmp(entry->default_value, "none") == 0) {
+--- 418,424 ----
+           rc |= 1;
+           continue;
+       }
+!      assert(entry->default_value != NULL);
+       if (entry->ifdef)
+           fprintf(fp, "#if %s\n", entry->ifdef);
+       if (strcmp(entry->default_value, "none") == 0) {
+***************
+*** 447,454 ****
+       "{\n"
+       );
+      for (entry = head; entry != NULL; entry = entry->next) {
+!      assert(entry->name);
+!      assert(entry->loc);
+       if (entry->default_if_none == NULL)
+           continue;
+       if (entry->ifdef)
+--- 447,454 ----
+       "{\n"
+       );
+      for (entry = head; entry != NULL; entry = entry->next) {
+!      assert(entry->name != NULL);
+!      assert(entry->loc != NULL);
+       if (entry->default_if_none == NULL)
+           continue;
+       if (entry->ifdef)
+***************
+*** 498,504 ****
+       alias = entry->alias;
+        next_alias:
+       fprintf(fp, "\telse if (!strcmp(token, \"%s\"))\n", name);
+!      assert(entry->loc);
+       if (strcmp(entry->loc, "none") == 0) {
+           fprintf(fp,
+               "\t\tparse_%s();\n",
+--- 498,504 ----
+       alias = entry->alias;
+        next_alias:
+       fprintf(fp, "\telse if (!strcmp(token, \"%s\"))\n", name);
+!      assert(entry->loc != NULL);
+       if (strcmp(entry->loc, "none") == 0) {
+           fprintf(fp,
+               "\t\tparse_%s();\n",
+***************
+*** 538,544 ****
+       "{\n"
+       );
+      for (entry = head; entry != NULL; entry = entry->next) {
+!      assert(entry->loc);
+       if (strcmp(entry->loc, "none") == 0)
+           continue;
+       if (strcmp(entry->name, "comment") == 0)
+--- 538,544 ----
+       "{\n"
+       );
+      for (entry = head; entry != NULL; entry = entry->next) {
+!      assert(entry->loc != NULL);
+       if (strcmp(entry->loc, "none") == 0)
+           continue;
+       if (strcmp(entry->name, "comment") == 0)
+***************
+*** 565,571 ****
+       "{\n"
+       );
+      for (entry = head; entry != NULL; entry = entry->next) {
+!      assert(entry->loc);
+       if (strcmp(entry->loc, "none") == 0)
+           continue;
+       if (strcmp(entry->name, "comment") == 0)
+--- 565,571 ----
+       "{\n"
+       );
+      for (entry = head; entry != NULL; entry = entry->next) {
+!      assert(entry->loc != NULL);
+       if (strcmp(entry->loc, "none") == 0)
+           continue;
+       if (strcmp(entry->name, "comment") == 0)
+***************
+*** 588,594 ****
+      if (!name)
+       return 1;
+      for (i = 0; strcmp(defines[i].name, name) != 0; i++) {
+!      assert(defines[i].name);
+      }
+      return defines[i].defined;
+  }
+--- 588,594 ----
+      if (!name)
+       return 1;
+      for (i = 0; strcmp(defines[i].name, name) != 0; i++) {
+!      assert(defines[i].name != NULL);
+      }
+      return defines[i].defined;
+  }
+***************
+*** 597,605 ****
+  available_if(char *name)
+  {
+      int i = 0;
+!     assert(name);
+      for (i = 0; strcmp(defines[i].name, name) != 0; i++) {
+!      assert(defines[i].name);
+      }
+      return defines[i].enable;
+  }
+--- 597,605 ----
+  available_if(char *name)
+  {
+      int i = 0;
+!     assert(name != NULL);
+      for (i = 0; strcmp(defines[i].name, name) != 0; i++) {
+!      assert(defines[i].name != NULL);
+      }
+      return defines[i].enable;
+  }
+Index: squid/src/net_db.c
+diff -c squid/src/net_db.c:1.158.2.9 squid/src/net_db.c:1.158.2.10
+*** squid/src/net_db.c:1.158.2.9       Fri Mar 25 19:50:53 2005
+--- squid/src/net_db.c Thu Jun 30 12:50:56 2005
+***************
+*** 556,562 ****
+      if (0 == ex->used) {
+       /* skip reply headers */
+       if ((hdr_sz = headersEnd(p, size))) {
+!          debug(38, 5) ("netdbExchangeHandleReply: hdr_sz = %d\n", hdr_sz);
+           rep = ex->e->mem_obj->reply;
+           if (0 == rep->sline.status)
+               httpReplyParse(rep, buf, hdr_sz);
+--- 556,562 ----
+      if (0 == ex->used) {
+       /* skip reply headers */
+       if ((hdr_sz = headersEnd(p, size))) {
+!          debug(38, 5) ("netdbExchangeHandleReply: hdr_sz = %ld\n", (long int) hdr_sz);
+           rep = ex->e->mem_obj->reply;
+           if (0 == rep->sline.status)
+               httpReplyParse(rep, buf, hdr_sz);
+***************
+*** 574,584 ****
+           size = 0;
+       }
+      }
+!     debug(38, 5) ("netdbExchangeHandleReply: start parsing loop, size = %d\n",
+!      size);
+      while (size >= rec_sz) {
+!      debug(38, 5) ("netdbExchangeHandleReply: in parsing loop, size = %d\n",
+!          size);
+       addr.s_addr = any_addr.s_addr;
+       hops = rtt = 0.0;
+       for (o = 0; o < rec_sz;) {
+--- 574,584 ----
+           size = 0;
+       }
+      }
+!     debug(38, 5) ("netdbExchangeHandleReply: start parsing loop, size = %ld\n",
+!      (long int) size);
+      while (size >= rec_sz) {
+!      debug(38, 5) ("netdbExchangeHandleReply: in parsing loop, size = %ld\n",
+!          (long int) size);
+       addr.s_addr = any_addr.s_addr;
+       hops = rtt = 0.0;
+       for (o = 0; o < rec_sz;) {
diff --git a/squid-2.5.STABLE10-FORTIFY_SOURCE.patch b/squid-2.5.STABLE10-FORTIFY_SOURCE.patch
new file mode 100644 (file)
index 0000000..e2c4110
--- /dev/null
@@ -0,0 +1,93 @@
+Index: squid/src/Packer.c
+diff -c squid/src/Packer.c:1.13.2.1 squid/src/Packer.c:1.13.2.2
+*** squid/src/Packer.c:1.13.2.1        Fri Mar 25 19:50:51 2005
+--- squid/src/Packer.c Thu Sep  1 16:22:23 2005
+***************
+*** 108,114 ****
+  {
+      assert(p && e);
+      p->append = (append_f) store_append;
+!     p->vprintf = (vprintf_f) store_vprintf;
+      p->real_handle = e;
+  }
+  
+--- 108,114 ----
+  {
+      assert(p && e);
+      p->append = (append_f) store_append;
+!     p->packer_vprintf = (vprintf_f) store_vprintf;
+      p->real_handle = e;
+  }
+  
+***************
+*** 118,124 ****
+  {
+      assert(p && mb);
+      p->append = (append_f) memBuf_append;
+!     p->vprintf = (vprintf_f) memBuf_vprintf;
+      p->real_handle = mb;
+  }
+  
+--- 118,124 ----
+  {
+      assert(p && mb);
+      p->append = (append_f) memBuf_append;
+!     p->packer_vprintf = (vprintf_f) memBuf_vprintf;
+      p->real_handle = mb;
+  }
+  
+***************
+*** 129,135 ****
+      assert(p);
+      /* it is not really necessary to do this, but, just in case... */
+      p->append = NULL;
+!     p->vprintf = NULL;
+      p->real_handle = NULL;
+  }
+  
+--- 129,135 ----
+      assert(p);
+      /* it is not really necessary to do this, but, just in case... */
+      p->append = NULL;
+!     p->packer_vprintf = NULL;
+      p->real_handle = NULL;
+  }
+  
+***************
+*** 161,167 ****
+      fmt = va_arg(args, char *);
+  #endif
+      assert(p);
+!     assert(p->real_handle && p->vprintf);
+!     p->vprintf(p->real_handle, fmt, args);
+      va_end(args);
+  }
+--- 161,167 ----
+      fmt = va_arg(args, char *);
+  #endif
+      assert(p);
+!     assert(p->real_handle && p->packer_vprintf);
+!     p->packer_vprintf(p->real_handle, fmt, args);
+      va_end(args);
+  }
+Index: squid/src/structs.h
+diff -c squid/src/structs.h:1.408.2.46 squid/src/structs.h:1.408.2.47
+*** squid/src/structs.h:1.408.2.46     Thu Sep  1 15:58:50 2005
+--- squid/src/structs.h        Thu Sep  1 16:22:23 2005
+***************
+*** 839,845 ****
+  struct _Packer {
+      /* protected, use interface functions instead */
+      append_f append;
+!     vprintf_f vprintf;
+      void *real_handle;               /* first parameter to real append and vprintf */
+  };
+  
+--- 839,845 ----
+  struct _Packer {
+      /* protected, use interface functions instead */
+      append_f append;
+!     vprintf_f packer_vprintf;
+      void *real_handle;               /* first parameter to real append and vprintf */
+  };
+  
diff --git a/squid-2.5.STABLE10-Greek.patch b/squid-2.5.STABLE10-Greek.patch
new file mode 100644 (file)
index 0000000..bbe442e
--- /dev/null
@@ -0,0 +1,987 @@
+Index: squid/errors/Makefile.am
+diff -c squid/errors/Makefile.am:1.5.2.7 squid/errors/Makefile.am:1.5.2.8
+*** squid/errors/Makefile.am:1.5.2.7   Mon Dec  1 03:12:28 2003
+--- squid/errors/Makefile.am   Thu Sep  1 16:37:29 2005
+***************
+*** 22,27 ****
+--- 22,28 ----
+               Finnish \
+               French \
+               German \
++              Greek \
+               Hebrew \
+               Hungarian \
+               Italian \
+Index: squid/errors/Makefile.in
+diff -c squid/errors/Makefile.in:1.15.2.17 squid/errors/Makefile.in:1.15.2.18
+*** squid/errors/Makefile.in:1.15.2.17 Fri Mar 18 17:55:41 2005
+--- squid/errors/Makefile.in   Thu Sep  1 16:37:29 2005
+***************
+*** 135,140 ****
+--- 135,141 ----
+               Finnish \
+               French \
+               German \
++              Greek \
+               Hebrew \
+               Hungarian \
+               Italian \
+Index: squid/errors/Greek/ERR_ACCESS_DENIED
+diff -c /dev/null squid/errors/Greek/ERR_ACCESS_DENIED:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_ACCESS_DENIED       Thu Sep  1 16:37:29 2005
+***************
+*** 0 ****
+--- 1,25 ----
++ <!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-7">
++ <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>
++ Ć“Ć“Ƨ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <A HREF="%U">%U</A>
++ <P>
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć“ĆÆ Ć”ĆŖĆ¼Ć«ĆÆƵĆØĆÆ Ć³Ć¶ĆœĆ«Ć¬Ć”:
++ <UL>
++ <LI>
++ <STRONG>
++ ĆĆ°Ć”Ć£ĆÆĆ±Ć„Ć½Ć„Ć“Ć”Ć© Ć§ ĆĆ±Ć¼Ć³Ć¢Ć”Ć³Ć§.
++ </STRONG>
++ <P>
++ ĆĆ© Ć±ĆµĆØĆ¬ĆŸĆ³Ć„Ć©Ć² Ć“ĆÆƵ Ć¬Ć§Ć·Ć”Ć­Ć©Ć³Ć¬ĆÆĆ½ Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć”Ć°ĆÆĆ“Ć±ĆĆ°ĆÆƵƭ Ć“Ƨƭ 
++ ĆÆĆ«ĆÆĆŖĆ«ĆžĆ±Ć¹Ć³Ć§ Ć“Ć§Ć² Ć”Ć©Ć“ĆžĆ³Ć„Ć¹Ć² Ć³Ć”Ć². Ć…Ć°Ć©ĆŖĆÆĆ©Ć­Ć¹Ć­ĆžĆ³Ć“Ć„ Ć¬Ć„ Ć“ĆÆĆ­ Ć°Ć”ƱĆÆĆ·ĆĆ” 
++ ĆµĆ°Ć§Ć±Ć„Ć³Ć©Ć¾Ć­, Ć”Ć­ Ć­ĆÆĆ¬ĆŸĆ¦Ć„Ć“Ć„ Ć¼Ć“Ć© Ć”ĆµĆ“Ć¼ Ć¤Ć„Ć­ Ć°Ć±ĆĆ°Ć„Ć© Ć­Ć” Ć³ĆµĆ¬Ć¢Ć”ĆŸĆ­Ć„Ć©.
++ </UL>
++ <P>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć³Ć”Ć² Ć„ĆŸĆ­Ć”Ć© ĆÆ <A HREF="mailto:%w">%w</A>. 
++ 
+Index: squid/errors/Greek/ERR_CACHE_ACCESS_DENIED
+diff -c /dev/null squid/errors/Greek/ERR_CACHE_ACCESS_DENIED:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_CACHE_ACCESS_DENIED Thu Sep  1 16:37:29 2005
+***************
+*** 0 ****
+--- 1,34 ----
++ <!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-7">
++ <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>
++ Ć“Ć“Ƨ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <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>
+Index: squid/errors/Greek/ERR_CACHE_MGR_ACCESS_DENIED
+diff -c /dev/null squid/errors/Greek/ERR_CACHE_MGR_ACCESS_DENIED:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_CACHE_MGR_ACCESS_DENIED     Thu Sep  1 16:37:29 2005
+***************
+*** 0 ****
+--- 1,34 ----
++ <!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-7">
++ <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>
++ Ć“Ć“Ƨ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <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
++ Ć³Ć·Ć„Ć“Ć©ĆŖƜ Ć¬Ć„ Ć“Ƨ Ć¤Ć©Ć”Ć·Ć„ĆŸĆ±Ć©Ć³Ć§ Ć“ĆÆƵ ĆŖƔƩ ĆŖĆÆĆ©Ć“ĆœĆ®Ć“Ć„ Ć“Ć” Ć§Ć¬Ć„ƱĆÆĆ«Ć¼Ć£Ć©Ć” Ć“ĆÆƵ Ć°Ć±ĆÆĆ£Ć±ĆœĆ¬Ć¬Ć”Ć“ĆÆĆ²
++ Ć£Ć©Ć” Ć°Ć©ĆÆ Ć«Ć„Ć°Ć“ĆÆĆ¬Ć„Ć±Ć„ĆŸĆ² Ć”ƭƔƶĆÆĆ±ĆĆ² Ć³Ć¶ĆœĆ«Ć¬Ć”Ć“ĆÆĆ².</P>
+Index: squid/errors/Greek/ERR_CANNOT_FORWARD
+diff -c /dev/null squid/errors/Greek/ERR_CANNOT_FORWARD:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_CANNOT_FORWARD      Thu Sep  1 16:37:29 2005
+***************
+*** 0 ****
+--- 1,29 ----
++ <!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-7">
++ <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>
++ ĆĆ¤Ć½Ć­Ć”ƓƧ Ć§ Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§ Ć³Ć“Ƨƭ Ć”Ć©Ć“ĆÆĆ½Ć¬Ć„Ć­Ć§ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <A HREF="%U">%U</A>
++ <P>
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć“ĆÆ Ć”ĆŖĆ¼Ć«ĆÆƵĆØĆÆ Ć³Ć¶ĆœĆ«Ć¬Ć”:
++ <UL>
++ <LI>
++ <STRONG>
++ ĆĆ¤Ć½Ć­Ć”ƓƧ Ć§ Ć°Ć±ĆÆĆ¾ĆØĆ§Ć³Ć§ Ć“Ć§Ć² Ć”Ć©Ć“ĆžĆ³Ć„Ć¹Ć² Ć³Ć”Ć² Ć”ƵƓƞ Ć“Ƨ Ć³Ć“Ć©Ć£Ć¬Ćž.
++ </STRONG>
++ </UL>
++ 
++ <P>
++ Ć”ĆÆ Ć”ĆŸĆ“Ć§Ć¬Ć” Ć³Ć”Ć² Ć¤Ć„Ć­ ĆžĆ“Ɣƭ Ć¤ĆµĆ­Ć”Ć“Ć¼ Ć­Ć” Ć°Ć±ĆÆĆ¹ĆØƧĆØĆ„ĆŸ Ć³Ć“ĆÆĆ­ Ć”ƱƷƩĆŖĆ¼ Ć„ƮƵưƧƱƄƓƧƓƞ
++ Ć”Ć«Ć«Ćœ ĆŖƔƩ ĆÆĆ½Ć“Ć„ Ć³Ć„ ĆŖƜưĆÆĆ©ĆÆ Ć£ĆÆĆ­Ć©ĆŖĆ¼ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž. Ć‡ Ć°Ć©ĆÆ Ć°Ć©ĆØĆ”Ć­ĆĆ² Ć”Ć©Ć“ĆŸĆ„Ć² Ć„ĆŸĆ­Ć”Ć©: 
++ <UL>
++ <LI>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć¤Ć„Ć­ Ć„Ć°Ć©Ć“Ć±ĆĆ°Ć„Ć© Ć­Ć” Ć£ĆŸĆ­ĆÆƭƓƔƩ Ć”Ć° Ć„ƵĆØĆ„ĆŸĆ”Ć² 
++     Ć³ĆµĆ­Ć¤ĆĆ³Ć„Ć©Ć² Ć³Ć“ĆÆĆµĆ² Ć”ƱƷƩĆŖĆÆĆ½Ć² Ć„Ć®ĆµĆ°Ć§Ć±Ć„Ć“Ć§Ć“ĆĆ², ĆŖƔƩ
++ <LI>Ā¼Ć«ĆÆĆ© ĆÆĆ© Ć¤Ć©Ć”ĆØĆĆ³Ć©Ć¬ĆÆĆ© Ć£ĆÆĆ­Ć©ĆŖĆÆƟ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“ĆĆ², Ć¤Ć„Ć­ Ć„ĆŸĆ­Ć”Ć© Ć¤Ć©Ć”ĆØĆĆ³Ć©Ć¬ĆÆĆ©.
++ </UL>
++ <P>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć³Ć”Ć² Ć„ĆŸĆ­Ć”Ć© ĆÆ <A HREF="mailto:%w">%w</A>. 
+Index: squid/errors/Greek/ERR_CONNECT_FAIL
+diff -c /dev/null squid/errors/Greek/ERR_CONNECT_FAIL:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_CONNECT_FAIL        Thu Sep  1 16:37:29 2005
+***************
+*** 0 ****
+--- 1,27 ----
++ <!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-7">
++ <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>
++ ĆŠĆ”Ć“Ćœ Ć“Ƨƭ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <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>. 
+Index: squid/errors/Greek/ERR_DNS_FAIL
+diff -c /dev/null squid/errors/Greek/ERR_DNS_FAIL:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_DNS_FAIL    Thu Sep  1 16:37:29 2005
+***************
+*** 0 ****
+--- 1,30 ----
++ <!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-7">
++ <TITLE>ƓƖƁƋƌƁ: ĆĆ¤Ć½Ć­Ć”ƓƧ Ć§ Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§ Ć³Ć“Ƨƭ Ć”Ć©Ć“ĆÆĆ½Ć¬Ć„Ć­Ć§ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§</TITLE>
++ <STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
++ </HEAD><BODY>
++ <H2>ĆĆ¤Ć½Ć­Ć”Ć“Ć§ Ć§ Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§ Ć³Ć“Ƨƭ Ć”Ć©Ć“ĆÆĆ½Ć¬Ć„Ć­Ć§ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§</H2>
++ <HR noshade size="1px">
++ <P>
++ ĆŠĆ”Ć“Ćœ Ć“Ƨƭ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <A HREF="%U">%U</A>
++ <P>
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć“ĆÆ Ć”ĆŖĆ¼Ć«ĆÆƵĆØĆÆ Ć³Ć¶ĆœĆ«Ć¬Ć”:
++ <BLOCKQUOTE>
++ Ć„Ć„Ć­ ĆžĆ“Ɣƭ Ć¤ĆµĆ­Ć”Ć“Ć¼Ć­ Ć­Ć” Ć„ƮƔĆŖĆ±Ć©Ć¢Ć¹ĆØĆ„ĆŸ Ć§ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§ IP Ć£Ć©Ć” Ć“ĆÆ Ć¼Ć­ĆÆƬƔ
++ <I>%H</I>
++ </BLOCKQUOTE>
++ 
++ <P>
++ Ć Ć„Ć®ĆµĆ°Ć§Ć±Ć„Ć“Ć§Ć“ĆžĆ² ĆÆĆ­ĆÆĆ¬ĆœĆ“Ć¹Ć­ Ć„Ć­Ć§Ć¬ĆĆ±Ć¹Ć³Ć„ Ć¼Ć“Ć©:
++ <BLOCKQUOTE>
++ %z
++ </BLOCKQUOTE>
++ 
++ <P>
++ ĆĆµĆ“Ć¼ Ć³Ć§Ć¬Ć”ĆŸĆ­Ć„Ć© Ć¼Ć“Ć©:
++ <PRE>
++  Ć Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“ĆžĆ² Ć¤Ć„Ć­ Ć¬Ć°Ć¼Ć±Ć„Ć³Ć„ Ć­Ć” Ć„ƮƔĆŖĆ±Ć©Ć¢Ć¾Ć³Ć„Ć© Ć“Ƨƭ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§ Ć°ĆÆƵ Ć°Ć«Ć§ĆŖƓƱĆÆĆ«ĆÆĆ£ĆžĆ³Ć”Ć“Ć„. 
++  Ć…Ć«ĆĆ£Ć®Ć“Ć„ Ć”Ć­ Ć§ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§ Ć„ĆŸĆ­Ć”Ć© Ć³Ć¹Ć³Ć“ƞ. 
++ </PRE>
++ <P>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć³Ć”Ć² Ć„ĆŸĆ­Ć”Ć© ĆÆ <A HREF="mailto:%w">%w</A>. 
+Index: squid/errors/Greek/ERR_FORWARDING_DENIED
+diff -c /dev/null squid/errors/Greek/ERR_FORWARDING_DENIED:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_FORWARDING_DENIED   Thu Sep  1 16:37:29 2005
+***************
+*** 0 ****
+--- 1,25 ----
++ <!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-7">
++ <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>
++ ĆŠĆ”Ć“Ćœ Ć“Ƨƭ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <A HREF="%U">%U</A>
++ <P>
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć“ĆÆ Ć”ĆŖĆ¼Ć«ĆÆƵĆØĆÆ Ć³Ć¶ĆœĆ«Ć¬Ć”:
++ <UL>
++ <LI>
++ <STRONG>
++ ĆĆ°Ć”Ć£ĆÆĆ±Ć„Ć½Ć„Ć“Ć”Ć© Ć§ Ć°Ć±ĆÆĆ¾ĆØĆ§Ć³Ć§.
++ </STRONG>
++ </UL>
++ 
++ <P>
++ Ć Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“ĆžĆ² Ć¤Ć„Ć­ ĆØĆ” Ć°Ć±ĆÆĆ¹ĆØĆžĆ³Ć„Ć© Ć“ĆÆ Ć”ĆŸĆ“Ć§Ć¬Ć” Ć³Ć”Ć² Ć£Ć©Ć”Ć“ĆŸ Ć°Ć±ĆÆĆ³Ć°Ć”ĆØĆ„ĆŸ Ć­Ć” 
++ Ć„Ć°Ć©Ć¢ĆœĆ«Ć„Ć© Ć¬Ć©Ć” Ć³ĆµĆ£Ć£Ć„Ć­Ć©ĆŖƞ Ć³Ć·ĆĆ³Ć§. ĀŗĆ³Ć¹Ć² ĆÆ Ć°Ć„Ć«ĆœĆ“Ć§Ć² Ć³Ć“ĆÆ %i Ć„ĆŸĆ­Ć”Ć© ĆĆ­Ć”Ć² Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“ĆžĆ²
++ ĆÆ ĆÆĆ°ĆÆƟĆÆĆ² Ć¤Ć„Ć­ Ć„ĆŸĆ­Ć”Ć© Ć³Ć¹Ć³Ć“Ɯ Ć±ĆµĆØĆ¬Ć©Ć³Ć¬ĆĆ­ĆÆĆ².
++ <P>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć³Ć”Ć² Ć„ĆŸĆ­Ć”Ć© ĆÆ <A HREF="mailto:%w">%w</A>. 
+Index: squid/errors/Greek/ERR_FTP_DISABLED
+diff -c /dev/null squid/errors/Greek/ERR_FTP_DISABLED:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_FTP_DISABLED        Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,23 ----
++ <!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-7">
++ <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>
++ ĆŠĆ”Ć“Ćœ Ć“Ƨƭ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <A HREF="%U">%U</A>
++ <P>
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć“ĆÆ Ć”ĆŖĆ¼Ć«ĆÆƵĆØĆÆ Ć³Ć¶ĆœĆ«Ć¬Ć”:
++ <UL>
++ <LI>
++ <STRONG>
++ Ć”ĆÆ Ć°Ć±Ć¹Ć“Ć¼ĆŖĆÆĆ«Ć«ĆÆ FTP Ć„ĆŸĆ­Ć”Ć© Ć”Ć°Ć„Ć­Ć„Ć±Ć£ĆÆĆ°ĆÆĆ©Ć§Ć¬ĆĆ­ĆÆ
++ </STRONG>
++ </UL>
++ 
++ <P>
++ ĆĆµĆ“Ć¼Ć² ĆÆ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“ĆžĆ² Ć¤Ć„Ć­ ĆµĆ°ĆÆĆ³Ć“Ć§Ć±ĆŸĆ¦Ć„Ć© FTP.
++ <P>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć³Ć”Ć² Ć„ĆŸĆ­Ć”Ć© ĆÆ <A HREF="mailto:%w">%w</A>. 
+Index: squid/errors/Greek/ERR_FTP_FAILURE
+diff -c /dev/null squid/errors/Greek/ERR_FTP_FAILURE:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_FTP_FAILURE Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,19 ----
++ <!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-7">
++ <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>
++ ĆŠĆ”Ć“Ćœ Ć“Ƨƭ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć³Ć¶ĆœĆ«Ć¬Ć” Ć³Ć“ĆÆ Ć°Ć±Ć¹Ć“Ć¼ĆŖĆÆĆ«Ć«ĆÆ 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>. 
+Index: squid/errors/Greek/ERR_FTP_FORBIDDEN
+diff -c /dev/null squid/errors/Greek/ERR_FTP_FORBIDDEN:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_FTP_FORBIDDEN       Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,19 ----
++ <!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-7">
++ <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>
++ ĆŠĆ”Ć“Ćœ Ć“Ƨƭ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć³Ć¶ĆœĆ«Ć¬Ć” Ć„ƮƔĆŖĆ±ĆŸĆ¢Ć¹Ć³Ć§Ć² 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>. 
+Index: squid/errors/Greek/ERR_FTP_NOT_FOUND
+diff -c /dev/null squid/errors/Greek/ERR_FTP_NOT_FOUND:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_FTP_NOT_FOUND       Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,22 ----
++ <!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-7">
++ <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>
++ Ć‡ Ć”ĆŖĆ¼Ć«ĆÆƵĆØƧ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§ Ć¤Ć„Ć­ Ć¢Ć±ĆĆØƧĆŖĆ„:
++ <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>. 
+Index: squid/errors/Greek/ERR_FTP_PUT_CREATED
+diff -c /dev/null squid/errors/Greek/ERR_FTP_PUT_CREATED:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_FTP_PUT_CREATED     Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,8 ----
++ <!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-7">
++ <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">
+Index: squid/errors/Greek/ERR_FTP_PUT_ERROR
+diff -c /dev/null squid/errors/Greek/ERR_FTP_PUT_ERROR:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_FTP_PUT_ERROR       Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,26 ----
++ <!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-7">
++ <TITLE>ƓƖƁƋƌƁ: Ć‡ Ć¬Ć„Ć“Ć”Ć¶Ć¼Ć±Ć“Ć¹Ć³Ć§ FTP Ć”Ć°ĆĆ“ĆµĆ·Ć„</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>. 
+Index: squid/errors/Greek/ERR_FTP_PUT_MODIFIED
+diff -c /dev/null squid/errors/Greek/ERR_FTP_PUT_MODIFIED:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_FTP_PUT_MODIFIED    Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,8 ----
++ <!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-7">
++ <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">
+Index: squid/errors/Greek/ERR_FTP_UNAVAILABLE
+diff -c /dev/null squid/errors/Greek/ERR_FTP_UNAVAILABLE:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_FTP_UNAVAILABLE     Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,18 ----
++ <!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-7">
++ <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>
++ Ć Ć„Ć®ĆµĆ°Ć§Ć±Ć„Ć“Ć§Ć“ĆžĆ² 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>. 
+Index: squid/errors/Greek/ERR_INVALID_REQ
+diff -c /dev/null squid/errors/Greek/ERR_INVALID_REQ:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_INVALID_REQ Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,33 ----
++ <!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-7">
++ <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>
++ ĆŠĆ”Ć“Ćœ Ć“Ƨ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć„Ć°Ć„Ć®Ć„Ć±Ć£Ć”Ć³ĆŸĆ”Ć² Ć“Ć§Ć² Ć”ĆŸĆ“Ć§Ć³Ć§Ć²:
++ <PRE>
++ %R
++ </PRE>
++ <P>
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć“ĆÆ Ć”ĆŖĆ¼Ć«ĆÆƵĆØĆÆ Ć³Ć¶ĆœĆ«Ć¬Ć”:
++ <UL>
++ <LI>
++ <STRONG>
++ Ā¶ĆŖƵƱƧ ĆĆŸĆ“Ć§Ć³Ć§
++ </STRONG>
++ </UL>
++ 
++ <P>
++ ĆŠĆœĆ°ĆÆĆ©ĆÆ Ć³Ć§Ć¬Ć„ĆŸĆÆ Ć“Ć§Ć² Ć”ĆŸĆ“Ć§Ć³Ć§Ć² HTTP Ć„ĆŸĆ­Ć”Ć© ĆœĆŖƵƱĆÆ.  ĆĆ©ĆØĆ”Ć­Ćœ Ć°Ć±ĆÆĆ¢Ć«ĆžĆ¬Ć”Ć“Ć”:
++ <UL>
++ <LI>Ć…Ć«Ć«Ć©Ć°ĆžĆ² Ćž ĆœĆ£Ć­Ć¹Ć³Ć“Ƨ Ć¬ĆĆØĆÆƤĆÆĆ² Ć”ĆŸĆ“Ć§Ć³Ć§Ć²
++ <LI>Ć…Ć«Ć«Ć©Ć°ĆžĆ² Ć„Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§ (URL)
++ <LI>Ć…Ć«Ć«Ć©Ć°ĆĆ² Ć”Ć­Ć”Ć£Ć­Ć¹Ć±Ć©Ć³Ć“Ć©ĆŖĆ¼ HTTP (HTTP/1.0)
++ <LI>Ƈ Ć”ĆŸĆ“Ć§Ć³Ć§ Ć„ĆŸĆ­Ć”Ć© ĆµĆ°Ć„Ć±Ć¬Ć„Ć£ĆĆØĆ§Ć²
++ <LI>ĀøĆ«Ć„Ć©Ć°Ć„Ć² ĆĆ„Ć±Ć©Ć„Ć·Ć¼Ć¬Ć„Ć­ĆÆ- ĆŒĆžĆŖĆÆĆ² Ć£Ć©Ć” Ć“Ć©Ć² Ć”Ć©Ć“ĆžĆ³Ć„Ć©Ć² POST Ćž PUT
++ <LI>Ā¶ĆŖƵƱĆÆĆ© Ć·Ć”ƱƔĆŖĆ“ĆžĆ±Ć„Ć² Ć³Ć“ĆÆ Ć¼Ć­ĆÆƬƔ ĆµĆ°ĆÆĆ«ĆÆĆ£Ć©Ć³Ć“Ćž, ĆÆĆ© ĆµĆ°ĆÆĆ£Ć„Ć£Ć±Ć”Ć¬Ć¬ĆĆ­Ć„Ć² Ć¤Ć„Ć­ Ć„Ć°Ć©Ć“Ć±ĆĆ°ĆÆƭƓƔƩ
++ </UL>
++ <P>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć³Ć”Ć² Ć„ĆŸĆ­Ć”Ć© ĆÆ <A HREF="mailto:%w">%w</A>. 
+Index: squid/errors/Greek/ERR_INVALID_RESP
+diff -c /dev/null squid/errors/Greek/ERR_INVALID_RESP:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_INVALID_RESP        Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,29 ----
++ <!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 process the request:
++ <PRE>
++ %R
++ </PRE>
++ <P>
++ The following error was encountered:
++ <UL>
++ <LI>
++ <STRONG>
++ Invalid Response
++ </STRONG>
++ </UL>
++ 
++ <P>
++ The HTTP Response message received from the contacted server
++ could not be understood or was otherwise malformed. Please contact
++ the site operator. Your cache administrator may be able to provide
++ you with more details about the exact nature of the problem if needed.
++ 
++ <P>Your cache administrator is <A HREF="mailto:%w">%w</A>. 
+Index: squid/errors/Greek/ERR_INVALID_URL
+diff -c /dev/null squid/errors/Greek/ERR_INVALID_URL:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_INVALID_URL Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,30 ----
++ <!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-7">
++ <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>
++ ĆŠĆ”Ć“Ćœ Ć“Ƨƭ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <A HREF="%U">%U</A>
++ <P>
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć“ĆÆ Ć”ĆŖĆ¼Ć«ĆÆƵĆØĆÆ Ć³Ć¶ĆœĆ«Ć¬Ć”:
++ <UL>
++ <LI>
++ <STRONG>
++ Ć‹Ć”Ć­ĆØĆ”Ć³Ć¬ĆĆ­Ć§ Ć„Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§
++ </STRONG>
++ </UL>
++ 
++ <P>
++ Ć•Ć°ĆœĆ±Ć·Ć„Ć© Ć°Ć±Ć¼Ć¢Ć«Ć§Ć¬Ć” Ć¬Ć„ Ć“Ƨƭ Ć”Ć©Ć“ĆÆĆ½Ć¬Ć„Ć­Ć§ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§. ĆĆ©ĆØĆ”Ć­ĆĆ² Ć”Ć©Ć“ĆŸĆ„Ć²:
++ Some aspect of the requested URL is incorrect.  Possible problems:
++ <UL>
++ <LI>Ć…Ć«Ć«Ć©Ć°ĆĆ² Ćž Ć«Ć”Ć­ĆØĆ”Ć³Ć¬ĆĆ­ĆÆ Ć°Ć±Ć¹Ć“Ć¼ĆŖĆÆĆ«Ć«ĆÆ Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² (ĆØĆ” Ć°Ć±ĆĆ°Ć„Ć© Ć­Ć” Ć„ĆŸĆ­Ć”Ć© `http://'' Ćž Ć°Ć”Ć±Ć¼Ć¬ĆÆĆ©ĆÆ)
++ <LI>Ć…Ć«Ć«Ć©Ć°ĆĆ² Ć¼Ć­ĆÆƬƔ ĆµĆ°ĆÆĆ«ĆÆĆ£Ć©Ć³Ć“Ćž
++ <LI>ƋƔƭĆØĆ”Ć³Ć¬ĆĆ­ĆÆĆ© Ć·Ć”ƱƔĆŖĆ“ĆžĆ±Ć„Ć² Ć¤Ć©Ć”Ć¶ĆµĆ£ĆžĆ² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§
++ <LI>ƋƔƭĆØĆ”Ć³Ć¬ĆĆ­ĆÆĆ© Ć·Ć”ƱƔĆŖĆ“ĆžĆ±Ć„Ć² Ć³Ć“ĆÆ Ć¼Ć­ĆÆƬƔ ĆµĆ°ĆÆĆ«ĆÆĆ£Ć©Ć³Ć“Ćž ' ĆÆĆ© ĆµĆ°ĆÆĆ£Ć±Ć”Ć¬Ć¬ĆŸĆ³Ć„Ć©Ć² Ć¤Ć„Ć­ Ć„Ć°Ć©Ć“Ć±ĆĆ°ĆÆƭƓƔƩ
++ </UL>
++ <P>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć³Ć”Ć² Ć„ĆŸĆ­Ć”Ć© ĆÆ <A HREF="mailto:%w">%w</A>. 
+Index: squid/errors/Greek/ERR_LIFETIME_EXP
+diff -c /dev/null squid/errors/Greek/ERR_LIFETIME_EXP:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_LIFETIME_EXP        Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,24 ----
++ <!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-7">
++ <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>
++ ĆŠĆ”Ć“Ćœ Ć“Ƨƭ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <A HREF="%U">%U</A>
++ <P>
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć“ĆÆ Ć”ĆŖĆ¼Ć«ĆÆƵĆØĆÆ Ć³Ć¶ĆœĆ«Ć¬Ć”:
++ <UL>
++ <LI>
++ <STRONG>
++ ĀøƫƧƮƄ ĆÆ Ć—Ć±Ć¼Ć­ĆÆĆ² Ć“Ć½Ć­Ć¤Ć„Ć³ĆžĆ²
++ </STRONG>
++ </UL>
++ 
++ <P>
++ Ć”ĆÆ Squid Ć“Ć„Ć±Ć¬ĆœĆ“Ć©Ć³Ć„ Ć“Ƨƭ Ć”ĆŸĆ“Ć§Ć³Ć§ Ć„ưƄƩƤƞ Ć®Ć„Ć°ĆĆ±Ć”Ć³Ć„ Ć“ĆÆĆ­ Ć¬ĆĆ£Ć©Ć³Ć“ĆÆ Ć·Ć±Ć¼Ć­ĆÆ
++ Ć³Ć½Ć­Ć¤Ć„Ć³Ć§Ć².
++ <P>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć³Ć”Ć² Ć„ĆŸĆ­Ć”Ć© ĆÆ <A HREF="mailto:%w">%w</A>. 
+Index: squid/errors/Greek/ERR_NO_RELAY
+diff -c /dev/null squid/errors/Greek/ERR_NO_RELAY:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_NO_RELAY    Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,23 ----
++ <!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-7">
++ <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>
++ Ć“Ć“Ƨ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <A HREF="%U">%U</A>
++ <P>
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć“ĆÆ Ć”ĆŖĆ¼Ć«ĆÆƵĆØĆÆ Ć³Ć¶ĆœĆ«Ć¬Ć”:
++ <UL>
++ <LI>
++ <STRONG>
++ Ć„Ć„Ć­ ĆµĆ°ĆœĆ±Ć·Ć„Ć© Wais Relay
++ </STRONG>
++ </UL>
++ 
++ <P>
++ Ć„Ć„Ć­ ĆĆ·Ć„Ć© ĆŖĆ”ĆØĆÆĆ±Ć©Ć³Ć“Ć„ĆŸ ĆµĆ°ĆÆĆ«ĆÆĆ£Ć©Ć³Ć“ĆžĆ² WAIS Relay Ć£Ć©Ć” Ć”ĆµĆ“Ć¼ Ć“ĆÆ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž!  ĆĆ”ƱƔưĆÆĆ­Ć„ĆØĆ„ĆŸĆ“Ć„ Ć³Ć“ĆÆĆ­ Ć„Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“Ćž.
++ <P>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć³Ć”Ć² Ć„ĆŸĆ­Ć”Ć© ĆÆ <A HREF="mailto:%w">%w</A>. 
+Index: squid/errors/Greek/ERR_ONLY_IF_CACHED_MISS
+diff -c /dev/null squid/errors/Greek/ERR_ONLY_IF_CACHED_MISS:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_ONLY_IF_CACHED_MISS Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,28 ----
++ <!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-7">
++ <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>
++ Ć“Ć“Ƨ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <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>. 
+Index: squid/errors/Greek/ERR_READ_ERROR
+diff -c /dev/null squid/errors/Greek/ERR_READ_ERROR:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_READ_ERROR  Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,28 ----
++ <!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-7">
++ <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>
++ ĆĆ¤Ć½Ć­Ć”ƓƧ Ć§ Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§ Ć³Ć“Ƨƭ Ć”Ć©Ć“ĆÆĆ½Ć¬Ć„Ć­Ć§ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <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>. 
+Index: squid/errors/Greek/ERR_READ_TIMEOUT
+diff -c /dev/null squid/errors/Greek/ERR_READ_TIMEOUT:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_READ_TIMEOUT        Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,28 ----
++ <!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-7">
++ <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>
++ Ć“Ć“Ƨ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <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>. 
+Index: squid/errors/Greek/ERR_SHUTTING_DOWN
+diff -c /dev/null squid/errors/Greek/ERR_SHUTTING_DOWN:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_SHUTTING_DOWN       Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,17 ----
++ <!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-7">
++ <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>
++ ĆĆ¤Ć½Ć­Ć”ƓƧ Ć§ Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§ Ć³Ć“Ƨƭ Ć”Ć©Ć“ĆÆĆ½Ć¬Ć„Ć­Ć§ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <A HREF="%U">%U</A>
++ <P>
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć“ĆÆ Ć”ĆŖĆ¼Ć«ĆÆƵĆØĆÆ Ć³Ć¶ĆœĆ«Ć¬Ć”:
++ <P>
++ Ć”ĆÆ Ć³Ć½Ć³Ć“Ć§Ć¬Ć” Ć„ĆŸĆ­Ć”Ć© Ć³Ć„ Ć¤Ć©Ć”ƤƩĆŖĆ”Ć³ĆŸĆ” Ć“Ć„Ć±Ć¬Ć”Ć“Ć©Ć³Ć¬ĆÆĆ½ ĆŖƔƩ Ć¤Ć„Ć­ Ć¬Ć°ĆÆĆ±Ć„ĆŸ Ć­Ć” Ć„Ć®ĆµĆ°Ć§Ć±Ć„Ć“ĆžĆ³Ć„Ć©
++ Ć“ĆÆ Ć”ĆŸĆ“Ć§Ć¬Ć” Ć³Ć”Ć² Ć”ƵƓƞ Ć“Ƨ Ć³Ć“Ć©Ć£Ć¬Ćž. ĆĆ”ƱƔĆŖĆ”Ć«Ć¾ Ć¤ĆÆĆŖĆ©Ć¬ĆœĆ³Ć“Ć„ Ć®Ć”ƭƜ Ć³Ć„ Ć«ĆŸĆ£ĆÆ.
++ <P>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć³Ć”Ć² Ć„ĆŸĆ­Ć”Ć© ĆÆ <A HREF="mailto:%w">%w</A>. 
+Index: squid/errors/Greek/ERR_SOCKET_FAILURE
+diff -c /dev/null squid/errors/Greek/ERR_SOCKET_FAILURE:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_SOCKET_FAILURE      Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,28 ----
++ <!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-7">
++ <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>
++ Ć“Ć“Ƨ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <A HREF="%U">%U</A>
++ <P>
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć“ĆÆ Ć”ĆŖĆ¼Ć«ĆÆƵĆØĆÆ Ć³Ć¶ĆœĆ«Ć¬Ć”:
++ <UL>
++ <LI>
++ <STRONG>
++ Ć“Ć¶ĆœĆ«Ć¬Ć” Ć“Ć½Ć­Ć¤Ć„Ć³Ć§Ć²
++ </STRONG>
++ </UL>
++ 
++ <P>
++ Ć”ĆÆ Ć³Ć½Ć³Ć“Ć§Ć¬Ć” Ć„Ć°ĆĆ³Ć“Ć±Ć„ĆøĆ„:
++ <PRE><I>    %E</I></PRE>
++ 
++ <P>
++ Ć”ĆÆ Squid Ć¤Ć„Ć­ Ć¬Ć°ĆÆĆ±Ć„ĆŸ Ć­Ć” Ć¤Ć§Ć¬Ć©ĆÆĆµĆ±Ć£ĆžĆ³Ć„Ć© Ć³Ć½Ć­Ć¤Ć„Ć³Ć§ TCP, ĆµĆ°ĆÆĆØĆ„Ć“Ć©ĆŖƜ Ć«Ć¼Ć£Ć¹ Ć¶Ć¼Ć±Ć“ĆÆƵ.
++ ĆĆ”ƱƔĆŖĆ”Ć«Ć¾ Ć®Ć”ƭƔƤĆÆĆŖĆ©Ć¬ĆœĆ³Ć“Ć„.
++ <P>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć³Ć”Ć² Ć„ĆŸĆ­Ć”Ć© ĆÆ <A HREF="mailto:%w">%w</A>. 
+Index: squid/errors/Greek/ERR_TOO_BIG
+diff -c /dev/null squid/errors/Greek/ERR_TOO_BIG:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_TOO_BIG     Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,27 ----
++ <!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-7">
++ <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>
++ Ć“Ć“Ƨ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <A HREF="%U">%U</A>
++ <P>
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć“ĆÆ Ć”ĆŖĆ¼Ć«ĆÆƵĆØĆÆ Ć³Ć¶ĆœĆ«Ć¬Ć”:
++ <UL>
++ <LI>
++ <STRONG>
++ Ć”ĆÆ Ć”ĆŸĆ“Ć§Ć¬Ć” Ćž Ć§ Ć”Ć°ĆœĆ­Ć“Ć§Ć³Ć§ Ć„ĆŸĆ­Ć”Ć© ĆµĆ°Ć„Ć±Ć¬Ć„Ć£ĆĆØƧ
++ </STRONG>
++ <P>
++ ĆĆ­ ĆŖĆœĆ­Ć„Ć“Ć„ Ć¬Ć©Ć” Ć”ĆŸĆ“Ć§Ć³Ć§ POST Ćž PUT, Ć“Ć¼Ć“Ć„ Ć“ĆÆ Ć³Ć¾Ć¬Ć” (Ć”ĆµĆ“Ć¼ Ć°ĆÆƵ Ć°Ć±ĆÆĆ³Ć°Ć”ĆØĆ„ĆŸĆ“Ć„
++ Ć­Ć” Ć”Ć­Ć„Ć¢ĆœĆ³Ć„Ć“Ć„) Ć„ĆŸĆ­Ć”Ć© Ć°ĆÆĆ«Ć½ Ć¬Ć„Ć£ĆœĆ«ĆÆ. ĆĆ­ ĆŖĆœĆ­Ć„Ć“Ć„ Ć¬Ć©Ć” Ć”ĆŸĆ“Ć§Ć³Ć§ GET, Ć“Ć¼Ć“Ć„
++ Ć“ĆÆ Ć³Ć¾Ć¬Ć” (Ć”ĆµĆ“Ć¼ Ć°ĆÆƵ Ć°Ć±ĆÆĆ³Ć°Ć”ĆØĆ„ĆŸĆ“Ć„ Ć­Ć” ĆŖĆ”Ć“Ć„Ć¢ĆœĆ³Ć„Ć“Ć„) Ć„ĆŸĆ­Ć”Ć© Ć°ĆÆĆ«Ć½ Ć¬Ć„Ć£ĆœĆ«ĆÆ.
++ Ć”Ć” Ć¼Ć±Ć©Ć” Ć”ĆµĆ“Ćœ ĆŖĆ”ĆØĆÆĆ±ĆŸĆ¦ĆÆƭƓƔƩ Ć”Ć°Ć¼ Ć“ĆÆĆ­ ĆĆ”ƱĆÆĆ·ĆĆ” Ć•Ć°Ć§Ć±Ć„Ć³Ć©Ć¾Ć­ Ć„Ć©Ć”ƤƩĆŖĆ“Ć½ĆÆƵ Ć°ĆÆƵ
++ Ć«Ć„Ć©Ć“ĆÆĆµĆ±Ć£Ć„ĆŸ Ć”ƵƓƞ Ć“Ƨƭ ĆµĆ°Ć§Ć±Ć„Ć³ĆŸĆ”. ĆĆ”ƱƔĆŖĆ”Ć«Ć¾ Ć„Ć°Ć©ĆŖĆÆĆ©Ć­Ć¹Ć­ĆžĆ³Ć“Ć„ Ć¬Ć”Ć¦ĆŸ Ć“ĆÆĆµĆ² Ć”Ć­
++ Ć­ĆÆĆ¬ĆŸĆ¦Ć„Ć“Ć„ ĆÆĆ“Ć© Ć”ĆµĆ“Ć¼ Ć„ĆŸĆ­Ć”Ć© Ć«ĆœĆØĆÆĆ².
++ </UL>
++ <P>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć³Ć”Ć² Ć„ĆŸĆ­Ć”Ć© ĆÆ <A HREF="mailto:%w">%w</A>.
+Index: squid/errors/Greek/ERR_UNSUP_REQ
+diff -c /dev/null squid/errors/Greek/ERR_UNSUP_REQ:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_UNSUP_REQ   Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,24 ----
++ <!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-7">
++ <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>
++ Ć“Ć“Ƨ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <A HREF="%U">%U</A>
++ <P>
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć“ĆÆ Ć”ĆŖĆ¼Ć«ĆÆƵĆØĆÆ Ć³Ć¶ĆœĆ«Ć¬Ć”:
++ <UL>
++ <LI>
++ <STRONG>
++ ĆŒĆ§ ĆµĆ°ĆÆĆ³Ć“Ć§Ć±Ć©Ć¦Ć¼Ć¬Ć„Ć­Ć§ Ć¬ĆĆØĆÆƤĆÆĆ² Ć”ĆŸĆ“Ć§Ć³Ć§Ć² ĆŖƔƩ Ć°Ć±Ć¹Ć“Ć¼ĆŖĆÆĆ«Ć«ĆÆ
++ </STRONG>
++ </UL>
++ 
++ <P>
++ Ć”ĆÆ Squid Ć¤Ć„Ć­ ĆµĆ°ĆÆĆ³Ć“Ć§Ć±ĆŸĆ¦Ć„Ć© Ć¼Ć«Ć„Ć² Ć“Ć©Ć² Ć¬Ć„ĆØĆ¼Ć¤ĆÆĆµĆ² Ć”Ć©Ć“ĆžĆ³Ć„Ć¹Ć­ Ć£Ć©Ć” Ć¼Ć«Ć” Ć“Ć” Ć°Ć±Ć¹Ć“Ć¼ĆŖĆÆĆ«Ć«Ć”
++ Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć². ĆƒĆ©Ć” Ć°Ć”Ć±ĆœĆ¤Ć„Ć©Ć£Ć¬Ć”, Ć“ĆÆ POST Ć£Ć©Ć” Gopher Ć¤Ć„Ć­ ĆµĆ°ĆÆĆ³Ć“Ć§Ć±ĆŸĆ¦Ć„Ć“Ć”Ć©.
++ <P>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć³Ć”Ć² Ć„ĆŸĆ­Ć”Ć© ĆÆ <A HREF="mailto:%w">%w</A>. 
+Index: squid/errors/Greek/ERR_URN_RESOLVE
+diff -c /dev/null squid/errors/Greek/ERR_URN_RESOLVE:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_URN_RESOLVE Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,23 ----
++ <!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-7">
++ <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>
++ ĆŠĆ”Ć“Ćœ Ć“Ƨ Ć¤Ć©ĆœĆ±ĆŖĆ„Ć©Ć” Ć„Ć½Ć±Ć„Ć³Ć§Ć² Ć“ĆÆƵ ĆÆĆ­Ć¼Ć¬Ć”Ć“ĆÆĆ² (URN):
++ <A HREF="%U">%U</A>
++ <P>
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć“ĆÆ Ć”ĆŖĆ¼Ć«ĆÆƵĆØĆÆ Ć³Ć¶ĆœĆ«Ć¬Ć”:
++ <UL>
++ <LI>
++ <STRONG>
++ ĆĆ¤Ć½Ć­Ć”ƓƧ Ć§ Ć„Ć½Ć±Ć„Ć³Ć§ Ć“ĆÆƵ ĆÆĆ­Ć¼Ć¬Ć”Ć“ĆÆĆ²
++ </STRONG>
++ </UL>
++ 
++ <P>
++ ĆŒĆ„Ć“Ć”Ć®Ć½ Ć¬Ć”Ć², Ć¬Ć§Ć­ Ć°Ć„Ć±Ć©Ć¬ĆĆ­Ć„Ć“Ć„ ĆŖƔƩ Ć°ĆÆĆ«Ć«Ćœ Ć”Ć°Ć¼ URNs Ć³Ć“ĆÆ %T :)
++ <P>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć³Ć”Ć² Ć„ĆŸĆ­Ć”Ć© ĆÆ <A HREF="mailto:%w">%w</A>. 
+Index: squid/errors/Greek/ERR_WRITE_ERROR
+diff -c /dev/null squid/errors/Greek/ERR_WRITE_ERROR:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_WRITE_ERROR Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,28 ----
++ <!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-7">
++ <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>
++ Ć“Ć“Ƨ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <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>. 
+Index: squid/errors/Greek/ERR_ZERO_SIZE_OBJECT
+diff -c /dev/null squid/errors/Greek/ERR_ZERO_SIZE_OBJECT:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/ERR_ZERO_SIZE_OBJECT    Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,23 ----
++ <!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-7">
++ <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>
++ Ć“Ć“Ƨ Ć°Ć±ĆÆĆ³Ć°ĆœĆØĆ„Ć©Ć” Ć°Ć±Ć¼Ć³Ć¢Ć”Ć³Ć§Ć² Ć³Ć“Ƨ Ć¤Ć©Ć„Ć½ĆØĆµĆ­Ć³Ć§:
++ <A HREF="%U">%U</A>
++ <P>
++ ĆĆ±ĆÆƝĆŖƵĆøĆ„ Ć“ĆÆ Ć”ĆŖĆ¼Ć«ĆÆƵĆØĆÆ Ć³Ć¶ĆœĆ«Ć¬Ć”:
++ <UL>
++ <LI>
++ <STRONG>
++ ĆĆ°ĆœĆ­Ć“Ć§Ć³Ć§ ĆŒĆ§Ć¤Ć„Ć­Ć©ĆŖĆÆĆ½ ĆŒĆ„Ć£ĆĆØĆÆĆµĆ²
++ </STRONG>
++ </UL>
++ 
++ <P>
++ Ć”ĆÆ Squid Ć¤Ć„Ć­ ĆĆ«Ć”Ć¢Ć„ Ć¤Ć„ƤĆÆĆ¬ĆĆ­Ć” Ć£Ć©Ć” Ć”ĆµĆ“Ć¼ Ć“ĆÆ Ć”ĆŸĆ“Ć§Ć¬Ć”.
++ <P>Ə Ć¤Ć©Ć”Ć·Ć„Ć©Ć±Ć©Ć³Ć“ĆžĆ² Ć“ĆÆƵ Ć¬Ć„Ć³ĆÆĆ«Ć”Ć¢Ć§Ć“Ćž Ć³Ć”Ć² Ć„ĆŸĆ­Ć”Ć© ĆÆ <A HREF="mailto:%w">%w</A>. 
+Index: squid/errors/Greek/README
+diff -c /dev/null squid/errors/Greek/README:1.1.2.1
+*** /dev/null  Thu Sep  1 16:39:57 2005
+--- squid/errors/Greek/README  Thu Sep  1 16:37:30 2005
+***************
+*** 0 ****
+--- 1,2 ----
++ Thank you to George Papamichelakis <george@step.gr>
++ for creating these error pages in Greek!
diff --git a/squid-2.5.STABLE10-STORE_PENDING.patch b/squid-2.5.STABLE10-STORE_PENDING.patch
new file mode 100644 (file)
index 0000000..3a8fa95
--- /dev/null
@@ -0,0 +1,294 @@
+Index: squid/src/cache_manager.c
+diff -c squid/src/cache_manager.c:1.26.2.1 squid/src/cache_manager.c:1.26.2.2
+*** squid/src/cache_manager.c:1.26.2.1 Thu Sep  1 16:14:45 2005
+--- squid/src/cache_manager.c  Thu Sep  1 16:42:03 2005
+***************
+*** 251,258 ****
+      /* retrieve object requested */
+      a = cachemgrFindAction(mgr->action);
+      assert(a != NULL);
+!     if (a->flags.atomic)
+!      storeBuffer(entry);
+      {
+       http_version_t version;
+       HttpReply *rep = entry->mem_obj->reply;
+--- 251,257 ----
+      /* retrieve object requested */
+      a = cachemgrFindAction(mgr->action);
+      assert(a != NULL);
+!     storeBuffer(entry);
+      {
+       http_version_t version;
+       HttpReply *rep = entry->mem_obj->reply;
+***************
+*** 270,279 ****
+       httpReplySwapOut(rep, entry);
+      }
+      a->handler(entry);
+!     if (a->flags.atomic) {
+!      storeBufferFlush(entry);
+       storeComplete(entry);
+-     }
+      cachemgrStateFree(mgr);
+  }
+  
+--- 269,277 ----
+       httpReplySwapOut(rep, entry);
+      }
+      a->handler(entry);
+!     storeBufferFlush(entry);
+!     if (a->flags.atomic)
+       storeComplete(entry);
+      cachemgrStateFree(mgr);
+  }
+  
+Index: squid/src/ftp.c
+diff -c squid/src/ftp.c:1.316.2.30 squid/src/ftp.c:1.316.2.31
+*** squid/src/ftp.c:1.316.2.30 Thu Sep  1 16:28:29 2005
+--- squid/src/ftp.c    Thu Sep  1 16:42:03 2005
+***************
+*** 369,375 ****
+      char *dirup;
+      int i, j, k;
+      const char *title = strBuf(ftpState->title_url);
+-     storeBuffer(e);
+      storeAppendPrintf(e, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n");
+      storeAppendPrintf(e, "<!-- HTML listing generated by Squid %s -->\n",
+       version_string);
+--- 369,374 ----
+***************
+*** 429,435 ****
+      storeAppendPrintf(e, "<PRE>\n");
+      dirup = ftpHtmlifyListEntry("<internal-dirup>", ftpState);
+      storeAppend(e, dirup, strlen(dirup));
+-     storeBufferFlush(e);
+      ftpState->flags.html_header_sent = 1;
+  }
+  
+--- 428,433 ----
+***************
+*** 437,443 ****
+  ftpListingFinish(FtpStateData * ftpState)
+  {
+      StoreEntry *e = ftpState->entry;
+-     storeBuffer(e);
+      storeAppendPrintf(e, "</PRE>\n");
+      if (ftpState->flags.listformat_unknown && !ftpState->flags.tried_nlst) {
+       storeAppendPrintf(e, "<A HREF=\"%s/;type=d\">[As plain directory]</A>\n",
+--- 435,440 ----
+***************
+*** 453,459 ****
+       getMyHostname(),
+       full_appname_string);
+      storeAppendPrintf(e, "</ADDRESS></BODY></HTML>\n");
+-     storeBufferFlush(e);
+  }
+  
+  static const char *Month[] =
+--- 450,455 ----
+***************
+*** 869,875 ****
+      debug(9, 3) ("ftpParseListing: %d bytes to play with\n", (int) len);
+      line = memAllocate(MEM_4K_BUF);
+      end++;
+!     storeBuffer(e);
+      s = sbuf;
+      s += strspn(s, crlf);
+      for (; s < end; s += strcspn(s, crlf), s += strspn(s, crlf)) {
+--- 865,871 ----
+      debug(9, 3) ("ftpParseListing: %d bytes to play with\n", (int) len);
+      line = memAllocate(MEM_4K_BUF);
+      end++;
+!     storeBuffer(e);          /* released when done processing current data payload */
+      s = sbuf;
+      s += strspn(s, crlf);
+      for (; s < end; s += strcspn(s, crlf), s += strspn(s, crlf)) {
+***************
+*** 887,893 ****
+       assert(t != NULL);
+       storeAppend(e, t, strlen(t));
+      }
+-     storeBufferFlush(e);
+      assert(usable <= len);
+      if (usable < len) {
+       /* must copy partial line to beginning of buf */
+--- 883,888 ----
+***************
+*** 992,997 ****
+--- 987,993 ----
+           storeAppend(entry, ftpState->data.buf, len);
+           ftpState->data.offset = 0;
+       }
++      storeBufferFlush(entry);
+       commSetSelect(fd,
+           COMM_SELECT_READ,
+           ftpDataRead,
+***************
+*** 2544,2550 ****
+      else
+       err->ftp.reply = xstrdup("");
+      errorAppendEntry(ftpState->entry, err);
+-     storeBufferFlush(ftpState->entry);
+      ftpSendQuit(ftpState);
+  }
+  
+--- 2540,2545 ----
+***************
+*** 2565,2570 ****
+--- 2560,2566 ----
+      ftpState->flags.http_header_sent = 1;
+      assert(e->mem_obj->inmem_hi == 0);
+      EBIT_CLR(e->flags, ENTRY_FWD_HDR_WAIT);
++     storeBuffer(e);          /* released when done processing current data payload */
+      filename = (t = strRChr(urlpath, '/')) ? t + 1 : strBuf(urlpath);
+      if (ftpState->flags.isdir) {
+       mime_type = "text/html";
+***************
+*** 2583,2589 ****
+           break;
+       }
+      }
+-     storeBuffer(e);
+      httpReplyReset(reply);
+      /* set standard stuff */
+      if (ftpState->restarted_offset) {
+--- 2579,2584 ----
+***************
+*** 2605,2611 ****
+      if (mime_enc)
+       httpHeaderPutStr(&reply->header, HDR_CONTENT_ENCODING, mime_enc);
+      httpReplySwapOut(reply, e);
+-     storeBufferFlush(e);
+      reply->hdr_sz = e->mem_obj->inmem_hi;
+      storeTimestampsSet(e);
+      if (ftpState->flags.authenticated) {
+--- 2600,2605 ----
+Index: squid/src/gopher.c
+diff -c squid/src/gopher.c:1.162.2.9 squid/src/gopher.c:1.162.2.10
+*** squid/src/gopher.c:1.162.2.9       Thu Sep  1 16:14:45 2005
+--- squid/src/gopher.c Thu Sep  1 16:42:03 2005
+***************
+*** 721,749 ****
+       * OK. We successfully reach remote site.  Start MIME typing
+       * stuff.  Do it anyway even though request is not HTML type.
+       */
+      gopherMimeCreate(gopherState);
+      switch (gopherState->type_id) {
+      case GOPHER_DIRECTORY:
+       /* we got to convert it first */
+-      storeBuffer(entry);
+       gopherState->conversion = HTML_DIR;
+       gopherState->HTML_header_added = 0;
+       break;
+      case GOPHER_INDEX:
+       /* we got to convert it first */
+-      storeBuffer(entry);
+       gopherState->conversion = HTML_INDEX_RESULT;
+       gopherState->HTML_header_added = 0;
+       break;
+      case GOPHER_CSO:
+       /* we got to convert it first */
+-      storeBuffer(entry);
+       gopherState->conversion = HTML_CSO_RESULT;
+       gopherState->cso_recno = 0;
+       gopherState->HTML_header_added = 0;
+       break;
+      default:
+       gopherState->conversion = NORMAL;
+      }
+      /* Schedule read reply. */
+      commSetSelect(fd, COMM_SELECT_READ, gopherReadReply, gopherState, 0);
+--- 721,748 ----
+       * OK. We successfully reach remote site.  Start MIME typing
+       * stuff.  Do it anyway even though request is not HTML type.
+       */
++     storeBuffer(entry);
+      gopherMimeCreate(gopherState);
+      switch (gopherState->type_id) {
+      case GOPHER_DIRECTORY:
+       /* we got to convert it first */
+       gopherState->conversion = HTML_DIR;
+       gopherState->HTML_header_added = 0;
+       break;
+      case GOPHER_INDEX:
+       /* we got to convert it first */
+       gopherState->conversion = HTML_INDEX_RESULT;
+       gopherState->HTML_header_added = 0;
+       break;
+      case GOPHER_CSO:
+       /* we got to convert it first */
+       gopherState->conversion = HTML_CSO_RESULT;
+       gopherState->cso_recno = 0;
+       gopherState->HTML_header_added = 0;
+       break;
+      default:
+       gopherState->conversion = NORMAL;
++      storeBufferFlush(entry);
+      }
+      /* Schedule read reply. */
+      commSetSelect(fd, COMM_SELECT_READ, gopherReadReply, gopherState, 0);
+Index: squid/src/store.c
+diff -c squid/src/store.c:1.544.2.8 squid/src/store.c:1.544.2.9
+*** squid/src/store.c:1.544.2.8        Fri Mar 25 19:50:53 2005
+--- squid/src/store.c  Thu Sep  1 16:42:03 2005
+***************
+*** 1232,1240 ****
+  void
+  storeBufferFlush(StoreEntry * e)
+  {
+!     EBIT_CLR(e->flags, DELAY_SENDING);
+!     InvokeHandlers(e);
+!     storeSwapOut(e);
+  }
+  
+  squid_off_t
+--- 1232,1242 ----
+  void
+  storeBufferFlush(StoreEntry * e)
+  {
+!     if (EBIT_TEST(e->flags, DELAY_SENDING)) {
+!      EBIT_CLR(e->flags, DELAY_SENDING);
+!      InvokeHandlers(e);
+!      storeSwapOut(e);
+!     }
+  }
+  
+  squid_off_t
+Index: squid/src/whois.c
+diff -c squid/src/whois.c:1.16.2.1 squid/src/whois.c:1.16.2.2
+*** squid/src/whois.c:1.16.2.1 Thu Sep  1 16:14:45 2005
+--- squid/src/whois.c  Thu Sep  1 16:42:03 2005
+***************
+*** 97,108 ****
+      debug(75, 3) ("whoisReadReply: FD %d read %d bytes\n", fd, len);
+      debug(75, 5) ("{%s}\n", buf);
+      if (len > 0) {
+!      if (0 == mem->inmem_hi)
+!          mem->reply->sline.status = HTTP_OK;
+       fd_bytes(fd, len, FD_READ);
+       kb_incr(&statCounter.server.all.kbytes_in, len);
+       kb_incr(&statCounter.server.http.kbytes_in, len);
+       storeAppend(entry, buf, len);
+       commSetSelect(fd, COMM_SELECT_READ, whoisReadReply, p, Config.Timeout.read);
+      } else if (len < 0) {
+       debug(50, 2) ("whoisReadReply: FD %d: read failure: %s.\n",
+--- 97,115 ----
+      debug(75, 3) ("whoisReadReply: FD %d read %d bytes\n", fd, len);
+      debug(75, 5) ("{%s}\n", buf);
+      if (len > 0) {
+!      if (0 == mem->inmem_hi) {
+!          http_reply *reply = mem->reply;
+!          http_version_t version;
+!          storeBuffer(entry);
+!          httpBuildVersion(&version, 1, 0);
+!          httpReplySetHeaders(reply, version, HTTP_OK, "Gatewaying", "text/plain", -1, -1, -2);
+!          httpReplySwapOut(reply, entry);
+!      }
+       fd_bytes(fd, len, FD_READ);
+       kb_incr(&statCounter.server.all.kbytes_in, len);
+       kb_incr(&statCounter.server.http.kbytes_in, len);
+       storeAppend(entry, buf, len);
++      storeBufferFlush(entry);
+       commSetSelect(fd, COMM_SELECT_READ, whoisReadReply, p, Config.Timeout.read);
+      } else if (len < 0) {
+       debug(50, 2) ("whoisReadReply: FD %d: read failure: %s.\n",
diff --git a/squid-2.5.STABLE10-Solaris_IPFilter.patch b/squid-2.5.STABLE10-Solaris_IPFilter.patch
new file mode 100644 (file)
index 0000000..19c7a6e
--- /dev/null
@@ -0,0 +1,49 @@
+Index: squid/configure.in
+diff -c squid/configure.in:1.251.2.94 squid/configure.in:1.251.2.95
+*** squid/configure.in:1.251.2.94      Thu Aug  4 05:38:33 2005
+--- squid/configure.in Sat Sep  3 02:20:40 2005
+***************
+*** 822,827 ****
+--- 822,843 ----
+       CFLAGS="`getconf ${buildmodel}_CFLAGS` $CFLAGS"
+       LIBS="`getconf ${buildmodel}_LIBS` $LIBS"
+       LDFLAGS="`getconf ${buildmodel}_LDFLAGS` $LDFLAGS"
++ dnl
++ dnl On Solaris getconf returns for CFLAGS -Xa and -Usun options, but:
++ dnl   -Xa is supported only by Sun cc, so we need to remove it when using gcc
++ dnl   The 'sun' define is needed by ipfilter includes, so we must remove -Usun
++      case "$host" in
++          *-solaris*)
++              if test "$GCC" = "yes"; then
++                  echo "Removing -Xa for gcc on $host"
++                  CFLAGS="`echo $CFLAGS | sed -e 's/-Xa//'`"
++              fi
++              echo "Removing -Usun for gcc on $host"
++              CFLAGS="`echo $CFLAGS | sed -e 's/-Usun//'`"
++              ;;
++          *)
++              ;;
++      esac
+  fi
+  
+  AM_CONDITIONAL(MAKE_LEAKFINDER, false)
+***************
+*** 1934,1939 ****
+--- 1950,1966 ----
+      echo "WARNING: Cannot find necessary IP-Filter header files"
+      echo "         Transparent Proxy support WILL NOT be enabled"
+      sleep 10
++ elif test "$IPF_TRANSPARENT" = "yes" ; then
++ dnl On Solaris Ipfilter includes expect that SOLARIS2 is defined with the
++ dnl Solaris minor version (8, 9, 10, ...)
++     case "$host" in
++      *-solaris*)
++          solrev=`uname -r | sh -c 'IFS=. read j n x; echo $n'`
++          CFLAGS="-DSOLARIS2=$solrev $CFLAGS" 
++          ;;
++      *)
++          ;;
++      esac
+  fi
+  
+  dnl PF support requires a header file.
diff --git a/squid-2.5.STABLE10-arp_ipfilter-2.patch b/squid-2.5.STABLE10-arp_ipfilter-2.patch
new file mode 100644 (file)
index 0000000..0363045
--- /dev/null
@@ -0,0 +1,27 @@
+Index: squid/src/client_side.c
+diff -c squid/src/client_side.c:1.561.2.80 squid/src/client_side.c:1.561.2.82
+*** squid/src/client_side.c:1.561.2.80 Thu Jun 30 02:38:00 2005
+--- squid/src/client_side.c    Fri Aug 19 03:17:55 2005
+***************
+*** 41,46 ****
+--- 41,60 ----
+  #endif
+  #include <netinet/tcp.h>
+  #include <net/if.h>
++ /* SG - 14 Aug 2005
++  * Workaround needed to allow the build of both ipfilter and ARP acl
++  * support on Solaris x86.
++  * 
++  * Some defines, like
++  * #define free +
++  * are used in squid.h to block misuse of standard malloc routines
++  * where the Squid versions should be used. This pollutes the C/C++
++  * token namespace crashing any structures or classes having members
++  * of the same names.
++  */
++ #ifdef _SQUID_SOLARIS_
++ #undef free
++ #endif
+  #if HAVE_IP_FIL_COMPAT_H
+  #include <ip_fil_compat.h>
+  #elif HAVE_NETINET_IP_FIL_COMPAT_H
diff --git a/squid-2.5.STABLE10-buildenv.patch b/squid-2.5.STABLE10-buildenv.patch
new file mode 100644 (file)
index 0000000..6410a65
--- /dev/null
@@ -0,0 +1,122 @@
+Index: squid/configure.in
+diff -c squid/configure.in:1.251.2.92 squid/configure.in:1.251.2.93
+*** squid/configure.in:1.251.2.92      Mon May 16 16:38:57 2005
+--- squid/configure.in Sun Jul 10 18:39:22 2005
+***************
+*** 786,801 ****
+                            XBS5_LP64_OFF64        64 bits (legacy)
+                            XBS5_LPBIG_OFFBIG      large pointers and files (legacy)
+                            default                The default for your OS],
+! [ case "$enableval" in
+    yes|no)
+       echo "--with-build-environment expects a build environment string as used by getconf"
+       exit 1
+       ;;
+-   _*)
+-      buildmodel="$enableval"
+-      ;;
+    *)
+!      buildmodel="_$enableval"
+       ;;
+    esac
+  ])
+--- 786,798 ----
+                            XBS5_LP64_OFF64        64 bits (legacy)
+                            XBS5_LPBIG_OFFBIG      large pointers and files (legacy)
+                            default                The default for your OS],
+! [ case "$withval" in
+    yes|no)
+       echo "--with-build-environment expects a build environment string as used by getconf"
+       exit 1
+       ;;
+    *)
+!      buildmodel="$withval"
+       ;;
+    esac
+  ])
+***************
+*** 813,820 ****
+               CFLAGS="-D_FILE_OFFSET_BITS=64 $CFLAGS"
+       fi
+  fi
+! if test -n "$buildmodel" && test "$buildmodel" != "_default"; then
+       echo "Using $buildmodel build environment"
+       CFLAGS="`getconf ${buildmodel}_CFLAGS` $CFLAGS"
+       LIBS="`getconf ${buildmodel}_LIBS` $LIBS"
+       LDFLAGS="`getconf ${buildmodel}_LDFLAGS` $LDFLAGS"
+--- 810,823 ----
+               CFLAGS="-D_FILE_OFFSET_BITS=64 $CFLAGS"
+       fi
+  fi
+! if test -n "$buildmodel" && test "$buildmodel" != "default"; then
+       echo "Using $buildmodel build environment"
++      if test "`getconf _$buildmodel 2>/dev/null || true`" = 1 || test "`getconf $buildmodel 2>/dev/null || true`" ; then
++          : # All fine
++      else
++          echo "ERROR: Build environment $buildmodel not known to getconf."
++          exit 1
++      fi
+       CFLAGS="`getconf ${buildmodel}_CFLAGS` $CFLAGS"
+       LIBS="`getconf ${buildmodel}_LIBS` $LIBS"
+       LDFLAGS="`getconf ${buildmodel}_LDFLAGS` $LDFLAGS"
+Index: squid/configure
+diff -c squid/configure:1.248.2.94 squid/configure:1.248.2.95
+*** squid/configure:1.248.2.94 Mon May 16 16:39:29 2005
+--- squid/configure    Sun Jul 10 18:40:15 2005
+***************
+*** 2637,2652 ****
+  # Check whether --with-build-environment or --without-build-environment was given.
+  if test "${with_build_environment+set}" = set; then
+    withval="$with_build_environment"
+!    case "$enableval" in
+    yes|no)
+       echo "--with-build-environment expects a build environment string as used by getconf"
+       exit 1
+       ;;
+-   _*)
+-      buildmodel="$enableval"
+-      ;;
+    *)
+!      buildmodel="_$enableval"
+       ;;
+    esac
+  
+--- 2637,2649 ----
+  # Check whether --with-build-environment or --without-build-environment was given.
+  if test "${with_build_environment+set}" = set; then
+    withval="$with_build_environment"
+!    case "$withval" in
+    yes|no)
+       echo "--with-build-environment expects a build environment string as used by getconf"
+       exit 1
+       ;;
+    *)
+!      buildmodel="$withval"
+       ;;
+    esac
+  
+***************
+*** 2666,2673 ****
+               CFLAGS="-D_FILE_OFFSET_BITS=64 $CFLAGS"
+       fi
+  fi
+! if test -n "$buildmodel" && test "$buildmodel" != "_default"; then
+       echo "Using $buildmodel build environment"
+       CFLAGS="`getconf ${buildmodel}_CFLAGS` $CFLAGS"
+       LIBS="`getconf ${buildmodel}_LIBS` $LIBS"
+       LDFLAGS="`getconf ${buildmodel}_LDFLAGS` $LDFLAGS"
+--- 2663,2676 ----
+               CFLAGS="-D_FILE_OFFSET_BITS=64 $CFLAGS"
+       fi
+  fi
+! if test -n "$buildmodel" && test "$buildmodel" != "default"; then
+       echo "Using $buildmodel build environment"
++      if test "`getconf _$buildmodel 2>/dev/null || true`" = 1 || test "`getconf $buildmodel 2>/dev/null || true`" ; then
++          : # All fine
++      else
++          echo "ERROR: Build environment $buildmodel not known to getconf."
++          exit 1
++      fi
+       CFLAGS="`getconf ${buildmodel}_CFLAGS` $CFLAGS"
+       LIBS="`getconf ${buildmodel}_LIBS` $LIBS"
+       LDFLAGS="`getconf ${buildmodel}_LDFLAGS` $LDFLAGS"
diff --git a/squid-2.5.STABLE10-cacheClientTable.patch b/squid-2.5.STABLE10-cacheClientTable.patch
new file mode 100644 (file)
index 0000000..28526b7
--- /dev/null
@@ -0,0 +1,21 @@
+Index: squid/src/client_db.c
+diff -c squid/src/client_db.c:1.53.2.5 squid/src/client_db.c:1.53.2.6
+*** squid/src/client_db.c:1.53.2.5     Fri Mar 25 19:50:52 2005
+--- squid/src/client_db.c      Thu Sep  1 16:54:41 2005
+***************
+*** 328,334 ****
+  snmp_meshCtblFn(variable_list * Var, snint * ErrP)
+  {
+      variable_list *Answer = NULL;
+!     static char key[15];
+      ClientInfo *c = NULL;
+      int aggr = 0;
+      log_type l;
+--- 328,334 ----
+  snmp_meshCtblFn(variable_list * Var, snint * ErrP)
+  {
+      variable_list *Answer = NULL;
+!     static char key[16];
+      ClientInfo *c = NULL;
+      int aggr = 0;
+      log_type l;
diff --git a/squid-2.5.STABLE10-cache_dir_change.patch b/squid-2.5.STABLE10-cache_dir_change.patch
new file mode 100644 (file)
index 0000000..8fe8e5c
--- /dev/null
@@ -0,0 +1,79 @@
+Index: squid/src/cache_cf.c
+diff -c squid/src/cache_cf.c:1.396.2.27 squid/src/cache_cf.c:1.396.2.28
+*** squid/src/cache_cf.c:1.396.2.27    Mon Jun 13 16:26:21 2005
+--- squid/src/cache_cf.c       Sun Jun 19 03:36:33 2005
+***************
+*** 1300,1344 ****
+      if ((path_str = strtok(NULL, w_space)) == NULL)
+       self_destruct();
+  
+!     /*
+!      * This bit of code is a little strange.
+!      * See, if we find a path and type match for a given line, then
+!      * as long as we're reconfiguring, we can just call its reconfigure
+!      * function. No harm there.
+!      *
+!      * Trouble is, if we find a path match, but not a type match, we have
+!      * a dilemma - we could gracefully shut down the fs, kill it, and
+!      * create a new one of a new type in its place, BUT at this stage the
+!      * fs is meant to be the *NEW* one, and so things go very strange. :-)
+!      *
+!      * So, we'll assume the person isn't going to change the fs type for now,
+!      * and XXX later on we will make sure that its picked up.
+!      *
+!      * (moving around cache_dir lines will be looked at later in a little
+!      * more sane detail..)
+!      */
+  
+      for (i = 0; i < swap->n_configured; i++) {
+!      if (0 == strcasecmp(path_str, swap->swapDirs[i].path)) {
+!          /* This is a little weird, you'll appreciate it later */
+!          fs = find_fstype(type_str);
+!          if (fs < 0) {
+!              fatalf("Unknown cache_dir type '%s'\n", type_str);
+!          }
+           sd = swap->swapDirs + i;
+           storefs_list[fs].reconfigurefunc(sd, i, path_str);
+           update_maxobjsize();
+           return;
+       }
+      }
+  
+      assert(swap->n_configured < 63); /* 7 bits, signed */
+  
+-     fs = find_fstype(type_str);
+-     if (fs < 0) {
+-      /* If we get here, we didn't find a matching cache_dir type */
+-      fatalf("Unknown cache_dir type '%s'\n", type_str);
+-     }
+      allocate_new_swapdir(swap);
+      sd = swap->swapDirs + swap->n_configured;
+      sd->type = storefs_list[fs].typestr;
+--- 1300,1326 ----
+      if ((path_str = strtok(NULL, w_space)) == NULL)
+       self_destruct();
+  
+!     fs = find_fstype(type_str);
+!     if (fs < 0)
+!      self_destruct();
+  
++     /* reconfigure existing dir */
+      for (i = 0; i < swap->n_configured; i++) {
+!      if ((strcasecmp(path_str, swap->swapDirs[i].path) == 0)) {
+           sd = swap->swapDirs + i;
++          if (sd->type != storefs_list[fs].typestr) {
++              debug(3, 0) ("ERROR: Can't change type of existing cache_dir %s %s to %s. Restart required\n", sd->type, sd->path, type_str);
++              return;
++          }
+           storefs_list[fs].reconfigurefunc(sd, i, path_str);
+           update_maxobjsize();
+           return;
+       }
+      }
+  
++     /* new cache_dir */
+      assert(swap->n_configured < 63); /* 7 bits, signed */
+  
+      allocate_new_swapdir(swap);
+      sd = swap->swapDirs + swap->n_configured;
+      sd->type = storefs_list[fs].typestr;
diff --git a/squid-2.5.STABLE10-chroot-2.patch b/squid-2.5.STABLE10-chroot-2.patch
new file mode 100644 (file)
index 0000000..40f772a
--- /dev/null
@@ -0,0 +1,120 @@
+Index: squid/src/cache_cf.c
+diff -c squid/src/cache_cf.c:1.396.2.26 squid/src/cache_cf.c:1.396.2.27
+*** squid/src/cache_cf.c:1.396.2.26    Fri May  6 16:33:53 2005
+--- squid/src/cache_cf.c       Mon Jun 13 16:26:21 2005
+***************
+*** 299,306 ****
+      }
+      fclose(fp);
+      defaults_if_none();
+      if (opt_send_signal == -1) {
+-      configDoConfigure();
+       cachemgrRegister("config",
+           "Current Squid Configuration",
+           dump_config,
+--- 299,306 ----
+      }
+      fclose(fp);
+      defaults_if_none();
++     configDoConfigure();
+      if (opt_send_signal == -1) {
+       cachemgrRegister("config",
+           "Current Squid Configuration",
+           dump_config,
+***************
+*** 2567,2574 ****
+       snprintf(pathbuf, BUFSIZ, "%s/%s", Config.chroot_dir, path);
+       path = pathbuf;
+      }
+!     if (stat(path, &sb) < 0)
+!      fatalf("%s %s: %s", name, path, xstrerror());
+  }
+  
+  char *
+--- 2567,2578 ----
+       snprintf(pathbuf, BUFSIZ, "%s/%s", Config.chroot_dir, path);
+       path = pathbuf;
+      }
+!     if (stat(path, &sb) < 0) {
+!      if (opt_send_signal == -1 || opt_send_signal == SIGHUP)
+!          fatalf("%s %s: %s", name, path, xstrerror());
+!      else
+!          fprintf(stderr, "WARNING: %s %s: %s\n", name, path, xstrerror());
+!     }
+  }
+  
+  char *
+Index: squid/src/globals.h
+diff -c squid/src/globals.h:1.108.2.6 squid/src/globals.h:1.108.2.7
+*** squid/src/globals.h:1.108.2.6      Wed Apr 20 15:52:26 2005
+--- squid/src/globals.h        Mon Jun 13 16:26:21 2005
+***************
+*** 166,170 ****
+--- 166,171 ----
+  extern void *sbrk_start;     /* 0 */
+  #endif
+  extern int opt_send_signal;  /* -1 */
++ extern int opt_no_daemon;    /* 0 */
+  
+  #endif /* SQUID_GLOBALS_H */
+Index: squid/src/main.c
+diff -c squid/src/main.c:1.345.2.25 squid/src/main.c:1.345.2.27
+*** squid/src/main.c:1.345.2.25        Wed Apr 20 15:52:26 2005
+--- squid/src/main.c   Mon Jun 27 15:24:28 2005
+***************
+*** 38,44 ****
+  /* for error reporting from xmalloc and friends */
+  extern void (*failure_notify) (const char *);
+  
+- static int opt_no_daemon = 0;
+  static int opt_parse_cfg_only = 0;
+  static char *opt_syslog_facility = NULL;
+  static int httpPortNumOverride = 1;
+--- 38,43 ----
+***************
+*** 684,691 ****
+      /* send signal to running copy and exit */
+      if (opt_send_signal != -1) {
+       /* chroot if configured to run inside chroot */
+!      if (Config.chroot_dir && chroot(Config.chroot_dir)) {
+!          fatal("failed to chroot");
+       }
+       sendSignal();
+       /* NOTREACHED */
+--- 683,694 ----
+      /* send signal to running copy and exit */
+      if (opt_send_signal != -1) {
+       /* chroot if configured to run inside chroot */
+!      if (Config.chroot_dir) {
+!          if (chroot(Config.chroot_dir))
+!              fatal("failed to chroot");
+!          no_suid();
+!      } else {
+!          leave_suid();
+       }
+       sendSignal();
+       /* NOTREACHED */
+Index: squid/src/tools.c
+diff -c squid/src/tools.c:1.213.2.15 squid/src/tools.c:1.213.2.16
+*** squid/src/tools.c:1.213.2.15       Fri Apr 22 14:45:12 2005
+--- squid/src/tools.c  Mon Jun 13 16:26:22 2005
+***************
+*** 491,497 ****
+       if (strchr(host, '.'))
+           return host;
+      }
+!     fatal("Could not determine fully qualified hostname.  Please set 'visible_hostname'\n");
+      return NULL;             /* keep compiler happy */
+  }
+  
+--- 491,500 ----
+       if (strchr(host, '.'))
+           return host;
+      }
+!     if (opt_send_signal == -1)
+!      fatal("Could not determine fully qualified hostname.  Please set 'visible_hostname'\n");
+!     else
+!      return ("localhost");
+      return NULL;             /* keep compiler happy */
+  }
+  
diff --git a/squid-2.5.STABLE10-chroot_dir.patch b/squid-2.5.STABLE10-chroot_dir.patch
new file mode 100644 (file)
index 0000000..623522a
--- /dev/null
@@ -0,0 +1,21 @@
+Index: squid/src/cache_cf.c
+diff -c squid/src/cache_cf.c:1.396.2.28 squid/src/cache_cf.c:1.396.2.29
+*** squid/src/cache_cf.c:1.396.2.28    Sun Jun 19 03:36:33 2005
+--- squid/src/cache_cf.c       Thu Sep  1 16:04:51 2005
+***************
+*** 2545,2551 ****
+      struct stat sb;
+      char pathbuf[BUFSIZ];
+      assert(path != NULL);
+!     if (Config.chroot_dir) {
+       snprintf(pathbuf, BUFSIZ, "%s/%s", Config.chroot_dir, path);
+       path = pathbuf;
+      }
+--- 2545,2551 ----
+      struct stat sb;
+      char pathbuf[BUFSIZ];
+      assert(path != NULL);
+!     if (Config.chroot_dir && (geteuid() == 0)) {
+       snprintf(pathbuf, BUFSIZ, "%s/%s", Config.chroot_dir, path);
+       path = pathbuf;
+      }
diff --git a/squid-2.5.STABLE10-content_length.patch b/squid-2.5.STABLE10-content_length.patch
new file mode 100644 (file)
index 0000000..50d16e1
--- /dev/null
@@ -0,0 +1,41 @@
+Index: squid/src/HttpHeader.c
+diff -c squid/src/HttpHeader.c:1.74.2.28 squid/src/HttpHeader.c:1.74.2.29
+*** squid/src/HttpHeader.c:1.74.2.28   Fri May  6 15:32:09 2005
+--- squid/src/HttpHeader.c     Wed May 25 16:57:33 2005
+***************
+*** 475,483 ****
+       }
+       if (e->id == HDR_CONTENT_LENGTH && (e2 = httpHeaderFindEntry(hdr, e->id)) != NULL) {
+           if (strCmp(e->value, strBuf(e2->value)) != 0) {
+!              debug(55, 1) ("WARNING: found two conflicting content-length headers in {%s}\n", getStringPrefix(header_start, header_end));
+!              httpHeaderEntryDestroy(e);
+!              return httpHeaderReset(hdr);
+           } else {
+               debug(55, Config.onoff.relaxed_header_parser <= 0 ? 1 : 2)
+                   ("NOTICE: found double content-length header\n");
+--- 475,499 ----
+       }
+       if (e->id == HDR_CONTENT_LENGTH && (e2 = httpHeaderFindEntry(hdr, e->id)) != NULL) {
+           if (strCmp(e->value, strBuf(e2->value)) != 0) {
+!              squid_off_t l1, l2;
+!              debug(55, Config.onoff.relaxed_header_parser <= 0 ? 1 : 2) ("WARNING: found two conflicting content-length headers in {%s}\n", getStringPrefix(header_start, header_end));
+!              if (!Config.onoff.relaxed_header_parser) {
+!                  httpHeaderEntryDestroy(e);
+!                  return httpHeaderReset(hdr);
+!              }
+!              if (!httpHeaderParseSize(strBuf(e->value), &l1)) {
+!                  debug(55, 1) ("WARNING: Unparseable content-length '%s'\n", strBuf(e->value));
+!                  httpHeaderEntryDestroy(e);
+!                  continue;
+!              } else if (!httpHeaderParseSize(strBuf(e2->value), &l2)) {
+!                  debug(55, 1) ("WARNING: Unparseable content-length '%s'\n", strBuf(e2->value));
+!                  httpHeaderDelById(hdr, e2->id);
+!              } else if (l1 > l2) {
+!                  httpHeaderDelById(hdr, e2->id);
+!              } else {
+!                  httpHeaderEntryDestroy(e);
+!                  continue;
+!              }
+           } else {
+               debug(55, Config.onoff.relaxed_header_parser <= 0 ? 1 : 2)
+                   ("NOTICE: found double content-length header\n");
diff --git a/squid-2.5.STABLE10-errmsg.patch b/squid-2.5.STABLE10-errmsg.patch
new file mode 100644 (file)
index 0000000..57a957b
--- /dev/null
@@ -0,0 +1,561 @@
+Index: squid/src/cache_manager.c
+diff -c squid/src/cache_manager.c:1.26 squid/src/cache_manager.c:1.26.2.1
+*** squid/src/cache_manager.c:1.26     Fri Feb 23 13:59:50 2001
+--- squid/src/cache_manager.c  Thu Sep  1 16:14:45 2005
+***************
+*** 201,206 ****
+--- 201,207 ----
+      if ((mgr = cachemgrParseUrl(storeUrl(entry))) == NULL) {
+       err = errorCon(ERR_INVALID_URL, HTTP_NOT_FOUND);
+       err->url = xstrdup(storeUrl(entry));
++      err->request = requestLink(request);
+       errorAppendEntry(entry, err);
+       entry->expires = squid_curtime;
+       return;
+Index: squid/src/forward.c
+diff -c squid/src/forward.c:1.82.2.15 squid/src/forward.c:1.82.2.16
+*** squid/src/forward.c:1.82.2.15      Fri Mar 25 19:50:53 2005
+--- squid/src/forward.c        Thu Sep  1 16:14:45 2005
+***************
+*** 236,242 ****
+           request->host);
+       err = errorCon(ERR_DNS_FAIL, HTTP_SERVICE_UNAVAILABLE);
+       err->dnsserver_msg = xstrdup(dns_error_message);
+-      err->request = requestLink(request);
+       fwdFail(fwdState, err);
+       comm_close(server_fd);
+      } else if (status != COMM_OK) {
+--- 236,241 ----
+***************
+*** 250,256 ****
+           err->host = xstrdup(request->host);
+           err->port = request->port;
+       }
+-      err->request = requestLink(request);
+       fwdFail(fwdState, err);
+       if (fs->peer)
+           peerConnectFailed(fs->peer);
+--- 249,254 ----
+***************
+*** 282,288 ****
+      assert(fd == fwdState->server_fd);
+      if (entry->mem_obj->inmem_hi == 0) {
+       err = errorCon(ERR_CONNECT_FAIL, HTTP_GATEWAY_TIMEOUT);
+-      err->request = requestLink(fwdState->request);
+       err->xerrno = ETIMEDOUT;
+       fwdFail(fwdState, err);
+       /*
+--- 280,285 ----
+***************
+*** 420,426 ****
+       debug(50, 4) ("fwdConnectStart: %s\n", xstrerror());
+       err = errorCon(ERR_SOCKET_FAILURE, HTTP_INTERNAL_SERVER_ERROR);
+       err->xerrno = errno;
+-      err->request = requestLink(fwdState->request);
+       fwdFail(fwdState, err);
+       fwdStateFree(fwdState);
+       return;
+--- 417,422 ----
+***************
+*** 466,472 ****
+      ErrorState *err;
+      debug(17, 3) ("fwdStartFail: %s\n", storeUrl(fwdState->entry));
+      err = errorCon(ERR_CANNOT_FORWARD, HTTP_SERVICE_UNAVAILABLE);
+-     err->request = requestLink(fwdState->request);
+      err->xerrno = errno;
+      fwdFail(fwdState, err);
+      fwdStateFree(fwdState);
+--- 462,467 ----
+***************
+*** 525,531 ****
+           debug(17, 1) ("fwdDispatch: Cannot retrieve '%s'\n",
+               storeUrl(entry));
+           err = errorCon(ERR_UNSUP_REQ, HTTP_BAD_REQUEST);
+-          err->request = requestLink(request);
+           fwdFail(fwdState, err);
+           /*
+            * Force a persistent connection to be closed because
+--- 520,525 ----
+***************
+*** 710,716 ****
+  void
+  fwdFail(FwdState * fwdState, ErrorState * errorState)
+  {
+-     assert(EBIT_TEST(fwdState->entry->flags, ENTRY_FWD_HDR_WAIT));
+      debug(17, 3) ("fwdFail: %s \"%s\"\n\t%s\n",
+       err_type_str[errorState->type],
+       httpStatusString(errorState->http_status),
+--- 704,709 ----
+***************
+*** 718,723 ****
+--- 711,718 ----
+      if (fwdState->err)
+       errorStateFree(fwdState->err);
+      fwdState->err = errorState;
++     if (!errorState->request)
++      errorState->request = requestLink(fwdState->request);
+  }
+  
+  /*
+Index: squid/src/ftp.c
+diff -c squid/src/ftp.c:1.316.2.28 squid/src/ftp.c:1.316.2.29
+*** squid/src/ftp.c:1.316.2.28 Wed Jun 22 04:42:34 2005
+--- squid/src/ftp.c    Thu Sep  1 16:14:45 2005
+***************
+*** 2491,2497 ****
+      if (err == NULL)
+       err = errorCon(ERR_FTP_FAILURE, HTTP_BAD_GATEWAY);
+      err->xerrno = errno;
+-     err->request = requestLink(ftpState->request);
+      err->ftp.server_msg = ftpState->ctrl.message;
+      ftpState->ctrl.message = NULL;
+      if (ftpState->old_request)
+--- 2491,2496 ----
+Index: squid/src/gopher.c
+diff -c squid/src/gopher.c:1.162.2.8 squid/src/gopher.c:1.162.2.9
+*** squid/src/gopher.c:1.162.2.8       Tue Jan 11 23:04:01 2005
+--- squid/src/gopher.c Thu Sep  1 16:14:45 2005
+***************
+*** 603,614 ****
+      GopherStateData *gopherState = data;
+      StoreEntry *entry = gopherState->entry;
+      debug(10, 4) ("gopherTimeout: FD %d: '%s'\n", fd, storeUrl(entry));
+!     if (entry->store_status == STORE_PENDING) {
+!      if (entry->mem_obj->inmem_hi == 0) {
+!          fwdFail(gopherState->fwdState,
+!              errorCon(ERR_READ_TIMEOUT, HTTP_GATEWAY_TIMEOUT));
+!      }
+!     }
+      comm_close(fd);
+  }
+  
+--- 603,610 ----
+      GopherStateData *gopherState = data;
+      StoreEntry *entry = gopherState->entry;
+      debug(10, 4) ("gopherTimeout: FD %d: '%s'\n", fd, storeUrl(entry));
+!     fwdFail(gopherState->fwdState,
+!      errorCon(ERR_READ_TIMEOUT, HTTP_GATEWAY_TIMEOUT));
+      comm_close(fd);
+  }
+  
+***************
+*** 660,681 ****
+       debug(50, 1) ("gopherReadReply: error reading: %s\n", xstrerror());
+       if (ignoreErrno(errno)) {
+           commSetSelect(fd, COMM_SELECT_READ, gopherReadReply, data, 0);
+!      } else if (entry->mem_obj->inmem_hi == 0) {
+           ErrorState *err;
+           err = errorCon(ERR_READ_ERROR, HTTP_INTERNAL_SERVER_ERROR);
+           err->xerrno = errno;
+!          err->url = xstrdup(storeUrl(entry));
+!          errorAppendEntry(entry, err);
+!          comm_close(fd);
+!      } else {
+           comm_close(fd);
+       }
+      } else if (len == 0 && entry->mem_obj->inmem_hi == 0) {
+!      ErrorState *err;
+!      err = errorCon(ERR_ZERO_SIZE_OBJECT, HTTP_SERVICE_UNAVAILABLE);
+!      err->xerrno = errno;
+!      err->url = xstrdup(gopherState->request);
+!      errorAppendEntry(entry, err);
+       comm_close(fd);
+      } else if (len == 0) {
+       /* Connection closed; retrieval done. */
+--- 656,670 ----
+       debug(50, 1) ("gopherReadReply: error reading: %s\n", xstrerror());
+       if (ignoreErrno(errno)) {
+           commSetSelect(fd, COMM_SELECT_READ, gopherReadReply, data, 0);
+!      } else {
+           ErrorState *err;
+           err = errorCon(ERR_READ_ERROR, HTTP_INTERNAL_SERVER_ERROR);
+           err->xerrno = errno;
+!          fwdFail(gopherState->fwdState, err);
+           comm_close(fd);
+       }
+      } else if (len == 0 && entry->mem_obj->inmem_hi == 0) {
+!      fwdFail(gopherState->fwdState, errorCon(ERR_ZERO_SIZE_OBJECT, HTTP_SERVICE_UNAVAILABLE));
+       comm_close(fd);
+      } else if (len == 0) {
+       /* Connection closed; retrieval done. */
+***************
+*** 717,728 ****
+      }
+      if (errflag) {
+       ErrorState *err;
+!      err = errorCon(ERR_CONNECT_FAIL, HTTP_SERVICE_UNAVAILABLE);
+       err->xerrno = errno;
+       err->host = xstrdup(gopherState->req->host);
+       err->port = gopherState->req->port;
+       err->url = xstrdup(storeUrl(entry));
+!      errorAppendEntry(entry, err);
+       comm_close(fd);
+       if (buf)
+           memFree(buf, MEM_4K_BUF);   /* Allocated by gopherSendRequest. */
+--- 706,717 ----
+      }
+      if (errflag) {
+       ErrorState *err;
+!      err = errorCon(ERR_WRITE_ERROR, HTTP_BAD_GATEWAY);
+       err->xerrno = errno;
+       err->host = xstrdup(gopherState->req->host);
+       err->port = gopherState->req->port;
+       err->url = xstrdup(storeUrl(entry));
+!      fwdFail(gopherState->fwdState, err);
+       comm_close(fd);
+       if (buf)
+           memFree(buf, MEM_4K_BUF);   /* Allocated by gopherSendRequest. */
+***************
+*** 815,830 ****
+      /* Parse url. */
+      gopher_request_parse(fwdState->request,
+       &gopherState->type_id, gopherState->request);
+- #if OLD_PARSE_ERROR_CODE
+-     if (...) {
+-      ErrorState *err;
+-      err = errorCon(ERR_INVALID_URL, HTTP_BAD_REQUEST);
+-      err->url = xstrdup(storeUrl(entry));
+-      errorAppendEntry(entry, err);
+-      gopherStateFree(-1, gopherState);
+-      return;
+-     }
+- #endif
+      comm_add_close_handler(fd, gopherStateFree, gopherState);
+      if (((gopherState->type_id == GOPHER_INDEX) || (gopherState->type_id == GOPHER_CSO))
+       && (strchr(gopherState->request, '?') == NULL)) {
+--- 804,809 ----
+Index: squid/src/http.c
+diff -c squid/src/http.c:1.384.2.30 squid/src/http.c:1.384.2.31
+*** squid/src/http.c:1.384.2.30        Fri Mar 25 19:50:53 2005
+--- squid/src/http.c   Thu Sep  1 16:14:45 2005
+***************
+*** 99,108 ****
+      StoreEntry *entry = httpState->entry;
+      debug(11, 4) ("httpTimeout: FD %d: '%s'\n", fd, storeUrl(entry));
+      if (entry->store_status == STORE_PENDING) {
+!      if (entry->mem_obj->inmem_hi == 0) {
+!          fwdFail(httpState->fwd,
+!              errorCon(ERR_READ_TIMEOUT, HTTP_GATEWAY_TIMEOUT));
+!      }
+      }
+      comm_close(fd);
+  }
+--- 99,106 ----
+      StoreEntry *entry = httpState->entry;
+      debug(11, 4) ("httpTimeout: FD %d: '%s'\n", fd, storeUrl(entry));
+      if (entry->store_status == STORE_PENDING) {
+!      fwdFail(httpState->fwd,
+!          errorCon(ERR_READ_TIMEOUT, HTTP_GATEWAY_TIMEOUT));
+      }
+      comm_close(fd);
+  }
+***************
+*** 616,637 ****
+           fd, xstrerror());
+       if (ignoreErrno(errno)) {
+           commSetSelect(fd, COMM_SELECT_READ, httpReadReply, httpState, 0);
+!      } else if (entry->mem_obj->inmem_hi == 0) {
+           ErrorState *err;
+           err = errorCon(ERR_READ_ERROR, HTTP_BAD_GATEWAY);
+-          err->request = requestLink((request_t *) request);
+           err->xerrno = errno;
+           fwdFail(httpState->fwd, err);
+           comm_close(fd);
+-      } else {
+-          comm_close(fd);
+       }
+      } else if (len == 0 && entry->mem_obj->inmem_hi == 0) {
+!      ErrorState *err;
+!      err = errorCon(ERR_ZERO_SIZE_OBJECT, HTTP_BAD_GATEWAY);
+!      err->xerrno = errno;
+!      err->request = requestLink((request_t *) request);
+!      fwdFail(httpState->fwd, err);
+       httpState->eof = 1;
+       comm_close(fd);
+      } else if (len == 0) {
+--- 614,628 ----
+           fd, xstrerror());
+       if (ignoreErrno(errno)) {
+           commSetSelect(fd, COMM_SELECT_READ, httpReadReply, httpState, 0);
+!      } else {
+           ErrorState *err;
+           err = errorCon(ERR_READ_ERROR, HTTP_BAD_GATEWAY);
+           err->xerrno = errno;
+           fwdFail(httpState->fwd, err);
+           comm_close(fd);
+       }
+      } else if (len == 0 && entry->mem_obj->inmem_hi == 0) {
+!      fwdFail(httpState->fwd, errorCon(ERR_ZERO_SIZE_OBJECT, HTTP_BAD_GATEWAY));
+       httpState->eof = 1;
+       comm_close(fd);
+      } else if (len == 0) {
+***************
+*** 646,663 ****
+            */
+           httpProcessReplyHeader(httpState, buf, len);
+       if (entry->mem_obj->reply->sline.status == HTTP_HEADER_TOO_LARGE) {
+-          ErrorState *err;
+           storeEntryReset(entry);
+!          err = errorCon(ERR_TOO_BIG, HTTP_BAD_GATEWAY);
+!          err->request = requestLink((request_t *) request);
+!          fwdFail(httpState->fwd, err);
+           httpState->fwd->flags.dont_retry = 1;
+       } else if (entry->mem_obj->reply->sline.status == HTTP_INVALID_HEADER && !(entry->mem_obj->reply->sline.version.major == 0 && entry->mem_obj->reply->sline.version.minor == 9)) {
+-          ErrorState *err;
+           storeEntryReset(entry);
+!          err = errorCon(ERR_INVALID_RESP, HTTP_BAD_GATEWAY);
+!          err->request = requestLink((request_t *) request);
+!          fwdFail(httpState->fwd, err);
+           httpState->fwd->flags.dont_retry = 1;
+       } else {
+           fwdComplete(httpState->fwd);
+--- 637,648 ----
+            */
+           httpProcessReplyHeader(httpState, buf, len);
+       if (entry->mem_obj->reply->sline.status == HTTP_HEADER_TOO_LARGE) {
+           storeEntryReset(entry);
+!          fwdFail(httpState->fwd, errorCon(ERR_TOO_BIG, HTTP_BAD_GATEWAY));
+           httpState->fwd->flags.dont_retry = 1;
+       } else if (entry->mem_obj->reply->sline.status == HTTP_INVALID_HEADER && !(entry->mem_obj->reply->sline.version.major == 0 && entry->mem_obj->reply->sline.version.minor == 9)) {
+           storeEntryReset(entry);
+!          fwdFail(httpState->fwd, errorCon(ERR_INVALID_RESP, HTTP_BAD_GATEWAY));
+           httpState->fwd->flags.dont_retry = 1;
+       } else {
+           fwdComplete(httpState->fwd);
+***************
+*** 670,691 ****
+           if (httpState->reply_hdr_state == 2) {
+               http_status s = entry->mem_obj->reply->sline.status;
+               if (s == HTTP_HEADER_TOO_LARGE) {
+-                  ErrorState *err;
+                   debug(11, 1) ("WARNING: %s:%d: HTTP header too large\n", __FILE__, __LINE__);
+                   storeEntryReset(entry);
+!                  err = errorCon(ERR_TOO_BIG, HTTP_BAD_GATEWAY);
+!                  err->request = requestLink((request_t *) request);
+!                  fwdFail(httpState->fwd, err);
+                   httpState->fwd->flags.dont_retry = 1;
+                   comm_close(fd);
+                   return;
+               }
+               if (s == HTTP_INVALID_HEADER && !(entry->mem_obj->reply->sline.version.major == 0 && entry->mem_obj->reply->sline.version.minor == 9)) {
+-                  ErrorState *err;
+                   storeEntryReset(entry);
+!                  err = errorCon(ERR_INVALID_RESP, HTTP_BAD_GATEWAY);
+!                  err->request = requestLink((request_t *) request);
+!                  fwdFail(httpState->fwd, err);
+                   httpState->fwd->flags.dont_retry = 1;
+                   comm_close(fd);
+                   return;
+--- 655,670 ----
+           if (httpState->reply_hdr_state == 2) {
+               http_status s = entry->mem_obj->reply->sline.status;
+               if (s == HTTP_HEADER_TOO_LARGE) {
+                   debug(11, 1) ("WARNING: %s:%d: HTTP header too large\n", __FILE__, __LINE__);
+                   storeEntryReset(entry);
+!                  fwdFail(httpState->fwd, errorCon(ERR_TOO_BIG, HTTP_BAD_GATEWAY));
+                   httpState->fwd->flags.dont_retry = 1;
+                   comm_close(fd);
+                   return;
+               }
+               if (s == HTTP_INVALID_HEADER && !(entry->mem_obj->reply->sline.version.major == 0 && entry->mem_obj->reply->sline.version.minor == 9)) {
+                   storeEntryReset(entry);
+!                  fwdFail(httpState->fwd, errorCon(ERR_INVALID_RESP, HTTP_BAD_GATEWAY));
+                   httpState->fwd->flags.dont_retry = 1;
+                   comm_close(fd);
+                   return;
+***************
+*** 804,810 ****
+  {
+      HttpStateData *httpState = data;
+      StoreEntry *entry = httpState->entry;
+-     ErrorState *err;
+      debug(11, 5) ("httpSendComplete: FD %d: size %d: errflag %d.\n",
+       fd, (int) size, errflag);
+  #if URL_CHECKSUM_DEBUG
+--- 783,788 ----
+***************
+*** 818,829 ****
+      if (errflag == COMM_ERR_CLOSING)
+       return;
+      if (errflag) {
+!      if (entry->mem_obj->inmem_hi == 0) {
+!          err = errorCon(ERR_WRITE_ERROR, HTTP_BAD_GATEWAY);
+!          err->xerrno = errno;
+!          err->request = requestLink(httpState->orig_request);
+!          errorAppendEntry(entry, err);
+!      }
+       comm_close(fd);
+       return;
+      } else {
+--- 796,805 ----
+      if (errflag == COMM_ERR_CLOSING)
+       return;
+      if (errflag) {
+!      ErrorState *err;
+!      err = errorCon(ERR_WRITE_ERROR, HTTP_BAD_GATEWAY);
+!      err->xerrno = errno;
+!      fwdFail(httpState->fwd, err);
+       comm_close(fd);
+       return;
+      } else {
+***************
+*** 1264,1270 ****
+  {
+      HttpStateData *httpState = data;
+      StoreEntry *entry = httpState->entry;
+-     ErrorState *err;
+      debug(11, 5) ("httpSendRequestEntry: FD %d: size %d: errflag %d.\n",
+       fd, (int) size, errflag);
+      if (size > 0) {
+--- 1240,1245 ----
+***************
+*** 1275,1286 ****
+      if (errflag == COMM_ERR_CLOSING)
+       return;
+      if (errflag) {
+!      if (entry->mem_obj->inmem_hi == 0) {
+!          err = errorCon(ERR_WRITE_ERROR, HTTP_BAD_GATEWAY);
+!          err->xerrno = errno;
+!          err->request = requestLink(httpState->orig_request);
+!          errorAppendEntry(entry, err);
+!      }
+       comm_close(fd);
+       return;
+      }
+--- 1250,1259 ----
+      if (errflag == COMM_ERR_CLOSING)
+       return;
+      if (errflag) {
+!      ErrorState *err;
+!      err = errorCon(ERR_WRITE_ERROR, HTTP_BAD_GATEWAY);
+!      err->xerrno = errno;
+!      fwdFail(httpState->fwd, err);
+       comm_close(fd);
+       return;
+      }
+Index: squid/src/urn.c
+diff -c squid/src/urn.c:1.68.2.3 squid/src/urn.c:1.68.2.4
+*** squid/src/urn.c:1.68.2.3   Sun Sep  1 06:38:04 2002
+--- squid/src/urn.c    Thu Sep  1 16:14:45 2005
+***************
+*** 132,137 ****
+--- 132,138 ----
+       debug(52, 3) ("urnStart: Bad uri-res URL %s\n", urlres);
+       err = errorCon(ERR_URN_RESOLVE, HTTP_NOT_FOUND);
+       err->url = xstrdup(urlres);
++      err->request = requestLink(r);
+       errorAppendEntry(e, err);
+       return;
+      }
+Index: squid/src/wais.c
+diff -c squid/src/wais.c:1.138 squid/src/wais.c:1.138.2.1
+*** squid/src/wais.c:1.138     Wed Oct 24 02:19:09 2001
+--- squid/src/wais.c   Thu Sep  1 16:14:45 2005
+***************
+*** 70,79 ****
+      StoreEntry *entry = waisState->entry;
+      debug(24, 4) ("waisTimeout: FD %d: '%s'\n", fd, storeUrl(entry));
+      if (entry->store_status == STORE_PENDING) {
+!      if (entry->mem_obj->inmem_hi == 0) {
+!          fwdFail(waisState->fwd,
+!              errorCon(ERR_READ_TIMEOUT, HTTP_GATEWAY_TIMEOUT));
+!      }
+      }
+      comm_close(fd);
+  }
+--- 70,77 ----
+      StoreEntry *entry = waisState->entry;
+      debug(24, 4) ("waisTimeout: FD %d: '%s'\n", fd, storeUrl(entry));
+      if (entry->store_status == STORE_PENDING) {
+!      fwdFail(waisState->fwd,
+!          errorCon(ERR_READ_TIMEOUT, HTTP_GATEWAY_TIMEOUT));
+      }
+      comm_close(fd);
+  }
+***************
+*** 130,149 ****
+               waisReadReply, waisState, 0);
+       } else {
+           ErrorState *err;
+-          EBIT_CLR(entry->flags, ENTRY_CACHABLE);
+-          storeReleaseRequest(entry);
+           err = errorCon(ERR_READ_ERROR, HTTP_INTERNAL_SERVER_ERROR);
+           err->xerrno = errno;
+!          err->request = requestLink(waisState->request);
+!          errorAppendEntry(entry, err);
+           comm_close(fd);
+       }
+      } else if (len == 0 && entry->mem_obj->inmem_hi == 0) {
+!      ErrorState *err;
+!      err = errorCon(ERR_ZERO_SIZE_OBJECT, HTTP_SERVICE_UNAVAILABLE);
+!      err->xerrno = errno;
+!      err->request = requestLink(waisState->request);
+!      errorAppendEntry(entry, err);
+       comm_close(fd);
+      } else if (len == 0) {
+       /* Connection closed; retrieval done. */
+--- 128,140 ----
+               waisReadReply, waisState, 0);
+       } else {
+           ErrorState *err;
+           err = errorCon(ERR_READ_ERROR, HTTP_INTERNAL_SERVER_ERROR);
+           err->xerrno = errno;
+!          fwdFail(waisState->fwd, err);
+           comm_close(fd);
+       }
+      } else if (len == 0 && entry->mem_obj->inmem_hi == 0) {
+!      fwdFail(waisState->fwd, errorCon(ERR_ZERO_SIZE_OBJECT, HTTP_SERVICE_UNAVAILABLE));
+       comm_close(fd);
+      } else if (len == 0) {
+       /* Connection closed; retrieval done. */
+***************
+*** 179,186 ****
+       ErrorState *err;
+       err = errorCon(ERR_WRITE_ERROR, HTTP_SERVICE_UNAVAILABLE);
+       err->xerrno = errno;
+!      err->request = requestLink(waisState->request);
+!      errorAppendEntry(entry, err);
+       comm_close(fd);
+      } else {
+       /* Schedule read reply. */
+--- 170,176 ----
+       ErrorState *err;
+       err = errorCon(ERR_WRITE_ERROR, HTTP_SERVICE_UNAVAILABLE);
+       err->xerrno = errno;
+!      fwdFail(waisState->fwd, err);
+       comm_close(fd);
+      } else {
+       /* Schedule read reply. */
+Index: squid/src/whois.c
+diff -c squid/src/whois.c:1.16 squid/src/whois.c:1.16.2.1
+*** squid/src/whois.c:1.16     Fri Apr 13 18:03:24 2001
+--- squid/src/whois.c  Thu Sep  1 16:14:45 2005
+***************
+*** 109,122 ****
+           fd, xstrerror());
+       if (ignoreErrno(errno)) {
+           commSetSelect(fd, COMM_SELECT_READ, whoisReadReply, p, Config.Timeout.read);
+!      } else if (mem->inmem_hi == 0) {
+           ErrorState *err;
+           err = errorCon(ERR_READ_ERROR, HTTP_INTERNAL_SERVER_ERROR);
+           err->xerrno = errno;
+           fwdFail(p->fwd, err);
+           comm_close(fd);
+-      } else {
+-          comm_close(fd);
+       }
+      } else {
+       fwdComplete(p->fwd);
+--- 109,120 ----
+           fd, xstrerror());
+       if (ignoreErrno(errno)) {
+           commSetSelect(fd, COMM_SELECT_READ, whoisReadReply, p, Config.Timeout.read);
+!      } else {
+           ErrorState *err;
+           err = errorCon(ERR_READ_ERROR, HTTP_INTERNAL_SERVER_ERROR);
+           err->xerrno = errno;
+           fwdFail(p->fwd, err);
+           comm_close(fd);
+       }
+      } else {
+       fwdComplete(p->fwd);
diff --git a/squid-2.5.STABLE10-ftp_250.patch b/squid-2.5.STABLE10-ftp_250.patch
new file mode 100644 (file)
index 0000000..4799958
--- /dev/null
@@ -0,0 +1,55 @@
+Index: squid/src/ftp.c
+diff -c squid/src/ftp.c:1.316.2.29 squid/src/ftp.c:1.316.2.30
+*** squid/src/ftp.c:1.316.2.29 Thu Sep  1 16:14:45 2005
+--- squid/src/ftp.c    Thu Sep  1 16:28:29 2005
+***************
+*** 2279,2285 ****
+  {
+      int code = ftpState->ctrl.replycode;
+      debug(9, 3) ("This is ftpReadTransferDone\n");
+!     if (code == 226) {
+       /* Connection closed; retrieval done. */
+       if (ftpState->flags.html_header_sent)
+           ftpListingFinish(ftpState);
+--- 2279,2285 ----
+  {
+      int code = ftpState->ctrl.replycode;
+      debug(9, 3) ("This is ftpReadTransferDone\n");
+!     if (code == 226 || code == 250) {
+       /* Connection closed; retrieval done. */
+       if (ftpState->flags.html_header_sent)
+           ftpListingFinish(ftpState);
+***************
+*** 2345,2351 ****
+  {
+      int code = ftpState->ctrl.replycode;
+      debug(9, 3) ("This is ftpWriteTransferDone\n");
+!     if (code != 226) {
+       debug(9, 1) ("ftpReadTransferDone: Got code %d after sending data\n",
+           code);
+       ftpFailed(ftpState, ERR_FTP_PUT_ERROR);
+--- 2345,2351 ----
+  {
+      int code = ftpState->ctrl.replycode;
+      debug(9, 3) ("This is ftpWriteTransferDone\n");
+!     if (!(code == 226 || code == 250)) {
+       debug(9, 1) ("ftpReadTransferDone: Got code %d after sending data\n",
+           code);
+       ftpFailed(ftpState, ERR_FTP_PUT_ERROR);
+***************
+*** 2521,2527 ****
+       storeUrl(ftpState->entry), code);
+      if (cbdataValid(ftpState))
+       debug(9, 5) ("ftpSendReply: ftpState (%p) is valid!\n", ftpState);
+!     if (code == 226) {
+       err_code = (ftpState->mdtm > 0) ? ERR_FTP_PUT_MODIFIED : ERR_FTP_PUT_CREATED;
+       http_code = (ftpState->mdtm > 0) ? HTTP_ACCEPTED : HTTP_CREATED;
+      } else if (code == 227) {
+--- 2521,2527 ----
+       storeUrl(ftpState->entry), code);
+      if (cbdataValid(ftpState))
+       debug(9, 5) ("ftpSendReply: ftpState (%p) is valid!\n", ftpState);
+!     if (code == 226 || code == 250) {
+       err_code = (ftpState->mdtm > 0) ? ERR_FTP_PUT_MODIFIED : ERR_FTP_PUT_CREATED;
+       http_code = (ftpState->mdtm > 0) ? HTTP_ACCEPTED : HTTP_CREATED;
+      } else if (code == 227) {
diff --git a/squid-2.5.STABLE10-ftp_basehref.patch b/squid-2.5.STABLE10-ftp_basehref.patch
new file mode 100644 (file)
index 0000000..1825fdb
--- /dev/null
@@ -0,0 +1,229 @@
+Index: squid/src/ftp.c
+diff -c squid/src/ftp.c:1.316.2.26 squid/src/ftp.c:1.316.2.27
+*** squid/src/ftp.c:1.316.2.26 Tue Jun 21 16:18:19 2005
+--- squid/src/ftp.c    Tue Jun 21 16:21:31 2005
+***************
+*** 69,74 ****
+--- 69,75 ----
+      unsigned int http_header_sent:1;
+      unsigned int tried_nlst:1;
+      unsigned int use_base:1;
++     unsigned int dir_slash:1;
+      unsigned int root_dir:1;
+      unsigned int no_dotdot:1;
+      unsigned int html_header_sent:1;
+***************
+*** 87,92 ****
+--- 88,94 ----
+      int password_url;
+      char *reply_hdr;
+      int reply_hdr_state;
++     String clean_url;
+      String title_url;
+      String base_href;
+      int conn_att;
+***************
+*** 96,101 ****
+--- 98,104 ----
+      squid_off_t size;
+      wordlist *pathcomps;
+      char *filepath;
++     char *dirpath;
+      squid_off_t restart_offset;
+      squid_off_t restarted_offset;
+      int rest_att;
+***************
+*** 437,445 ****
+      storeBuffer(e);
+      storeAppendPrintf(e, "</PRE>\n");
+      if (ftpState->flags.listformat_unknown && !ftpState->flags.tried_nlst) {
+!      storeAppendPrintf(e, "<A HREF=\"./;type=d\">[As plain directory]</A>\n");
+      } else if (ftpState->typecode == 'D') {
+!      const char *path = ftpState->filepath ? ftpState->filepath : ".";
+       storeAppendPrintf(e, "<A HREF=\"%s/\">[As extended directory]</A>\n", html_quote(path));
+      }
+      storeAppendPrintf(e, "<HR noshade size=\"1px\">\n");
+--- 440,449 ----
+      storeBuffer(e);
+      storeAppendPrintf(e, "</PRE>\n");
+      if (ftpState->flags.listformat_unknown && !ftpState->flags.tried_nlst) {
+!      storeAppendPrintf(e, "<A HREF=\"%s/;type=d\">[As plain directory]</A>\n",
+!          ftpState->flags.dir_slash ? rfc1738_escape_part(ftpState->filepath) : ".");
+      } else if (ftpState->typecode == 'D') {
+!      const char *path = ftpState->flags.dir_slash ? ftpState->filepath : ".";
+       storeAppendPrintf(e, "<A HREF=\"%s/\">[As extended directory]</A>\n", html_quote(path));
+      }
+      storeAppendPrintf(e, "<HR noshade size=\"1px\">\n");
+***************
+*** 681,686 ****
+--- 685,691 ----
+      LOCAL_ARRAY(char, download, 2048 + 40);
+      LOCAL_ARRAY(char, link, 2048 + 40);
+      LOCAL_ARRAY(char, html, 8192);
++     LOCAL_ARRAY(char, prefix, 2048);
+      size_t width = Config.Ftp.list_width;
+      ftpListParts *parts;
+      *icon = *href = *text = *size = *chdir = *view = *download = *link = *html = '\0';
+***************
+*** 688,693 ****
+--- 693,702 ----
+       snprintf(html, 8192, "%s\n", line);
+       return html;
+      }
++     if (ftpState->flags.dir_slash)
++      snprintf(prefix, sizeof(prefix), "%s/", rfc1738_escape_part(ftpState->dirpath));
++     else
++      prefix[0] = '\0';
+      /* Handle builtin <dirup> */
+      if (strcmp(line, "<internal-dirup>") == 0) {
+       /* <A HREF="{href}">{icon}</A> <A HREF="{href}">{text}</A> {link} */
+***************
+*** 696,702 ****
+           "[DIRUP]");
+       if (!ftpState->flags.no_dotdot && !ftpState->flags.root_dir) {
+           /* Normal directory */
+!          strcpy(href, "../");
+           strcpy(text, "Parent Directory");
+       } else if (!ftpState->flags.no_dotdot && ftpState->flags.root_dir) {
+           /* "Top level" directory */
+--- 705,714 ----
+           "[DIRUP]");
+       if (!ftpState->flags.no_dotdot && !ftpState->flags.root_dir) {
+           /* Normal directory */
+!          if (!ftpState->flags.dir_slash)
+!              strcpy(href, "../");
+!          else
+!              strcpy(href, "./");
+           strcpy(text, "Parent Directory");
+       } else if (!ftpState->flags.no_dotdot && ftpState->flags.root_dir) {
+           /* "Top level" directory */
+***************
+*** 710,716 ****
+           strcpy(href, "%2e%2e/");
+           strcpy(text, "Parent Directory");
+           snprintf(link, 2048, "(<A HREF=\"%s\">%s</A>)",
+!              "../",
+               "Back");
+       } else {                /* NO_DOTDOT && ROOT_DIR */
+           /* "UNIX Root" directory */
+--- 722,728 ----
+           strcpy(href, "%2e%2e/");
+           strcpy(text, "Parent Directory");
+           snprintf(link, 2048, "(<A HREF=\"%s\">%s</A>)",
+!              !ftpState->flags.dir_slash ? "../" : "./",
+               "Back");
+       } else {                /* NO_DOTDOT && ROOT_DIR */
+           /* "UNIX Root" directory */
+***************
+*** 758,765 ****
+       /* sometimes there is an 'l' flag, but no "->" link */
+       if (parts->link) {
+           char *link2 = xstrdup(html_quote(rfc1738_escape(parts->link)));
+!          snprintf(link, 2048, " -> <A HREF=\"%s\">%s</A>",
+!              link2,
+               html_quote(parts->link));
+           safe_free(link2);
+       }
+--- 770,777 ----
+       /* sometimes there is an 'l' flag, but no "->" link */
+       if (parts->link) {
+           char *link2 = xstrdup(html_quote(rfc1738_escape(parts->link)));
+!          snprintf(link, 2048, " -> <A HREF=\"%s%s\">%s</A>",
+!              *link2 != '/' ? prefix : "", link2,
+               html_quote(parts->link));
+           safe_free(link2);
+       }
+***************
+*** 799,825 ****
+      }
+      if (parts->type != 'd') {
+       if (mimeGetViewOption(parts->name)) {
+!          snprintf(view, 2048, " <A HREF=\"%s;type=a\"><IMG border=\"0\" SRC=\"%s\" "
+               "ALT=\"[VIEW]\"></A>",
+!              href, mimeGetIconURL("internal-view"));
+       }
+       if (mimeGetDownloadOption(parts->name)) {
+!          snprintf(download, 2048, " <A HREF=\"%s;type=i\"><IMG border=\"0\" SRC=\"%s\" "
+               "ALT=\"[DOWNLOAD]\"></A>",
+!              href, mimeGetIconURL("internal-download"));
+       }
+      }
+      /* <A HREF="{href}">{icon}</A> <A HREF="{href}">{text}</A> . . . {date}{size}{chdir}{view}{download}{link}\n  */
+      if (parts->type != '\0') {
+!      snprintf(html, 8192, "<A HREF=\"%s\">%s</A> <A HREF=\"%s\">%s</A>%s "
+           "%s%8s%s%s%s%s\n",
+!          href, icon, href, html_quote(text), dots_fill(strlen(text)),
+           parts->date, size, chdir, view, download, link);
+      } else {
+       /* Plain listing. {icon} {text} ... {chdir}{view}{download} */
+!      snprintf(html, 8192, "<A HREF=\"%s\">%s</A> <A HREF=\"%s\">%s</A>%s "
+           "%s%s%s%s\n",
+!          href, icon, href, html_quote(text), dots_fill(strlen(text)),
+           chdir, view, download, link);
+      }
+      ftpListPartsFree(&parts);
+--- 811,837 ----
+      }
+      if (parts->type != 'd') {
+       if (mimeGetViewOption(parts->name)) {
+!          snprintf(view, 2048, " <A HREF=\"%s%s;type=a\"><IMG border=\"0\" SRC=\"%s\" "
+               "ALT=\"[VIEW]\"></A>",
+!              prefix, href, mimeGetIconURL("internal-view"));
+       }
+       if (mimeGetDownloadOption(parts->name)) {
+!          snprintf(download, 2048, " <A HREF=\"%s%s;type=i\"><IMG border=\"0\" SRC=\"%s\" "
+               "ALT=\"[DOWNLOAD]\"></A>",
+!              prefix, href, mimeGetIconURL("internal-download"));
+       }
+      }
+      /* <A HREF="{href}">{icon}</A> <A HREF="{href}">{text}</A> . . . {date}{size}{chdir}{view}{download}{link}\n  */
+      if (parts->type != '\0') {
+!      snprintf(html, 8192, "<A HREF=\"%s%s\">%s</A> <A HREF=\"%s%s\">%s</A>%s "
+           "%s%8s%s%s%s%s\n",
+!          prefix, href, icon, prefix, href, html_quote(text), dots_fill(strlen(text)),
+           parts->date, size, chdir, view, download, link);
+      } else {
+       /* Plain listing. {icon} {text} ... {chdir}{view}{download} */
+!      snprintf(html, 8192, "<A HREF=\"%s%s\">%s</A> <A HREF=\"%s%s\">%s</A>%s "
+           "%s%s%s%s\n",
+!          prefix, href, icon, prefix, href, html_quote(text), dots_fill(strlen(text)),
+           chdir, view, download, link);
+      }
+      ftpListPartsFree(&parts);
+***************
+*** 1557,1563 ****
+      debug(9, 4) ("ftpTraverseDirectory %s\n",
+       ftpState->filepath ? ftpState->filepath : "<NULL>");
+  
+!     safe_free(ftpState->filepath);
+      /* Done? */
+      if (ftpState->pathcomps == NULL) {
+       debug(9, 3) ("the final component was a directory\n");
+--- 1569,1578 ----
+      debug(9, 4) ("ftpTraverseDirectory %s\n",
+       ftpState->filepath ? ftpState->filepath : "<NULL>");
+  
+!     safe_free(ftpState->dirpath);
+!     ftpState->dirpath = ftpState->filepath;
+!     ftpState->filepath = NULL;
+! 
+      /* Done? */
+      if (ftpState->pathcomps == NULL) {
+       debug(9, 3) ("the final component was a directory\n");
+***************
+*** 1662,1668 ****
+       debug(9, 3) ("Directory path did not end in /\n");
+       strCat(ftpState->title_url, "/");
+       ftpState->flags.isdir = 1;
+!      ftpState->flags.use_base = 1;
+      }
+      ftpSendPasv(ftpState);
+  }
+--- 1677,1683 ----
+       debug(9, 3) ("Directory path did not end in /\n");
+       strCat(ftpState->title_url, "/");
+       ftpState->flags.isdir = 1;
+!      ftpState->flags.dir_slash = 1;
+      }
+      ftpSendPasv(ftpState);
+  }
diff --git a/squid-2.5.STABLE10-ftp_title-2.patch b/squid-2.5.STABLE10-ftp_title-2.patch
new file mode 100644 (file)
index 0000000..c25b7dd
--- /dev/null
@@ -0,0 +1,115 @@
+Index: squid/src/ftp.c
+diff -c squid/src/ftp.c:1.316.2.25 squid/src/ftp.c:1.316.2.28
+*** squid/src/ftp.c:1.316.2.25 Fri Mar 25 19:50:53 2005
+--- squid/src/ftp.c    Wed Jun 22 04:42:34 2005
+***************
+*** 365,379 ****
+      wordlist *w;
+      char *dirup;
+      int i, j, k;
+!     char *title;
+      storeBuffer(e);
+      storeAppendPrintf(e, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n");
+      storeAppendPrintf(e, "<!-- HTML listing generated by Squid %s -->\n",
+       version_string);
+      storeAppendPrintf(e, "<!-- %s -->\n", mkrfc1123(squid_curtime));
+      storeAppendPrintf(e, "<HTML><HEAD><TITLE>\n");
+!     storeAppendPrintf(e, "FTP Directory: %s\n",
+!      html_quote(strBuf(ftpState->title_url)));
+      storeAppendPrintf(e, "</TITLE>\n");
+      storeAppendPrintf(e, "<STYLE type=\"text/css\"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}--></STYLE>\n");
+      if (ftpState->flags.use_base)
+--- 365,383 ----
+      wordlist *w;
+      char *dirup;
+      int i, j, k;
+!     const char *title = strBuf(ftpState->title_url);
+      storeBuffer(e);
+      storeAppendPrintf(e, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n");
+      storeAppendPrintf(e, "<!-- HTML listing generated by Squid %s -->\n",
+       version_string);
+      storeAppendPrintf(e, "<!-- %s -->\n", mkrfc1123(squid_curtime));
+      storeAppendPrintf(e, "<HTML><HEAD><TITLE>\n");
+!     {
+!      char *t = xstrdup(title);
+!      rfc1738_unescape(t);
+!      storeAppendPrintf(e, "FTP Directory: %s\n", html_quote(t));
+!      xfree(t);
+!     }
+      storeAppendPrintf(e, "</TITLE>\n");
+      storeAppendPrintf(e, "<STYLE type=\"text/css\"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}--></STYLE>\n");
+      if (ftpState->flags.use_base)
+***************
+*** 392,418 ****
+      storeAppendPrintf(e, "FTP Directory: ");
+      /* "ftp://" == 6 characters */
+      assert(strLen(ftpState->title_url) >= 6);
+!     title = html_quote(strBuf(ftpState->title_url));
+      for (i = 6, j = 0; title[i]; j = i) {
+       storeAppendPrintf(e, "<A HREF=\"");
+       i += strcspn(&title[i], "/");
+       if (title[i] == '/')
+           i++;
+-      for (k = 0; k < i; k++)
+-          storeAppendPrintf(e, "%c", title[k]);
+-      storeAppendPrintf(e, "\">");
+-      for (k = j; k < i - 1; k++)
+-          storeAppendPrintf(e, "%c", title[k]);
+-      if (strBuf(ftpState->title_url)[k] != '/')
+-          storeAppendPrintf(e, "%c", title[k++]);
+-      storeAppendPrintf(e, "</A>");
+-      if (k < i)
+-          storeAppendPrintf(e, "%c", title[k++]);
+       if (i == j) {
+           /* Error guard, or "assert" */
+           storeAppendPrintf(e, "ERROR: Failed to parse URL: %s\n",
+!              html_quote(strBuf(ftpState->title_url)));
+!          debug(9, 0) ("Failed to parse URL: %s\n", strBuf(ftpState->title_url));
+           break;
+       }
+      }
+--- 396,424 ----
+      storeAppendPrintf(e, "FTP Directory: ");
+      /* "ftp://" == 6 characters */
+      assert(strLen(ftpState->title_url) >= 6);
+!     k = 6 + strcspn(&title[6], "/");
+      for (i = 6, j = 0; title[i]; j = i) {
+       storeAppendPrintf(e, "<A HREF=\"");
+       i += strcspn(&title[i], "/");
++      if (i > j) {
++          char *url = xstrdup(title);
++          url[i] = '\0';
++          storeAppendPrintf(e, "%s", html_quote(url + k));
++          storeAppendPrintf(e, "/");
++          storeAppendPrintf(e, "\">");
++          rfc1738_unescape(url + j);
++          storeAppendPrintf(e, "%s", html_quote(url + j));
++          safe_free(url);
++          storeAppendPrintf(e, "</A>");
++      }
++      storeAppendPrintf(e, "/");
+       if (title[i] == '/')
+           i++;
+       if (i == j) {
+           /* Error guard, or "assert" */
+           storeAppendPrintf(e, "ERROR: Failed to parse URL: %s\n",
+!              html_quote(title));
+!          debug(9, 0) ("Failed to parse URL: %s\n", title);
+           break;
+       }
+      }
+***************
+*** 1059,1070 ****
+       strCat(ftpState->title_url, xitoa(request->port));
+      }
+      strCat(ftpState->title_url, strBuf(request->urlpath));
+-     {
+-      char *t = xstrdup(strBuf(ftpState->title_url));
+-      rfc1738_unescape(t);
+-      stringReset(&ftpState->title_url, t);
+-      xfree(t);
+-     }
+  
+      stringReset(&ftpState->base_href, "ftp://");
+      if (strcmp(ftpState->user, "anonymous")) {
+--- 1065,1070 ----
diff --git a/squid-2.5.STABLE10-internal_date.patch b/squid-2.5.STABLE10-internal_date.patch
new file mode 100644 (file)
index 0000000..5ab2c06
--- /dev/null
@@ -0,0 +1,221 @@
+Index: squid/include/Array.h
+diff -c squid/include/Array.h:1.6 squid/include/Array.h:1.6.2.1
+*** squid/include/Array.h:1.6  Mon Oct  8 10:18:31 2001
+--- squid/include/Array.h      Thu Jun  9 01:51:46 2005
+***************
+*** 48,53 ****
+--- 48,54 ----
+  extern void arrayClean(Array * s);
+  extern void arrayDestroy(Array * s);
+  extern void arrayAppend(Array * s, void *obj);
++ extern void arrayInsert(Array * s, void *obj, int position);
+  extern void arrayPreAppend(Array * s, int app_count);
+  
+  
+Index: squid/lib/Array.c
+diff -c squid/lib/Array.c:1.7 squid/lib/Array.c:1.7.2.1
+*** squid/lib/Array.c:1.7      Wed Feb  7 11:56:50 2001
+--- squid/lib/Array.c  Thu Jun  9 01:51:46 2005
+***************
+*** 95,100 ****
+--- 95,113 ----
+      a->items[a->count++] = obj;
+  }
+  
++ void arrayInsert(Array *a, void *obj, int position)
++ {
++     assert(a);
++     if (a->count >= a->capacity)
++      arrayGrow(a, a->count + 1);
++     if (position > a->count)
++      position = a->count;
++     if (position < a->count)
++      memmove(&a->items[position + 1], &a->items[position], (a->count - position) * sizeof(void *));
++     a->items[position] = obj;
++     a->count++;
++ }
++ 
+  /* if you are going to append a known and large number of items, call this first */
+  void
+  arrayPreAppend(Array * a, int app_count)
+Index: squid/src/HttpHeader.c
+diff -c squid/src/HttpHeader.c:1.74.2.29 squid/src/HttpHeader.c:1.74.2.30
+*** squid/src/HttpHeader.c:1.74.2.29   Wed May 25 16:57:33 2005
+--- squid/src/HttpHeader.c     Thu Jun  9 01:51:46 2005
+***************
+*** 680,685 ****
+--- 680,705 ----
+      hdr->len += strLen(e->name) + 2 + strLen(e->value) + 2;
+  }
+  
++ /* inserts an entry at the given position; 
++  * does not call httpHeaderEntryClone() so one should not reuse "*e"
++  */
++ void
++ httpHeaderInsertEntry(HttpHeader * hdr, HttpHeaderEntry * e, int pos)
++ {
++     assert(hdr && e);
++     assert_eid(e->id);
++ 
++     debug(55, 7) ("%p adding entry: %d at %d\n",
++      hdr, e->id, hdr->entries.count);
++     if (CBIT_TEST(hdr->mask, e->id))
++      Headers[e->id].stat.repCount++;
++     else
++      CBIT_SET(hdr->mask, e->id);
++     arrayInsert(&hdr->entries, e, pos);
++     /* increment header length, allow for ": " and crlf */
++     hdr->len += strLen(e->name) + 2 + strLen(e->value) + 2;
++ }
++ 
+  /* return a list of entries with the same id separated by ',' and ws */
+  String
+  httpHeaderGetList(const HttpHeader * hdr, http_hdr_type id)
+***************
+*** 850,855 ****
+--- 870,884 ----
+  }
+  
+  void
++ httpHeaderInsertTime(HttpHeader * hdr, int pos, http_hdr_type id, time_t htime)
++ {
++     assert_eid(id);
++     assert(Headers[id].type == ftDate_1123); /* must be of an appropriate type */
++     assert(htime >= 0);
++     httpHeaderInsertEntry(hdr, httpHeaderEntryCreate(id, NULL, mkrfc1123(htime)), pos);
++ }
++ 
++ void
+  httpHeaderPutStr(HttpHeader * hdr, http_hdr_type id, const char *str)
+  {
+      assert_eid(id);
+Index: squid/src/cf.data.pre
+diff -c squid/src/cf.data.pre:1.245.2.94 squid/src/cf.data.pre:1.245.2.95
+*** squid/src/cf.data.pre:1.245.2.94   Tue May 10 17:08:40 2005
+--- squid/src/cf.data.pre      Thu Jun  9 01:51:46 2005
+***************
+*** 3241,3246 ****
+--- 3241,3260 ----
+       @DEFAULT_ICON_DIR@
+  DOC_END
+  
++ NAME: global_internal_static
++ TYPE: onoff
++ LOC: Config.onoff.global_internal_static
++ DEFAULT: on
++ DOC_START
++      This directive controls is Squid should intercept all requests for
++      /squid-internal-static/ no matter which host the URL is requesting
++      (default on setting), or if nothing special should be done for
++      such URLs (off setting). The purpose of this directive is to make
++      icons etc work better in complex cache hierarchies where it may
++      not always be possible for all corners in the cache mesh to reach
++      the server generating a directory listing.
++ DOC_END
++ 
+  NAME: short_icon_urls
+  TYPE: onoff
+  LOC: Config.icons.use_short_names
+Index: squid/src/client_side.c
+diff -c squid/src/client_side.c:1.561.2.76 squid/src/client_side.c:1.561.2.77
+*** squid/src/client_side.c:1.561.2.76 Wed Apr 20 15:46:06 2005
+--- squid/src/client_side.c    Thu Jun  9 01:51:47 2005
+***************
+*** 1404,1410 ****
+           (void) 0;
+       else if (http->entry->timestamp < 0)
+           (void) 0;
+!      else if (http->entry->timestamp < squid_curtime)
+           httpHeaderPutInt(hdr, HDR_AGE,
+               squid_curtime - http->entry->timestamp);
+      }
+--- 1404,1413 ----
+           (void) 0;
+       else if (http->entry->timestamp < 0)
+           (void) 0;
+!      if (EBIT_TEST(http->entry->flags, ENTRY_SPECIAL)) {
+!          httpHeaderDelById(hdr, HDR_DATE);
+!          httpHeaderInsertTime(hdr, 0, HDR_DATE, squid_curtime);
+!      } else if (http->entry->timestamp < squid_curtime)
+           httpHeaderPutInt(hdr, HDR_AGE,
+               squid_curtime - http->entry->timestamp);
+      }
+***************
+*** 2719,2729 ****
+       *t = '\0';
+  #endif
+  
+!     /* handle internal objects */
+!     if (internalCheck(url)) {
+       /* prepend our name & port */
+       http->uri = xstrdup(internalLocalUri(NULL, url));
+-      http->flags.internal = 1;
+       http->flags.accel = 1;
+      }
+      /* see if we running in Config2.Accel.on, if so got to convert it to URL */
+--- 2722,2731 ----
+       *t = '\0';
+  #endif
+  
+!     /* handle direct internal objects */
+!     if (!Config2.Accel.on && internalCheck(url)) {
+       /* prepend our name & port */
+       http->uri = xstrdup(internalLocalUri(NULL, url));
+       http->flags.accel = 1;
+      }
+      /* see if we running in Config2.Accel.on, if so got to convert it to URL */
+***************
+*** 3099,3105 ****
+                   if (internalHostnameIs(request->host) &&
+                       request->port == ntohs(Config.Sockaddr.http->s.sin_port)) {
+                       http->flags.internal = 1;
+!                  } else if (internalStaticCheck(strBuf(request->urlpath))) {
+                       xstrncpy(request->host, internalHostname(), SQUIDHOSTNAMELEN);
+                       request->port = ntohs(Config.Sockaddr.http->s.sin_port);
+                       http->flags.internal = 1;
+--- 3101,3107 ----
+                   if (internalHostnameIs(request->host) &&
+                       request->port == ntohs(Config.Sockaddr.http->s.sin_port)) {
+                       http->flags.internal = 1;
+!                  } else if (Config.onoff.global_internal_static && internalStaticCheck(strBuf(request->urlpath))) {
+                       xstrncpy(request->host, internalHostname(), SQUIDHOSTNAMELEN);
+                       request->port = ntohs(Config.Sockaddr.http->s.sin_port);
+                       http->flags.internal = 1;
+Index: squid/src/protos.h
+diff -c squid/src/protos.h:1.420.2.35 squid/src/protos.h:1.420.2.36
+*** squid/src/protos.h:1.420.2.35      Wed May 18 09:28:32 2005
+--- squid/src/protos.h Thu Jun  9 01:51:47 2005
+***************
+*** 424,429 ****
+--- 424,430 ----
+  extern void httpHeaderPutInt(HttpHeader * hdr, http_hdr_type type, int number);
+  extern void httpHeaderPutSize(HttpHeader * hdr, http_hdr_type type, squid_off_t number);
+  extern void httpHeaderPutTime(HttpHeader * hdr, http_hdr_type type, time_t htime);
++ extern void httpHeaderInsertTime(HttpHeader * hdr, int pos, http_hdr_type type, time_t htime);
+  extern void httpHeaderPutStr(HttpHeader * hdr, http_hdr_type type, const char *str);
+  extern void httpHeaderPutAuth(HttpHeader * hdr, const char *auth_scheme, const char *realm);
+  extern void httpHeaderPutCc(HttpHeader * hdr, const HttpHdrCc * cc);
+***************
+*** 453,458 ****
+--- 454,460 ----
+  extern HttpHeaderEntry *httpHeaderGetEntry(const HttpHeader * hdr, HttpHeaderPos * pos);
+  extern HttpHeaderEntry *httpHeaderFindEntry(const HttpHeader * hdr, http_hdr_type id);
+  extern void httpHeaderAddEntry(HttpHeader * hdr, HttpHeaderEntry * e);
++ extern void httpHeaderInsertEntry(HttpHeader * hdr, HttpHeaderEntry * e, int pos);
+  extern HttpHeaderEntry *httpHeaderEntryClone(const HttpHeaderEntry * e);
+  extern void httpHeaderEntryPackInto(const HttpHeaderEntry * e, Packer * p);
+  /* store report about current header usage and other stats */
+Index: squid/src/structs.h
+diff -c squid/src/structs.h:1.408.2.43 squid/src/structs.h:1.408.2.44
+*** squid/src/structs.h:1.408.2.43     Wed May  4 12:03:47 2005
+--- squid/src/structs.h        Thu Jun  9 01:51:47 2005
+***************
+*** 609,614 ****
+--- 609,615 ----
+       int relaxed_header_parser;
+       int accel_uses_host_header;
+       int accel_no_pmtu_disc;
++      int global_internal_static;
+      } onoff;
+      acl *aclList;
+      struct {
diff --git a/squid-2.5.STABLE10-ldap_auth-U.patch b/squid-2.5.STABLE10-ldap_auth-U.patch
new file mode 100644 (file)
index 0000000..d19c834
--- /dev/null
@@ -0,0 +1,37 @@
+Index: squid/helpers/basic_auth/LDAP/squid_ldap_auth.c
+diff -c squid/helpers/basic_auth/LDAP/squid_ldap_auth.c:1.21.2.21 squid/helpers/basic_auth/LDAP/squid_ldap_auth.c:1.21.2.22
+*** squid/helpers/basic_auth/LDAP/squid_ldap_auth.c:1.21.2.21  Fri Apr 22 14:29:29 2005
+--- squid/helpers/basic_auth/LDAP/squid_ldap_auth.c    Thu Sep  1 16:47:19 2005
+***************
+*** 672,685 ****
+      }
+  
+      if (debug)
+!      fprintf(stderr, "attempting to bind to user '%s'\n", dn);
+      if (!bind_ld && !bind_once)
+       bind_ld = persistent_ld;
+      if (!bind_ld)
+       bind_ld = open_ldap_connection(ldapServer, port);
+!     if (passwdattr && ldap_compare_s(bind_ld, dn, passwdattr, password) != LDAP_COMPARE_TRUE)
+!      ret = 1;
+!     else if (ldap_simple_bind_s(bind_ld, dn, password) != LDAP_SUCCESS)
+       ret = 1;
+      if (bind_ld != persistent_ld) {
+       ldap_unbind(bind_ld);
+--- 672,687 ----
+      }
+  
+      if (debug)
+!      fprintf(stderr, "attempting to authenticate user '%s'\n", dn);
+      if (!bind_ld && !bind_once)
+       bind_ld = persistent_ld;
+      if (!bind_ld)
+       bind_ld = open_ldap_connection(ldapServer, port);
+!     if (passwdattr) {
+!      if (ldap_compare_s(bind_ld, dn, passwdattr, password) != LDAP_COMPARE_TRUE) {
+!          ret = 1;
+!      }
+!     } else if (ldap_simple_bind_s(bind_ld, dn, password) != LDAP_SUCCESS)
+       ret = 1;
+      if (bind_ld != persistent_ld) {
+       ldap_unbind(bind_ld);
diff --git a/squid-2.5.STABLE10-mail_from.patch b/squid-2.5.STABLE10-mail_from.patch
new file mode 100644 (file)
index 0000000..a579c93
--- /dev/null
@@ -0,0 +1,63 @@
+Index: squid/src/cf.data.pre
+diff -c squid/src/cf.data.pre:1.245.2.96 squid/src/cf.data.pre:1.245.2.97
+*** squid/src/cf.data.pre:1.245.2.96   Sun Aug 14 10:28:07 2005
+--- squid/src/cf.data.pre      Sat Sep  3 03:14:43 2005
+***************
+*** 2444,2449 ****
+--- 2444,2461 ----
+  DOC_END
+  
+  
++ NAME: mail_from
++ TYPE: string
++ DEFAULT: none
++ LOC: Config.EmailFrom
++ DOC_START
++      From: email-address for mail sent when the cache dies.
++      The default is to use 'appname@unique_hostname'.
++      Default appname value is "squid", can be changed into 
++      src/globals.h before building squid.
++ DOC_END
++ 
++ 
+  NAME: mail_program
+  TYPE: eol
+  DEFAULT: mail
+Index: squid/src/structs.h
+diff -c squid/src/structs.h:1.408.2.47 squid/src/structs.h:1.408.2.48
+*** squid/src/structs.h:1.408.2.47     Thu Sep  1 16:22:23 2005
+--- squid/src/structs.h        Sat Sep  3 03:14:43 2005
+***************
+*** 480,485 ****
+--- 480,486 ----
+       int rotateNumber;
+      } Log;
+      char *adminEmail;
++     char *EmailFrom;
+      char *EmailProgram;
+      char *effectiveUser;
+      char *effectiveGroup;
+Index: squid/src/tools.c
+diff -c squid/src/tools.c:1.213.2.17 squid/src/tools.c:1.213.2.18
+*** squid/src/tools.c:1.213.2.17       Sun Aug 14 10:28:07 2005
+--- squid/src/tools.c  Sat Sep  3 03:14:43 2005
+***************
+*** 106,112 ****
+      if ((fp = fopen(filename, "w")) == NULL)
+       return;
+  #endif
+!     fprintf(fp, "From: %s\n", appname);
+      fprintf(fp, "To: %s\n", Config.adminEmail);
+      fprintf(fp, "Subject: %s\n", dead_msg());
+      fclose(fp);
+--- 106,115 ----
+      if ((fp = fopen(filename, "w")) == NULL)
+       return;
+  #endif
+!     if (Config.EmailFrom)
+!      fprintf(fp, "From: %s\n", Config.EmailFrom);
+!     else
+!      fprintf(fp, "From: %s@%s\n", appname, uniqueHostname());
+      fprintf(fp, "To: %s\n", Config.adminEmail);
+      fprintf(fp, "Subject: %s\n", dead_msg());
+      fclose(fp);
diff --git a/squid-2.5.STABLE10-mail_program.patch b/squid-2.5.STABLE10-mail_program.patch
new file mode 100644 (file)
index 0000000..392efd0
--- /dev/null
@@ -0,0 +1,61 @@
+Index: squid/src/cf.data.pre
+diff -c squid/src/cf.data.pre:1.245.2.95 squid/src/cf.data.pre:1.245.2.96
+*** squid/src/cf.data.pre:1.245.2.95   Thu Jun  9 01:51:46 2005
+--- squid/src/cf.data.pre      Sun Aug 14 10:28:07 2005
+***************
+*** 2444,2449 ****
+--- 2444,2462 ----
+  DOC_END
+  
+  
++ NAME: mail_program
++ TYPE: eol
++ DEFAULT: mail
++ LOC: Config.EmailProgram
++ DOC_START
++      Email program used to send mail if the cache dies.
++      The default is "mail". The specified program must complain
++      with the standard Unix mail syntax:
++      mail_program recipient < mailfile
++      Optional command line options can be specified.
++ DOC_END
++ 
++ 
+  NAME: cache_effective_user
+  TYPE: string
+  DEFAULT: nobody
+Index: squid/src/structs.h
+diff -c squid/src/structs.h:1.408.2.44 squid/src/structs.h:1.408.2.45
+*** squid/src/structs.h:1.408.2.44     Thu Jun  9 01:51:47 2005
+--- squid/src/structs.h        Sun Aug 14 10:28:07 2005
+***************
+*** 480,485 ****
+--- 480,486 ----
+       int rotateNumber;
+      } Log;
+      char *adminEmail;
++     char *EmailProgram;
+      char *effectiveUser;
+      char *effectiveGroup;
+      struct {
+Index: squid/src/tools.c
+diff -c squid/src/tools.c:1.213.2.16 squid/src/tools.c:1.213.2.17
+*** squid/src/tools.c:1.213.2.16       Mon Jun 13 16:26:22 2005
+--- squid/src/tools.c  Sun Aug 14 10:28:07 2005
+***************
+*** 110,116 ****
+      fprintf(fp, "To: %s\n", Config.adminEmail);
+      fprintf(fp, "Subject: %s\n", dead_msg());
+      fclose(fp);
+!     snprintf(command, 256, "mail %s < %s", Config.adminEmail, filename);
+      system(command);         /* XXX should avoid system(3) */
+      unlink(filename);
+  }
+--- 110,116 ----
+      fprintf(fp, "To: %s\n", Config.adminEmail);
+      fprintf(fp, "Subject: %s\n", dead_msg());
+      fclose(fp);
+!     snprintf(command, 256, "%s %s < %s", Config.EmailProgram, Config.adminEmail, filename);
+      system(command);         /* XXX should avoid system(3) */
+      unlink(filename);
+  }
diff --git a/squid-2.5.STABLE10-redirect_flags.patch b/squid-2.5.STABLE10-redirect_flags.patch
new file mode 100644 (file)
index 0000000..4fdfdf8
--- /dev/null
@@ -0,0 +1,24 @@
+Index: squid/src/client_side.c
+diff -c squid/src/client_side.c:1.561.2.78 squid/src/client_side.c:1.561.2.79
+*** squid/src/client_side.c:1.561.2.78 Mon Jun 13 16:32:33 2005
+--- squid/src/client_side.c    Mon Jun 13 16:41:35 2005
+***************
+*** 357,362 ****
+--- 357,363 ----
+       new_request->client_addr = old_request->client_addr;
+       new_request->my_addr = old_request->my_addr;
+       new_request->my_port = old_request->my_port;
++      new_request->flags = old_request->flags;
+       new_request->flags.redirected = 1;
+       if (old_request->auth_user_request) {
+           new_request->auth_user_request = old_request->auth_user_request;
+***************
+*** 369,375 ****
+           old_request->body_reader_data = NULL;
+       }
+       new_request->content_length = old_request->content_length;
+-      new_request->flags.proxy_keepalive = old_request->flags.proxy_keepalive;
+       requestUnlink(old_request);
+       http->request = requestLink(new_request);
+      }
+--- 370,375 ----
diff --git a/squid-2.5.STABLE10-snmp_getnext.patch b/squid-2.5.STABLE10-snmp_getnext.patch
new file mode 100644 (file)
index 0000000..eb30760
--- /dev/null
@@ -0,0 +1,25 @@
+Index: squid/src/snmp_core.c
+diff -c squid/src/snmp_core.c:1.51.2.5 squid/src/snmp_core.c:1.51.2.6
+*** squid/src/snmp_core.c:1.51.2.5     Wed May  4 12:03:47 2005
+--- squid/src/snmp_core.c      Sun Jun 19 15:01:21 2005
+***************
+*** 660,666 ****
+      if (Current[count] == mibTreeEntry->name[count]) {
+       count++;
+       while ((mibTreeEntry) && (count < CurrentLen) && (!mibTreeEntry->parsefunction)) {
+!          mibTreeEntry = snmpTreeEntry(Current[count], count, mibTreeEntry);
+           count++;
+       }
+       debug(49, 5) ("snmpTreeNext: Recursed down to requested object\n");
+--- 660,670 ----
+      if (Current[count] == mibTreeEntry->name[count]) {
+       count++;
+       while ((mibTreeEntry) && (count < CurrentLen) && (!mibTreeEntry->parsefunction)) {
+!          mib_tree_entry *nextmibTreeEntry = snmpTreeEntry(Current[count], count, mibTreeEntry);
+!          if (!nextmibTreeEntry)
+!              break;
+!          else
+!              mibTreeEntry = nextmibTreeEntry;
+           count++;
+       }
+       debug(49, 5) ("snmpTreeNext: Recursed down to requested object\n");
diff --git a/squid-2.5.STABLE10-spanish.patch b/squid-2.5.STABLE10-spanish.patch
new file mode 100644 (file)
index 0000000..a8e4e28
--- /dev/null
@@ -0,0 +1,470 @@
+Index: squid/errors/Spanish//ERR_CACHE_ACCESS_DENIED
+diff -c squid/errors/Spanish//ERR_CACHE_ACCESS_DENIED:1.3.2.3 squid/errors/Spanish//ERR_CACHE_ACCESS_DENIED:1.3.2.4
+*** squid/errors/Spanish//ERR_CACHE_ACCESS_DENIED:1.3.2.3      Wed Aug 28 15:08:14 2002
+--- squid/errors/Spanish//ERR_CACHE_ACCESS_DENIED      Mon Jun  6 15:35:43 2005
+***************
+*** 1,11 ****
+  <!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: Acceso Denegado al Cache</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>Acceso Denegado al Cache</H2>
+  <HR noshade size="1px">
+  <P>
+  Mientras se intentaba traer el URL:
+--- 1,11 ----
+  <!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: Acceso Denegado al Cach&eacute;</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>Acceso Denegado al Cach&eacute;</H2>
+  <HR noshade size="1px">
+  <P>
+  Mientras se intentaba traer el URL:
+***************
+*** 15,34 ****
+  <UL>
+  <LI>
+  <STRONG>
+! Acceso denegado al cache.
+  </STRONG>
+  </UL>
+  
+  <P>
+  Disculpe, Ud. no est&aacute; autorizado a acceder a:
+  <PRE>    %U</PRE>
+! desde este cache hasta que se haya autenticado.
+  
+  
+  <P>
+! Ud. necesita utilizar Netscape version 2.0 o superior, o Microsoft Internet
+! Explorer 3.0, o un navegador que cumpla con HTTP/1.1 para que funcione.
+! Por favor contacte al <A HREF="mailto:%w">administrador del cache</a> si 
+  tiene dificultad para autenticarse o <A HREF="http://%h/cgi-bin/chpasswd.cgi">
+  cambie</a> su password.
+  </P>
+--- 15,34 ----
+  <UL>
+  <LI>
+  <STRONG>
+! Acceso denegado al cach&eacute;.
+  </STRONG>
+  </UL>
+  
+  <P>
+  Disculpe, Ud. no est&aacute; autorizado a acceder a:
+  <PRE>    %U</PRE>
+! desde este cach&eacute; hasta que se haya autenticado.
+  
+  
+  <P>
+! Ud. necesita utilizar Netscape versi&oacute;n 2.0 o superior, o Microsoft
+! Internet Explorer 3.0, o un navegador que cumpla con HTTP/1.1 para que funcione.
+! Por favor contacte al <A HREF="mailto:%w">administrador del cach&eacute;</a> si 
+  tiene dificultad para autenticarse o <A HREF="http://%h/cgi-bin/chpasswd.cgi">
+  cambie</a> su password.
+  </P>
+Index: squid/errors/Spanish//ERR_CACHE_MGR_ACCESS_DENIED
+diff -c squid/errors/Spanish//ERR_CACHE_MGR_ACCESS_DENIED:1.2.4.3 squid/errors/Spanish//ERR_CACHE_MGR_ACCESS_DENIED:1.2.4.4
+*** squid/errors/Spanish//ERR_CACHE_MGR_ACCESS_DENIED:1.2.4.3  Wed Aug 28 15:08:14 2002
+--- squid/errors/Spanish//ERR_CACHE_MGR_ACCESS_DENIED  Mon Jun  6 15:35:43 2005
+***************
+*** 1,6 ****
+  <!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: Acceso Denegado al Cache Manager</TITLE>
+  <STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+  </HEAD>
+  <BODY>
+--- 1,6 ----
+  <!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: Acceso Denegado al Cach&eacute; Manager</TITLE>
+  <STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
+  </HEAD>
+  <BODY>
+***************
+*** 21,33 ****
+  
+  <P>Disculpe, Ud. no est&aacute; autorizado a acceder a:
+  <PRE>    %U</PRE>
+! desde este cache hasta que se haya autenticado.
+  
+  <P>
+! Ud. necesita utilizar Netscape version 2.0 o superior, o Microsoft Internet
+! Explorer 3.0, o un navegador que cumpla con HTTP/1.1 para que funcione.
+! Por favor contacte al <A HREF="mailto:%w">administrador del cache</a> si
+  tiene dificultad para autenticarse, o si Ud. <em>es</em> el administrador,
+  lea la documentaci&oacute;n de Squid sobre interfaz del cache manager y 
+! chequee en el log de cache mensajes de error m&aacute;s detallados.
+  </P>
+--- 21,33 ----
+  
+  <P>Disculpe, Ud. no est&aacute; autorizado a acceder a:
+  <PRE>    %U</PRE>
+! desde este cach&eacute; hasta que se haya autenticado.
+  
+  <P>
+! Ud. necesita utilizar Netscape versi&oacute;n 2.0 o superior, o Microsoft
+! Internet Explorer 3.0, o un navegador que cumpla con HTTP/1.1 para que funcione.
+! Por favor contacte al <A HREF="mailto:%w">administrador del cach&eacute;</a> si
+  tiene dificultad para autenticarse, o si Ud. <em>es</em> el administrador,
+  lea la documentaci&oacute;n de Squid sobre interfaz del cache manager y 
+! chequee en el log de cach&eacute; mensajes de error m&aacute;s detallados.
+  </P>
+Index: squid/errors/Spanish//ERR_CANNOT_FORWARD
+diff -c squid/errors/Spanish//ERR_CANNOT_FORWARD:1.3.4.3 squid/errors/Spanish//ERR_CANNOT_FORWARD:1.3.4.4
+*** squid/errors/Spanish//ERR_CANNOT_FORWARD:1.3.4.3   Wed Aug 28 15:08:14 2002
+--- squid/errors/Spanish//ERR_CANNOT_FORWARD   Mon Jun  6 15:35:43 2005
+***************
+*** 19,31 ****
+  </UL>
+  
+  <P>
+! La petici&oacute;n no ha podido ser enviada al servidor origen o a alguna
+! de las cach&eacute;s padres. Las razones m&aacute;s probables de que haya 
+  ocurrido este error son:
+  <UL>
+! <LI>El administrador de la cach&eacute; no permite que esta
+      cach&eacute; realice conexiones directas a los servidores
+      origen, y
+! <LI>Todas las cach&eacute;s configuradas como padres son inalcanzables
+      en este momento.
+  </UL>
+--- 19,31 ----
+  </UL>
+  
+  <P>
+! La petici&oacute;n no ha podido ser enviada al servidor origen o a alguno
+! de los cach&eacute;s padres. Las razones m&aacute;s probables de que haya 
+  ocurrido este error son:
+  <UL>
+! <LI>El administrador de lo cach&eacute; no permite que este
+      cach&eacute; realice conexiones directas a los servidores
+      origen, y
+! <LI>Todos los cach&eacute;s configurados como padres son inalcanzables
+      en este momento.
+  </UL>
+Index: squid/errors/Spanish//ERR_DNS_FAIL
+diff -c squid/errors/Spanish//ERR_DNS_FAIL:1.3.4.3 squid/errors/Spanish//ERR_DNS_FAIL:1.3.4.4
+*** squid/errors/Spanish//ERR_DNS_FAIL:1.3.4.3 Wed Aug 28 15:08:14 2002
+--- squid/errors/Spanish//ERR_DNS_FAIL Mon Jun  6 15:35:43 2005
+***************
+*** 12,18 ****
+  Ha ocurrido el siguiente problema:
+  <BLOCKQUOTE>
+  Incapaz de determinar la direcci&oacute;n IP a partir
+! del nombre de la mĆ”quina:
+  <I>%H</I>
+  </BLOCKQUOTE>
+  
+--- 12,18 ----
+  Ha ocurrido el siguiente problema:
+  <BLOCKQUOTE>
+  Incapaz de determinar la direcci&oacute;n IP a partir
+! del nombre de la m&aacute;quina:
+  <I>%H</I>
+  </BLOCKQUOTE>
+  
+***************
+*** 25,31 ****
+  <P>
+  Esto significa que:
+  <PRE>
+!  La cach&eacute; no ha sido capaz de resolver el nombre de m&aacute;quina
+   presente en la URL.
+   Compruebe que la direcci&oacute;n sea correcta.
+  </PRE>
+--- 25,31 ----
+  <P>
+  Esto significa que:
+  <PRE>
+!  El cach&eacute; no ha sido capaz de resolver el nombre de m&aacute;quina
+   presente en la URL.
+   Compruebe que la direcci&oacute;n sea correcta.
+  </PRE>
+Index: squid/errors/Spanish//ERR_FORWARDING_DENIED
+diff -c squid/errors/Spanish//ERR_FORWARDING_DENIED:1.3.4.3 squid/errors/Spanish//ERR_FORWARDING_DENIED:1.3.4.4
+*** squid/errors/Spanish//ERR_FORWARDING_DENIED:1.3.4.3        Wed Aug 28 15:08:14 2002
+--- squid/errors/Spanish//ERR_FORWARDING_DENIED        Mon Jun  6 15:35:43 2005
+***************
+*** 19,25 ****
+  </UL>
+  
+  <P>
+! Esta cach&eacute; no permite reenviar su petici&oacute;n porque trata de
+  obligar a mantener una relaci&oacute;n de hermandad.
+! Quiz&aacute;s el cliente en %i es una cach&eacute; que ha sido mal configurada.
+  </P>
+--- 19,25 ----
+  </UL>
+  
+  <P>
+! Este cach&eacute; no permite reenviar su petici&oacute;n porque trata de
+  obligar a mantener una relaci&oacute;n de hermandad.
+! Quiz&aacute;s el cliente en %i es un cach&eacute; que ha sido mal configurado.
+  </P>
+Index: squid/errors/Spanish//ERR_FTP_DISABLED
+diff -c squid/errors/Spanish//ERR_FTP_DISABLED:1.3.4.3 squid/errors/Spanish//ERR_FTP_DISABLED:1.3.4.4
+*** squid/errors/Spanish//ERR_FTP_DISABLED:1.3.4.3     Wed Aug 28 15:08:14 2002
+--- squid/errors/Spanish//ERR_FTP_DISABLED     Mon Jun  6 15:35:43 2005
+***************
+*** 19,23 ****
+  </UL>
+  
+  <P>
+! Esta cach&eacute; no proporciona servicio cach&eacute; para el protocolo FTP.
+  </P>
+--- 19,23 ----
+  </UL>
+  
+  <P>
+! Este cach&eacute; no proporciona servicio cach&eacute; para el protocolo FTP.
+  </P>
+Index: squid/errors/Spanish//ERR_FTP_NOT_FOUND
+diff -c squid/errors/Spanish//ERR_FTP_NOT_FOUND:1.3.4.3 squid/errors/Spanish//ERR_FTP_NOT_FOUND:1.3.4.4
+*** squid/errors/Spanish//ERR_FTP_NOT_FOUND:1.3.4.3    Wed Aug 28 15:08:14 2002
+--- squid/errors/Spanish//ERR_FTP_NOT_FOUND    Mon Jun  6 15:35:43 2005
+***************
+*** 17,23 ****
+  <blockquote><pre><strong>%g</strong></pre></blockquote>
+  <P>
+  Esto puede ser causado por un URL FTP con un camino absoluto (y por
+! lo tanto no cumple con RFC 1738). Si este es la causa, entonces el 
+  archivo puede ser obtenido en <A HREF="%B">%B</A>.
+  </P>
+  
+--- 17,23 ----
+  <blockquote><pre><strong>%g</strong></pre></blockquote>
+  <P>
+  Esto puede ser causado por un URL FTP con un camino absoluto (y por
+! lo tanto no cumple con RFC 1738). Si esta es la causa, entonces el 
+  archivo puede ser obtenido en <A HREF="%B">%B</A>.
+  </P>
+  
+Index: squid/errors/Spanish//ERR_INVALID_REQ
+diff -c squid/errors/Spanish//ERR_INVALID_REQ:1.3.4.3 squid/errors/Spanish//ERR_INVALID_REQ:1.3.4.4
+*** squid/errors/Spanish//ERR_INVALID_REQ:1.3.4.3      Wed Aug 28 15:08:14 2002
+--- squid/errors/Spanish//ERR_INVALID_REQ      Mon Jun  6 15:35:43 2005
+***************
+*** 7,13 ****
+  <H2>El URL solicitado no se ha podido conseguir</H2>
+  <HR noshade size="1px">
+  <P>
+! Mientras se intentaba procesar la peticiĆ³n:
+  <PRE>
+  %R
+  </PRE>
+--- 7,13 ----
+  <H2>El URL solicitado no se ha podido conseguir</H2>
+  <HR noshade size="1px">
+  <P>
+! Mientras se intentaba procesar la petici&oacute;n:
+  <PRE>
+  %R
+  </PRE>
+Index: squid/errors/Spanish//ERR_INVALID_RESP
+diff -c squid/errors/Spanish//ERR_INVALID_RESP:1.1.2.1 squid/errors/Spanish//ERR_INVALID_RESP:1.1.2.2
+*** squid/errors/Spanish//ERR_INVALID_RESP:1.1.2.1     Mon Jan 17 15:13:04 2005
+--- squid/errors/Spanish//ERR_INVALID_RESP     Mon Jun  6 15:35:43 2005
+***************
+*** 1,29 ****
+  <!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 process the request:
+  <PRE>
+  %R
+  </PRE>
+  <P>
+! The following error was encountered:
+  <UL>
+  <LI>
+  <STRONG>
+! Invalid Response
+  </STRONG>
+  </UL>
+  
+  <P>
+! The HTTP Response message received from the contacted server
+! could not be understood or was otherwise malformed. Please contact
+! the site operator. Your cache administrator may be able to provide
+! you with more details about the exact nature of the problem if needed.
+! 
+! <P>Your cache administrator is <A HREF="mailto:%w">%w</A>. 
+--- 1,30 ----
+  <!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: El URL solicitado no se ha podido conseguir</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>El URL solicitado no se ha podido conseguir</H2>
+  <HR noshade size="1px">
+  <P>
+! Mientras se intentaba procesar la petici&oacute;n:
+  <PRE>
+  %R
+  </PRE>
+  <P>
+! Ha ocurrido el siguiente problema:
+  <UL>
+  <LI>
+  <STRONG>
+! Respuesta no v&aacute;lida.
+  </STRONG>
+  </UL>
+  
+  <P>
+! El mensaje de Respuesta HTTP recibido del servidor contactado 
+! no pudo ser entendido o ten&iacute;a alguna malformaci&oacute;n.
+! Por favor contacte al operador del sitio web. Quizas su
+! administrador del cach&eacute; pueda darle a Ud. m&aacute;s 
+! detalles acerca de la naturaleza exacta del problema en caso 
+! de ser necesario.
+! <P>Su administrador del cach&eacute; es <A HREF="mailto:%w">%w</A>. 
+Index: squid/errors/Spanish//ERR_INVALID_URL
+diff -c squid/errors/Spanish//ERR_INVALID_URL:1.3.4.3 squid/errors/Spanish//ERR_INVALID_URL:1.3.4.4
+*** squid/errors/Spanish//ERR_INVALID_URL:1.3.4.3      Wed Aug 28 15:08:14 2002
+--- squid/errors/Spanish//ERR_INVALID_URL      Mon Jun  6 15:35:43 2005
+***************
+*** 14,20 ****
+  <UL>
+  <LI>
+  <STRONG>
+! URL incorrecta.
+  </STRONG>
+  </UL>
+  
+--- 14,20 ----
+  <UL>
+  <LI>
+  <STRONG>
+! URL incorrecto.
+  </STRONG>
+  </UL>
+  
+Index: squid/errors/Spanish//ERR_NO_RELAY
+diff -c squid/errors/Spanish//ERR_NO_RELAY:1.3.4.3 squid/errors/Spanish//ERR_NO_RELAY:1.3.4.4
+*** squid/errors/Spanish//ERR_NO_RELAY:1.3.4.3 Wed Aug 28 15:08:14 2002
+--- squid/errors/Spanish//ERR_NO_RELAY Mon Jun  6 15:35:43 2005
+***************
+*** 19,23 ****
+  </UL>
+  
+  <P>
+! Esta cach&eacute; no tiene definido ninguna pasarela para el protocolo WAIS !!
+! &iexcl;Gr&iacute;teselo al administrador de la cach&eacute; !
+--- 19,24 ----
+  </UL>
+  
+  <P>
+! Este cach&eacute; no tiene definido ninguna pasarela para el protocolo WAIS !!
+! &iexcl;Gr&iacute;tele al administrador del cach&eacute; !
+! <P> Su administrador del cach&eacute; es <A HREF="mailto:%w>%w</A>.
+Index: squid/errors/Spanish//ERR_ONLY_IF_CACHED_MISS
+diff -c squid/errors/Spanish//ERR_ONLY_IF_CACHED_MISS:1.2.4.3 squid/errors/Spanish//ERR_ONLY_IF_CACHED_MISS:1.2.4.4
+*** squid/errors/Spanish//ERR_ONLY_IF_CACHED_MISS:1.2.4.3      Wed Aug 28 15:08:14 2002
+--- squid/errors/Spanish//ERR_ONLY_IF_CACHED_MISS      Mon Jun  6 15:35:43 2005
+***************
+*** 14,28 ****
+  <UL>
+  <LI>
+  <STRONG>
+! No se encontro un documento v&aacute;lido en la cach&eacute; y se 
+  especific&oacute; la directiva <code>only-if-cached</code>.
+  </STRONG>
+  </UL>
+  
+  <P>
+  
+! Ud. ha enviado una solicitud con la directiva de control de la cach&eacute;
+! <code>only-if-cached</code>. El documento no fue encontrado en la cach&eacute;,
+  <em>o</em> requiere revalidaci&oacute;n prohibida por la directiva
+  <code>only-if-cached</code>.
+  
+--- 14,28 ----
+  <UL>
+  <LI>
+  <STRONG>
+! No se encontr&oacute; un documento v&aacute;lido en el cach&eacute; y se 
+  especific&oacute; la directiva <code>only-if-cached</code>.
+  </STRONG>
+  </UL>
+  
+  <P>
+  
+! Ud. ha enviado una solicitud con la directiva de control del cach&eacute;
+! <code>only-if-cached</code>. El documento no fue encontrado en el cach&eacute;,
+  <em>o</em> requiere revalidaci&oacute;n prohibida por la directiva
+  <code>only-if-cached</code>.
+  
+Index: squid/errors/Spanish//ERR_SHUTTING_DOWN
+diff -c squid/errors/Spanish//ERR_SHUTTING_DOWN:1.2.4.3 squid/errors/Spanish//ERR_SHUTTING_DOWN:1.2.4.4
+*** squid/errors/Spanish//ERR_SHUTTING_DOWN:1.2.4.3    Wed Aug 28 15:08:14 2002
+--- squid/errors/Spanish//ERR_SHUTTING_DOWN    Mon Jun  6 15:35:43 2005
+***************
+*** 13,19 ****
+  Ha ocurrido el siguiente problema:
+  <UL>
+  
+! Esta cach&eacute; esta siendo desactivado y no puede atender su
+  solicitud en este momento. Por favor reintente su solicitud
+  nuevamente m&aacute;s tarde.
+  
+--- 13,19 ----
+  Ha ocurrido el siguiente problema:
+  <UL>
+  
+! Este cach&eacute; esta siendo desactivado y no puede atender su
+  solicitud en este momento. Por favor reintente su solicitud
+  nuevamente m&aacute;s tarde.
+  
+Index: squid/errors/Spanish//ERR_TOO_BIG
+diff -c squid/errors/Spanish//ERR_TOO_BIG:1.1.6.4 squid/errors/Spanish//ERR_TOO_BIG:1.1.6.5
+*** squid/errors/Spanish//ERR_TOO_BIG:1.1.6.4  Mon Jul  7 01:49:55 2003
+--- squid/errors/Spanish//ERR_TOO_BIG  Mon Jun  6 15:35:43 2005
+***************
+*** 24,27 ****
+  directamente si cree que esto es un error.
+  </UL>
+  <P>
+! Su administrdor del cach&eacute; es <A HREF="mailto:%w">%w</A>.
+--- 24,27 ----
+  directamente si cree que esto es un error.
+  </UL>
+  <P>
+! Su administrador del cach&eacute; es <A HREF="mailto:%w">%w</A>.
+Index: squid/errors/Spanish//ERR_UNSUP_REQ
+diff -c squid/errors/Spanish//ERR_UNSUP_REQ:1.3.4.3 squid/errors/Spanish//ERR_UNSUP_REQ:1.3.4.4
+*** squid/errors/Spanish//ERR_UNSUP_REQ:1.3.4.3        Wed Aug 28 15:08:14 2002
+--- squid/errors/Spanish//ERR_UNSUP_REQ        Mon Jun  6 15:35:43 2005
+***************
+*** 14,20 ****
+  <UL>
+  <LI>
+  <STRONG>
+! M&eacute;todo de la petici&oacute;n y protocolo no soportados
+  </STRONG>
+  </UL>
+  
+--- 14,20 ----
+  <UL>
+  <LI>
+  <STRONG>
+! M&eacute;todo de la petici&oacute;n y protocolo no soportados.
+  </STRONG>
+  </UL>
+  
diff --git a/squid-2.5.STABLE10-sslConnectTimeout.patch b/squid-2.5.STABLE10-sslConnectTimeout.patch
new file mode 100644 (file)
index 0000000..b876421
--- /dev/null
@@ -0,0 +1,15 @@
+Index: squid/src/ssl.c
+diff -c squid/src/ssl.c:1.118.2.11 squid/src/ssl.c:1.118.2.12
+*** squid/src/ssl.c:1.118.2.11 Sun Apr 17 18:54:30 2005
+--- squid/src/ssl.c    Thu Sep  1 14:24:27 2005
+***************
+*** 106,111 ****
+--- 106,113 ----
+      sslState->client.fd = -1;
+      if (sslState->server.fd == -1)
+       sslStateFree(sslState);
++     else if (!sslState->connected)
++      comm_close(sslState->server.fd);
+  }
+  
+  static void
diff --git a/squid-2.5.STABLE10-statHistAssert.patch b/squid-2.5.STABLE10-statHistAssert.patch
new file mode 100644 (file)
index 0000000..cfc4ce6
--- /dev/null
@@ -0,0 +1,21 @@
+Index: squid/src/StatHist.c
+diff -c squid/src/StatHist.c:1.26 squid/src/StatHist.c:1.26.2.1
+*** squid/src/StatHist.c:1.26  Wed Oct 24 02:19:08 2001
+--- squid/src/StatHist.c       Thu Sep  1 15:52:23 2005
+***************
+*** 90,96 ****
+      /* a max value should go into the last bin */
+      assert(statHistBin(H, max) == H->capacity - 1);
+      /* it is hard to test val_out, here is a crude test */
+!     assert(((int) floor(0.99L + statHistVal(H, 0) - min)) == 0);
+  }
+  
+  void
+--- 90,96 ----
+      /* a max value should go into the last bin */
+      assert(statHistBin(H, max) == H->capacity - 1);
+      /* it is hard to test val_out, here is a crude test */
+!     assert(((int) floor(0.99 + statHistVal(H, 0) - min)) == 0);
+  }
+  
+  void
diff --git a/squid-2.5.STABLE10-transparent-2.patch b/squid-2.5.STABLE10-transparent-2.patch
new file mode 100644 (file)
index 0000000..3a5fd10
--- /dev/null
@@ -0,0 +1,115 @@
+Index: squid/src/client_side.c
+diff -c squid/src/client_side.c:1.561.2.77 squid/src/client_side.c:1.561.2.80
+*** squid/src/client_side.c:1.561.2.77 Thu Jun  9 01:51:47 2005
+--- squid/src/client_side.c    Thu Jun 30 02:38:00 2005
+@@ -2733,6 +2733,7 @@
+       int vport;
+       if (vhost_mode) {
+ #if IPF_TRANSPARENT
++          static time_t last_reported = 0;
+           natLookup.nl_inport = http->conn->me.sin_port;
+           natLookup.nl_outport = http->conn->peer.sin_port;
+           natLookup.nl_inip = http->conn->me.sin_addr;
+@@ -2751,12 +2752,10 @@
+               errno = save_errno;
+           }
+           if (natfd < 0) {
+-              debug(50, 1) ("parseHttpRequest: NAT open failed: %s\n",
+-                  xstrerror());
+-              dlinkDelete(&http->active, &ClientActiveRequests);
+-              xfree(http->uri);
+-              cbdataFree(http);
+-              xfree(inbuf);
++              if (squid_curtime - last_reported > 60) {
++                  debug(50, 1) ("parseHttpRequest: NAT open failed: %s\n", xstrerror());
++                  last_reported = squid_curtime;
++              }
+           } else {
+               /*
+                * IP-Filter changed the type for SIOCGNATL between
+@@ -2773,48 +2772,59 @@
+               }
+               if (x < 0) {
+                   if (errno != ESRCH) {
+-                      debug(50, 1) ("parseHttpRequest: NAT lookup failed: ioctl(SIOCGNATL)\n");
++                      if (squid_curtime - last_reported > 60) {
++                          debug(50, 1) ("parseHttpRequest: NAT lookup failed: ioctl(SIOCGNATL): %s\n", xstrerror());
++                          last_reported = squid_curtime;
++                      }
+                       close(natfd);
+                       natfd = -1;
+-                      dlinkDelete(&http->active, &ClientActiveRequests);
+-                      xfree(http->uri);
+-                      cbdataFree(http);
+-                      xfree(inbuf);
+                   }
+               } else {
+                   conn->me.sin_port = natLookup.nl_realport;
+-                  http->conn->me.sin_addr = natLookup.nl_realip;
++                  conn->me.sin_addr = natLookup.nl_realip;
+               }
+           }
+ #elif PF_TRANSPARENT
++          static time_t last_reported = 0;
+           if (pffd < 0)
+               pffd = open("/dev/pf", O_RDWR);
+           if (pffd < 0) {
+-              debug(50, 1) ("parseHttpRequest: PF open failed: %s\n",
+-                  xstrerror());
+-              return parseHttpRequestAbort(conn, "error:pf-open-failed");
+-          }
+-          memset(&nl, 0, sizeof(struct pfioc_natlook));
+-          nl.saddr.v4.s_addr = http->conn->peer.sin_addr.s_addr;
+-          nl.sport = http->conn->peer.sin_port;
+-          nl.daddr.v4.s_addr = http->conn->me.sin_addr.s_addr;
+-          nl.dport = http->conn->me.sin_port;
+-          nl.af = AF_INET;
+-          nl.proto = IPPROTO_TCP;
+-          nl.direction = PF_OUT;
+-          if (ioctl(pffd, DIOCNATLOOK, &nl)) {
+-              if (errno != ENOENT) {
+-                  debug(50, 1) ("parseHttpRequest: PF lookup failed: ioctl(DIOCNATLOOK)\n");
+-                  close(pffd);
+-                  pffd = -1;
++              if (squid_curtime - last_reported > 60) {
++                  debug(50, 1) ("parseHttpRequest: PF open failed: %s\n", xstrerror());
++                  last_reported = squid_curtime;
+               }
+           } else {
+-              conn->me.sin_port = nl.rdport;
+-              http->conn->me.sin_addr = nl.rdaddr.v4;
++              memset(&nl, 0, sizeof(struct pfioc_natlook));
++              nl.saddr.v4.s_addr = http->conn->peer.sin_addr.s_addr;
++              nl.sport = http->conn->peer.sin_port;
++              nl.daddr.v4.s_addr = http->conn->me.sin_addr.s_addr;
++              nl.dport = http->conn->me.sin_port;
++              nl.af = AF_INET;
++              nl.proto = IPPROTO_TCP;
++              nl.direction = PF_OUT;
++              if (ioctl(pffd, DIOCNATLOOK, &nl)) {
++                  if (errno != ENOENT) {
++                      if (squid_curtime - last_reported > 60) {
++                          debug(50, 1) ("parseHttpRequest: PF lookup failed: ioctl(DIOCNATLOOK): %s\n", xstrerror());
++                          last_reported = squid_curtime;
++                      }
++                      close(pffd);
++                      pffd = -1;
++                  }
++              } else {
++                  conn->me.sin_port = nl.rdport;
++                  conn->me.sin_addr = nl.rdaddr.v4;
++              }
+           }
+ #elif LINUX_NETFILTER
++          static time_t last_reported = 0;
+           /* If the call fails the address structure will be unchanged */
+-          getsockopt(conn->fd, SOL_IP, SO_ORIGINAL_DST, &conn->me, &sock_sz);
++          if (getsockopt(conn->fd, SOL_IP, SO_ORIGINAL_DST, &conn->me, &sock_sz) != 0) {
++              if (squid_curtime - last_reported > 60) {
++                  debug(50, 1) ("parseHttpRequest: NF getsockopt(SO_ORIGINAL_DST) failed: %s\n", xstrerror());
++                  last_reported = squid_curtime;
++              }
++          }
+ #endif
+       }
+       if (vport_mode)
diff --git a/squid-2.5.STABLE10-wb_ntlm_auth_silent.patch b/squid-2.5.STABLE10-wb_ntlm_auth_silent.patch
new file mode 100644 (file)
index 0000000..da1e4d2
--- /dev/null
@@ -0,0 +1,66 @@
+Index: squid/helpers/ntlm_auth/winbind/wb_ntlm_auth.c
+diff -c squid/helpers/ntlm_auth/winbind/wb_ntlm_auth.c:1.1.2.9 squid/helpers/ntlm_auth/winbind/wb_ntlm_auth.c:1.1.2.10
+*** squid/helpers/ntlm_auth/winbind/wb_ntlm_auth.c:1.1.2.9     Thu Jun 30 12:50:56 2005
+--- squid/helpers/ntlm_auth/winbind/wb_ntlm_auth.c     Sat Jul  9 02:42:49 2005
+***************
+*** 117,138 ****
+      if (have_urandom == DONTKNOW) {
+       int result = 0;
+       struct stat st;
+       result = stat(ENTROPY_SOURCE, &st);
+       if (result != 0 || !(S_ISCHR(st.st_mode) || S_ISBLK(st.st_mode))) {
+           debug("Entropy source " ENTROPY_SOURCE " is unavailable\n");
+           have_urandom = NO;
+!      }
+!      if ((urandom_file = fopen(ENTROPY_SOURCE, "r")) == NULL) {
+!          unsigned int seed;
+!          struct timeval t;
+           warn("Can't open entropy source " ENTROPY_SOURCE "\n");
+           have_urandom = NO;
+!          gettimeofday(&t, NULL);
+!          seed = squid_random() * getpid() * t.tv_sec * t.tv_usec;
+!          squid_srandom(seed);
+!      } else {
+           have_urandom = YES;
+-      }
+      }
+  }
+  
+--- 117,136 ----
+      if (have_urandom == DONTKNOW) {
+       int result = 0;
+       struct stat st;
++      unsigned int seed;
++      struct timeval t;
++      gettimeofday(&t, NULL);
++      seed = squid_random() * getpid() * t.tv_sec * t.tv_usec;
++      squid_srandom(seed);
+       result = stat(ENTROPY_SOURCE, &st);
+       if (result != 0 || !(S_ISCHR(st.st_mode) || S_ISBLK(st.st_mode))) {
+           debug("Entropy source " ENTROPY_SOURCE " is unavailable\n");
+           have_urandom = NO;
+!      } else if ((urandom_file = fopen(ENTROPY_SOURCE, "r")) == NULL) {
+           warn("Can't open entropy source " ENTROPY_SOURCE "\n");
+           have_urandom = NO;
+!      } else
+           have_urandom = YES;
+      }
+  }
+  
+***************
+*** 349,355 ****
+      domain = strdup(response.data.domain_name);
+      uc(domain);
+  
+!     warn("target domain is %s\n", domain);
+      return domain;
+  }
+  
+--- 347,353 ----
+      domain = strdup(response.data.domain_name);
+      uc(domain);
+  
+!     debug("target domain is %s\n", domain);
+      return domain;
+  }
+  
diff --git a/squid-2.5.STABLE10-wbinfo_groups.patch b/squid-2.5.STABLE10-wbinfo_groups.patch
new file mode 100644 (file)
index 0000000..38f16b5
--- /dev/null
@@ -0,0 +1,39 @@
+Index: squid/helpers/external_acl/wbinfo_group/wbinfo_group.pl
+diff -c squid/helpers/external_acl/wbinfo_group/wbinfo_group.pl:1.1.2.2 squid/helpers/external_acl/wbinfo_group/wbinfo_group.pl:1.1.2.3
+*** squid/helpers/external_acl/wbinfo_group/wbinfo_group.pl:1.1.2.2    Tue Feb 17 15:37:51 2004
+--- squid/helpers/external_acl/wbinfo_group/wbinfo_group.pl    Wed Jun 29 14:34:14 2005
+***************
+*** 15,20 ****
+--- 15,23 ----
+  #   2002-07-05 Jerry Murdock <jmurdock@itraktech.com>
+  #            Initial release
+  #
++ #   2005-06-28 Arno Streuli <astreuli@gmail.com>
++ #               Add multi group check
++ 
+  
+  # external_acl uses shell style lines in it's protocol
+  require 'shellwords.pl';
+***************
+*** 47,54 ****
+  while (<STDIN>) {
+          chop;
+       &debug ("Got $_ from squid");
+!         ($user, $group) = &shellwords;
+!      $ans = &check($user, $group);
+       &debug ("Sending $ans to squid");
+       print "$ans\n";
+  }
+--- 50,61 ----
+  while (<STDIN>) {
+          chop;
+       &debug ("Got $_ from squid");
+!      ($user, @groups) = &shellwords;
+!      # test for each group squid send in it's request
+!      foreach $group (@groups) {
+!              $ans = &check($user, $group);
+!              last if $ans eq "OK";
+!      }
+       &debug ("Sending $ans to squid");
+       print "$ans\n";
+  }
This page took 0.230426 seconds and 4 git commands to generate.