Package: squid
Version: 2.6.19-1
Severity: normal
Tags: patch
If the 1st cache_dir line in a squid configuration file specifies cache type
coss, the init script
will fail to auto-create the specified coss cache file and thus squid will fail.
This is particularly a problem form people using a coss cache file on a tmpfs
directory, as the cache
structure needs to be re-created on every reboot.
I have modified the startup script to check for the presence of the cache file,
as specified in the
cache_dir line, if the cache type is coss. If not found then 'squid -z' is
executed.
Patch included.
Regards
Os
-- System Information:
Debian Release: lenny/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable')
Architecture: i386 (i686)
Kernel: Linux 2.6.24
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages squid depends on:
ii adduser 3.107 add and remove users and groups
ii debconf [debconf-2.0] 1.5.21 Debian configuration management sy
ii libc6 2.7-10 GNU C Library: Shared libraries
ii libdb4.6 4.6.21-6 Berkeley v4.6 Database Libraries [
ii libldap-2.4-2 2.4.7-6.2 OpenLDAP libraries
ii libpam0g 0.99.7.1-6 Pluggable Authentication Modules l
ii logrotate 3.7.1-3 Log rotation utility
ii lsb-base 3.2-11 Linux Standard Base 3.2 init scrip
ii netbase 4.32 Basic TCP/IP networking system
ii squid-common 2.6.19-1 Internet object cache (WWW proxy c
squid recommends no packages.
-- debconf information:
squid/fix_cachedir_perms: false
squid/fix_lines: true
--- squid 2008-05-04 21:13:04.000000000 +0100
+++ squid.new 2008-05-04 21:23:35.000000000 +0100
@@ -55,6 +55,19 @@
echo "$res"
}
+grepconf3 () {
+ w=" " # space tab
+ sq=/etc/squid/$NAME.conf
+ # sed is cool.
+ res=`sed -ne '
+ s/^'$1'['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
+ t end;
+ d;
+ :end q' < $sq`
+ [ -n "$res" ] || res=$2
+ echo "$res"
+}
+
#
# Try to increase the # of filedescriptors we can open.
#
@@ -72,6 +85,7 @@
start () {
cdr=`grepconf2 cache_dir /var/spool/$NAME`
+ ctp=`grepconf3 cache_dir ufs`
case "$cdr" in
[0-9]*)
@@ -84,9 +98,9 @@
#
# Create spool dirs if they don't exist.
#
- if [ -d "$cdr" -a ! -d "$cdr/00" ]
+ if [ -d "$cdr" -a ! -d "$cdr/00" ] || [ "$ctp" = "coss" -a ! -f "$cdr" ]
then
- log_warning_msg "Creating squid spool directory structure"
+ log_warning_msg "Creating squid cache structure"
$DAEMON $SQUID_ARGS -z
fi