summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStuart Herbert <stuart@gentoo.org>2004-08-15 19:01:22 +0000
committerStuart Herbert <stuart@gentoo.org>2004-08-15 19:01:22 +0000
commite254db404d92fabb02d69264392dfdfa7f5a171a (patch)
tree8e4777a0361447d01522ce4f5debff239126389f /www-proxy/squid/files
parentMoved from net-www/oops to www-proxy/oops (diff)
downloadhistorical-e254db404d92fabb02d69264392dfdfa7f5a171a.tar.gz
historical-e254db404d92fabb02d69264392dfdfa7f5a171a.tar.bz2
historical-e254db404d92fabb02d69264392dfdfa7f5a171a.zip
Moved from net-www/squid to www-proxy/squid.
Diffstat (limited to 'www-proxy/squid/files')
-rw-r--r--www-proxy/squid/files/digest-squid-2.4.71
-rw-r--r--www-proxy/squid/files/digest-squid-2.5.5-r21
-rw-r--r--www-proxy/squid/files/digest-squid-2.5.61
-rw-r--r--www-proxy/squid/files/squid-2.4.7-debian.diff413
-rw-r--r--www-proxy/squid/files/squid-2.4.7-gentoo.diff40
-rw-r--r--www-proxy/squid/files/squid-2.5.3-gentoo.diff336
-rw-r--r--www-proxy/squid/files/squid-2.5.5-ntml-auth-fix.patch72
-rw-r--r--www-proxy/squid/files/squid-2.5.6-ufs-no-valid-dir.patch14
-rw-r--r--www-proxy/squid/files/squid-r1.cron4
-rw-r--r--www-proxy/squid/files/squid.confd11
-rw-r--r--www-proxy/squid/files/squid.cron2
-rw-r--r--www-proxy/squid/files/squid.pam8
-rw-r--r--www-proxy/squid/files/squid.rc689
13 files changed, 992 insertions, 0 deletions
diff --git a/www-proxy/squid/files/digest-squid-2.4.7 b/www-proxy/squid/files/digest-squid-2.4.7
new file mode 100644
index 000000000000..863642c1c25f
--- /dev/null
+++ b/www-proxy/squid/files/digest-squid-2.4.7
@@ -0,0 +1 @@
+MD5 3b91136b8ddcc37196716fa6e85a14b2 squid-2.4.STABLE7-src.tar.gz 1087532
diff --git a/www-proxy/squid/files/digest-squid-2.5.5-r2 b/www-proxy/squid/files/digest-squid-2.5.5-r2
new file mode 100644
index 000000000000..14cc1f4b2777
--- /dev/null
+++ b/www-proxy/squid/files/digest-squid-2.5.5-r2
@@ -0,0 +1 @@
+MD5 45ed1b1cd492e3f529085d09c3ffc1b8 squid-2.5.STABLE5.tar.bz2 1044932
diff --git a/www-proxy/squid/files/digest-squid-2.5.6 b/www-proxy/squid/files/digest-squid-2.5.6
new file mode 100644
index 000000000000..c8bb1af72488
--- /dev/null
+++ b/www-proxy/squid/files/digest-squid-2.5.6
@@ -0,0 +1 @@
+MD5 7fd964ac27b43b613d6b981cc702a29e squid-2.5.STABLE6.tar.bz2 1047199
diff --git a/www-proxy/squid/files/squid-2.4.7-debian.diff b/www-proxy/squid/files/squid-2.4.7-debian.diff
new file mode 100644
index 000000000000..b6ae92586746
--- /dev/null
+++ b/www-proxy/squid/files/squid-2.4.7-debian.diff
@@ -0,0 +1,413 @@
+These patches are borrowed from Debian's squid-2.4.4 patch. Here's
+the README file describing them:
+---
+
+Upstream patches against the release, that will be integrated into
+the next stable release (http://www.squid-cache.org/Versions/v2/2.4/bugs/)
+
+[currently none]
+
+Debian specific patches:
+All patches that were in the debian squid-2.2.5 and squid-2.3.4 have been
+applied to squid-2.4.3 as well, if they hadn't been integrated yet.
+
+cf.data.debian.patch Debian specific squid.conf patches
+dfl-error-dir.patch Default error dir is under /usr/lib/squid for Debian
+linux-increase-fds.patch
+ A hack to squid.h so that FD_SETSIZE can be
+ redefined on Linux for more open filedescriptors.
+no_append_domain_localhost.patch
+ Don't apply "append_domain" setting to "localhost"
+ in unqualified URLs.
+pipeline-shutup.patch Lower priority of some debug msgs of pipelining code
+smb_auth.patch Read password with '-r' so backslashes work
+ Patch awk regexp to read correct field from nmblookup
+syslog.patch Log to daemon.log instead of local4.log
+unlinkd.patch Only run unlinkd for diskd and ufs storage methods
+debug.c.patch Fix debug output corruption (and crash) when
+ debug_options is set to 11,3
+webdav-search.patch Reckognize SEARCH webdav method - the Exchange 2000
+ web frontend uses it (sigh).
+pam-auth-reload.patch Make PAM reload time configurable on command line
+
+--- squid-2.4.4.orig/auth_modules/PAM/pam_auth.c
++++ squid-2.4.4/auth_modules/PAM/pam_auth.c
+@@ -42,6 +42,7 @@
+ #include <stdio.h>
+ #include <assert.h>
+ #include <stdlib.h>
++#include <unistd.h>
+ #include <string.h>
+ #include <signal.h>
+ #include <time.h>
+@@ -56,8 +57,8 @@
+ #define SQUID_PAM_SERVICE "squid"
+ #endif
+
+-/* How often to reinitialize PAM, in seconds. Undefined = never, 0=always */
+-/* #define PAM_CONNECTION_TTL 60 */
++/* How often to reinitialize PAM, in seconds. -1 = never, 0=always */
++#define PAM_CONNECTION_TTL -1
+
+ static int reset_pam = 1; /* Set to one if it is time to reset PAM processing */
+
+@@ -111,6 +112,13 @@
+ }
+
+ int
++usage(void)
++{
++ fprintf(stderr, "Usage: pam_auth [-r seconds]\n");
++ exit(1);
++}
++
++int
+ main(int argc, char *argv[])
+ {
+ pam_handle_t *pamh = NULL;
+@@ -119,6 +127,18 @@
+ /* char *password; */
+ char buf[BUFSIZE];
+ time_t pamh_created = 0;
++ int c, pam_connection_ttl = PAM_CONNECTION_TTL;
++ extern char *optarg;
++ extern int optind;
++
++ while ((c = getopt(argc, argv, "r:")) != EOF) switch (c) {
++ case 'r':
++ pam_connection_ttl = atoi(optarg);
++ break;
++ default:
++ usage();
++ }
++ if (optind < argc) usage();
+
+ signal(SIGHUP, signal_received);
+
+@@ -142,10 +162,10 @@
+ }
+ *password++ = '\0';
+ conv.appdata_ptr = (char *) password; /* from buf above. not allocated */
+-#ifdef PAM_CONNECTION_TTL
+- if (pamh_created + PAM_CONNECTION_TTL >= time(NULL))
++ if (pam_connection_ttl >= 0 &&
++ pamh_created + pam_connection_ttl <= time(NULL))
+ reset_pam = 1;
+-#endif
++
+ if (reset_pam && pamh) {
+ /* Close previous PAM connection */
+ retval = pam_end(pamh, retval);
+--- squid-2.4.4.orig/auth_modules/SMB/Makefile.in
++++ squid-2.4.4/auth_modules/SMB/Makefile.in
+@@ -11,7 +11,8 @@
+ # by using the --prefix option when configuring Samba, you need to change
+ # SAMBAPREFIX accordingly.
+
+-SAMBAPREFIX=/usr/local/samba
++#SAMBAPREFIX=/usr/local/samba
++SAMBAPREFIX=/usr
+
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+--- squid-2.4.4.orig/auth_modules/SMB/smb_auth.sh
++++ squid-2.4.4/auth_modules/SMB/smb_auth.sh
+@@ -24,7 +24,7 @@
+ read AUTHSHARE
+ read AUTHFILE
+ read SMBUSER
+-read SMBPASS
++read -r SMBPASS
+
+ # Find domain controller
+ echo "Domain name: $DOMAINNAME"
+@@ -47,7 +47,7 @@
+ addropt=""
+ fi
+ echo "Query address options: $addropt"
+-dcip=`$SAMBAPREFIX/bin/nmblookup $addropt "$PASSTHROUGH#1c" | awk '/^[0-9.]+ / { print $1 ; exit }'`
++dcip=`$SAMBAPREFIX/bin/nmblookup $addropt "$PASSTHROUGH#1c" | awk '/^[0-9.]+\..+ / { print $1 ; exit }'`
+ echo "Domain controller IP address: $dcip"
+ [ -n "$dcip" ] || exit 1
+
+--- squid-2.4.4.orig/src/cf.data.pre
++++ squid-2.4.4/src/cf.data.pre
+@@ -98,12 +98,12 @@
+ NAME: htcp_port
+ IFDEF: USE_HTCP
+ TYPE: ushort
+-DEFAULT: 4827
++DEFAULT: 0
+ LOC: Config.Port.htcp
+ DOC_START
+ The port number where Squid sends and receives HTCP queries to
+- and from neighbor caches. Default is 4827. To disable use
+- "0".
++ and from neighbor caches. To turn it on you want to set it 4827.
++ By default it is set to "0" (disabled).
+
+ To enable this option, you must use --enable-htcp with the
+ configure script.
+@@ -1294,7 +1294,7 @@
+ 'Max' is an upper limit on how long objects without an explicit
+ expiry time will be considered fresh.
+
+- options: overrsde-expire
++ options: override-expire
+ override-lastmod
+ reload-into-ims
+ ignore-reload
+@@ -1730,6 +1730,8 @@
+ acl Safe_ports port 488 # gss-http
+ acl Safe_ports port 591 # filemaker
+ acl Safe_ports port 777 # multiling http
++acl Safe_ports port 901 # SWAT
++acl purge method PURGE
+ acl CONNECT method CONNECT
+ NOCOMMENT_END
+ DOC_END
+@@ -1763,6 +1765,9 @@
+ # Only allow cachemgr access from localhost
+ http_access allow manager localhost
+ http_access deny manager
++# Only allow purge requests from localhost
++http_access allow purge localhost
++http_access deny purge
+ # Deny requests to unknown ports
+ http_access deny !Safe_ports
+ # Deny CONNECT to other than SSL ports
+@@ -1890,19 +1895,19 @@
+
+ NAME: cache_effective_user
+ TYPE: string
+-DEFAULT: nobody
++DEFAULT: squid
+ LOC: Config.effectiveUser
+ DOC_NONE
+
+ NAME: cache_effective_group
+ TYPE: string
+-DEFAULT: nogroup
++DEFAULT: squid
+ LOC: Config.effectiveGroup
+ DOC_START
+
+ If the cache is run as root, it will change its effective/real
+ UID/GID to the UID/GID specified below. The default is to
+- change to UID to nobody and GID to nogroup.
++ change to UID to squid and GID to squid.
+
+ If Squid is not started as root, the default is to keep the
+ current UID/GID. Note that if Squid is not started as root then
+@@ -2657,12 +2665,15 @@
+ NAME: snmp_port
+ TYPE: ushort
+ LOC: Config.Port.snmp
+-DEFAULT: 3401
++DEFAULT: 0
+ IFDEF: SQUID_SNMP
+ DOC_START
+ Squid can now serve statistics and status information via SNMP.
+ By default it listens to port 3401 on the machine. If you don't
+ wish to use SNMP, set this to "0".
++
++ Note: on Gentoo Linux, the default is zero - you need to
++ set it to 3401 to enable it.
+
+ NOTE: SNMP support requires use the --enable-snmp configure
+ command line option.
+--- squid-2.4.4.orig/src/client_side.c
++++ squid-2.4.4/src/client_side.c
+@@ -1702,7 +1702,7 @@
+ fd, storeUrl(entry), (int) http->out.offset);
+ if (conn->chr != http) {
+ /* there is another object in progress, defer this one */
+- debug(33, 1) ("clientSendMoreData: Deferring %s\n", storeUrl(entry));
++ debug(33, 2) ("clientSendMoreData: Deferring %s\n", storeUrl(entry));
+ memFree(buf, MEM_CLIENT_SOCK_BUF);
+ return;
+ } else if (entry && EBIT_TEST(entry->flags, ENTRY_ABORTED)) {
+@@ -1876,7 +1876,7 @@
+ * execution will resume after the operation completes.
+ */
+ } else {
+- debug(33, 1) ("clientKeepaliveNextRequest: FD %d Sending next\n",
++ debug(33, 2) ("clientKeepaliveNextRequest: FD %d Sending next\n",
+ conn->fd);
+ assert(entry);
+ if (0 == storeClientCopyPending(http->sc, entry, http)) {
+--- squid-2.4.4.orig/src/debug.c
++++ squid-2.4.4/src/debug.c
+@@ -74,6 +74,9 @@
+ #else
+ format = va_arg(args1, const char *);
+ #endif
++ /* give a chance to context-based debugging to print current context */
++ if (debug_log && !Ctx_Lock)
++ ctx_print();
+ snprintf(f, BUFSIZ, "%s| %s",
+ debugLogTime(squid_curtime),
+ format);
+@@ -94,9 +97,6 @@
+ {
+ if (debug_log == NULL)
+ return;
+- /* give a chance to context-based debugging to print current context */
+- if (!Ctx_Lock)
+- ctx_print();
+ vfprintf(debug_log, format, args);
+ if (!Config.onoff.buffered_logs)
+ fflush(debug_log);
+@@ -201,9 +201,9 @@
+ }
+ debugOpenLog(logfile);
+
+-#if HAVE_SYSLOG && defined(LOG_LOCAL4)
++#if HAVE_SYSLOG
+ if (opt_syslog_enable)
+- openlog(appname, LOG_PID | LOG_NDELAY | LOG_CONS, LOG_LOCAL4);
++ openlog(appname, LOG_PID | LOG_NDELAY, LOG_DAEMON);
+ #endif /* HAVE_SYSLOG */
+
+ }
+--- squid-2.4.4.orig/src/defines.h
++++ squid-2.4.4/src/defines.h
+@@ -219,7 +219,7 @@
+ #define N_COUNT_HOUR_HIST (86400 * 3) / (60 * COUNT_INTERVAL)
+
+ /* were to look for errors if config path fails */
+-#define DEFAULT_SQUID_ERROR_DIR "/usr/local/squid/etc/errors"
++#define DEFAULT_SQUID_ERROR_DIR "/usr/lib/squid/errors/English"
+
+ /* gb_type operations */
+ #define gb_flush_limit (0x3FFFFFFF)
+--- squid-2.4.4.orig/src/enums.h
++++ squid-2.4.4/src/enums.h
+@@ -393,6 +393,7 @@
+ METHOD_EXT17,
+ METHOD_EXT18,
+ METHOD_EXT19,
++ METHOD_SEARCH, /* Exchange 2000 web frontend */
+ METHOD_ENUM_END
+ };
+ typedef unsigned int method_t;
+--- squid-2.4.4.orig/src/main.c
++++ squid-2.4.4/src/main.c
+@@ -83,7 +83,7 @@
+ usage(void)
+ {
+ fprintf(stderr,
+- "Usage: %s [-dhsvzCDFNRVYX] [-f config-file] [-[au] port] [-k signal]\n"
++ "Usage: %s [-hsvzCDFNRSVXY] [-d level] [-f file] [-[au] port] [-k signal]\n"
+ " -a port Specify HTTP port number (default: %d).\n"
+ " -d level Write debugging to stderr also.\n"
+ " -f file Use given config-file instead of\n"
+@@ -320,6 +320,21 @@
+ asnFreeMemory();
+ }
+
++#if USE_UNLINKD
++static int
++needUnlinkd(void)
++{
++ int i;
++ int r = 0;
++ for (i = 0; i < Config.cacheSwap.n_configured; i++) {
++ if (strcmp(Config.cacheSwap.swapDirs[i].type, "ufs") == 0 ||
++ strcmp(Config.cacheSwap.swapDirs[i].type, "diskd") == 0)
++ r++;
++ }
++ return r;
++}
++#endif
++
+ static void
+ mainReconfigure(void)
+ {
+@@ -344,6 +359,9 @@
+ #endif
+ redirectShutdown();
+ authenticateShutdown();
++#if USE_UNLINKD
++ unlinkdClose();
++#endif
+ storeDirCloseSwapLogs();
+ errorClean();
+ mimeFreeMemory();
+@@ -362,6 +380,9 @@
+ #if USE_WCCP
+ wccpInit();
+ #endif
++#if USE_UNLINKD
++ if (needUnlinkd()) unlinkdInit();
++#endif
+ serverConnectionsOpen();
+ if (theOutIcpConnection >= 0) {
+ if (!Config2.Accel.on || Config.onoff.accel_with_proxy)
+@@ -507,7 +528,7 @@
+
+ if (!configured_once) {
+ #if USE_UNLINKD
+- unlinkdInit();
++ if (needUnlinkd()) unlinkdInit();
+ #endif
+ urlInitialize();
+ cachemgrInit();
+@@ -835,7 +856,7 @@
+ int nullfd;
+ if (*(argv[0]) == '(')
+ return;
+- openlog(appname, LOG_PID | LOG_NDELAY | LOG_CONS, LOG_LOCAL4);
++ openlog(appname, LOG_PID | LOG_NDELAY, LOG_DAEMON);
+ if ((pid = fork()) < 0)
+ syslog(LOG_ALERT, "fork failed: %s", xstrerror());
+ else if (pid > 0)
+--- squid-2.4.4.orig/src/squid.h
++++ squid-2.4.4/src/squid.h
+@@ -45,10 +45,24 @@
+ */
+ #define CHANGE_FD_SETSIZE 1
+
+-/* Cannot increase FD_SETSIZE on Linux */
++/*
++ * Cannot increase FD_SETSIZE on Linux, but we can increase __FD_SETSIZE
++ * with glibc 2.2 (or later? remains to be seen). We do this by including
++ * bits/types.h which defines __FD_SETSIZE first, then we redefine
++ * FD_SETSIZE. Ofcourse a user program may NEVER include bits/whatever.h
++ * directly, so this is a dirty hack!
++ */
+ #if defined(_SQUID_LINUX_)
+-#undef CHANGE_FD_SETSIZE
+-#define CHANGE_FD_SETSIZE 0
++# undef CHANGE_FD_SETSIZE
++# define CHANGE_FD_SETSIZE 0
++# include <features.h>
++# if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
++# if SQUID_MAXFD > DEFAULT_FD_SETSIZE
++# include <bits/types.h>
++# undef __FD_SETSIZE
++# define __FD_SETSIZE SQUID_MAXFD
++# endif
++# endif
+ #endif
+
+ /*
+--- squid-2.4.4.orig/src/url.c
++++ squid-2.4.4/src/url.c
+@@ -77,6 +77,7 @@
+ "%EXT17",
+ "%EXT18",
+ "%EXT19",
++ "SEARCH", /* Exchange 2000 web frontend */
+ "ERROR"
+ };
+
+@@ -308,7 +309,7 @@
+ /* remove duplicate dots */
+ while ((t = strstr(host, "..")))
+ xmemmove(t, t + 1, strlen(t));
+- if (Config.appendDomain && !strchr(host, '.'))
++ if (Config.appendDomain && !strchr(host, '.') && strcasecmp(host, "localhost") != 0)
+ strncat(host, Config.appendDomain, SQUIDHOSTNAMELEN);
+ if (port == 0) {
+ debug(23, 3) ("urlParse: Invalid port == 0\n");
diff --git a/www-proxy/squid/files/squid-2.4.7-gentoo.diff b/www-proxy/squid/files/squid-2.4.7-gentoo.diff
new file mode 100644
index 000000000000..c24a27016174
--- /dev/null
+++ b/www-proxy/squid/files/squid-2.4.7-gentoo.diff
@@ -0,0 +1,40 @@
+diff -ur squid-2.4.STABLE4.orig/icons/Makefile.in squid-2.4.STABLE4/icons/Makefile.in
+--- squid-2.4.STABLE4.orig/icons/Makefile.in Tue Jan 16 16:12:30 2001
++++ squid-2.4.STABLE4/icons/Makefile.in Wed Mar 20 09:40:19 2002
+@@ -15,7 +15,7 @@
+
+ INSTALL = @INSTALL@
+ INSTALL_FILE = @INSTALL_DATA@
+-DEFAULT_ICON_DIR = $(sysconfdir)/icons
++DEFAULT_ICON_DIR = $(libexecdir)/icons
+
+ ICONS = anthony-binhex.gif \
+ anthony-bomb.gif \
+diff -ur squid-2.4.STABLE6.orig/src/Makefile.in squid-2.4.STABLE6/src/Makefile.in
+--- squid-2.4.STABLE6.orig/src/Makefile.in Wed Apr 4 03:01:12 2001
++++ squid-2.4.STABLE6/src/Makefile.in Wed Mar 20 14:18:58 2002
+@@ -37,17 +37,17 @@
+ DEFAULT_CONFIG_FILE = $(sysconfdir)/squid.conf
+ DEFAULT_MIME_TABLE = $(sysconfdir)/mime.conf
+ DEFAULT_DNSSERVER = $(libexecdir)/$(DNSSERVER_EXE)
+-DEFAULT_CACHE_LOG = $(localstatedir)/logs/cache.log
+-DEFAULT_ACCESS_LOG = $(localstatedir)/logs/access.log
+-DEFAULT_STORE_LOG = $(localstatedir)/logs/store.log
+-DEFAULT_PID_FILE = $(localstatedir)/logs/squid.pid
+-DEFAULT_SWAP_DIR = $(localstatedir)/cache
++DEFAULT_CACHE_LOG = $(localstatedir)/log/squid/cache.log
++DEFAULT_ACCESS_LOG = $(localstatedir)/log/squid/access.log
++DEFAULT_STORE_LOG = $(localstatedir)/log/squid/store.log
++DEFAULT_PID_FILE = $(localstatedir)/run/squid.pid
++DEFAULT_SWAP_DIR = $(localstatedir)/cache/squid
+ DEFAULT_PINGER = $(libexecdir)/$(PINGER_EXE)
+ DEFAULT_UNLINKD = $(libexecdir)/$(UNLINKD_EXE)
+ DEFAULT_DISKD = $(libexecdir)/$(DISKD_EXE)
+-DEFAULT_ICON_DIR = $(sysconfdir)/icons
++DEFAULT_ICON_DIR = $(libexecdir)/icons
+ DEFAULT_ERROR_DIR = $(sysconfdir)/errors
+-DEFAULT_MIB_PATH = $(sysconfdir)/mib.txt
++DEFAULT_MIB_PATH = $(libexecdir)/mib.txt
+
+ CC = @CC@
+ MAKEDEPEND = @MAKEDEPEND@
diff --git a/www-proxy/squid/files/squid-2.5.3-gentoo.diff b/www-proxy/squid/files/squid-2.5.3-gentoo.diff
new file mode 100644
index 000000000000..f4ab4c7dbc49
--- /dev/null
+++ b/www-proxy/squid/files/squid-2.5.3-gentoo.diff
@@ -0,0 +1,336 @@
+diff -uNr squid-2.5.STABLE3.orig/errors/Makefile.in squid-2.5.STABLE3/errors/Makefile.in
+--- squid-2.5.STABLE3.orig/errors/Makefile.in 2003-02-11 21:02:09.000000000 -0500
++++ squid-2.5.STABLE3/errors/Makefile.in 2003-06-03 01:23:51.000000000 -0400
+@@ -116,7 +116,7 @@
+ install_sh = @install_sh@
+ makesnmplib = @makesnmplib@
+
+-errordir = $(datadir)/errors
++errordir = $(libexecdir)/errors
+
+ DEFAULT_ERROR_DIR = $(errordir)
+
+diff -uNr squid-2.5.STABLE3.orig/helpers/basic_auth/SMB/Makefile.in squid-2.5.STABLE3/helpers/basic_auth/SMB/Makefile.in
+--- squid-2.5.STABLE3.orig/helpers/basic_auth/SMB/Makefile.in 2003-02-11 21:02:25.000000000 -0500
++++ squid-2.5.STABLE3/helpers/basic_auth/SMB/Makefile.in 2003-06-03 01:23:51.000000000 -0400
+@@ -126,7 +126,7 @@
+ makesnmplib = @makesnmplib@
+
+ SMB_AUTH_HELPER = smb_auth.sh
+-SAMBAPREFIX = /usr/local/samba
++SAMBAPREFIX = /usr
+ SMB_AUTH_HELPER_PATH = $(libexecdir)/$(SMB_AUTH_HELPER)
+
+ libexec_SCRIPTS = $(SMB_AUTH_HELPER)
+diff -uNr squid-2.5.STABLE3.orig/helpers/basic_auth/SMB/smb_auth.sh squid-2.5.STABLE3/helpers/basic_auth/SMB/smb_auth.sh
+--- squid-2.5.STABLE3.orig/helpers/basic_auth/SMB/smb_auth.sh 2001-01-07 18:36:46.000000000 -0500
++++ squid-2.5.STABLE3/helpers/basic_auth/SMB/smb_auth.sh 2003-06-03 01:23:51.000000000 -0400
+@@ -24,7 +24,7 @@
+ read AUTHSHARE
+ read AUTHFILE
+ read SMBUSER
+-read SMBPASS
++read -r SMBPASS
+
+ # Find domain controller
+ echo "Domain name: $DOMAINNAME"
+@@ -47,7 +47,7 @@
+ addropt=""
+ fi
+ echo "Query address options: $addropt"
+-dcip=`$SAMBAPREFIX/bin/nmblookup $addropt "$PASSTHROUGH#1c" | awk '/^[0-9.]+ / { print $1 ; exit }'`
++dcip=`$SAMBAPREFIX/bin/nmblookup $addropt "$PASSTHROUGH#1c" | awk '/^[0-9.]+\..+ / { print $1 ; exit }'`
+ echo "Domain controller IP address: $dcip"
+ [ -n "$dcip" ] || exit 1
+
+diff -uNr squid-2.5.STABLE3.orig/icons/Makefile.in squid-2.5.STABLE3/icons/Makefile.in
+--- squid-2.5.STABLE3.orig/icons/Makefile.in 2003-05-21 20:15:40.000000000 -0400
++++ squid-2.5.STABLE3/icons/Makefile.in 2003-06-03 01:23:51.000000000 -0400
+@@ -144,7 +144,7 @@
+ anthony-xpm.gif
+
+
+-icondir = $(datadir)/icons
++icondir = $(libexecdir)/icons
+ icon_DATA = $(ICON1) $(ICON2)
+ EXTRA_DIST = $(ICON1) $(ICON2) icons.shar
+ DISTCLEANFILES =
+diff -uNr squid-2.5.STABLE3.orig/src/Makefile.in squid-2.5.STABLE3/src/Makefile.in
+--- squid-2.5.STABLE3.orig/src/Makefile.in 2003-02-11 21:03:14.000000000 -0500
++++ squid-2.5.STABLE3/src/Makefile.in 2003-06-03 01:23:51.000000000 -0400
+@@ -374,18 +374,18 @@
+ DEFAULT_CONFIG_FILE = $(sysconfdir)/squid.conf
+ DEFAULT_MIME_TABLE = $(sysconfdir)/mime.conf
+ DEFAULT_DNSSERVER = $(libexecdir)/dnsserver$(EXEEXT)
+-DEFAULT_LOG_PREFIX = $(localstatedir)/logs
+-DEFAULT_CACHE_LOG = $(DEFAULT_LOG_PREFIX)/cache.log
+-DEFAULT_ACCESS_LOG = $(DEFAULT_LOG_PREFIX)/access.log
+-DEFAULT_STORE_LOG = $(DEFAULT_LOG_PREFIX)/store.log
+-DEFAULT_PID_FILE = $(DEFAULT_LOG_PREFIX)/squid.pid
+-DEFAULT_SWAP_DIR = $(localstatedir)/cache
++DEFAULT_LOG_PREFIX = $(localstatedir)/log
++DEFAULT_CACHE_LOG = $(localstatedir)/log/squid/cache.log
++DEFAULT_ACCESS_LOG = $(localstatedir)/log/squid/access.log
++DEFAULT_STORE_LOG = $(localstatedir)/log/squid/store.log
++DEFAULT_PID_FILE = $(localstatedir)/run/squid.pid
++DEFAULT_SWAP_DIR = $(localstatedir)/cache/squid
+ DEFAULT_PINGER = $(libexecdir)/pinger$(EXEEXT)
+ DEFAULT_UNLINKD = $(libexecdir)/unlinkd$(EXEEXT)
+ DEFAULT_DISKD = $(libexecdir)/diskd$(EXEEXT)
+-DEFAULT_ICON_DIR = $(datadir)/icons
+-DEFAULT_ERROR_DIR = $(datadir)/errors/@ERR_DEFAULT_LANGUAGE@
+-DEFAULT_MIB_PATH = $(datadir)/mib.txt
++DEFAULT_ICON_DIR = $(libexecdir)/icons
++DEFAULT_ERROR_DIR = $(sysconfdir)/errors
++DEFAULT_MIB_PATH = $(libexecdir)/mib.txt
+
+ DEFS = @DEFS@ -DDEFAULT_CONFIG_FILE=\"$(DEFAULT_CONFIG_FILE)\"
+
+@@ -836,12 +836,12 @@
+ uninstall-info-am:
+ install-dataDATA: $(data_DATA)
+ @$(NORMAL_INSTALL)
+- $(mkinstalldirs) $(DESTDIR)$(datadir)
++ $(mkinstalldirs) $(DESTDIR)$(libexecdir)
+ @list='$(data_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+- echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(datadir)/$$f"; \
+- $(INSTALL_DATA) $$d$$p $(DESTDIR)$(datadir)/$$f; \
++ echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(libexecdir)/$$f"; \
++ $(INSTALL_DATA) $$d$$p $(DESTDIR)$(libexecdir)/$$f; \
+ done
+
+ uninstall-dataDATA:
+diff -uNr squid-2.5.STABLE3.orig/src/cf.data.pre squid-2.5.STABLE3/src/cf.data.pre
+--- squid-2.5.STABLE3.orig/src/cf.data.pre 2003-05-21 10:34:38.000000000 -0400
++++ squid-2.5.STABLE3/src/cf.data.pre 2003-06-03 01:28:47.000000000 -0400
+@@ -156,12 +156,12 @@
+ NAME: htcp_port
+ IFDEF: USE_HTCP
+ TYPE: ushort
+-DEFAULT: 4827
++DEFAULT: 0
+ LOC: Config.Port.htcp
+ DOC_START
+ The port number where Squid sends and receives HTCP queries to
+- and from neighbor caches. Default is 4827. To disable use
+- "0".
++ and from neighbor caches. To turn it on you want to set it to
++ 4827. By default it is set to "0" (disabled).
+ DOC_END
+
+
+@@ -2032,6 +2032,8 @@
+ acl Safe_ports port 488 # gss-http
+ acl Safe_ports port 591 # filemaker
+ acl Safe_ports port 777 # multiling http
++acl Safe_ports port 901 # SWAT
++acl purge method PURGE
+ acl CONNECT method CONNECT
+ NOCOMMENT_END
+ DOC_END
+@@ -2065,6 +2067,9 @@
+ # Only allow cachemgr access from localhost
+ http_access allow manager localhost
+ http_access deny manager
++# Only allow purge requests from localhost
++http_access allow purge localhost
++http_access deny purge
+ # Deny requests to unknown ports
+ http_access deny !Safe_ports
+ # Deny CONNECT to other than SSL ports
+@@ -2083,6 +2088,9 @@
+ #acl our_networks src 192.168.1.0/24 192.168.2.0/24
+ #http_access allow our_networks
+
++# Allow the localhost to have access by default
++http_access allow localhost
++
+ # And finally deny all other access to this proxy
+ http_access deny all
+ NOCOMMENT_END
+@@ -2299,7 +2307,7 @@
+
+ NAME: cache_mgr
+ TYPE: string
+-DEFAULT: webmaster
++DEFAULT: root
+ LOC: Config.adminEmail
+ DOC_START
+ Email-address of local cache manager who will receive
+@@ -2309,20 +2317,20 @@
+
+ NAME: cache_effective_user
+ TYPE: string
+-DEFAULT: nobody
++DEFAULT: squid
+ LOC: Config.effectiveUser
+ DOC_NONE
+
+ NAME: cache_effective_group
+ TYPE: string
+-DEFAULT: none
++DEFAULT: squid
+ LOC: Config.effectiveGroup
+ DOC_START
+
+ If you start Squid as root, it will change its effective/real
+- UID/GID to the UID/GID specified below. The default is to
+- change to UID to nobody. If you define cache_effective_user,
+- but not cache_effective_group, Squid sets the GID the
++ UID/GID to the ones specified below. The default is to
++ change to UID squid. If you define cache_effective_user,
++ but not cache_effective_group, Squid sets the GID to the
+ effective user's default group ID (taken from the password
+ file).
+
+@@ -3085,7 +3093,11 @@
+ If you wish to create your own versions of the default
+ (English) error files, either to customize them to suit your
+ language or company copy the template English files to another
+- directory and point this tag at them.
++ directory where the error files are read from.
++ /usr/lib/squid/errors contains sets of error files
++ in different languages. The default error directory
++ is /etc/squid/errors, which is a link to one of these
++ error sets.
+ DOC_END
+
+ NAME: minimum_retry_timeout
+@@ -3127,12 +3139,15 @@
+ NAME: snmp_port
+ TYPE: ushort
+ LOC: Config.Port.snmp
+-DEFAULT: 3401
++DEFAULT: 0
+ IFDEF: SQUID_SNMP
+ DOC_START
+ Squid can now serve statistics and status information via SNMP.
+ By default it listens to port 3401 on the machine. If you don't
+ wish to use SNMP, set this to "0".
++
++ Note: on Gentoo Linux, the default is zero - you need to
++ set it to 3401 to enable it.
+ DOC_END
+
+ NAME: snmp_access
+diff -uNr squid-2.5.STABLE3.orig/src/debug.c squid-2.5.STABLE3/src/debug.c
+--- squid-2.5.STABLE3.orig/src/debug.c 2001-12-17 13:01:54.000000000 -0500
++++ squid-2.5.STABLE3/src/debug.c 2003-06-03 01:23:51.000000000 -0400
+@@ -200,9 +200,9 @@
+ }
+ debugOpenLog(logfile);
+
+-#if HAVE_SYSLOG && defined(LOG_LOCAL4)
++#if HAVE_SYSLOG
+ if (opt_syslog_enable)
+- openlog(appname, LOG_PID | LOG_NDELAY | LOG_CONS, LOG_LOCAL4);
++ openlog(appname, LOG_PID | LOG_NDELAY, LOG_DAEMON);
+ #endif /* HAVE_SYSLOG */
+
+ }
+diff -uNr squid-2.5.STABLE3.orig/src/defines.h squid-2.5.STABLE3/src/defines.h
+--- squid-2.5.STABLE3.orig/src/defines.h 2002-08-08 16:17:39.000000000 -0400
++++ squid-2.5.STABLE3/src/defines.h 2003-06-03 01:23:51.000000000 -0400
+@@ -219,7 +219,7 @@
+
+ /* were to look for errors if config path fails */
+ #ifndef DEFAULT_SQUID_ERROR_DIR
+-#define DEFAULT_SQUID_ERROR_DIR "/usr/local/squid/etc/errors"
++#define DEFAULT_SQUID_ERROR_DIR "/usr/lib/squid/errors/English"
+ #endif
+
+ /* gb_type operations */
+diff -uNr squid-2.5.STABLE3.orig/src/main.c squid-2.5.STABLE3/src/main.c
+--- squid-2.5.STABLE3.orig/src/main.c 2003-05-05 20:24:14.000000000 -0400
++++ squid-2.5.STABLE3/src/main.c 2003-06-03 01:23:51.000000000 -0400
+@@ -326,6 +326,21 @@
+ asnFreeMemory();
+ }
+
++#if USE_UNLINKD
++static int
++needUnlinkd(void)
++{
++ int i;
++ int r = 0;
++ for (i = 0; i < Config.cacheSwap.n_configured; i++) {
++ if (strcmp(Config.cacheSwap.swapDirs[i].type, "ufs") == 0 ||
++ strcmp(Config.cacheSwap.swapDirs[i].type, "diskd") == 0)
++ r++;
++ }
++ return r;
++}
++#endif
++
+ static void
+ mainReconfigure(void)
+ {
+@@ -351,6 +366,7 @@
+ redirectShutdown();
+ authenticateShutdown();
+ externalAclShutdown();
++ unlinkdClose();
+ storeDirCloseSwapLogs();
+ storeLogClose();
+ accessLogClose();
+@@ -381,6 +397,9 @@
+ #if USE_WCCP
+ wccpInit();
+ #endif
++#if USE_UNLINKD
++ if (needUnlinkd()) unlinkdInit();
++#endif
+ serverConnectionsOpen();
+ if (theOutIcpConnection >= 0) {
+ if (!Config2.Accel.on || Config.onoff.accel_with_proxy)
+@@ -524,7 +543,7 @@
+
+ if (!configured_once) {
+ #if USE_UNLINKD
+- unlinkdInit();
++ if (needUnlinkd()) unlinkdInit();
+ #endif
+ urlInitialize();
+ cachemgrInit();
+@@ -858,7 +877,7 @@
+ int nullfd;
+ if (*(argv[0]) == '(')
+ return;
+- openlog(appname, LOG_PID | LOG_NDELAY | LOG_CONS, LOG_LOCAL4);
++ openlog(appname, LOG_PID | LOG_NDELAY, LOG_DAEMON);
+ if ((pid = fork()) < 0)
+ syslog(LOG_ALERT, "fork failed: %s", xstrerror());
+ else if (pid > 0)
+@@ -893,14 +912,14 @@
+ mainStartScript(argv[0]);
+ if ((pid = fork()) == 0) {
+ /* child */
+- openlog(appname, LOG_PID | LOG_NDELAY | LOG_CONS, LOG_LOCAL4);
++ openlog(appname, LOG_PID | LOG_NDELAY, LOG_DAEMON);
+ prog = xstrdup(argv[0]);
+ argv[0] = xstrdup("(squid)");
+ execvp(prog, argv);
+ syslog(LOG_ALERT, "execvp failed: %s", xstrerror());
+ }
+ /* parent */
+- openlog(appname, LOG_PID | LOG_NDELAY | LOG_CONS, LOG_LOCAL4);
++ openlog(appname, LOG_PID | LOG_NDELAY, LOG_DAEMON);
+ syslog(LOG_NOTICE, "Squid Parent: child process %d started", pid);
+ time(&start);
+ squid_signal(SIGINT, SIG_IGN, SA_RESTART);
+diff -uNr squid-2.5.STABLE3.orig/src/url.c squid-2.5.STABLE3/src/url.c
+--- squid-2.5.STABLE3.orig/src/url.c 2003-01-18 09:16:49.000000000 -0500
++++ squid-2.5.STABLE3/src/url.c 2003-06-03 01:23:51.000000000 -0400
+@@ -312,8 +312,8 @@
+ return NULL;
+ }
+ #endif
+- if (Config.appendDomain && !strchr(host, '.'))
+- strncat(host, Config.appendDomain, SQUIDHOSTNAMELEN);
++ if (Config.appendDomain && !strchr(host, '.') && strcasecmp(host, "localhost") != 0)
++ strncat(host, Config.appendDomain, SQUIDHOSTNAMELEN);
+ /* remove trailing dots from hostnames */
+ while ((l = strlen(host)) > 0 && host[--l] == '.')
+ host[l] = '\0';
diff --git a/www-proxy/squid/files/squid-2.5.5-ntml-auth-fix.patch b/www-proxy/squid/files/squid-2.5.5-ntml-auth-fix.patch
new file mode 100644
index 000000000000..de579da11bcf
--- /dev/null
+++ b/www-proxy/squid/files/squid-2.5.5-ntml-auth-fix.patch
@@ -0,0 +1,72 @@
+--- squid-2.5.STABLE5/helpers/ntlm_auth/SMB/libntlmssp.c 30 Nov 2001 09:50:28 -0000 1.7
++++ squid-2.5.STABLE5/helpers/ntlm_auth/SMB/libntlmssp.c 20 May 2004 22:31:33 -0000
+@@ -161,7 +161,10 @@ make_challenge(char *domain, char *domai
+ #define min(A,B) (A<B?A:B)
+
+ int ntlm_errno;
+-static char credentials[1024]; /* we can afford to waste */
++#define MAX_USERNAME_LEN 255
++#define MAX_DOMAIN_LEN 255
++#define MAX_PASSWD_LEN 31
++static char credentials[MAX_USERNAME_LEN+MAX_DOMAIN_LEN+2]; /* we can afford to waste */
+
+
+ /* Fetches the user's credentials from the challenge.
+@@ -197,7 +200,7 @@ char *
+ ntlm_check_auth(ntlm_authenticate * auth, int auth_length)
+ {
+ int rv;
+- char pass[25] /*, encrypted_pass[40] */;
++ char pass[MAX_PASSWD_LEN+1];
+ char *domain = credentials;
+ char *user;
+ lstring tmp;
+@@ -215,8 +218,13 @@ ntlm_check_auth(ntlm_authenticate * auth
+ ntlm_errno = NTLM_LOGON_ERROR;
+ return NULL;
+ }
++ if (tmp.l > MAX_DOMAIN_LEN) {
++ debug("Domain string exceeds %d bytes, rejecting\n", MAX_DOMAIN_LEN);
++ ntlm_errno = NTLM_LOGON_ERROR;
++ return NULL;
++ }
+ memcpy(domain, tmp.str, tmp.l);
+- user = domain + tmp.l;
++ user = domain + tmp.l + 1;
+ *user++ = '\0';
+
+ /* debug("fetching user name\n"); */
+@@ -226,20 +234,30 @@ ntlm_check_auth(ntlm_authenticate * auth
+ ntlm_errno = NTLM_LOGON_ERROR;
+ return NULL;
+ }
++ if (tmp.l > MAX_USERNAME_LEN) {
++ debug("Username string exceeds %d bytes, rejecting\n", MAX_USERNAME_LEN);
++ ntlm_errno = NTLM_LOGON_ERROR;
++ return NULL;
++ }
+ memcpy(user, tmp.str, tmp.l);
+ *(user + tmp.l) = '\0';
+
+
+- /* Authenticating against the NT response doesn't seem to work... */
++ /* Authenticating against the NT response doesn't seem to work... */
+ tmp = ntlm_fetch_string((char *) auth, auth_length, &auth->lmresponse);
+ if (tmp.str == NULL || tmp.l == 0) {
+ fprintf(stderr, "No auth at all. Returning no-auth\n");
+ ntlm_errno = NTLM_LOGON_ERROR;
+ return NULL;
+ }
+-
++ if (tmp.l > MAX_PASSWD_LEN) {
++ debug("Password string exceeds %d bytes, rejecting\n", MAX_PASSWD_LEN);
++ ntlm_errno = NTLM_LOGON_ERROR;
++ return NULL;
++ }
++
+ memcpy(pass, tmp.str, tmp.l);
+- pass[25] = '\0';
++ pass[min(MAX_PASSWD_LEN,tmp.l)] = '\0';
+
+ #if 1
+ debug ("Empty LM pass detection: user: '%s', ours:'%s', his: '%s'"
diff --git a/www-proxy/squid/files/squid-2.5.6-ufs-no-valid-dir.patch b/www-proxy/squid/files/squid-2.5.6-ufs-no-valid-dir.patch
new file mode 100644
index 000000000000..e2738191a0f8
--- /dev/null
+++ b/www-proxy/squid/files/squid-2.5.6-ufs-no-valid-dir.patch
@@ -0,0 +1,14 @@
+Index: squid/src/fs/ufs/store_dir_ufs.c
+diff -c squid/src/fs/ufs/store_dir_ufs.c:1.39.2.8 squid/src/fs/ufs/store_dir_ufs.c:1.39.2.9
+*** squid/src/fs/ufs/store_dir_ufs.c:1.39.2.8 Mon May 31 16:03:31 2004
+--- squid/src/fs/ufs/store_dir_ufs.c Wed Jul 14 10:26:12 2004
+***************
+*** 1636,1641 ****
+--- 1636,1642 ----
+ ufsinfo->swaplog_fd = -1;
+ ufsinfo->map = NULL; /* Debugging purposes */
+ ufsinfo->suggest = 0;
++ ufsinfo->open_files = 0;
+ sd->init = storeUfsDirInit;
+ sd->newfs = storeUfsDirNewfs;
+ sd->dump = storeUfsDirDump;
diff --git a/www-proxy/squid/files/squid-r1.cron b/www-proxy/squid/files/squid-r1.cron
new file mode 100644
index 000000000000..02309459b0bb
--- /dev/null
+++ b/www-proxy/squid/files/squid-r1.cron
@@ -0,0 +1,4 @@
+#!/bin/sh
+test -e /var/run/squid.pid && \
+test -n "$(cat /var/run/squid.pid|xargs ps -p|grep squid)" && \
+ /usr/sbin/squid -k rotate
diff --git a/www-proxy/squid/files/squid.confd b/www-proxy/squid/files/squid.confd
new file mode 100644
index 000000000000..0fc36106dfdb
--- /dev/null
+++ b/www-proxy/squid/files/squid.confd
@@ -0,0 +1,11 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/www-proxy/squid/files/squid.confd,v 1.1 2004/08/15 19:01:22 stuart Exp $
+
+# Config file for /etc/init.d/squid
+
+SQUID_OPTS="-DYC"
+
+# Max. number of filedescriptors to use. You can increase this on a busy
+# cache to a maximum of (currently) 4096 filedescriptors. Default is 1024.
+SQUID_MAXFD=1024
diff --git a/www-proxy/squid/files/squid.cron b/www-proxy/squid/files/squid.cron
new file mode 100644
index 000000000000..910ee6104cde
--- /dev/null
+++ b/www-proxy/squid/files/squid.cron
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /usr/sbin/squid -k rotate
diff --git a/www-proxy/squid/files/squid.pam b/www-proxy/squid/files/squid.pam
new file mode 100644
index 000000000000..53256789d4e0
--- /dev/null
+++ b/www-proxy/squid/files/squid.pam
@@ -0,0 +1,8 @@
+#%PAM-1.0
+# $Header: /var/cvsroot/gentoo-x86/www-proxy/squid/files/squid.pam,v 1.1 2004/08/15 19:01:22 stuart Exp $
+auth required /lib/security/pam_stack.so service=system-auth
+auth required /lib/security/pam_nologin.so
+account required /lib/security/pam_stack.so service=system-auth
+password required /lib/security/pam_stack.so service=system-auth
+session required /lib/security/pam_stack.so service=system-auth
+session required /lib/security/pam_limits.so
diff --git a/www-proxy/squid/files/squid.rc6 b/www-proxy/squid/files/squid.rc6
new file mode 100644
index 000000000000..8f2f957b136c
--- /dev/null
+++ b/www-proxy/squid/files/squid.rc6
@@ -0,0 +1,89 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/www-proxy/squid/files/squid.rc6,v 1.1 2004/08/15 19:01:22 stuart Exp $
+
+opts="${opts} reload"
+
+depend() {
+ need net
+}
+
+# Try to increase the # of filedescriptors we can open.
+maxfds() {
+ [ -n "$SQUID_MAXFD" ] || return
+ [ -f /proc/sys/fs/file-max ] || return 0
+ [ $SQUID_MAXFD -le 4096 ] || SQUID_MAXFD=4096
+ global_file_max=`cat /proc/sys/fs/file-max`
+ minimal_file_max=$(($SQUID_MAXFD + 4096))
+ if [ "$global_file_max" -lt $minimal_file_max ]
+ then
+ echo $minimal_file_max > /proc/sys/fs/file-max
+ fi
+ ulimit -n $SQUID_MAXFD
+}
+
+checkconfig() {
+ maxfds
+ CACHE_SWAP=`sed -e 's/#.*//g' /etc/squid/squid.conf | \
+ grep cache_dir | awk '{ print $3 }'`
+ [ -z "$CACHE_SWAP" ] && CACHE_SWAP=/var/cache/squid
+ umask 027
+ for x in $CACHE_SWAP ; do
+ if [ ! -d $x/00 ] ; then
+ einfo "Initializing cache directory: $x"
+ cd $x
+ /usr/sbin/squid -z -F 2>/dev/null
+ if [ $? -ne 0 ] ; then
+ eerror "Error initializing: $x"
+ return 1
+ fi
+ fi
+ done
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Starting squid"
+ start-stop-daemon --quiet --start --exec /usr/sbin/squid \
+ --pidfile /var/run/squid.pid -- ${SQUID_OPTS} < /dev/null
+ sleep 1
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping squid"
+ PID=`cat /var/run/squid.pid 2>/dev/null`
+ start-stop-daemon --stop --quiet --exec /usr/sbin/squid \
+ --pidfile /var/run/squid.pid
+ # Now we have to wait until squid has _really_ stopped.
+ sleep 2
+ if test -n "$PID" && kill -0 $PID 2>/dev/null
+ then
+ einfon "Waiting ."
+ cnt=0
+ while kill -0 $PID 2>/dev/null
+ do
+ cnt=`expr $cnt + 1`
+ if [ $cnt -gt 60 ]
+ then
+ # Waited 120 seconds now. Fail.
+ eend 1 "Failed."
+ break
+ fi
+ sleep 2
+ echo -n "."
+ done
+ echo -n "done."
+ eend 0
+ else
+ eend 0
+ fi
+}
+
+reload() {
+ checkconfig || return 1
+ ebegin "Reloading squid"
+ /usr/sbin/squid -k reconfigure
+ eend $?
+}