&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8793: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_have_res_ns_list="yes"
else
diff -ruN squid-2.5.STABLE10/configure.in squid-2.5.STABLE11/configure.in
--- squid-2.5.STABLE10/configure.in Mon May 16 16:41:14 2005
+++ squid-2.5.STABLE11/configure.in Thu Sep 22 02:16:26 2005
@@ -3,15 +3,15 @@
dnl
dnl Duane Wessels, wessels@nlanr.net, February 1996 (autoconf v2.9)
dnl
-dnl $Id: configure.in,v 1.251.2.92 2005/05/16 22:38:57 hno Exp $
+dnl $Id: configure.in,v 1.251.2.101 2005/09/22 08:15:05 hno Exp $
dnl
dnl
dnl
AC_INIT(src/main.c)
AC_CONFIG_AUX_DIR(cfgaux)
-AM_INIT_AUTOMAKE(squid, 2.5.STABLE10)
+AM_INIT_AUTOMAKE(squid, 2.5.STABLE11)
AM_CONFIG_HEADER(include/autoconf.h)
-AC_REVISION($Revision: 1.251.2.92 $)dnl
+AC_REVISION($Revision: 1.251.2.101 $)dnl
AC_PREFIX_DEFAULT(/usr/local/squid)
AM_MAINTAINER_MODE
@@ -21,6 +21,7 @@
fi
PRESET_CFLAGS="$CFLAGS"
+PRESET_LDFLAGS="$LDFLAGS"
dnl Check for GNU cc
AC_PROG_CC
@@ -786,16 +787,13 @@
XBS5_LP64_OFF64 64 bits (legacy)
XBS5_LPBIG_OFFBIG large pointers and files (legacy)
default The default for your OS],
-[ case "$enableval" in
+[ case "$withval" in
yes|no)
echo "--with-build-environment expects a build environment string as used by getconf"
exit 1
;;
- _*)
- buildmodel="$enableval"
- ;;
*)
- buildmodel="_$enableval"
+ buildmodel="$withval"
;;
esac
])
@@ -813,11 +811,33 @@
CFLAGS="-D_FILE_OFFSET_BITS=64 $CFLAGS"
fi
fi
-if test -n "$buildmodel" && test "$buildmodel" != "_default"; then
+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"
+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)
@@ -1279,6 +1299,7 @@
ip_fil_compat.h \
ip_fil.h \
ip_nat.h \
+ ipl.h \
libc.h \
limits.h \
linux/netfilter_ipv4.h \
@@ -1296,6 +1317,7 @@
netinet/ip_fil_compat.h \
netinet/ip_fil.h \
netinet/ip_nat.h \
+ netinet/ipl.h \
openssl/err.h \
openssl/md5.h \
openssl/ssl.h \
@@ -1317,6 +1339,7 @@
sys/mount.h \
sys/msg.h \
sys/param.h \
+ sys/prctl.h \
sys/resource.h \
sys/select.h\
sys/socket.h \
@@ -1794,6 +1817,7 @@
mktime \
mstats \
poll \
+ prctl \
pthread_attr_setscope \
pthread_setschedparam \
pthread_attr_setschedparam \
@@ -1930,6 +1954,17 @@
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.
@@ -2038,6 +2073,24 @@
AC_MSG_RESULT($DEFAULT_FD_SETSIZE)
AC_DEFINE_UNQUOTED(DEFAULT_FD_SETSIZE, $DEFAULT_FD_SETSIZE)
+AC_ARG_WITH(maxfd,
+[ --with-maxfd=N Override maximum number of filedescriptors. Useful
+ if you build as another user who is not privileged
+ to use the number of filedescriptors you want the
+ resulting binary to support],
+[ case $withval in
+ [[0-9]]*)
+ SQUID_MAXFD=$withval
+ echo "Maximum filedescriptors set to $SQUID_MAXFD"
+ ;;
+ *)
+ echo "ERROR: Invalid --with-maxfd argument"
+ exit 1
+ ;;
+ esac
+])
+if test -z "$SQUID_MAXFD"; then
+
dnl Not cached since people are likely to tune this
AC_MSG_CHECKING(Maximum number of filedescriptors we can open)
dnl damn! FreeBSD's pthreads breaks dup2().
@@ -2109,6 +2162,7 @@
SQUID_MAXFD=256,
SQUID_MAXFD=256)
AC_MSG_RESULT($SQUID_MAXFD)
+fi # --with-maxfd SQUID_MAXFD
AC_DEFINE_UNQUOTED(SQUID_MAXFD, $SQUID_MAXFD)
if test "$SQUID_MAXFD" -lt 512 ; then
echo "WARNING: $SQUID_MAXFD may not be enough filedescriptors if your"
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_ACCESS_DENIED squid-2.5.STABLE11/errors/Greek/ERR_ACCESS_DENIED
--- squid-2.5.STABLE10/errors/Greek/ERR_ACCESS_DENIED Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_ACCESS_DENIED Thu Sep 1 16:37:29 2005
@@ -0,0 +1,25 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+Óôç ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
+
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_CACHE_ACCESS_DENIED squid-2.5.STABLE11/errors/Greek/ERR_CACHE_ACCESS_DENIED
--- squid-2.5.STABLE10/errors/Greek/ERR_CACHE_ACCESS_DENIED Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_CACHE_ACCESS_DENIED Thu Sep 1 16:37:29 2005
@@ -0,0 +1,34 @@
+
+
+ÓÖÁËÌÁ: Áðáãïñåýåôáé ç Ðñüóâáóç óôï ÌåóïëáâçôÞ
+
+
+
+ÓÖÁËÌÁ
+Ç Ðñüóâáóç óôï ÌåóïëáâçôÞ Áðáãïñåýåôáé
+
+
+Óôç ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+-
+
+Áðáãïñåýåôáé ç Ðñüóâáóç óôï ÌåóïëáâçôÞ.
+
+
+
+
+ËõðÜìáé áëëÜ äåí óáò åðéôñÝðåôáé ç ðñüóâáóç óôç óåëßäá:
+
%U
+áðü áõôüí ôïí ìåóïëáâçôÞ, ìÝ÷ñé íá ðéóôïðïéÞóåôå ôïí åáõôü óáò.
+
+
+
+Èá ðñÝðåé íá ÷ñçóéìïðïéåßôå öõëëïìåôñçôÞ Netscape ÝêäïóÞò ôïõëÜ÷éóôïí 2.0, ôïí
+Microsoft Internet Explorer 3.0 Þ ïðïéïíäÞðïôå öõëëïìåôñçôÞ óõìâáôü ìå HTTP/1.1.
+ÅðéêïéíùíÞóôå ìå ôïí äéá÷åéñéóôÞ ôïõ ìåóïëáâçôÞ óáò
+áí áíôéìåôùðßæåôå äõóêïëßá íá ðéóôïðïéÞóåôå ôïí ëïãáñéáóìü óáò Þ íá
+áëëÜîôå ôïí êùäéêü óáò.
+
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_CACHE_MGR_ACCESS_DENIED squid-2.5.STABLE11/errors/Greek/ERR_CACHE_MGR_ACCESS_DENIED
--- squid-2.5.STABLE10/errors/Greek/ERR_CACHE_MGR_ACCESS_DENIED Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_CACHE_MGR_ACCESS_DENIED Thu Sep 1 16:37:29 2005
@@ -0,0 +1,34 @@
+
+
+ÓÖÁËÌÁ: Áðáãïñåýåôáé ç Ðñüóâáóç óôç Äéá÷åßñéóç
+
+
+
+ÓÖÁËÌÁ
+Áðáãïñåýåôáé ç Ðñüóâáóç óôç Äéá÷åßñéóç ôïõ ÌåóïëáâçôÞ
+
+
+Óôç ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+-
+
+Áðáãïñåýåôáé ç Ðñüóâáóç óôç Äéá÷åßñéóç ôïõ ÌåóïëáâçôÞ.
+
+
+
+
+ËõðÜìáé áëëÜ äåí óáò åðéôñÝðåôáé Þ ðñüóâáóç óôï:
+
%U
+ìÝ÷ñé íá ðéóôïðïéÞóåôå ôïí ëïãáñéáóìü óáò.
+
+
+ Èá ðñÝðåé íá ÷ñçóéìïðïéåßôå öõëëïìåôñçôÞ Netscape Ýêäïóçò ôïõëÜ÷éóôïí 2.0, ôïí
+Microsoft Internet Explorer 3.0 Þ ïðïéïíäÞðïôå öõëëïìåôñçôÞ óõìâáôü ìå HTTP/1.1.
+ÅðéêïéíùíÞóôå ìå ôïí äéá÷åéñéóôÞ ôïõ ìåóïëáâçôÞ óáò
+áí áíôéìåôùðßæåôå äõóêïëßá íá ðéóôïðïéÞóåôå ôïí ëïãáñéáóìü óáò Þ
+áí åßóôå ï äéá÷åéñéóôÞò, äéáâÜóôå ôçí ôåêìçñßùóç ôïõ Squid
+ó÷åôéêÜ ìå ôç äéá÷åßñéóç ôïõ êáé êïéôÜîôå ôá çìåñïëüãéá ôïõ ðñïãñÜììáôïò
+ãéá ðéï ëåðôïìåñåßò áíáöïñÝò óöÜëìáôïò.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_CANNOT_FORWARD squid-2.5.STABLE11/errors/Greek/ERR_CANNOT_FORWARD
--- squid-2.5.STABLE10/errors/Greek/ERR_CANNOT_FORWARD Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_CANNOT_FORWARD Thu Sep 1 16:37:29 2005
@@ -0,0 +1,29 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+-
+
+Áäýíáôç ç ðñïþèçóç ôçò áéôÞóåùò óáò áõôÞ ôç óôéãìÞ.
+
+
+
+
+Ôï áßôçìá óáò äåí Þôáí äõíáôü íá ðñïùèçèåß óôïí áñ÷éêü åîõðçñåôçôÞ
+áëëÜ êáé ïýôå óå êÜðïéï ãïíéêü ìåóïëáâçôÞ. Ç ðéï ðéèáíÝò áéôßåò åßíáé:
+
+- Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ äåí åðéôñÝðåé íá ãßíïíôáé áð åõèåßáò
+ óõíäÝóåéò óôïõò áñ÷éêïýò åîõðçñåôçôÝò, êáé
+
- ¼ëïé ïé äéáèÝóéìïé ãïíéêïß ìåóïëáâçôÝò, äåí åßíáé äéáèÝóéìïé.
+
+Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_CONNECT_FAIL squid-2.5.STABLE11/errors/Greek/ERR_CONNECT_FAIL
--- squid-2.5.STABLE10/errors/Greek/ERR_CONNECT_FAIL Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_CONNECT_FAIL Thu Sep 1 16:37:29 2005
@@ -0,0 +1,27 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÊáôÜ ôçí ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+-
+
+Áðïôõ÷ßá óýíäåóçò
+
+
+
+
+Ôï óýóôçìá åíçìÝñùóå üôé:
+
%E
+
+
+Ï áðïìáêñõóìÝíïò õðïëïãéóôÞò (Þ äßêôõï) ìÜëëïí äåí ëåéôïõñãåß. ÄïêéìÜóôå áñãüôåñá.
+
Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_DNS_FAIL squid-2.5.STABLE11/errors/Greek/ERR_DNS_FAIL
--- squid-2.5.STABLE10/errors/Greek/ERR_DNS_FAIL Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_DNS_FAIL Thu Sep 1 16:37:29 2005
@@ -0,0 +1,30 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÊáôÜ ôçí ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+Äåí Þôáí äõíáôüí íá åîáêñéâùèåß ç äéåýèõíóç IP ãéá ôï üíïìá
+%H
+
+
+
+Ï åîõðçñåôçôÞò ïíïìÜôùí åíçìÝñùóå üôé:
+
+%z
+
+
+
+Áõôü óçìáßíåé üôé:
+
+ Ï ìåóïëáâçôÞò äåí ìðüñåóå íá åîáêñéâþóåé ôçí äéåýèõíóç ðïõ ðëçêôñïëïãÞóáôå.
+ ÅëÝãîôå áí ç äéåýèõíóç åßíáé óùóôÞ.
+
+Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_FORWARDING_DENIED squid-2.5.STABLE11/errors/Greek/ERR_FORWARDING_DENIED
--- squid-2.5.STABLE10/errors/Greek/ERR_FORWARDING_DENIED Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_FORWARDING_DENIED Thu Sep 1 16:37:29 2005
@@ -0,0 +1,25 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÊáôÜ ôçí ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+-
+
+Áðáãïñåýåôáé ç ðñïþèçóç.
+
+
+
+
+Ï ìåóïëáâçôÞò äåí èá ðñïùèÞóåé ôï áßôçìá óáò ãéáôß ðñïóðáèåß íá
+åðéâÜëåé ìéá óõããåíéêÞ ó÷Ýóç. ºóùò ï ðåëÜôçò óôï %i åßíáé Ýíáò ìåóïëáâçôÞò
+ï ïðïßïò äåí åßíáé óùóôÜ ñõèìéóìÝíïò.
+
Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_FTP_DISABLED squid-2.5.STABLE11/errors/Greek/ERR_FTP_DISABLED
--- squid-2.5.STABLE10/errors/Greek/ERR_FTP_DISABLED Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_FTP_DISABLED Thu Sep 1 16:37:30 2005
@@ -0,0 +1,23 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÊáôÜ ôçí ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+-
+
+Ôï ðñùôüêïëëï FTP åßíáé áðåíåñãïðïéçìÝíï
+
+
+
+
+Áõôüò ï ìåóïëáâçôÞò äåí õðïóôçñßæåé FTP.
+
Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_FTP_FAILURE squid-2.5.STABLE11/errors/Greek/ERR_FTP_FAILURE
--- squid-2.5.STABLE10/errors/Greek/ERR_FTP_FAILURE Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_FTP_FAILURE Thu Sep 1 16:37:30 2005
@@ -0,0 +1,19 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÊáôÜ ôçí ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç
+ÐñïÝêõøå óöÜëìá óôï ðñùôüêïëëï FTP:
+%U
+
+Ôï Squid Ýóôåéëå ôç áêüëïõèç åíôïëÞ FTP:
+
%f
+êáé Ýëáâå ôçí áêüëïõèç áðÜíôçóç
+%F
+%g
+Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_FTP_FORBIDDEN squid-2.5.STABLE11/errors/Greek/ERR_FTP_FORBIDDEN
--- squid-2.5.STABLE10/errors/Greek/ERR_FTP_FORBIDDEN Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_FTP_FORBIDDEN Thu Sep 1 16:37:30 2005
@@ -0,0 +1,19 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÊáôÜ ôçí ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç
+ÐñïÝêõøå óöÜëìá åîáêñßâùóçò FTP:
+%U
+
+Ôï Squid Ýóôåéëå ôç áêüëïõèç åíôïëÞ FTP:
+
%f
+êáé Ýëáâå ôçí áêüëïõèç áðÜíôçóç
+%F
+%g
+Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_FTP_NOT_FOUND squid-2.5.STABLE11/errors/Greek/ERR_FTP_NOT_FOUND
--- squid-2.5.STABLE10/errors/Greek/ERR_FTP_NOT_FOUND Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_FTP_NOT_FOUND Thu Sep 1 16:37:30 2005
@@ -0,0 +1,22 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+Ç áêüëïõèç äéåýèõíóç äåí âñÝèçêå:
+%U
+
+Ôï Squid Ýóôåéëå ôç áêüëïõèç åíôïëÞ FTP:
+
%f
+êáé Ýëáâå ôçí áêüëïõèç áðÜíôçóç
+%F
+%g
+
+Áõôü ìðïñåß íá óõìâáßíåé áðü ìéá äéåýèõíóç FTP ìå áðüëõôÞ äéáäñïìÞ (ôï ïðïßï
+äåí åßíáé óýìöùíï ìå ôï RFC 1738). Áí áõôÞ åßíáé ç áéôßá, ôï áñ÷åßï èá ôï
+âñåßôå óôï %B.
+
Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_FTP_PUT_CREATED squid-2.5.STABLE11/errors/Greek/ERR_FTP_PUT_CREATED
--- squid-2.5.STABLE10/errors/Greek/ERR_FTP_PUT_CREATED Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_FTP_PUT_CREATED Thu Sep 1 16:37:30 2005
@@ -0,0 +1,8 @@
+
+
+Ç åíôïëÞ FTP PUT Þôáí åðéôõ÷Þò: Ôï áñ÷åßï äçìéïõñãÞèçêå
+
+
+Ç ëåéôïõñãßá ïëïêëçñþèçêå ìå åðéôõ÷ßá
+Ôï áñ÷åßï äçìéïõñãÞèçêå
+
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_FTP_PUT_ERROR squid-2.5.STABLE11/errors/Greek/ERR_FTP_PUT_ERROR
--- squid-2.5.STABLE10/errors/Greek/ERR_FTP_PUT_ERROR Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_FTP_PUT_ERROR Thu Sep 1 16:37:30 2005
@@ -0,0 +1,26 @@
+
+
+ÓÖÁËÌÁ: Ç ìåôáöüñôùóç FTP áðÝôõ÷å
+
+
+ÓÖÁËÌÁ
+Ç åíôïëÞ FTP PUT/upload áðÝôõ÷å
+
+
+Êáôá ôç äéÜñêåéá ìåôáöüñôùóçò óôç äéåýèõíóç:
+%U
+
+Ôï Squid Ýóôåéëå ôç áêüëïõèç åíôïëÞ FTP:
+
+ %f
+
+êáé Ýëáâå ôçí áêüëïõèç áðÜíôçóç
+
+ %F
+
+
+Áõôü óçìáßíåé üôé:
+
+ÅëÝãîôå ôç äéáäñïìÞ, ôá äéêáéþìáôá, ôïí åëåýèåñï ÷þñï êáé îáíáäïêéìÜóôå.
+
+Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_FTP_PUT_MODIFIED squid-2.5.STABLE11/errors/Greek/ERR_FTP_PUT_MODIFIED
--- squid-2.5.STABLE10/errors/Greek/ERR_FTP_PUT_MODIFIED Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_FTP_PUT_MODIFIED Thu Sep 1 16:37:30 2005
@@ -0,0 +1,8 @@
+
+
+Ç åíôïëÞ FTP PUT Þôáí åðéôõ÷Þò Ôï áñ÷åßï áíáíåþèçêå
+
+
+Ç ëåéôïõñãßá ïëïêëçñþèçêå ìå åðéôõ÷ßá
+Ôï áñ÷åßï áíáíåþèçêå
+
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_FTP_UNAVAILABLE squid-2.5.STABLE11/errors/Greek/ERR_FTP_UNAVAILABLE
--- squid-2.5.STABLE10/errors/Greek/ERR_FTP_UNAVAILABLE Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_FTP_UNAVAILABLE Thu Sep 1 16:37:30 2005
@@ -0,0 +1,18 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+Ï åîõðçñåôçôÞò FTP Þôáí ðïëý áðáó÷ïëçìÝíïò êáôÜ ôçí áíÜêôçóç ôïõ:
+%U
+
+Ôï Squid Ýóôåéëå ôç áêüëïõèç åíôïëÞ FTP:
+
%f
+êáé Ýëáâå ôçí áêüëïõèç áðÜíôçóç
+%F
+%g
+Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_INVALID_REQ squid-2.5.STABLE11/errors/Greek/ERR_INVALID_REQ
--- squid-2.5.STABLE10/errors/Greek/ERR_INVALID_REQ Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_INVALID_REQ Thu Sep 1 16:37:30 2005
@@ -0,0 +1,33 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÊáôÜ ôç ðñïóðÜèåéá åðåîåñãáóßáò ôçò áßôçóçò:
+
+%R
+
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+
+
+ÊÜðïéï óçìåßï ôçò áßôçóçò HTTP åßíáé Üêõñï. ÐéèáíÜ ðñïâëÞìáôá:
+
+- ÅëëéðÞò Þ Üãíùóôç ìÝèïäïò áßôçóçò
+
- ÅëëéðÞò Äéåýèõíóç (URL)
+
- ÅëëéðÝò áíáãíùñéóôéêü HTTP (HTTP/1.0)
+
- Ç áßôçóç åßíáé õðåñìåãÝèçò
+
- ¸ëåéðåò Ðåñéå÷üìåíï- ÌÞêïò ãéá ôéò áéôÞóåéò POST Þ PUT
+
- ¶êõñïé ÷áñáêôÞñåò óôï üíïìá õðïëïãéóôÞ, ïé õðïãåãñáììÝíåò äåí åðéôñÝðïíôáé
+
+Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_INVALID_RESP squid-2.5.STABLE11/errors/Greek/ERR_INVALID_RESP
--- squid-2.5.STABLE10/errors/Greek/ERR_INVALID_RESP Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_INVALID_RESP Thu Sep 1 16:37:30 2005
@@ -0,0 +1,29 @@
+
+
+ERROR: The requested URL could not be retrieved
+
+
+ERROR
+The requested URL could not be retrieved
+
+
+While trying to process the request:
+
+%R
+
+
+The following error was encountered:
+
+-
+
+Invalid Response
+
+
+
+
+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.
+
+
Your cache administrator is %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_INVALID_URL squid-2.5.STABLE11/errors/Greek/ERR_INVALID_URL
--- squid-2.5.STABLE10/errors/Greek/ERR_INVALID_URL Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_INVALID_URL Thu Sep 1 16:37:30 2005
@@ -0,0 +1,30 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÊáôÜ ôçí ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+-
+
+ËáíèáóìÝíç Äéåýèõíóç
+
+
+
+
+ÕðÜñ÷åé ðñüâëçìá ìå ôçí áéôïýìåíç äéåýèõíóç. ÐéèáíÝò áéôßåò:
+Some aspect of the requested URL is incorrect. Possible problems:
+
+- ÅëëéðÝò Þ ëáíèáóìÝíï ðñùôüêïëëï ðñüóâáóçò (èá ðñÝðåé íá åßíáé `http://'' Þ ðáñüìïéï)
+
- ÅëëéðÝò üíïìá õðïëïãéóôÞ
+
- ËáíèáóìÝíïé ÷áñáêôÞñåò äéáöõãÞò óôç äéåýèõíóç
+
- ËáíèáóìÝíïé ÷áñáêôÞñåò óôï üíïìá õðïëïãéóôÞ ' ïé õðïãñáììßóåéò äåí åðéôñÝðïíôáé
+
+Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_LIFETIME_EXP squid-2.5.STABLE11/errors/Greek/ERR_LIFETIME_EXP
--- squid-2.5.STABLE10/errors/Greek/ERR_LIFETIME_EXP Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_LIFETIME_EXP Thu Sep 1 16:37:30 2005
@@ -0,0 +1,24 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÊáôÜ ôçí ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+-
+
+¸ëçîå ï ×ñüíïò ÓýíäåóÞò
+
+
+
+
+Ôï Squid ôåñìÜôéóå ôçí áßôçóç åðåéäÞ îåðÝñáóå ôïí ìÝãéóôï ÷ñüíï
+óýíäåóçò.
+
Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_NO_RELAY squid-2.5.STABLE11/errors/Greek/ERR_NO_RELAY
--- squid-2.5.STABLE10/errors/Greek/ERR_NO_RELAY Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_NO_RELAY Thu Sep 1 16:37:30 2005
@@ -0,0 +1,23 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+Óôç ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+-
+
+Äåí õðÜñ÷åé Wais Relay
+
+
+
+
+Äåí Ý÷åé êáèïñéóôåß õðïëïãéóôÞò WAIS Relay ãéá áõôü ôï ìåóïëáâçôÞ! Ðáñáðïíåèåßôå óôïí Äéá÷åéñéóôÞ.
+
Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_ONLY_IF_CACHED_MISS squid-2.5.STABLE11/errors/Greek/ERR_ONLY_IF_CACHED_MISS
--- squid-2.5.STABLE10/errors/Greek/ERR_ONLY_IF_CACHED_MISS Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_ONLY_IF_CACHED_MISS Thu Sep 1 16:37:30 2005
@@ -0,0 +1,28 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+Óôç ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+-
+
+Äåí âñÝèçêå Ýãêõñï áíôßãñáöï óôçí ìíÞìç êáé Ý÷åé êáèïñéóôåß ç åðéëïãÞ
+
only-if-cached
.
+
+
+
+
+
+ÆçôÞóáôå ìéá óåëßäá ìå åíåñãïðïéçìÝíç ôçí åðéëïãÞ only-if-cached
.
+Äåí âñÝèçêå áíôßãñáöï óôç ìíÞìç, Þ Þôáí áðáñáßôçôç ç åðáíáöüñôùóÞ
+ôïõ ðïõ áðáãïñåýåôáé áðü ôçí åðéëïãÞ only-if-cached
.
+
+
Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_READ_ERROR squid-2.5.STABLE11/errors/Greek/ERR_READ_ERROR
--- squid-2.5.STABLE10/errors/Greek/ERR_READ_ERROR Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_READ_ERROR Thu Sep 1 16:37:30 2005
@@ -0,0 +1,28 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+-
+
+ÓöÜëìá ÁíÜãíùóçò
+
+
+
+
+Ôï óýóôçìá åðÝóôñåøå:
+
%E
+
+
+ÐñïÝêõøå óöÜëìá êáôÜ ôçí áíÜãíùóç äåäïìÝíùí áðü ôï äßêôõï. Ðáñáêáëþ
+îáíáäïêéìÜóôå ôï áßôçìá óáò.
+
Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_READ_TIMEOUT squid-2.5.STABLE11/errors/Greek/ERR_READ_TIMEOUT
--- squid-2.5.STABLE10/errors/Greek/ERR_READ_TIMEOUT Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_READ_TIMEOUT Thu Sep 1 16:37:30 2005
@@ -0,0 +1,28 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+Óôç ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+Óôç ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+
+-
+
+ÔÝëïò ×ñüíïõ ÁíÜãíùóçò
+
+
+
+
+Ôï óýóôçìá åðÝóôñåøå:
+
%E
+
+
+ÐñïÝêõøå ÷ñïíéêü üñéï êáôÜ ôçí áíÜãíùóç äåäïìÝíùí áðü ôï äßêôõï. Ôï äßêôõï
+Þ ï åîõðçñåôçôÞò äåí ëåéôïõñãåß Þ õðïëåéôïõñãåß. Ðáñáêáëþ îáíáäïêéìÜóôå.
+
Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_SHUTTING_DOWN squid-2.5.STABLE11/errors/Greek/ERR_SHUTTING_DOWN
--- squid-2.5.STABLE10/errors/Greek/ERR_SHUTTING_DOWN Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_SHUTTING_DOWN Thu Sep 1 16:37:30 2005
@@ -0,0 +1,17 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+Ôï óýóôçìá åßíáé óå äéáäéêáóßá ôåñìáôéóìïý êáé äåí ìðïñåß íá åîõðçñåôÞóåé
+ôï áßôçìá óáò áõôÞ ôç óôéãìÞ. Ðáñáêáëþ äïêéìÜóôå îáíÜ óå ëßãï.
+
Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_SOCKET_FAILURE squid-2.5.STABLE11/errors/Greek/ERR_SOCKET_FAILURE
--- squid-2.5.STABLE10/errors/Greek/ERR_SOCKET_FAILURE Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_SOCKET_FAILURE Thu Sep 1 16:37:30 2005
@@ -0,0 +1,28 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+Óôç ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+
+
+Ôï óýóôçìá åðÝóôñåøå:
+
%E
+
+
+Ôï Squid äåí ìðïñåß íá äçìéïõñãÞóåé óýíäåóç TCP, õðïèåôéêÜ ëüãù öüñôïõ.
+Ðáñáêáëþ îáíáäïêéìÜóôå.
+
Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_TOO_BIG squid-2.5.STABLE11/errors/Greek/ERR_TOO_BIG
--- squid-2.5.STABLE10/errors/Greek/ERR_TOO_BIG Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_TOO_BIG Thu Sep 1 16:37:30 2005
@@ -0,0 +1,27 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+Óôç ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+-
+
+Ôï áßôçìá Þ ç áðÜíôçóç åßíáé õðåñìåãÝèç
+
+
+Áí êÜíåôå ìéá áßôçóç POST Þ PUT, ôüôå ôï óþìá (áõôü ðïõ ðñïóðáèåßôå
+íá áíåâÜóåôå) åßíáé ðïëý ìåãÜëï. Áí êÜíåôå ìéá áßôçóç GET, ôüôå
+ôï óþìá (áõôü ðïõ ðñïóðáèåßôå íá êáôåâÜóåôå) åßíáé ðïëý ìåãÜëï.
+Ôá üñéá áõôÜ êáèïñßæïíôáé áðü ôïí Ðáñï÷Ýá Õðçñåóéþí Äéáäéêôýïõ ðïõ
+ëåéôïõñãåß áõôÞ ôçí õðçñåóßá. Ðáñáêáëþ åðéêïéíùíÞóôå ìáæß ôïõò áí
+íïìßæåôå ïôé áõôü åßíáé ëÜèïò.
+
+Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_UNSUP_REQ squid-2.5.STABLE11/errors/Greek/ERR_UNSUP_REQ
--- squid-2.5.STABLE10/errors/Greek/ERR_UNSUP_REQ Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_UNSUP_REQ Thu Sep 1 16:37:30 2005
@@ -0,0 +1,24 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+Óôç ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+-
+
+Ìç õðïóôçñéæüìåíç ìÝèïäïò áßôçóçò êáé ðñùôüêïëëï
+
+
+
+
+Ôï Squid äåí õðïóôçñßæåé üëåò ôéò ìåèüäïõò áéôÞóåùí ãéá üëá ôá ðñùôüêïëëá
+ðñüóâáóçò. Ãéá ðáñÜäåéãìá, ôï POST ãéá Gopher äåí õðïóôçñßæåôáé.
+
Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_URN_RESOLVE squid-2.5.STABLE11/errors/Greek/ERR_URN_RESOLVE
--- squid-2.5.STABLE10/errors/Greek/ERR_URN_RESOLVE Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_URN_RESOLVE Thu Sep 1 16:37:30 2005
@@ -0,0 +1,23 @@
+
+
+ÓÖÁËÌÁ: Äåí âñÝèçêå äéåýèõíóç ãéá ôï æçôïýìåíï üíïìá
+
+
+ÓÖÁËÌÁ
+Äåí âñÝèçêå äéåýèõíóç ãéá ôï æçôïýìåíï üíïìá
+
+
+ÊáôÜ ôç äéÜñêåéá åýñåóçò ôïõ ïíüìáôïò (URN):
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+-
+
+Áäýíáôç ç åýñåóç ôïõ ïíüìáôïò
+
+
+
+
+Ìåôáîý ìáò, ìçí ðåñéìÝíåôå êáé ðïëëÜ áðü URNs óôï %T :)
+
Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_WRITE_ERROR squid-2.5.STABLE11/errors/Greek/ERR_WRITE_ERROR
--- squid-2.5.STABLE10/errors/Greek/ERR_WRITE_ERROR Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_WRITE_ERROR Thu Sep 1 16:37:30 2005
@@ -0,0 +1,28 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+Óôç ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+
+
+Ôï óýóôçìá åðÝóôñåøå:
+
%E
+
+
+ÐñïÝêõøå óöÜëìá êáôÜ ôçí åããñáöÞ óôï äßêôõï. Ðáñáêáëþ äïêéìÜóôå îáíÜ
+ôï áßôçìá óáò.
+
Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/ERR_ZERO_SIZE_OBJECT squid-2.5.STABLE11/errors/Greek/ERR_ZERO_SIZE_OBJECT
--- squid-2.5.STABLE10/errors/Greek/ERR_ZERO_SIZE_OBJECT Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/ERR_ZERO_SIZE_OBJECT Thu Sep 1 16:37:30 2005
@@ -0,0 +1,23 @@
+
+
+ÓÖÁËÌÁ: Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+ÓÖÁËÌÁ
+Áäýíáôç ç ðñüóâáóç óôçí áéôïýìåíç äéåýèõíóç
+
+
+Óôç ðñïóðÜèåéá ðñüóâáóçò óôç äéåýèõíóç:
+%U
+
+ÐñïÝêõøå ôï áêüëïõèï óöÜëìá:
+
+-
+
+ÁðÜíôçóç Ìçäåíéêïý ÌåãÝèïõò
+
+
+
+
+Ôï Squid äåí Ýëáâå äåäïìÝíá ãéá áõôü ôï áßôçìá.
+
Ï äéá÷åéñéóôÞò ôïõ ìåóïëáâçôÞ óáò åßíáé ï %w.
diff -ruN squid-2.5.STABLE10/errors/Greek/README squid-2.5.STABLE11/errors/Greek/README
--- squid-2.5.STABLE10/errors/Greek/README Wed Dec 31 17:00:00 1969
+++ squid-2.5.STABLE11/errors/Greek/README Thu Sep 1 16:37:30 2005
@@ -0,0 +1,2 @@
+Thank you to George Papamichelakis
+for creating these error pages in Greek!
diff -ruN squid-2.5.STABLE10/errors/Makefile.am squid-2.5.STABLE11/errors/Makefile.am
--- squid-2.5.STABLE10/errors/Makefile.am Mon Dec 1 03:12:28 2003
+++ squid-2.5.STABLE11/errors/Makefile.am Thu Sep 1 16:37:29 2005
@@ -1,6 +1,6 @@
## Process this file with automake to produce Makefile.in
#
-# $Id: Makefile.am,v 1.5.2.7 2003/12/01 10:12:28 hno Exp $
+# $Id: Makefile.am,v 1.5.2.8 2005/09/01 22:37:29 hno Exp $
#
errordir = $(datadir)/errors
@@ -22,6 +22,7 @@
Finnish \
French \
German \
+ Greek \
Hebrew \
Hungarian \
Italian \
diff -ruN squid-2.5.STABLE10/errors/Makefile.in squid-2.5.STABLE11/errors/Makefile.in
--- squid-2.5.STABLE10/errors/Makefile.in Fri Mar 18 17:55:41 2005
+++ squid-2.5.STABLE11/errors/Makefile.in Thu Sep 1 16:37:29 2005
@@ -14,7 +14,7 @@
@SET_MAKE@
#
-# $Id: Makefile.in,v 1.15.2.17 2005/03/19 00:55:41 hno Exp $
+# $Id: Makefile.in,v 1.15.2.18 2005/09/01 22:37:29 hno Exp $
#
SHELL = @SHELL@
@@ -135,6 +135,7 @@
Finnish \
French \
German \
+ Greek \
Hebrew \
Hungarian \
Italian \
diff -ruN squid-2.5.STABLE10/errors/Spanish/ERR_CACHE_ACCESS_DENIED squid-2.5.STABLE11/errors/Spanish/ERR_CACHE_ACCESS_DENIED
--- squid-2.5.STABLE10/errors/Spanish/ERR_CACHE_ACCESS_DENIED Wed Aug 28 15:08:14 2002
+++ squid-2.5.STABLE11/errors/Spanish/ERR_CACHE_ACCESS_DENIED Mon Jun 6 15:35:43 2005
@@ -1,11 +1,11 @@
-ERROR: Acceso Denegado al Cache
+ERROR: Acceso Denegado al Caché
ERROR
-Acceso Denegado al Cache
+Acceso Denegado al Caché
Mientras se intentaba traer el URL:
@@ -15,20 +15,20 @@
-
-Acceso denegado al cache.
+Acceso denegado al caché.
Disculpe, Ud. no está autorizado a acceder a:
%U
-desde este cache hasta que se haya autenticado.
+desde este caché hasta que se haya autenticado.
-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 administrador del cache si
+Ud. necesita utilizar Netscape versió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 administrador del caché si
tiene dificultad para autenticarse o
cambie su password.
diff -ruN squid-2.5.STABLE10/errors/Spanish/ERR_CACHE_MGR_ACCESS_DENIED squid-2.5.STABLE11/errors/Spanish/ERR_CACHE_MGR_ACCESS_DENIED
--- squid-2.5.STABLE10/errors/Spanish/ERR_CACHE_MGR_ACCESS_DENIED Wed Aug 28 15:08:14 2002
+++ squid-2.5.STABLE11/errors/Spanish/ERR_CACHE_MGR_ACCESS_DENIED Mon Jun 6 15:35:43 2005
@@ -1,6 +1,6 @@
-ERROR: Acceso Denegado al Cache Manager
+ERROR: Acceso Denegado al Caché Manager
@@ -21,13 +21,13 @@
Disculpe, Ud. no está autorizado a acceder a:
%U
-desde este cache hasta que se haya autenticado.
+desde este caché hasta que se haya autenticado.
-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 administrador del cache si
+Ud. necesita utilizar Netscape versió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 administrador del caché si
tiene dificultad para autenticarse, o si Ud. es el administrador,
lea la documentación de Squid sobre interfaz del cache manager y
-chequee en el log de cache mensajes de error más detallados.
+chequee en el log de caché mensajes de error más detallados.
diff -ruN squid-2.5.STABLE10/errors/Spanish/ERR_CANNOT_FORWARD squid-2.5.STABLE11/errors/Spanish/ERR_CANNOT_FORWARD
--- squid-2.5.STABLE10/errors/Spanish/ERR_CANNOT_FORWARD Wed Aug 28 15:08:14 2002
+++ squid-2.5.STABLE11/errors/Spanish/ERR_CANNOT_FORWARD Mon Jun 6 15:35:43 2005
@@ -19,13 +19,13 @@
-La petición no ha podido ser enviada al servidor origen o a alguna
-de las cachés padres. Las razones más probables de que haya
+La petición no ha podido ser enviada al servidor origen o a alguno
+de los cachés padres. Las razones más probables de que haya
ocurrido este error son:
-- El administrador de la caché no permite que esta
+
- El administrador de lo caché no permite que este
caché realice conexiones directas a los servidores
origen, y
-
- Todas las cachés configuradas como padres son inalcanzables
+
- Todos los cachés configurados como padres son inalcanzables
en este momento.
diff -ruN squid-2.5.STABLE10/errors/Spanish/ERR_DNS_FAIL squid-2.5.STABLE11/errors/Spanish/ERR_DNS_FAIL
--- squid-2.5.STABLE10/errors/Spanish/ERR_DNS_FAIL Wed Aug 28 15:08:14 2002
+++ squid-2.5.STABLE11/errors/Spanish/ERR_DNS_FAIL Mon Jun 6 15:35:43 2005
@@ -12,7 +12,7 @@
Ha ocurrido el siguiente problema:
Incapaz de determinar la dirección IP a partir
-del nombre de la máquina:
+del nombre de la máquina:
%H
@@ -25,7 +25,7 @@
Esto significa que:
- La caché no ha sido capaz de resolver el nombre de máquina
+ El caché no ha sido capaz de resolver el nombre de máquina
presente en la URL.
Compruebe que la dirección sea correcta.
diff -ruN squid-2.5.STABLE10/errors/Spanish/ERR_FORWARDING_DENIED squid-2.5.STABLE11/errors/Spanish/ERR_FORWARDING_DENIED
--- squid-2.5.STABLE10/errors/Spanish/ERR_FORWARDING_DENIED Wed Aug 28 15:08:14 2002
+++ squid-2.5.STABLE11/errors/Spanish/ERR_FORWARDING_DENIED Mon Jun 6 15:35:43 2005
@@ -19,7 +19,7 @@
-Esta caché no permite reenviar su petición porque trata de
+Este caché no permite reenviar su petición porque trata de
obligar a mantener una relación de hermandad.
-Quizás el cliente en %i es una caché que ha sido mal configurada.
+Quizás el cliente en %i es un caché que ha sido mal configurado.
diff -ruN squid-2.5.STABLE10/errors/Spanish/ERR_FTP_DISABLED squid-2.5.STABLE11/errors/Spanish/ERR_FTP_DISABLED
--- squid-2.5.STABLE10/errors/Spanish/ERR_FTP_DISABLED Wed Aug 28 15:08:14 2002
+++ squid-2.5.STABLE11/errors/Spanish/ERR_FTP_DISABLED Mon Jun 6 15:35:43 2005
@@ -19,5 +19,5 @@
-Esta caché no proporciona servicio caché para el protocolo FTP.
+Este caché no proporciona servicio caché para el protocolo FTP.
diff -ruN squid-2.5.STABLE10/errors/Spanish/ERR_FTP_NOT_FOUND squid-2.5.STABLE11/errors/Spanish/ERR_FTP_NOT_FOUND
--- squid-2.5.STABLE10/errors/Spanish/ERR_FTP_NOT_FOUND Wed Aug 28 15:08:14 2002
+++ squid-2.5.STABLE11/errors/Spanish/ERR_FTP_NOT_FOUND Mon Jun 6 15:35:43 2005
@@ -17,7 +17,7 @@
%g
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
+lo tanto no cumple con RFC 1738). Si esta es la causa, entonces el
archivo puede ser obtenido en %B.
diff -ruN squid-2.5.STABLE10/errors/Spanish/ERR_INVALID_REQ squid-2.5.STABLE11/errors/Spanish/ERR_INVALID_REQ
--- squid-2.5.STABLE10/errors/Spanish/ERR_INVALID_REQ Wed Aug 28 15:08:14 2002
+++ squid-2.5.STABLE11/errors/Spanish/ERR_INVALID_REQ Mon Jun 6 15:35:43 2005
@@ -7,7 +7,7 @@
El URL solicitado no se ha podido conseguir
-Mientras se intentaba procesar la petición:
+Mientras se intentaba procesar la petición:
%R
diff -ruN squid-2.5.STABLE10/errors/Spanish/ERR_INVALID_RESP squid-2.5.STABLE11/errors/Spanish/ERR_INVALID_RESP
--- squid-2.5.STABLE10/errors/Spanish/ERR_INVALID_RESP Mon Jan 17 15:13:04 2005
+++ squid-2.5.STABLE11/errors/Spanish/ERR_INVALID_RESP Mon Jun 6 15:35:43 2005
@@ -1,29 +1,30 @@
-ERROR: The requested URL could not be retrieved
+ERROR: El URL solicitado no se ha podido conseguir
ERROR
-The requested URL could not be retrieved
+El URL solicitado no se ha podido conseguir
-While trying to process the request:
+Mientras se intentaba procesar la petición:
%R
-The following error was encountered:
+Ha ocurrido el siguiente problema:
-
-Invalid Response
+Respuesta no válida.
-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.
-
-
Your cache administrator is %w.
+El mensaje de Respuesta HTTP recibido del servidor contactado
+no pudo ser entendido o tenía alguna malformación.
+Por favor contacte al operador del sitio web. Quizas su
+administrador del caché pueda darle a Ud. más
+detalles acerca de la naturaleza exacta del problema en caso
+de ser necesario.
+
Su administrador del caché es %w.
diff -ruN squid-2.5.STABLE10/errors/Spanish/ERR_INVALID_URL squid-2.5.STABLE11/errors/Spanish/ERR_INVALID_URL
--- squid-2.5.STABLE10/errors/Spanish/ERR_INVALID_URL Wed Aug 28 15:08:14 2002
+++ squid-2.5.STABLE11/errors/Spanish/ERR_INVALID_URL Mon Jun 6 15:35:43 2005
@@ -14,7 +14,7 @@
-
-URL incorrecta.
+URL incorrecto.
diff -ruN squid-2.5.STABLE10/errors/Spanish/ERR_NO_RELAY squid-2.5.STABLE11/errors/Spanish/ERR_NO_RELAY
--- squid-2.5.STABLE10/errors/Spanish/ERR_NO_RELAY Wed Aug 28 15:08:14 2002
+++ squid-2.5.STABLE11/errors/Spanish/ERR_NO_RELAY Mon Jun 6 15:35:43 2005
@@ -19,5 +19,6 @@
-Esta caché no tiene definido ninguna pasarela para el protocolo WAIS !!
-¡Gríteselo al administrador de la caché !
+Este caché no tiene definido ninguna pasarela para el protocolo WAIS !!
+¡Grítele al administrador del caché !
+
Su administrador del caché es %w.
+Su administrador del caché es %w.
diff -ruN squid-2.5.STABLE10/errors/Spanish/ERR_UNSUP_REQ squid-2.5.STABLE11/errors/Spanish/ERR_UNSUP_REQ
--- squid-2.5.STABLE10/errors/Spanish/ERR_UNSUP_REQ Wed Aug 28 15:08:14 2002
+++ squid-2.5.STABLE11/errors/Spanish/ERR_UNSUP_REQ Mon Jun 6 15:35:43 2005
@@ -14,7 +14,7 @@
-
-Método de la petición y protocolo no soportados
+Método de la petición y protocolo no soportados.
diff -ruN squid-2.5.STABLE10/helpers/basic_auth/LDAP/squid_ldap_auth.c squid-2.5.STABLE11/helpers/basic_auth/LDAP/squid_ldap_auth.c
--- squid-2.5.STABLE10/helpers/basic_auth/LDAP/squid_ldap_auth.c Fri Apr 22 14:29:29 2005
+++ squid-2.5.STABLE11/helpers/basic_auth/LDAP/squid_ldap_auth.c Sat Sep 10 18:53:23 2005
@@ -259,12 +259,12 @@
}
if (use_tls) {
#ifdef LDAP_OPT_X_TLS
- if (version == LDAP_VERSION3 && ldap_start_tls_s(ld, NULL, NULL) != LDAP_SUCCESS) {
- fprintf(stderr, "Could not Activate TLS connection\n");
- exit(1);
- } else {
+ if (version != LDAP_VERSION3) {
fprintf(stderr, "TLS requires LDAP version 3\n");
exit(1);
+ } else if (ldap_start_tls_s(ld, NULL, NULL) != LDAP_SUCCESS) {
+ fprintf(stderr, "Could not Activate TLS connection\n");
+ exit(1);
}
#else
fprintf(stderr, "TLS not supported with your LDAP library\n");
@@ -672,14 +672,16 @@
}
if (debug)
- fprintf(stderr, "attempting to bind to user '%s'\n", dn);
+ 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 && 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)
+ 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 -ruN squid-2.5.STABLE10/helpers/basic_auth/MSNT/smblib.c squid-2.5.STABLE11/helpers/basic_auth/MSNT/smblib.c
--- squid-2.5.STABLE10/helpers/basic_auth/MSNT/smblib.c Wed Mar 9 07:28:32 2005
+++ squid-2.5.STABLE11/helpers/basic_auth/MSNT/smblib.c Thu Jun 30 12:50:55 2005
@@ -127,12 +127,12 @@
* 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[i] = xtoupper(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[i] = xtoupper(con->myname[i]);
calling[strlen(con->myname)] = 0; /* Make it a string */
@@ -229,12 +229,12 @@
* 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[i] = xtoupper(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[i] = xtoupper(con->myname[i]);
calling[strlen(con->myname)] = 0; /* Make it a string */
diff -ruN squid-2.5.STABLE10/helpers/basic_auth/MSNT/smblib.h squid-2.5.STABLE11/helpers/basic_auth/MSNT/smblib.h
--- squid-2.5.STABLE10/helpers/basic_auth/MSNT/smblib.h Wed Jun 26 13:11:17 2002
+++ squid-2.5.STABLE11/helpers/basic_auth/MSNT/smblib.h Thu Jun 30 12:50:55 2005
@@ -23,6 +23,7 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include "util.h"
#include "std-defines.h"
#include "smblib-common.h"
diff -ruN squid-2.5.STABLE10/helpers/basic_auth/YP/nis_support.c squid-2.5.STABLE11/helpers/basic_auth/YP/nis_support.c
--- squid-2.5.STABLE10/helpers/basic_auth/YP/nis_support.c Wed Nov 14 15:11:48 2001
+++ squid-2.5.STABLE11/helpers/basic_auth/YP/nis_support.c Sat Sep 10 04:02:41 2005
@@ -2,9 +2,9 @@
* Written By Rabellino Sergio (rabellino@di.unito.it) For Solaris 2.x
*/
-#include
#include
#include
+#include
#include
#include
#include
diff -ruN squid-2.5.STABLE10/helpers/external_acl/ldap_group/squid_ldap_group.c squid-2.5.STABLE11/helpers/external_acl/ldap_group/squid_ldap_group.c
--- squid-2.5.STABLE10/helpers/external_acl/ldap_group/squid_ldap_group.c Tue Mar 22 15:54:27 2005
+++ squid-2.5.STABLE11/helpers/external_acl/ldap_group/squid_ldap_group.c Sat Sep 10 18:53:23 2005
@@ -499,14 +499,14 @@
}
if (use_tls) {
#ifdef LDAP_OPT_X_TLS
- if (version == LDAP_VERSION3 && ldap_start_tls_s(ld, NULL, NULL) != LDAP_SUCCESS) {
+ if (version != LDAP_VERSION3) {
+ fprintf(stderr, "TLS requires LDAP version 3\n");
+ exit(1);
+ } else if (ldap_start_tls_s(ld, NULL, NULL) != LDAP_SUCCESS) {
fprintf(stderr, "Could not Activate TLS connection\n");
ldap_unbind(ld);
ld = NULL;
break;
- } else {
- fprintf(stderr, "TLS requires LDAP version 3\n");
- exit(1);
}
#else
fprintf(stderr, "TLS not supported with your LDAP library\n");
diff -ruN squid-2.5.STABLE10/helpers/external_acl/wbinfo_group/wbinfo_group.pl squid-2.5.STABLE11/helpers/external_acl/wbinfo_group/wbinfo_group.pl
--- squid-2.5.STABLE10/helpers/external_acl/wbinfo_group/wbinfo_group.pl Tue Feb 17 15:37:51 2004
+++ squid-2.5.STABLE11/helpers/external_acl/wbinfo_group/wbinfo_group.pl Wed Jun 29 14:34:14 2005
@@ -15,6 +15,9 @@
# 2002-07-05 Jerry Murdock
# Initial release
#
+# 2005-06-28 Arno Streuli
+# Add multi group check
+
# external_acl uses shell style lines in it's protocol
require 'shellwords.pl';
@@ -47,8 +50,12 @@
while () {
chop;
&debug ("Got $_ from squid");
- ($user, $group) = &shellwords;
- $ans = &check($user, $group);
+ ($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";
}
diff -ruN squid-2.5.STABLE10/helpers/external_acl/winbind_group/wb_check_group.c squid-2.5.STABLE11/helpers/external_acl/winbind_group/wb_check_group.c
--- squid-2.5.STABLE10/helpers/external_acl/winbind_group/wb_check_group.c Fri Mar 25 19:50:50 2005
+++ squid-2.5.STABLE11/helpers/external_acl/winbind_group/wb_check_group.c Thu Jun 30 12:50:55 2005
@@ -127,7 +127,7 @@
static int strCaseCmp (const char *s1, const char *s2)
{
- while (*s1 && toupper (*s1) == toupper (*s2)) s1++, s2++;
+ while (*s1 && xtoupper (*s1) == xtoupper (*s2)) s1++, s2++;
return *s1 - *s2;
}
diff -ruN squid-2.5.STABLE10/helpers/ntlm_auth/SMB/ntlm_auth.c squid-2.5.STABLE11/helpers/ntlm_auth/SMB/ntlm_auth.c
--- squid-2.5.STABLE10/helpers/ntlm_auth/SMB/ntlm_auth.c Wed Mar 9 07:30:37 2005
+++ squid-2.5.STABLE11/helpers/ntlm_auth/SMB/ntlm_auth.c Thu Jun 30 12:50:55 2005
@@ -81,7 +81,7 @@
{
char *p = string, c;
while ((c = *p)) {
- *p = toupper(c);
+ *p = xtoupper(c);
p++;
}
}
@@ -92,7 +92,7 @@
{
char *p = string, c;
while ((c = *p)) {
- *p = tolower(c);
+ *p = xtolower(c);
p++;
}
}
diff -ruN squid-2.5.STABLE10/helpers/ntlm_auth/SMB/smbval/smbencrypt.c squid-2.5.STABLE11/helpers/ntlm_auth/SMB/smbval/smbencrypt.c
--- squid-2.5.STABLE10/helpers/ntlm_auth/SMB/smbval/smbencrypt.c Wed Mar 9 07:33:01 2005
+++ squid-2.5.STABLE11/helpers/ntlm_auth/SMB/smbval/smbencrypt.c Thu Jun 30 12:50:55 2005
@@ -200,7 +200,7 @@
* #endif *//* KANJI_WIN95_COMPATIBILITY */
{
if (islower((int)(unsigned char)*s))
- *s = toupper(*s);
+ *s = xtoupper(*s);
s++;
}
}
diff -ruN squid-2.5.STABLE10/helpers/ntlm_auth/SMB/smbval/smblib.c squid-2.5.STABLE11/helpers/ntlm_auth/SMB/smbval/smblib.c
--- squid-2.5.STABLE10/helpers/ntlm_auth/SMB/smbval/smblib.c Wed Mar 9 07:28:32 2005
+++ squid-2.5.STABLE11/helpers/ntlm_auth/SMB/smbval/smblib.c Thu Jun 30 12:50:55 2005
@@ -170,12 +170,12 @@
* 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[i] = xtoupper(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[i] = xtoupper(con->myname[i]);
calling[strlen(con->myname)] = 0; /* Make it a string */
@@ -271,12 +271,12 @@
* 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[i] = xtoupper(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[i] = xtoupper(con->myname[i]);
calling[strlen(con->myname)] = 0; /* Make it a string */
diff -ruN squid-2.5.STABLE10/helpers/ntlm_auth/SMB/smbval/std-includes.h squid-2.5.STABLE11/helpers/ntlm_auth/SMB/smbval/std-includes.h
--- squid-2.5.STABLE10/helpers/ntlm_auth/SMB/smbval/std-includes.h Fri Mar 9 17:55:38 2001
+++ squid-2.5.STABLE11/helpers/ntlm_auth/SMB/smbval/std-includes.h Thu Jun 30 12:50:55 2005
@@ -25,6 +25,7 @@
/* the types are provided by squid's configure preocess */
#include "squid_types.h"
+#include "util.h"
#define BOOL int16_t
#define int16 int16_t
diff -ruN squid-2.5.STABLE10/helpers/ntlm_auth/fakeauth/fakeauth_auth.c squid-2.5.STABLE11/helpers/ntlm_auth/fakeauth/fakeauth_auth.c
--- squid-2.5.STABLE10/helpers/ntlm_auth/fakeauth/fakeauth_auth.c Wed Mar 9 07:33:01 2005
+++ squid-2.5.STABLE11/helpers/ntlm_auth/fakeauth/fakeauth_auth.c Thu Jun 30 12:50:55 2005
@@ -57,7 +57,7 @@
char *p = string;
char c;
while ((c = *p)) {
- *p = tolower(c);
+ *p = xtolower(c);
p++;
}
}
diff -ruN squid-2.5.STABLE10/helpers/ntlm_auth/winbind/wb_ntlm_auth.c squid-2.5.STABLE11/helpers/ntlm_auth/winbind/wb_ntlm_auth.c
--- squid-2.5.STABLE10/helpers/ntlm_auth/winbind/wb_ntlm_auth.c Sun Feb 20 12:07:45 2005
+++ squid-2.5.STABLE11/helpers/ntlm_auth/winbind/wb_ntlm_auth.c Sat Jul 9 02:42:49 2005
@@ -87,7 +87,7 @@
{
char *p = string, c;
while ((c = *p)) {
- *p = tolower(c);
+ *p = xtolower(c);
p++;
}
}
@@ -97,7 +97,7 @@
{
char *p = string, c;
while ((c = *p)) {
- *p = toupper(c);
+ *p = xtoupper(c);
p++;
}
}
@@ -117,22 +117,20 @@
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;
- }
- if ((urandom_file = fopen(ENTROPY_SOURCE, "r")) == NULL) {
- unsigned int seed;
- struct timeval t;
+ } else if ((urandom_file = fopen(ENTROPY_SOURCE, "r")) == NULL) {
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 {
+ } else
have_urandom = YES;
- }
}
}
@@ -349,7 +347,7 @@
domain = strdup(response.data.domain_name);
uc(domain);
- warn("target domain is %s\n", domain);
+ debug("target domain is %s\n", domain);
return domain;
}
diff -ruN squid-2.5.STABLE10/include/Array.h squid-2.5.STABLE11/include/Array.h
--- squid-2.5.STABLE10/include/Array.h Mon Oct 8 10:18:31 2001
+++ squid-2.5.STABLE11/include/Array.h Thu Jun 9 01:51:46 2005
@@ -1,5 +1,5 @@
/*
- * $Id: Array.h,v 1.6 2001/10/08 16:18:31 hno Exp $
+ * $Id: Array.h,v 1.6.2.1 2005/06/09 07:51:46 hno Exp $
*
* AUTHOR: Alex Rousskov
*
@@ -48,6 +48,7 @@
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);
diff -ruN squid-2.5.STABLE10/include/autoconf.h.in squid-2.5.STABLE11/include/autoconf.h.in
--- squid-2.5.STABLE10/include/autoconf.h.in Fri Apr 22 19:32:27 2005
+++ squid-2.5.STABLE11/include/autoconf.h.in Mon Sep 12 18:12:34 2005
@@ -506,6 +506,9 @@
/* Define if you have the poll function. */
#undef HAVE_POLL
+/* Define if you have the prctl function. */
+#undef HAVE_PRCTL
+
/* Define if you have the pthread_attr_setschedparam function. */
#undef HAVE_PTHREAD_ATTR_SETSCHEDPARAM
@@ -656,6 +659,9 @@
/* Define if you have the header file. */
#undef HAVE_IP_NAT_H
+/* Define if you have the header file. */
+#undef HAVE_IPL_H
+
/* Define if you have the header file. */
#undef HAVE_LIBC_H
@@ -707,6 +713,9 @@
/* Define if you have the header file. */
#undef HAVE_NETINET_IP_NAT_H
+/* Define if you have the header file. */
+#undef HAVE_NETINET_IPL_H
+
/* Define if you have the header file. */
#undef HAVE_NETINET_TCP_H
@@ -793,6 +802,9 @@
/* Define if you have the header file. */
#undef HAVE_SYS_PARAM_H
+
+/* Define if you have the header file. */
+#undef HAVE_SYS_PRCTL_H
/* Define if you have the header file. */
#undef HAVE_SYS_RESOURCE_H
diff -ruN squid-2.5.STABLE10/include/version.h squid-2.5.STABLE11/include/version.h
--- squid-2.5.STABLE10/include/version.h Mon May 16 16:41:14 2005
+++ squid-2.5.STABLE11/include/version.h Thu Sep 22 02:16:26 2005
@@ -9,5 +9,5 @@
*/
#ifndef SQUID_RELEASE_TIME
-#define SQUID_RELEASE_TIME 1116283270
+#define SQUID_RELEASE_TIME 1127376981
#endif
diff -ruN squid-2.5.STABLE10/lib/Array.c squid-2.5.STABLE11/lib/Array.c
--- squid-2.5.STABLE10/lib/Array.c Wed Feb 7 11:56:50 2001
+++ squid-2.5.STABLE11/lib/Array.c Thu Jun 30 12:50:56 2005
@@ -1,5 +1,5 @@
/*
- * $Id: Array.c,v 1.7 2001/02/07 18:56:50 hno Exp $
+ * $Id: Array.c,v 1.7.2.2 2005/06/30 18:50:56 serassio Exp $
*
* AUTHOR: Alex Rousskov
*
@@ -65,14 +65,14 @@
void
arrayInit(Array * a)
{
- assert(a);
+ assert(a != NULL);
memset(a, 0, sizeof(Array));
}
void
arrayClean(Array * a)
{
- assert(a);
+ assert(a != NULL);
/* could also warn if some objects are left */
xfree(a->items);
a->items = NULL;
@@ -81,7 +81,7 @@
void
arrayDestroy(Array * a)
{
- assert(a);
+ assert(a != NULL);
arrayClean(a);
xfree(a);
}
@@ -89,17 +89,30 @@
void
arrayAppend(Array * a, void *obj)
{
- assert(a);
+ assert(a != NULL);
if (a->count >= a->capacity)
arrayGrow(a, a->count + 1);
a->items[a->count++] = obj;
}
+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)
+ 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)
{
- assert(a);
+ assert(a != NULL);
if (a->count + app_count > a->capacity)
arrayGrow(a, a->count + app_count);
}
diff -ruN squid-2.5.STABLE10/lib/Stack.c squid-2.5.STABLE11/lib/Stack.c
--- squid-2.5.STABLE10/lib/Stack.c Thu Jan 11 17:37:12 2001
+++ squid-2.5.STABLE11/lib/Stack.c Thu Jun 30 12:50:56 2005
@@ -1,5 +1,5 @@
/*
- * $Id: Stack.c,v 1.11 2001/01/12 00:37:12 wessels Exp $
+ * $Id: Stack.c,v 1.11.2.1 2005/06/30 18:50:56 serassio Exp $
*
* AUTHOR: Alex Rousskov
*
@@ -50,13 +50,13 @@
void *
stackPop(Stack * s)
{
- assert(s);
+ assert(s != NULL);
return s->count ? s->items[--s->count] : NULL;
}
void *
stackTop(Stack * s)
{
- assert(s);
+ assert(s != NULL);
return s->count ? s->items[s->count - 1] : NULL;
}
diff -ruN squid-2.5.STABLE10/lib/hash.c squid-2.5.STABLE11/lib/hash.c
--- squid-2.5.STABLE10/lib/hash.c Wed Mar 7 10:57:37 2001
+++ squid-2.5.STABLE11/lib/hash.c Thu Jun 30 12:50:56 2005
@@ -1,6 +1,6 @@
/*
- * $Id: hash.c,v 1.12 2001/03/07 17:57:37 wessels Exp $
+ * $Id: hash.c,v 1.12.2.1 2005/06/30 18:50:56 serassio Exp $
*
* DEBUG: section 0 Hash Tables
* AUTHOR: Harvest Derived
@@ -239,7 +239,7 @@
void
hash_last(hash_table * hid)
{
- assert(hid);
+ assert(hid != NULL);
hid->next = NULL;
hid->current_slot = 0;
}
@@ -307,7 +307,7 @@
void
hashFreeMemory(hash_table * hid)
{
- assert(hid);
+ assert(hid != NULL);
if (hid->buckets)
xfree(hid->buckets);
xfree(hid);
diff -ruN squid-2.5.STABLE10/lib/heap.c squid-2.5.STABLE11/lib/heap.c
--- squid-2.5.STABLE10/lib/heap.c Wed Feb 7 11:56:50 2001
+++ squid-2.5.STABLE11/lib/heap.c Thu Jun 30 12:50:56 2005
@@ -1,6 +1,6 @@
/*
- * $Id: heap.c,v 1.8 2001/02/07 18:56:50 hno Exp $
+ * $Id: heap.c,v 1.8.2.1 2005/06/30 18:50:56 serassio Exp $
*
* AUTHOR: John Dilley, Hewlett Packard
*
@@ -122,7 +122,7 @@
delete_heap(heap * hp)
{
int i;
- assert(hp);
+ assert(hp != NULL);
for (i = 0; i < hp->last; i++) {
xfree(hp->nodes[i]);
}
diff -ruN squid-2.5.STABLE10/lib/rfc1123.c squid-2.5.STABLE11/lib/rfc1123.c
--- squid-2.5.STABLE10/lib/rfc1123.c Wed Mar 9 07:51:39 2005
+++ squid-2.5.STABLE11/lib/rfc1123.c Sun Jul 3 02:18:38 2005
@@ -1,6 +1,6 @@
/*
- * $Id: rfc1123.c,v 1.29.2.2 2005/03/09 14:51:39 hno Exp $
+ * $Id: rfc1123.c,v 1.29.2.3 2005/07/03 08:18:38 serassio Exp $
*
* DEBUG:
* AUTHOR: Harvest Derived
@@ -230,7 +230,7 @@
#elif defined(_SQUID_AIX_)
#elif defined(_SQUID_CYGWIN_)
#else
- extern time_t timezone;
+ extern long timezone;
#endif
/*
* The following assumes a fixed DST offset of 1 hour,
diff -ruN squid-2.5.STABLE10/lib/util.c squid-2.5.STABLE11/lib/util.c
--- squid-2.5.STABLE10/lib/util.c Sun Aug 11 19:22:37 2002
+++ squid-2.5.STABLE11/lib/util.c Thu Jun 30 12:50:56 2005
@@ -1,6 +1,6 @@
/*
- * $Id: util.c,v 1.83.2.2 2002/08/12 01:22:37 hno Exp $
+ * $Id: util.c,v 1.83.2.3 2005/06/30 18:50:56 serassio Exp $
*
* DEBUG:
* AUTHOR: Harvest Derived
@@ -608,7 +608,7 @@
xstrndup(const char *s, size_t n)
{
size_t sz;
- assert(s);
+ assert(s != NULL);
assert(n);
sz = strlen(s) + 1;
if (sz > n)
diff -ruN squid-2.5.STABLE10/snmplib/mib.c squid-2.5.STABLE11/snmplib/mib.c
--- squid-2.5.STABLE10/snmplib/mib.c Wed Mar 9 07:33:02 2005
+++ squid-2.5.STABLE11/snmplib/mib.c Thu Jun 30 12:50:56 2005
@@ -128,11 +128,11 @@
while (*s1 && *s2) {
if (xisupper(*s1))
- c1 = tolower(*s1);
+ c1 = xtolower(*s1);
else
c1 = *s1;
if (xisupper(*s2))
- c2 = tolower(*s2);
+ c2 = xtolower(*s2);
else
c2 = *s2;
if (c1 != c2)
diff -ruN squid-2.5.STABLE10/snmplib/parse.c squid-2.5.STABLE11/snmplib/parse.c
--- squid-2.5.STABLE10/snmplib/parse.c Wed Mar 9 07:33:02 2005
+++ squid-2.5.STABLE11/snmplib/parse.c Thu Jun 30 12:50:56 2005
@@ -135,7 +135,7 @@
#define WRITEONLY 20
#undef NOACCESS
#define NOACCESS 21
-#define STATUS 22
+#define SNMP_STATUS 22
#define MANDATORY 23
#define OPTIONAL 24
#define OBSOLETE 25
@@ -193,7 +193,7 @@
{"read-only", sizeof("read-only") - 1, READONLY},
{"ACCESS", sizeof("ACCESS") - 1, ACCESS},
{"MAX-ACCESS", sizeof("MAX-ACCESS") - 1, ACCESS},
- {"STATUS", sizeof("STATUS") - 1, STATUS},
+ {"STATUS", sizeof("STATUS") - 1, SNMP_STATUS},
{"SYNTAX", sizeof("SYNTAX") - 1, SYNTAX},
{"OBJECT-TYPE", sizeof("OBJECT-TYPE") - 1, OBJTYPE},
{"{", sizeof("{") - 1, LEFTBRACKET},
@@ -867,7 +867,7 @@
return 0;
}
type = get_token(fp, token);
- if (type != STATUS) {
+ if (type != SNMP_STATUS) {
print_error("Should be STATUS", token, nexttype);
free_node(np);
return 0;
diff -ruN squid-2.5.STABLE10/src/HttpHeader.c squid-2.5.STABLE11/src/HttpHeader.c
--- squid-2.5.STABLE10/src/HttpHeader.c Fri May 6 15:32:09 2005
+++ squid-2.5.STABLE11/src/HttpHeader.c Thu Jun 9 01:51:46 2005
@@ -1,6 +1,6 @@
/*
- * $Id: HttpHeader.c,v 1.74.2.28 2005/05/06 21:32:09 wessels Exp $
+ * $Id: HttpHeader.c,v 1.74.2.30 2005/06/09 07:51:46 hno Exp $
*
* DEBUG: section 55 HTTP Header
* AUTHOR: Alex Rousskov
@@ -475,9 +475,25 @@
}
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);
+ 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");
@@ -664,6 +680,26 @@
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)
@@ -831,6 +867,15 @@
assert(Headers[id].type == ftDate_1123); /* must be of an appropriate type */
assert(htime >= 0);
httpHeaderAddEntry(hdr, httpHeaderEntryCreate(id, NULL, mkrfc1123(htime)));
+}
+
+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
diff -ruN squid-2.5.STABLE10/src/HttpHeaderTools.c squid-2.5.STABLE11/src/HttpHeaderTools.c
--- squid-2.5.STABLE10/src/HttpHeaderTools.c Fri Mar 25 19:50:51 2005
+++ squid-2.5.STABLE11/src/HttpHeaderTools.c Wed May 18 09:28:32 2005
@@ -1,6 +1,6 @@
/*
- * $Id: HttpHeaderTools.c,v 1.32.2.4 2005/03/26 02:50:51 hno Exp $
+ * $Id: HttpHeaderTools.c,v 1.32.2.5 2005/05/18 15:28:32 hno Exp $
*
* DEBUG: section 66 HTTP Header Tools
* AUTHOR: Alex Rousskov
@@ -316,7 +316,7 @@
return 1;
}
-squid_off_t
+int
httpHeaderParseSize(const char *start, squid_off_t * value)
{
squid_off_t v;
diff -ruN squid-2.5.STABLE10/src/HttpRequest.c squid-2.5.STABLE11/src/HttpRequest.c
--- squid-2.5.STABLE10/src/HttpRequest.c Thu Oct 7 11:01:13 2004
+++ squid-2.5.STABLE11/src/HttpRequest.c Thu Sep 15 03:53:28 2005
@@ -1,6 +1,6 @@
/*
- * $Id: HttpRequest.c,v 1.30.2.2 2004/10/07 17:01:13 hno Exp $
+ * $Id: HttpRequest.c,v 1.30.2.3 2005/09/15 09:53:28 hno Exp $
*
* DEBUG: section 73 HTTP Request
* AUTHOR: Duane Wessels
@@ -98,19 +98,8 @@
return httpHeaderParse(&req->header, blk_start, blk_end);
}
-/* swaps out request using httpRequestPack */
-void
-httpRequestSwapOut(const request_t * req, StoreEntry * e)
-{
- Packer p;
- assert(req && e);
- packerToStoreInit(&p, e);
- httpRequestPack(req, &p);
- packerClean(&p);
-}
-
/* packs request-line and headers, appends terminator */
-void
+static void
httpRequestPack(const request_t * req, Packer * p)
{
assert(req && p);
@@ -121,6 +110,37 @@
httpHeaderPackInto(&req->header, p);
/* trailer */
packerAppend(p, "\r\n", 2);
+}
+
+/* packs debug info, canonical request-line and headers, appends terminator */
+void
+httpRequestPackDebug(request_t * req, Packer * p)
+{
+ assert(req && p);
+ /* Client info */
+ packerPrintf(p, "Client: %s ", inet_ntoa(req->client_addr));
+ packerPrintf(p, "http_port: %s:%d", inet_ntoa(req->my_addr), req->my_port);
+ if (req->auth_user_request && authenticateUserRequestUsername(req->auth_user_request))
+ packerPrintf(p, "user: %s", authenticateUserRequestUsername(req->auth_user_request));
+ packerPrintf(p, "\n");
+ /* pack request-line */
+ packerPrintf(p, "%s %s HTTP/%d.%d\r\n",
+ RequestMethodStr[req->method], urlCanonical(req), req->http_ver.major, req->http_ver.minor);
+ /* headers */
+ httpHeaderPackInto(&req->header, p);
+ /* trailer */
+ packerAppend(p, "\r\n", 2);
+}
+
+/* swaps out request using httpRequestPack */
+void
+httpRequestSwapOut(const request_t * req, StoreEntry * e)
+{
+ Packer p;
+ assert(req && e);
+ packerToStoreInit(&p, e);
+ httpRequestPack(req, &p);
+ packerClean(&p);
}
#if UNUSED_CODE
diff -ruN squid-2.5.STABLE10/src/Packer.c squid-2.5.STABLE11/src/Packer.c
--- squid-2.5.STABLE10/src/Packer.c Fri Mar 25 19:50:51 2005
+++ squid-2.5.STABLE11/src/Packer.c Thu Sep 1 16:22:23 2005
@@ -1,6 +1,6 @@
/*
- * $Id: Packer.c,v 1.13.2.1 2005/03/26 02:50:51 hno Exp $
+ * $Id: Packer.c,v 1.13.2.2 2005/09/01 22:22:23 hno Exp $
*
* DEBUG: section 60 Packer: A uniform interface to store-like modules
* AUTHOR: Alex Rousskov
@@ -108,7 +108,7 @@
{
assert(p && e);
p->append = (append_f) store_append;
- p->vprintf = (vprintf_f) store_vprintf;
+ p->packer_vprintf = (vprintf_f) store_vprintf;
p->real_handle = e;
}
@@ -118,7 +118,7 @@
{
assert(p && mb);
p->append = (append_f) memBuf_append;
- p->vprintf = (vprintf_f) memBuf_vprintf;
+ p->packer_vprintf = (vprintf_f) memBuf_vprintf;
p->real_handle = mb;
}
@@ -129,7 +129,7 @@
assert(p);
/* it is not really necessary to do this, but, just in case... */
p->append = NULL;
- p->vprintf = NULL;
+ p->packer_vprintf = NULL;
p->real_handle = NULL;
}
@@ -161,7 +161,7 @@
fmt = va_arg(args, char *);
#endif
assert(p);
- assert(p->real_handle && p->vprintf);
- p->vprintf(p->real_handle, fmt, args);
+ assert(p->real_handle && p->packer_vprintf);
+ p->packer_vprintf(p->real_handle, fmt, args);
va_end(args);
}
diff -ruN squid-2.5.STABLE10/src/StatHist.c squid-2.5.STABLE11/src/StatHist.c
--- squid-2.5.STABLE10/src/StatHist.c Wed Oct 24 02:19:08 2001
+++ squid-2.5.STABLE11/src/StatHist.c Thu Sep 1 15:52:23 2005
@@ -1,6 +1,6 @@
/*
- * $Id: StatHist.c,v 1.26 2001/10/24 08:19:08 hno Exp $
+ * $Id: StatHist.c,v 1.26.2.1 2005/09/01 21:52:23 hno Exp $
*
* DEBUG: section 62 Generic Histogram
* AUTHOR: Duane Wessels
@@ -90,7 +90,7 @@
/* 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);
+ assert(((int) floor(0.99 + statHistVal(H, 0) - min)) == 0);
}
void
diff -ruN squid-2.5.STABLE10/src/acl.c squid-2.5.STABLE11/src/acl.c
--- squid-2.5.STABLE10/src/acl.c Sun May 8 19:48:09 2005
+++ squid-2.5.STABLE11/src/acl.c Fri Sep 16 15:53:57 2005
@@ -1,6 +1,6 @@
/*
- * $Id: acl.c,v 1.270.2.38 2005/05/09 01:48:09 hno Exp $
+ * $Id: acl.c,v 1.270.2.39 2005/09/16 21:53:57 hno Exp $
*
* DEBUG: section 28 Access Control
* AUTHOR: Duane Wessels
@@ -1619,7 +1619,7 @@
checklist->state[ACL_DST_IP] = ACL_LOOKUP_NEEDED;
return 0;
} else {
- return aclMatchIp(&ae->data, no_addr);
+ return 0;
}
/* NOTREACHED */
case ACL_DST_DOMAIN:
diff -ruN squid-2.5.STABLE10/src/auth/ntlm/auth_ntlm.c squid-2.5.STABLE11/src/auth/ntlm/auth_ntlm.c
--- squid-2.5.STABLE10/src/auth/ntlm/auth_ntlm.c Fri Apr 22 14:29:31 2005
+++ squid-2.5.STABLE11/src/auth/ntlm/auth_ntlm.c Tue Sep 20 06:28:18 2005
@@ -1,6 +1,6 @@
/*
- * $Id: auth_ntlm.c,v 1.17.2.22 2005/04/22 20:29:31 hno Exp $
+ * $Id: auth_ntlm.c,v 1.17.2.25 2005/09/20 12:28:18 hno Exp $
*
* DEBUG: section 29 NTLM Authenticator
* AUTHOR: Robert Collins
@@ -191,21 +191,6 @@
} else {
debug(28, 0) ("unrecognised ntlm auth scheme parameter '%s'\n", param_str);
}
- /*
- * disable client side request pipelining. There is a race with
- * NTLM when the client sends a second request on an NTLM
- * connection before the authenticate challenge is sent. With
- * this patch, the client may fail to authenticate, but squid's
- * state will be preserved. Caveats: this should be a post-parse
- * test, but that can wait for the modular parser to be integrated.
- */
- if (ntlmConfig->authenticate && Config.onoff.pipeline_prefetch != 0)
- Config.onoff.pipeline_prefetch = 0;
-
- if (ntlmConfig->use_ntlm_negotiate && ntlmConfig->challengeuses > 0) {
- debug(28, 1) ("challenge reuses incompatible with use_ntlm_negotiate. Disabling challenge reuse\n");
- ntlmConfig->challengeuses = 0;
- }
}
@@ -241,6 +226,21 @@
{
static int ntlminit = 0;
if (ntlmConfig->authenticate) {
+ /*
+ * disable client side request pipelining. There is a race with
+ * NTLM when the client sends a second request on an NTLM
+ * connection before the authenticate challenge is sent. With
+ * this patch, the client may fail to authenticate, but squid's
+ * state will be preserved.
+ */
+ if (ntlmConfig->authenticate && Config.onoff.pipeline_prefetch != 0) {
+ debug(28, 1) ("pipeline prefetching incompatile with NTLM authentication. Disabling pipeline_prefetch\n");
+ Config.onoff.pipeline_prefetch = 0;
+ }
+ if (ntlmConfig->use_ntlm_negotiate && ntlmConfig->challengeuses > 0) {
+ debug(28, 1) ("challenge reuses incompatible with use_ntlm_negotiate. Disabling challenge reuse\n");
+ ntlmConfig->challengeuses = 0;
+ }
if (!ntlm_helper_state_pool)
ntlm_helper_state_pool = memPoolCreate("NTLM Helper State data", sizeof(ntlm_helper_state_t));
if (!ntlm_user_pool)
@@ -332,6 +332,8 @@
authenticateNTLMFixErrorHeader(auth_user_request_t * auth_user_request, HttpReply * rep, http_hdr_type type, request_t * request)
{
ntlm_request_t *ntlm_request;
+ if (!request->flags.proxy_keepalive)
+ return;
if (ntlmConfig->authenticate) {
/* New request, no user details */
if (auth_user_request == NULL) {
@@ -360,6 +362,7 @@
/* pass the challenge to the client */
debug(29, 9) ("authenticateNTLMFixErrorHeader: Sending type:%d header: 'NTLM %s'\n", type, ntlm_request->authchallenge);
httpHeaderPutStrf(&rep->header, type, "NTLM %s", ntlm_request->authchallenge);
+ request->flags.must_keepalive = 1;
break;
default:
debug(29, 0) ("authenticateNTLMFixErrorHeader: state %d.\n", ntlm_request->auth_state);
@@ -983,12 +986,7 @@
/* do a cache lookup here. If it matches it's a successful ntlm
* challenge - release the helper and use the existing auth_user
* details. */
- if (strncmp("NTLM ", proxy_auth, 5) == 0) {
- ntlm_request->ntlmauthenticate = xstrdup(proxy_auth);
- } else {
- fatal("Incorrect scheme in auth header\n");
- /* TODO: more fault tolerance.. reset the auth scheme here */
- }
+ ntlm_request->ntlmauthenticate = xstrdup(proxy_auth);
/* normal case with challenge reuses disabled */
if (ntlmConfig->challengeuses == 0) {
/* verify with the ntlm helper */
diff -ruN squid-2.5.STABLE10/src/authenticate.c squid-2.5.STABLE11/src/authenticate.c
--- squid-2.5.STABLE10/src/authenticate.c Fri Mar 25 19:50:51 2005
+++ squid-2.5.STABLE11/src/authenticate.c Fri Sep 16 05:09:35 2005
@@ -1,6 +1,6 @@
/*
- * $Id: authenticate.c,v 1.36.2.17 2005/03/26 02:50:51 hno Exp $
+ * $Id: authenticate.c,v 1.36.2.19 2005/09/16 11:09:35 hno Exp $
*
* DEBUG: section 29 Authenticator
* AUTHOR: Duane Wessels
@@ -502,6 +502,16 @@
if (*auth_user_request == NULL) {
debug(28, 9) ("authenticateAuthenticate: This is a new checklist test on FD:%d\n",
conn ? conn->fd : -1);
+ if (proxy_auth && !request->auth_user_request && conn && conn->auth_user_request) {
+ int id = authenticateAuthSchemeId(proxy_auth) + 1;
+ if (!conn->auth_user_request->auth_user || conn->auth_user_request->auth_user->auth_module != id) {
+ debug(28, 1) ("authenticateAuthenticate: Unexpected change of authentication scheme from '%s' to '%s' (client %s)\n",
+ authscheme_list[conn->auth_user_request->auth_user->auth_module - 1].typestr, proxy_auth, inet_ntoa(src_addr));
+ authenticateAuthUserRequestUnlock(conn->auth_user_request);
+ conn->auth_user_request = NULL;
+ conn->auth_type = AUTH_UNKNOWN;
+ }
+ }
if ((!request->auth_user_request)
&& (!conn || conn->auth_type == AUTH_UNKNOWN)) {
/* beginning of a new request check */
diff -ruN squid-2.5.STABLE10/src/cache_cf.c squid-2.5.STABLE11/src/cache_cf.c
--- squid-2.5.STABLE10/src/cache_cf.c Fri May 6 16:33:53 2005
+++ squid-2.5.STABLE11/src/cache_cf.c Thu Sep 1 16:04:51 2005
@@ -1,6 +1,6 @@
/*
- * $Id: cache_cf.c,v 1.396.2.26 2005/05/06 22:33:53 wessels Exp $
+ * $Id: cache_cf.c,v 1.396.2.29 2005/09/01 22:04:51 hno Exp $
*
* DEBUG: section 3 Configuration File Parsing
* AUTHOR: Harvest Derived
@@ -299,8 +299,8 @@
}
fclose(fp);
defaults_if_none();
+ configDoConfigure();
if (opt_send_signal == -1) {
- configDoConfigure();
cachemgrRegister("config",
"Current Squid Configuration",
dump_config,
@@ -1300,45 +1300,27 @@
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..)
- */
+ fs = find_fstype(type_str);
+ if (fs < 0)
+ self_destruct();
+ /* reconfigure existing dir */
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);
- }
+ 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 */
- 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;
@@ -2563,12 +2545,16 @@
struct stat sb;
char pathbuf[BUFSIZ];
assert(path != NULL);
- if (Config.chroot_dir) {
+ if (Config.chroot_dir && (geteuid() == 0)) {
snprintf(pathbuf, BUFSIZ, "%s/%s", Config.chroot_dir, path);
path = pathbuf;
}
- if (stat(path, &sb) < 0)
- fatalf("%s %s: %s", name, path, xstrerror());
+ 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 *
diff -ruN squid-2.5.STABLE10/src/cache_manager.c squid-2.5.STABLE11/src/cache_manager.c
--- squid-2.5.STABLE10/src/cache_manager.c Fri Feb 23 13:59:50 2001
+++ squid-2.5.STABLE11/src/cache_manager.c Thu Sep 1 16:42:03 2005
@@ -1,6 +1,6 @@
/*
- * $Id: cache_manager.c,v 1.26 2001/02/23 20:59:50 hno Exp $
+ * $Id: cache_manager.c,v 1.26.2.2 2005/09/01 22:42:03 hno Exp $
*
* DEBUG: section 16 Cache Manager Objects
* AUTHOR: Duane Wessels
@@ -201,6 +201,7 @@
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;
@@ -250,8 +251,7 @@
/* retrieve object requested */
a = cachemgrFindAction(mgr->action);
assert(a != NULL);
- if (a->flags.atomic)
- storeBuffer(entry);
+ storeBuffer(entry);
{
http_version_t version;
HttpReply *rep = entry->mem_obj->reply;
@@ -269,10 +269,9 @@
httpReplySwapOut(rep, entry);
}
a->handler(entry);
- if (a->flags.atomic) {
- storeBufferFlush(entry);
+ storeBufferFlush(entry);
+ if (a->flags.atomic)
storeComplete(entry);
- }
cachemgrStateFree(mgr);
}
diff -ruN squid-2.5.STABLE10/src/cf.data.pre squid-2.5.STABLE11/src/cf.data.pre
--- squid-2.5.STABLE10/src/cf.data.pre Tue May 10 17:08:40 2005
+++ squid-2.5.STABLE11/src/cf.data.pre Tue Sep 13 07:44:35 2005
@@ -1,6 +1,6 @@
#
-# $Id: cf.data.pre,v 1.245.2.94 2005/05/10 23:08:40 hno Exp $
+# $Id: cf.data.pre,v 1.245.2.99 2005/09/13 13:44:35 serassio Exp $
#
#
# SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -124,7 +124,7 @@
cipher= Colon separated list of supported ciphers
- options= Varions SSL engine options. The most important
+ options= Various SSL engine options. The most important
being:
NO_SSLv2 Disallow the use of SSLv2
NO_SSLv3 Disallow the use of SSLv3
@@ -329,7 +329,7 @@
use 'login=PASS' if users must authenticate against
the upstream proxy. This will pass the users credentials
as they are to the peer proxy. This only works for the
- Basic HTTP authentication sheme. Note: To combine this
+ Basic HTTP authentication scheme. Note: To combine this
with proxy_auth both proxies must share the same user
database as HTTP only allows for one proxy login.
Also be warned this will expose your users proxy
@@ -746,7 +746,7 @@
cache among different disk partitions.
Type specifies the kind of storage system to use. Only "ufs"
- is built by default. To eanble any of the other storage systems
+ is built by default. To enable any of the other storage systems
see the --enable-storeio configure option.
'Directory' is a top-level directory where cache swap
@@ -1083,7 +1083,7 @@
DOC_START
The FTP protocol is officially defined to use the telnet protocol
as transport channel for the control connection. However, many
- implemenations are broken and does not respect this aspect of
+ implementations are broken and does not respect this aspect of
the FTP protocol.
If you have trouble accessing files with ASCII code 255 in the
@@ -1183,7 +1183,7 @@
The file contains newline-separated definitions, in the
form ip_address_in_dotted_form name [name ...] names are
- whitespace-separated. lines beginnng with an hash (#)
+ whitespace-separated. lines beginning with an hash (#)
character are comments.
The file is checked at startup and upon configuration. If
@@ -1275,12 +1275,12 @@
format: auth_param scheme parameter [setting]
The order in which authentication schemes are presented to the client is
- dependant on the order the scheme first appears in config file. IE
+ dependent on the order the scheme first appears in config file. IE
has a bug (it's not rfc 2617 compliant) in that it will use the basic
scheme if basic is the first entry presented, even if more secure
schemes are presented. For now use the order in the recommended
settings section below. If other browsers have difficulties (don't
- recognise the schemes offered even if you are using basic) either
+ recognize the schemes offered even if you are using basic) either
put basic first, or disable the other schemes (by commenting out their
program entry).
@@ -1291,15 +1291,15 @@
Please note that while this directive defines how Squid processes
authentication it does not automatically activate authentication.
- To use authenticaiton you must in addition make use of acls based
+ To use authentication you must in addition make use of ACLs based
on login name in http_access (proxy_auth, proxy_auth_regex or
external with %LOGIN used in the format tag). The browser will be
challenged for authentication on the first such acl encountered
- in http_access processing and will also be rechallenged for new
+ in http_access processing and will also be re-challenged for new
login credentials if the request is being denied by a proxy_auth
type acl.
- WARNING: authenitcation can't be used in a transparently intercepting
+ WARNING: authentication can't be used in a transparently intercepting
proxy as the client then thinks it is talking to an origin server and
not the proxy. This is a limitation of bending the TCP/IP protocol to
transparently intercepting port 80, not a limitation in Squid.
@@ -1312,7 +1312,7 @@
"ERR" in an endless loop. "ERR" responses may optionally be followed
by a error description available as %m in the returned error page.
- By default, the basic authentication sheme is not used unless a
+ By default, the basic authentication scheme is not used unless a
program is specified.
If you want to use the traditional proxy authentication, jump over to
@@ -1343,7 +1343,7 @@
username:password pair is valid for - in other words how often the
helper program is called for that user. Set this low to force
revalidation with short lived passwords. Note that setting this high
- does not impact your susceptability to replay attacks unless you are
+ does not impact your susceptibility to replay attacks unless you are
using an one-time password system (such as SecureID). If you are using
such a system, you will be vulnerable to replay attacks unless you
also use the max_user_ip ACL in an http_access rule.
@@ -1408,7 +1408,7 @@
auth_param digest nonce_max_count 50
"nonce_strictness" on|off
- Determines if squid requires strict increment-by-1 behaviour for nonce
+ Determines if squid requires strict increment-by-1 behavior for nonce
counts, or just incrementing (off - for use when useragents generate
nonce counts that occasionally miss 1 (ie, 1,2,4,6)).
auth_param digest nonce_strictness off
@@ -1422,16 +1422,16 @@
"post_workaround" on|off
This is a workaround to certain buggy browsers who sends an incorrect
- request digest in POST requests when reusing the same nonce as aquired
+ request digest in POST requests when reusing the same nonce as acquired
earlier in response to a GET request.
auth_param digest post_workaround off
=== NTLM scheme options follow ===
"program" cmdline
- Specify the command for the external ntlm authenticator. Such a
+ Specify the command for the external NTLM authenticator. Such a
program participates in the NTLMSSP exchanges between Squid and the
- client and reads commands according to the Squid ntlmssp helper
+ client and reads commands according to the Squid NTLMSSP helper
protocol. See helpers/ntlm_auth/ for details. Recommended ntlm
authenticator is ntlm_auth from Samba-3.X, but a number of other
ntlm authenticators is available.
@@ -1444,7 +1444,7 @@
"children" numberofchildren
The number of authenticator processes to spawn (no default). If you
start too few Squid will have to wait for them to process a backlog
- of credential verifications, slowing it down. When crendential
+ of credential verifications, slowing it down. When credential
verifications are done via a (slow) network you are likely to need
lots of authenticator processes.
auth_param ntlm children 5
@@ -1509,7 +1509,7 @@
LOC: Config.authenticateGCInterval
DOC_START
The time period between garbage collection across the username cache.
- This is a tradeoff between memory utilisation (long intervals - say
+ This is a tradeoff between memory utilization (long intervals - say
2 days) and CPU (short intervals - say 1 minute). Only change if you
have good reason to.
DOC_END
@@ -1605,7 +1605,7 @@
Squid-2.5.STABLE3 and earlier and such syntax is still accepted to
keep compatibility within the Squid-2.5 release. However, the meaning
of concurrency= option has changed in Squid-3 and the old syntax of
- the directive is therefore depreated from Squid-2.5.STABLE4 and later.
+ the directive is therefore deprecated from Squid-2.5.STABLE4 and later.
If you want to be able to easily downgrade to earlier Squid-2.5
releases you may want to continue using the old name, if not
please use the new name.
@@ -2107,19 +2107,19 @@
acl aclname req_mime_type mime-type1 ...
# regex match against the mime type of the request generated
# by the client. Can be used to detect file upload or some
- # types HTTP tunelling requests.
+ # types HTTP tunneling requests.
# NOTE: This does NOT match the reply. You cannot use this
# to match the returned file type.
acl aclname req_header header-name [-i] any\.regex\.here
# regex match against any of the known request headers. May be
# thought of as a superset of "browser", "referer" and "mime-type"
- # acls.
+ # ACLs.
acl aclname rep_mime_type mime-type1 ...
- # regex match against the mime type of the reply recieved by
+ # regex match against the mime type of the reply received by
# squid. Can be used to detect file download or some
- # types HTTP tunelling requests.
+ # types HTTP tunneling requests.
# NOTE: This has no effect in http_access rules. It only has
# effect in rules that affect the reply data stream such as
# http_reply_access.
@@ -2354,7 +2354,7 @@
The TOS/DSCP byte must be exactly that - a octet value 0 - 255, or
"default" to use whatever default your host has. Note that in
- practice often only values 0 - 63 is useable as the two highest bits
+ practice often only values 0 - 63 is usable as the two highest bits
have been redefined for use by ECN (RFC3168).
Processing proceeds in the order specified, and stops at first fully
@@ -2372,7 +2372,7 @@
tcp_outgoing_address ipaddr [[!]aclname] ...
- Example where requests from 10.0.0.0/24 will be forwareded
+ Example where requests from 10.0.0.0/24 will be forwarded
with source address 10.1.0.1, 10.0.2.0/24 forwarded with
source address 10.1.0.2 and the rest will be forwarded with
source address 10.1.0.3.
@@ -2409,7 +2409,7 @@
DOC_START
This option specifies the maximum size of a reply body in bytes.
It can be used to prevent users from downloading very large files,
- such as MP3's and movies. When the reply headers are recieved,
+ such as MP3's and movies. When the reply headers are received,
the reply_body_max_size lines are processed, and the first line with
a result of "allow" is used as the maximum body size for this reply.
This size is checked twice. First when we get the reply headers,
@@ -2440,7 +2440,32 @@
LOC: Config.adminEmail
DOC_START
Email-address of local cache manager who will receive
- mail if the cache dies. The default is "webmaster."
+ mail if the cache dies. The default is "webmaster".
+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
+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
@@ -2613,14 +2638,14 @@
DOC_START
If you are running Squid as an accelerator and have a single backend
server set this to on. This causes Squid to forward the request
- to this server, regardles of what any redirectors or Host headers
+ to this server, regardless of what any redirectors or Host headers
say.
Leave this at off if you have multiple backend servers, and use a
redirector (or host table or private DNS) to map the requests to the
appropriate backend servers. Note that the mapping needs to be a
1-1 mapping between requested and backend (from redirector) domain
- names or caching will fail, as cacing is performed using the
+ names or caching will fail, as caching is performed using the
URL returned from the redirector.
See also redirect_rewrites_host_header.
@@ -2648,7 +2673,7 @@
DOC_START
HTTP/1.1 requests include a Host: header which is basically the
hostname from the URL. The Host: header is used for domain based
- virutal hosts. If your accelerator needs to provide domain based
+ virtual hosts. If your accelerator needs to provide domain based
virtual hosts on the same IP address you will need to turn this
on.
@@ -3172,7 +3197,7 @@
Other headers are reclassified as 'Other'. You can also
refer to all the headers with 'All'.
- For example, to achieve the same behaviour as the old
+ For example, to achieve the same behavior as the old
'http_anonymizer standard' option, you should use:
header_access From deny all
@@ -3241,6 +3266,20 @@
@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
@@ -3276,7 +3315,7 @@
maximum is 255 tries. A warning message will be generated
if it is set to a value greater than ten.
- Note: This is in addition to the request reforwarding which
+ Note: This is in addition to the request re-forwarding which
takes place if Squid fails to get a satisfying response.
DOC_END
@@ -3933,7 +3972,7 @@
to different IP addresses.
By default Squid rotates IP's per request. By disabling
- this directive only connection failure trigers rotation.
+ this directive only connection failure triggers rotation.
DOC_END
NAME: pipeline_prefetch
@@ -3943,7 +3982,7 @@
DOC_START
To boost the performance of pipelined requests to closer
match that of a non-proxied environment Squid can try to fetch
- up to two requests in parallell from a pipeline.
+ up to two requests in parallel from a pipeline.
Defaults to off for bandwidth management and access logging
reasons.
diff -ruN squid-2.5.STABLE10/src/cf_gen.c squid-2.5.STABLE11/src/cf_gen.c
--- squid-2.5.STABLE10/src/cf_gen.c Thu Aug 22 06:28:15 2002
+++ squid-2.5.STABLE11/src/cf_gen.c Thu Jun 30 12:50:56 2005
@@ -1,6 +1,6 @@
/*
- * $Id: cf_gen.c,v 1.43.2.2 2002/08/22 12:28:15 hno Exp $
+ * $Id: cf_gen.c,v 1.43.2.3 2005/06/30 18:50:56 serassio Exp $
*
* DEBUG: none Generate squid.conf.default and cf_parser.h
* AUTHOR: Max Okumoto
@@ -403,7 +403,7 @@
"\tconfig_lineno = 0;\n"
);
for (entry = head; entry != NULL; entry = entry->next) {
- assert(entry->name);
+ assert(entry->name != NULL);
assert(entry != entry->next);
if (!strcmp(entry->name, "comment"))
@@ -418,7 +418,7 @@
rc |= 1;
continue;
}
- assert(entry->default_value);
+ assert(entry->default_value != NULL);
if (entry->ifdef)
fprintf(fp, "#if %s\n", entry->ifdef);
if (strcmp(entry->default_value, "none") == 0) {
@@ -447,8 +447,8 @@
"{\n"
);
for (entry = head; entry != NULL; entry = entry->next) {
- assert(entry->name);
- assert(entry->loc);
+ assert(entry->name != NULL);
+ assert(entry->loc != NULL);
if (entry->default_if_none == NULL)
continue;
if (entry->ifdef)
@@ -498,7 +498,7 @@
alias = entry->alias;
next_alias:
fprintf(fp, "\telse if (!strcmp(token, \"%s\"))\n", name);
- assert(entry->loc);
+ assert(entry->loc != NULL);
if (strcmp(entry->loc, "none") == 0) {
fprintf(fp,
"\t\tparse_%s();\n",
@@ -538,7 +538,7 @@
"{\n"
);
for (entry = head; entry != NULL; entry = entry->next) {
- assert(entry->loc);
+ assert(entry->loc != NULL);
if (strcmp(entry->loc, "none") == 0)
continue;
if (strcmp(entry->name, "comment") == 0)
@@ -565,7 +565,7 @@
"{\n"
);
for (entry = head; entry != NULL; entry = entry->next) {
- assert(entry->loc);
+ assert(entry->loc != NULL);
if (strcmp(entry->loc, "none") == 0)
continue;
if (strcmp(entry->name, "comment") == 0)
@@ -588,7 +588,7 @@
if (!name)
return 1;
for (i = 0; strcmp(defines[i].name, name) != 0; i++) {
- assert(defines[i].name);
+ assert(defines[i].name != NULL);
}
return defines[i].defined;
}
@@ -597,9 +597,9 @@
available_if(char *name)
{
int i = 0;
- assert(name);
+ assert(name != NULL);
for (i = 0; strcmp(defines[i].name, name) != 0; i++) {
- assert(defines[i].name);
+ assert(defines[i].name != NULL);
}
return defines[i].enable;
}
diff -ruN squid-2.5.STABLE10/src/client_db.c squid-2.5.STABLE11/src/client_db.c
--- squid-2.5.STABLE10/src/client_db.c Fri Mar 25 19:50:52 2005
+++ squid-2.5.STABLE11/src/client_db.c Thu Sep 1 16:54:41 2005
@@ -1,6 +1,6 @@
/*
- * $Id: client_db.c,v 1.53.2.5 2005/03/26 02:50:52 hno Exp $
+ * $Id: client_db.c,v 1.53.2.6 2005/09/01 22:54:41 hno Exp $
*
* DEBUG: section 0 Client Database
* AUTHOR: Duane Wessels
@@ -328,7 +328,7 @@
snmp_meshCtblFn(variable_list * Var, snint * ErrP)
{
variable_list *Answer = NULL;
- static char key[15];
+ static char key[16];
ClientInfo *c = NULL;
int aggr = 0;
log_type l;
diff -ruN squid-2.5.STABLE10/src/client_side.c squid-2.5.STABLE11/src/client_side.c
--- squid-2.5.STABLE10/src/client_side.c Wed Apr 20 15:46:06 2005
+++ squid-2.5.STABLE11/src/client_side.c Thu Sep 15 03:53:28 2005
@@ -1,6 +1,6 @@
/*
- * $Id: client_side.c,v 1.561.2.76 2005/04/20 21:46:06 hno Exp $
+ * $Id: client_side.c,v 1.561.2.86 2005/09/15 09:53:28 hno Exp $
*
* DEBUG: section 33 Client-side Routines
* AUTHOR: Duane Wessels
@@ -41,6 +41,25 @@
#endif
#include
#include
+/* 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
+#ifdef HAVE_IPL_H
+#include
+#elif HAVE_NETINET_IPL_H
+#include
+#endif
#if HAVE_IP_FIL_COMPAT_H
#include
#elif HAVE_NETINET_IP_FIL_COMPAT_H
@@ -357,6 +376,7 @@
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,7 +389,6 @@
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);
}
@@ -1022,7 +1041,7 @@
*/
if (strListIsSubstr(&s, ThisCache2, ',')) {
debugObj(33, 1, "WARNING: Forwarding loop detected for:\n",
- request, (ObjPackMethod) & httpRequestPack);
+ request, (ObjPackMethod) & httpRequestPackDebug);
request->flags.loopdetect = 1;
}
#if FORW_VIA_DB
@@ -1077,9 +1096,7 @@
request->http_ver.major, request->http_ver.minor);
debug(33, 3) ("clientSetKeepaliveFlag: method = %s\n",
RequestMethodStr[request->method]);
- if (!Config.onoff.client_pconns)
- request->flags.proxy_keepalive = 0;
- else {
+ {
http_version_t http_ver;
httpBuildVersion(&http_ver, 1, 0); /* we are HTTP/1.0, no matter what the client requests... */
if (httpMsgIsPersistent(http_ver, req_hdr))
@@ -1404,7 +1421,10 @@
(void) 0;
else if (http->entry->timestamp < 0)
(void) 0;
- else if (http->entry->timestamp < squid_curtime)
+ 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);
}
@@ -1441,10 +1461,12 @@
debug(33, 3) ("clientBuildReplyHeader: can't keep-alive, unknown body size\n");
request->flags.proxy_keepalive = 0;
}
- if (fdUsageHigh()) {
+ if (fdUsageHigh() && !request->flags.must_keepalive) {
debug(33, 3) ("clientBuildReplyHeader: Not many unused FDs, can't keep-alive\n");
request->flags.proxy_keepalive = 0;
}
+ if (!Config.onoff.client_pconns && !request->flags.must_keepalive)
+ request->flags.proxy_keepalive = 0;
/* Signal keep-alive if needed */
httpHeaderPutStr(hdr,
http->flags.accel ? HDR_CONNECTION : HDR_PROXY_CONNECTION,
@@ -2164,6 +2186,9 @@
* this request is in progress, maybe doing an ACL or a redirect,
* execution will resume after the operation completes.
*/
+ /* if it was a pipelined CONNECT kick it alive here */
+ if (http->request->method == METHOD_CONNECT)
+ clientAccessCheck(http);
} else {
debug(33, 2) ("clientKeepaliveNextRequest: FD %d Sending next\n",
conn->fd);
@@ -2587,8 +2612,12 @@
#if IPF_TRANSPARENT
struct natlookup natLookup;
static int natfd = -1;
- static int siocgnatl_cmd = SIOCGNATL & 0xff;
int x;
+#if defined(IPFILTER_VERSION) && (IPFILTER_VERSION >= 4000027)
+ struct ipfobj obj;
+#else
+ static int siocgnatl_cmd = SIOCGNATL & 0xff;
+#endif
#endif
#if PF_TRANSPARENT
struct pfioc_natlook nl;
@@ -2719,11 +2748,10 @@
*t = '\0';
#endif
- /* handle internal objects */
- if (internalCheck(url)) {
+ /* handle direct internal objects */
+ if (!Config2.Accel.on && 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 */
@@ -2731,6 +2759,14 @@
int vport;
if (vhost_mode) {
#if IPF_TRANSPARENT
+ static time_t last_reported = 0;
+#if defined(IPFILTER_VERSION) && (IPFILTER_VERSION >= 4000027)
+ obj.ipfo_rev = IPFILTER_VERSION;
+ obj.ipfo_size = sizeof(natLookup);
+ obj.ipfo_ptr = &natLookup;
+ obj.ipfo_type = IPFOBJ_NATLOOKUP;
+ obj.ipfo_offset = 0;
+#endif
natLookup.nl_inport = http->conn->me.sin_port;
natLookup.nl_outport = http->conn->peer.sin_port;
natLookup.nl_inip = http->conn->me.sin_addr;
@@ -2739,8 +2775,8 @@
if (natfd < 0) {
int save_errno;
enter_suid();
-#ifdef IPL_NAME
- natfd = open(IPL_NAME, O_RDONLY, 0);
+#ifdef IPNAT_NAME
+ natfd = open(IPNAT_NAME, O_RDONLY, 0);
#else
natfd = open(IPL_NAT, O_RDONLY, 0);
#endif
@@ -2749,13 +2785,14 @@
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 {
+#if defined(IPFILTER_VERSION) && (IPFILTER_VERSION >= 4000027)
+ x = ioctl(natfd, SIOCGNATL, &obj);
+#else
/*
* IP-Filter changed the type for SIOCGNATL between
* 3.3 and 3.4. It also changed the cmd value for
@@ -2769,50 +2806,62 @@
} else {
x = ioctl(natfd, SIOCGNATL, &natLookup);
}
+#endif
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)
@@ -3099,7 +3148,7 @@
if (internalHostnameIs(request->host) &&
request->port == ntohs(Config.Sockaddr.http->s.sin_port)) {
http->flags.internal = 1;
- } else if (internalStaticCheck(strBuf(request->urlpath))) {
+ } 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;
@@ -3167,7 +3216,13 @@
if (request->method == METHOD_CONNECT) {
/* Stop reading requests... */
commSetSelect(fd, COMM_SELECT_READ, NULL, NULL, 0);
- clientAccessCheck(http);
+ if (conn->chr == http)
+ clientAccessCheck(http);
+ else {
+ debug(33, 1) ("WARNING: pipelined CONNECT request seen from %s\n", inet_ntoa(http->conn->peer.sin_addr));
+ debugObj(33, 1, "Previous request:\n", conn->chr->request, (ObjPackMethod) & httpRequestPackDebug);
+ debugObj(33, 1, "This request:\n", request, (ObjPackMethod) & httpRequestPackDebug);
+ }
break;
} else {
clientAccessCheck(http);
diff -ruN squid-2.5.STABLE10/src/comm.c squid-2.5.STABLE11/src/comm.c
--- squid-2.5.STABLE10/src/comm.c Sat Feb 12 22:53:56 2005
+++ squid-2.5.STABLE11/src/comm.c Sat Sep 10 04:17:55 2005
@@ -1,6 +1,6 @@
/*
- * $Id: comm.c,v 1.324.2.5 2005/02/13 05:53:56 hno Exp $
+ * $Id: comm.c,v 1.324.2.6 2005/09/10 10:17:55 serassio Exp $
*
* DEBUG: section 5 Socket Functions
* AUTHOR: Harvest Derived
@@ -794,7 +794,7 @@
int nonblocking = TRUE;
if (fd_table[fd].type != FD_PIPE) {
if (ioctl(fd, FIONBIO, &nonblocking) < 0) {
- debug(50, 0) ("commSetNonBlocking: FD %d: %s %D\n", fd, xstrerror(), fd_table[fd].type);
+ debug(50, 0) ("commSetNonBlocking: FD %d: %s %u\n", fd, xstrerror(), fd_table[fd].type);
return COMM_ERROR;
}
} else {
diff -ruN squid-2.5.STABLE10/src/delay_pools.c squid-2.5.STABLE11/src/delay_pools.c
--- squid-2.5.STABLE10/src/delay_pools.c Wed Jun 18 17:53:35 2003
+++ squid-2.5.STABLE11/src/delay_pools.c Sat Sep 10 19:49:53 2005
@@ -1,6 +1,6 @@
/*
- * $Id: delay_pools.c,v 1.19.2.8 2003/06/18 23:53:35 hno Exp $
+ * $Id: delay_pools.c,v 1.19.2.9 2005/09/11 01:49:53 hno Exp $
*
* DEBUG: section 77 Delay Pools
* AUTHOR: David Luyer
@@ -652,8 +652,6 @@
sc = (store_client *) node->data;
if (sc->callback_data == NULL) /* open slot */
continue;
- if (sc->type != STORE_MEM_CLIENT)
- continue;
i = delayBytesWanted(sc->delay_id, i, max);
found = 1;
}
@@ -661,7 +659,7 @@
}
delay_id
-delayMostBytesAllowed(const MemObject * mem)
+delayMostBytesAllowed(const MemObject * mem, size_t * read_sz)
{
int j;
int jmax = -1;
@@ -672,14 +670,14 @@
sc = (store_client *) node->data;
if (sc->callback_data == NULL) /* open slot */
continue;
- if (sc->type != STORE_MEM_CLIENT)
- continue;
- j = delayBytesWanted(sc->delay_id, 0, SQUID_TCP_SO_RCVBUF);
+ j = delayBytesWanted(sc->delay_id, 0, INT_MAX);
if (j > jmax) {
jmax = j;
d = sc->delay_id;
}
}
+ if (jmax >= 0 && jmax < (int) *read_sz)
+ *read_sz = (size_t) jmax;
return d;
}
diff -ruN squid-2.5.STABLE10/src/dns_internal.c squid-2.5.STABLE11/src/dns_internal.c
--- squid-2.5.STABLE10/src/dns_internal.c Wed May 11 13:18:47 2005
+++ squid-2.5.STABLE11/src/dns_internal.c Tue Sep 20 05:52:24 2005
@@ -1,6 +1,6 @@
/*
- * $Id: dns_internal.c,v 1.45.2.9 2005/05/11 19:18:47 hno Exp $
+ * $Id: dns_internal.c,v 1.45.2.10 2005/09/20 11:52:24 serassio Exp $
*
* DEBUG: section 78 DNS lookups; interacts with lib/rfc1035.c
* AUTHOR: Duane Wessels
@@ -235,6 +235,7 @@
case _WIN_OS_WIN2K:
case _WIN_OS_WINXP:
case _WIN_OS_WINNET:
+ case _WIN_OS_WINLON:
/* get nameservers from the Windows 2000 registry */
/* search all interfaces for DNS server addresses */
if (RegOpenKey(HKEY_LOCAL_MACHINE,
diff -ruN squid-2.5.STABLE10/src/enums.h squid-2.5.STABLE11/src/enums.h
--- squid-2.5.STABLE10/src/enums.h Fri Mar 25 19:50:52 2005
+++ squid-2.5.STABLE11/src/enums.h Tue Sep 20 05:52:25 2005
@@ -1,6 +1,6 @@
/*
- * $Id: enums.h,v 1.203.2.15 2005/03/26 02:50:52 hno Exp $
+ * $Id: enums.h,v 1.203.2.17 2005/09/20 11:52:25 serassio Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -180,7 +180,8 @@
/* recognized or "known" header fields; @?@ add more! */
typedef enum {
- HDR_ACCEPT,
+ HDR_UNKNOWN = -1,
+ HDR_ACCEPT = 0,
HDR_ACCEPT_CHARSET,
HDR_ACCEPT_ENCODING,
HDR_ACCEPT_LANGUAGE,
@@ -734,7 +735,8 @@
_WIN_OS_WINNT,
_WIN_OS_WIN2K,
_WIN_OS_WINXP,
- _WIN_OS_WINNET
+ _WIN_OS_WINNET,
+ _WIN_OS_WINLON
};
#endif
diff -ruN squid-2.5.STABLE10/src/forward.c squid-2.5.STABLE11/src/forward.c
--- squid-2.5.STABLE10/src/forward.c Fri Mar 25 19:50:53 2005
+++ squid-2.5.STABLE11/src/forward.c Thu Sep 1 16:14:45 2005
@@ -1,6 +1,6 @@
/*
- * $Id: forward.c,v 1.82.2.15 2005/03/26 02:50:53 hno Exp $
+ * $Id: forward.c,v 1.82.2.16 2005/09/01 22:14:45 hno Exp $
*
* DEBUG: section 17 Request Forwarding
* AUTHOR: Duane Wessels
@@ -236,7 +236,6 @@
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) {
@@ -250,7 +249,6 @@
err->host = xstrdup(request->host);
err->port = request->port;
}
- err->request = requestLink(request);
fwdFail(fwdState, err);
if (fs->peer)
peerConnectFailed(fs->peer);
@@ -282,7 +280,6 @@
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);
/*
@@ -420,7 +417,6 @@
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;
@@ -466,7 +462,6 @@
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);
@@ -525,7 +520,6 @@
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
@@ -710,7 +704,6 @@
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),
@@ -718,6 +711,8 @@
if (fwdState->err)
errorStateFree(fwdState->err);
fwdState->err = errorState;
+ if (!errorState->request)
+ errorState->request = requestLink(fwdState->request);
}
/*
diff -ruN squid-2.5.STABLE10/src/ftp.c squid-2.5.STABLE11/src/ftp.c
--- squid-2.5.STABLE10/src/ftp.c Fri Mar 25 19:50:53 2005
+++ squid-2.5.STABLE11/src/ftp.c Sat Sep 10 19:49:53 2005
@@ -1,6 +1,6 @@
/*
- * $Id: ftp.c,v 1.316.2.25 2005/03/26 02:50:53 hno Exp $
+ * $Id: ftp.c,v 1.316.2.32 2005/09/11 01:49:53 hno Exp $
*
* DEBUG: section 9 File Transfer Protocol (FTP)
* AUTHOR: Harvest Derived
@@ -69,6 +69,7 @@
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,6 +88,7 @@
int password_url;
char *reply_hdr;
int reply_hdr_state;
+ String clean_url;
String title_url;
String base_href;
int conn_att;
@@ -96,6 +98,7 @@
squid_off_t size;
wordlist *pathcomps;
char *filepath;
+ char *dirpath;
squid_off_t restart_offset;
squid_off_t restarted_offset;
int rest_att;
@@ -365,15 +368,18 @@
wordlist *w;
char *dirup;
int i, j, k;
- char *title;
- storeBuffer(e);
+ const char *title = strBuf(ftpState->title_url);
storeAppendPrintf(e, "\n");
storeAppendPrintf(e, "\n",
version_string);
storeAppendPrintf(e, "\n", mkrfc1123(squid_curtime));
storeAppendPrintf(e, "\n");
- storeAppendPrintf(e, "FTP Directory: %s\n",
- html_quote(strBuf(ftpState->title_url)));
+ {
+ char *t = xstrdup(title);
+ rfc1738_unescape(t);
+ storeAppendPrintf(e, "FTP Directory: %s\n", html_quote(t));
+ xfree(t);
+ }
storeAppendPrintf(e, "\n");
storeAppendPrintf(e, "\n");
if (ftpState->flags.use_base)
@@ -392,27 +398,29 @@
storeAppendPrintf(e, "FTP Directory: ");
/* "ftp://" == 6 characters */
assert(strLen(ftpState->title_url) >= 6);
- title = html_quote(strBuf(ftpState->title_url));
+ k = 6 + strcspn(&title[6], "/");
for (i = 6, j = 0; title[i]; j = i) {
storeAppendPrintf(e, " 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, "");
+ }
+ storeAppendPrintf(e, "/");
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, "");
- 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));
+ html_quote(title));
+ debug(9, 0) ("Failed to parse URL: %s\n", title);
break;
}
}
@@ -420,7 +428,6 @@
storeAppendPrintf(e, "\n");
dirup = ftpHtmlifyListEntry("", ftpState);
storeAppend(e, dirup, strlen(dirup));
- storeBufferFlush(e);
ftpState->flags.html_header_sent = 1;
}
@@ -428,12 +435,12 @@
ftpListingFinish(FtpStateData * ftpState)
{
StoreEntry *e = ftpState->entry;
- storeBuffer(e);
storeAppendPrintf(e, "
\n");
if (ftpState->flags.listformat_unknown && !ftpState->flags.tried_nlst) {
- storeAppendPrintf(e, "[As plain directory]\n");
+ storeAppendPrintf(e, "[As plain directory]\n",
+ ftpState->flags.dir_slash ? rfc1738_escape_part(ftpState->filepath) : ".");
} else if (ftpState->typecode == 'D') {
- const char *path = ftpState->filepath ? ftpState->filepath : ".";
+ const char *path = ftpState->flags.dir_slash ? ftpState->filepath : ".";
storeAppendPrintf(e, "[As extended directory]\n", html_quote(path));
}
storeAppendPrintf(e, "
\n");
@@ -443,7 +450,6 @@
getMyHostname(),
full_appname_string);
storeAppendPrintf(e, "\n");
- storeBufferFlush(e);
}
static const char *Month[] =
@@ -675,6 +681,7 @@
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';
@@ -682,6 +689,10 @@
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 */
if (strcmp(line, "") == 0) {
/* {icon} {text} {link} */
@@ -690,7 +701,10 @@
"[DIRUP]");
if (!ftpState->flags.no_dotdot && !ftpState->flags.root_dir) {
/* Normal directory */
- strcpy(href, "../");
+ 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 */
@@ -704,7 +718,7 @@
strcpy(href, "%2e%2e/");
strcpy(text, "Parent Directory");
snprintf(link, 2048, "(%s)",
- "../",
+ !ftpState->flags.dir_slash ? "../" : "./",
"Back");
} else { /* NO_DOTDOT && ROOT_DIR */
/* "UNIX Root" directory */
@@ -752,8 +766,8 @@
/* sometimes there is an 'l' flag, but no "->" link */
if (parts->link) {
char *link2 = xstrdup(html_quote(rfc1738_escape(parts->link)));
- snprintf(link, 2048, " -> %s",
- link2,
+ snprintf(link, 2048, " -> %s",
+ *link2 != '/' ? prefix : "", link2,
html_quote(parts->link));
safe_free(link2);
}
@@ -793,27 +807,27 @@
}
if (parts->type != 'd') {
if (mimeGetViewOption(parts->name)) {
- snprintf(view, 2048, " 
",
- href, mimeGetIconURL("internal-view"));
+ prefix, href, mimeGetIconURL("internal-view"));
}
if (mimeGetDownloadOption(parts->name)) {
- snprintf(download, 2048, " 
",
- href, mimeGetIconURL("internal-download"));
+ prefix, href, mimeGetIconURL("internal-download"));
}
}
/* {icon} {text} . . . {date}{size}{chdir}{view}{download}{link}\n */
if (parts->type != '\0') {
- snprintf(html, 8192, "%s %s%s "
+ snprintf(html, 8192, "%s %s%s "
"%s%8s%s%s%s%s\n",
- href, icon, href, html_quote(text), dots_fill(strlen(text)),
+ 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, "%s %s%s "
+ snprintf(html, 8192, "%s %s%s "
"%s%s%s%s\n",
- href, icon, href, html_quote(text), dots_fill(strlen(text)),
+ prefix, href, icon, prefix, href, html_quote(text), dots_fill(strlen(text)),
chdir, view, download, link);
}
ftpListPartsFree(&parts);
@@ -851,7 +865,7 @@
debug(9, 3) ("ftpParseListing: %d bytes to play with\n", (int) len);
line = memAllocate(MEM_4K_BUF);
end++;
- storeBuffer(e);
+ 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)) {
@@ -869,7 +883,6 @@
assert(t != NULL);
storeAppend(e, t, strlen(t));
}
- storeBufferFlush(e);
assert(usable <= len);
if (usable < len) {
/* must copy partial line to beginning of buf */
@@ -911,8 +924,7 @@
StoreEntry *entry = ftpState->entry;
size_t read_sz;
#if DELAY_POOLS
- MemObject *mem = entry->mem_obj;
- delay_id delay_id = delayMostBytesAllowed(mem);
+ delay_id delay_id;
#endif
assert(fd == ftpState->data.fd);
if (EBIT_TEST(entry->flags, ENTRY_ABORTED)) {
@@ -922,7 +934,7 @@
errno = 0;
read_sz = ftpState->data.size - ftpState->data.offset;
#if DELAY_POOLS
- read_sz = delayBytesWanted(delay_id, 1, read_sz);
+ delay_id = delayMostBytesAllowed(entry->mem_obj, &read_sz);
#endif
memset(ftpState->data.buf + ftpState->data.offset, '\0', read_sz);
statCounter.syscalls.sock.reads++;
@@ -974,6 +986,7 @@
storeAppend(entry, ftpState->data.buf, len);
ftpState->data.offset = 0;
}
+ storeBufferFlush(entry);
commSetSelect(fd,
COMM_SELECT_READ,
ftpDataRead,
@@ -1059,12 +1072,6 @@
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")) {
@@ -1557,7 +1564,10 @@
debug(9, 4) ("ftpTraverseDirectory %s\n",
ftpState->filepath ? ftpState->filepath : "");
- safe_free(ftpState->filepath);
+ 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,7 +1672,7 @@
debug(9, 3) ("Directory path did not end in /\n");
strCat(ftpState->title_url, "/");
ftpState->flags.isdir = 1;
- ftpState->flags.use_base = 1;
+ ftpState->flags.dir_slash = 1;
}
ftpSendPasv(ftpState);
}
@@ -2264,7 +2274,7 @@
{
int code = ftpState->ctrl.replycode;
debug(9, 3) ("This is ftpReadTransferDone\n");
- if (code == 226) {
+ if (code == 226 || code == 250) {
/* Connection closed; retrieval done. */
if (ftpState->flags.html_header_sent)
ftpListingFinish(ftpState);
@@ -2330,7 +2340,7 @@
{
int code = ftpState->ctrl.replycode;
debug(9, 3) ("This is ftpWriteTransferDone\n");
- if (code != 226) {
+ if (!(code == 226 || code == 250)) {
debug(9, 1) ("ftpReadTransferDone: Got code %d after sending data\n",
code);
ftpFailed(ftpState, ERR_FTP_PUT_ERROR);
@@ -2476,7 +2486,6 @@
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)
@@ -2507,7 +2516,7 @@
storeUrl(ftpState->entry), code);
if (cbdataValid(ftpState))
debug(9, 5) ("ftpSendReply: ftpState (%p) is valid!\n", ftpState);
- if (code == 226) {
+ 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) {
@@ -2530,7 +2539,6 @@
else
err->ftp.reply = xstrdup("");
errorAppendEntry(ftpState->entry, err);
- storeBufferFlush(ftpState->entry);
ftpSendQuit(ftpState);
}
@@ -2551,6 +2559,7 @@
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";
@@ -2569,7 +2578,6 @@
break;
}
}
- storeBuffer(e);
httpReplyReset(reply);
/* set standard stuff */
if (ftpState->restarted_offset) {
@@ -2591,7 +2599,6 @@
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) {
diff -ruN squid-2.5.STABLE10/src/globals.h squid-2.5.STABLE11/src/globals.h
--- squid-2.5.STABLE10/src/globals.h Wed Apr 20 15:52:26 2005
+++ squid-2.5.STABLE11/src/globals.h Mon Jun 13 16:26:21 2005
@@ -1,6 +1,6 @@
/*
- * $Id: globals.h,v 1.108.2.6 2005/04/20 21:52:26 hno Exp $
+ * $Id: globals.h,v 1.108.2.7 2005/06/13 22:26:21 hno Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -166,5 +166,6 @@
extern void *sbrk_start; /* 0 */
#endif
extern int opt_send_signal; /* -1 */
+extern int opt_no_daemon; /* 0 */
#endif /* SQUID_GLOBALS_H */
diff -ruN squid-2.5.STABLE10/src/gopher.c squid-2.5.STABLE11/src/gopher.c
--- squid-2.5.STABLE10/src/gopher.c Tue Jan 11 23:04:01 2005
+++ squid-2.5.STABLE11/src/gopher.c Sat Sep 10 19:49:53 2005
@@ -1,6 +1,6 @@
/*
- * $Id: gopher.c,v 1.162.2.8 2005/01/12 06:04:01 wessels Exp $
+ * $Id: gopher.c,v 1.162.2.11 2005/09/11 01:49:53 hno Exp $
*
* DEBUG: section 10 Gopher
* AUTHOR: Harvest Derived
@@ -603,12 +603,8 @@
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));
- }
- }
+ fwdFail(gopherState->fwdState,
+ errorCon(ERR_READ_TIMEOUT, HTTP_GATEWAY_TIMEOUT));
comm_close(fd);
}
@@ -625,7 +621,7 @@
int bin;
size_t read_sz;
#if DELAY_POOLS
- delay_id delay_id = delayMostBytesAllowed(entry->mem_obj);
+ delay_id delay_id;
#endif
if (EBIT_TEST(entry->flags, ENTRY_ABORTED)) {
comm_close(fd);
@@ -635,7 +631,7 @@
buf = memAllocate(MEM_4K_BUF);
read_sz = 4096 - 1; /* leave room for termination */
#if DELAY_POOLS
- read_sz = delayBytesWanted(delay_id, 1, read_sz);
+ delay_id = delayMostBytesAllowed(entry->mem_obj, &read_sz);
#endif
/* leave one space for \0 in gopherToHTML */
statCounter.syscalls.sock.reads++;
@@ -660,22 +656,15 @@
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) {
+ } else {
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 {
+ fwdFail(gopherState->fwdState, 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->url = xstrdup(gopherState->request);
- errorAppendEntry(entry, err);
+ fwdFail(gopherState->fwdState, errorCon(ERR_ZERO_SIZE_OBJECT, HTTP_SERVICE_UNAVAILABLE));
comm_close(fd);
} else if (len == 0) {
/* Connection closed; retrieval done. */
@@ -717,12 +706,12 @@
}
if (errflag) {
ErrorState *err;
- err = errorCon(ERR_CONNECT_FAIL, HTTP_SERVICE_UNAVAILABLE);
+ 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));
- errorAppendEntry(entry, err);
+ fwdFail(gopherState->fwdState, err);
comm_close(fd);
if (buf)
memFree(buf, MEM_4K_BUF); /* Allocated by gopherSendRequest. */
@@ -732,29 +721,28 @@
* 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 */
- 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;
+ storeBufferFlush(entry);
}
/* Schedule read reply. */
commSetSelect(fd, COMM_SELECT_READ, gopherReadReply, gopherState, 0);
@@ -815,16 +803,6 @@
/* 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)) {
diff -ruN squid-2.5.STABLE10/src/http.c squid-2.5.STABLE11/src/http.c
--- squid-2.5.STABLE10/src/http.c Fri Mar 25 19:50:53 2005
+++ squid-2.5.STABLE11/src/http.c Sat Sep 10 19:49:54 2005
@@ -1,6 +1,6 @@
/*
- * $Id: http.c,v 1.384.2.30 2005/03/26 02:50:53 hno Exp $
+ * $Id: http.c,v 1.384.2.32 2005/09/11 01:49:54 hno Exp $
*
* DEBUG: section 11 Hypertext Transfer Protocol (HTTP)
* AUTHOR: Harvest Derived
@@ -99,10 +99,8 @@
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));
- }
+ fwdFail(httpState->fwd,
+ errorCon(ERR_READ_TIMEOUT, HTTP_GATEWAY_TIMEOUT));
}
comm_close(fd);
}
@@ -565,26 +563,23 @@
int len;
int bin;
int clen;
- size_t read_sz;
+ size_t read_sz = SQUID_TCP_SO_RCVBUF;
#if DELAY_POOLS
delay_id delay_id;
-
- /* special "if" only for http (for nodelay proxy conns) */
- if (delayIsNoDelay(fd))
- delay_id = 0;
- else
- delay_id = delayMostBytesAllowed(entry->mem_obj);
#endif
+
if (EBIT_TEST(entry->flags, ENTRY_ABORTED)) {
comm_close(fd);
return;
}
- /* check if we want to defer reading */
- errno = 0;
- read_sz = SQUID_TCP_SO_RCVBUF;
#if DELAY_POOLS
- read_sz = delayBytesWanted(delay_id, 1, read_sz);
+ /* special "if" only for http (for nodelay proxy conns) */
+ if (delayIsNoDelay(fd))
+ delay_id = 0;
+ else
+ delay_id = delayMostBytesAllowed(entry->mem_obj, &read_sz);
#endif
+ errno = 0;
statCounter.syscalls.sock.reads++;
len = FD_READ_METHOD(fd, buf, read_sz);
debug(11, 5) ("httpReadReply: FD %d: len %d.\n", fd, len);
@@ -616,22 +611,15 @@
fd, xstrerror());
if (ignoreErrno(errno)) {
commSetSelect(fd, COMM_SELECT_READ, httpReadReply, httpState, 0);
- } else if (entry->mem_obj->inmem_hi == 0) {
+ } else {
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);
+ fwdFail(httpState->fwd, errorCon(ERR_ZERO_SIZE_OBJECT, HTTP_BAD_GATEWAY));
httpState->eof = 1;
comm_close(fd);
} else if (len == 0) {
@@ -646,18 +634,12 @@
*/
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);
+ 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)) {
- ErrorState *err;
storeEntryReset(entry);
- err = errorCon(ERR_INVALID_RESP, HTTP_BAD_GATEWAY);
- err->request = requestLink((request_t *) request);
- fwdFail(httpState->fwd, err);
+ fwdFail(httpState->fwd, errorCon(ERR_INVALID_RESP, HTTP_BAD_GATEWAY));
httpState->fwd->flags.dont_retry = 1;
} else {
fwdComplete(httpState->fwd);
@@ -670,22 +652,16 @@
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);
+ 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)) {
- ErrorState *err;
storeEntryReset(entry);
- err = errorCon(ERR_INVALID_RESP, HTTP_BAD_GATEWAY);
- err->request = requestLink((request_t *) request);
- fwdFail(httpState->fwd, err);
+ fwdFail(httpState->fwd, errorCon(ERR_INVALID_RESP, HTTP_BAD_GATEWAY));
httpState->fwd->flags.dont_retry = 1;
comm_close(fd);
return;
@@ -804,7 +780,6 @@
{
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
@@ -818,12 +793,10 @@
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);
- }
+ ErrorState *err;
+ err = errorCon(ERR_WRITE_ERROR, HTTP_BAD_GATEWAY);
+ err->xerrno = errno;
+ fwdFail(httpState->fwd, err);
comm_close(fd);
return;
} else {
@@ -1264,7 +1237,6 @@
{
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) {
@@ -1275,12 +1247,10 @@
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);
- }
+ ErrorState *err;
+ err = errorCon(ERR_WRITE_ERROR, HTTP_BAD_GATEWAY);
+ err->xerrno = errno;
+ fwdFail(httpState->fwd, err);
comm_close(fd);
return;
}
diff -ruN squid-2.5.STABLE10/src/internal.c squid-2.5.STABLE11/src/internal.c
--- squid-2.5.STABLE10/src/internal.c Thu Jan 11 17:37:18 2001
+++ squid-2.5.STABLE11/src/internal.c Thu Sep 15 03:53:28 2005
@@ -1,6 +1,6 @@
/*
- * $Id: internal.c,v 1.23 2001/01/12 00:37:18 wessels Exp $
+ * $Id: internal.c,v 1.23.2.1 2005/09/15 09:53:28 hno Exp $
*
* DEBUG: section 76 Internal Squid Object handling
* AUTHOR: Duane, Alex, Henrik
@@ -69,7 +69,7 @@
storeComplete(entry);
} else {
debugObj(76, 1, "internalStart: unknown request:\n",
- request, (ObjPackMethod) & httpRequestPack);
+ request, (ObjPackMethod) & httpRequestPackDebug);
err = errorCon(ERR_INVALID_REQ, HTTP_NOT_FOUND);
err->request = requestLink(request);
errorAppendEntry(entry, err);
diff -ruN squid-2.5.STABLE10/src/main.c squid-2.5.STABLE11/src/main.c
--- squid-2.5.STABLE10/src/main.c Wed Apr 20 15:52:26 2005
+++ squid-2.5.STABLE11/src/main.c Mon Jun 27 15:24:28 2005
@@ -1,6 +1,6 @@
/*
- * $Id: main.c,v 1.345.2.25 2005/04/20 21:52:26 hno Exp $
+ * $Id: main.c,v 1.345.2.27 2005/06/27 21:24:28 hno Exp $
*
* DEBUG: section 1 Startup and Main Loop
* AUTHOR: Harvest Derived
@@ -38,7 +38,6 @@
/* 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;
@@ -684,8 +683,12 @@
/* 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");
+ if (Config.chroot_dir) {
+ if (chroot(Config.chroot_dir))
+ fatal("failed to chroot");
+ no_suid();
+ } else {
+ leave_suid();
}
sendSignal();
/* NOTREACHED */
diff -ruN squid-2.5.STABLE10/src/net_db.c squid-2.5.STABLE11/src/net_db.c
--- squid-2.5.STABLE10/src/net_db.c Fri Mar 25 19:50:53 2005
+++ squid-2.5.STABLE11/src/net_db.c Fri Sep 16 15:13:18 2005
@@ -1,6 +1,6 @@
/*
- * $Id: net_db.c,v 1.158.2.9 2005/03/26 02:50:53 hno Exp $
+ * $Id: net_db.c,v 1.158.2.11 2005/09/16 21:13:18 hno Exp $
*
* DEBUG: section 38 Network Measurement Database
* AUTHOR: Duane Wessels
@@ -556,7 +556,7 @@
if (0 == ex->used) {
/* skip reply headers */
if ((hdr_sz = headersEnd(p, size))) {
- debug(38, 5) ("netdbExchangeHandleReply: hdr_sz = %d\n", hdr_sz);
+ 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);
@@ -571,14 +571,20 @@
size -= hdr_sz;
p += hdr_sz;
} else {
- size = 0;
+ if (size >= ex->buf_sz) {
+ debug(38, 3) ("netdbExchangeHandleReply: Too big HTTP header, aborting\n");
+ netdbExchangeDone(ex);
+ return;
+ } else {
+ size = 0;
+ }
}
}
- debug(38, 5) ("netdbExchangeHandleReply: start parsing loop, size = %d\n",
- size);
+ 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 = %d\n",
- size);
+ 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 -ruN squid-2.5.STABLE10/src/protos.h squid-2.5.STABLE11/src/protos.h
--- squid-2.5.STABLE10/src/protos.h Tue Apr 19 16:19:27 2005
+++ squid-2.5.STABLE11/src/protos.h Thu Sep 15 03:53:28 2005
@@ -1,6 +1,6 @@
/*
- * $Id: protos.h,v 1.420.2.34 2005/04/19 22:19:27 hno Exp $
+ * $Id: protos.h,v 1.420.2.38 2005/09/15 09:53:28 hno Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -397,7 +397,7 @@
extern int strListGetItem(const String * str, char del, const char **item, int *ilen, const char **pos);
extern const char *getStringPrefix(const char *str, const char *end);
extern int httpHeaderParseInt(const char *start, int *val);
-extern squid_off_t httpHeaderParseSize(const char *start, squid_off_t * sz);
+extern int httpHeaderParseSize(const char *start, squid_off_t * sz);
extern int httpHeaderReset(HttpHeader * hdr);
#if STDC_HEADERS
extern void
@@ -424,6 +424,7 @@
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,6 +454,7 @@
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 */
@@ -505,7 +507,7 @@
extern void requestUnlink(request_t *);
extern int httpRequestParseHeader(request_t * req, const char *parse_start);
extern void httpRequestSwapOut(const request_t * req, StoreEntry * e);
-extern void httpRequestPack(const request_t * req, Packer * p);
+extern void httpRequestPackDebug(request_t * req, Packer * p);
extern int httpRequestPrefixLen(const request_t * req);
extern int httpRequestHdrAllowed(const HttpHeaderEntry * e, String * strConnection);
extern int httpRequestHdrAllowedByName(http_hdr_type id);
@@ -1244,7 +1246,7 @@
extern int delayBytesWanted(delay_id d, int min, int max);
extern void delayBytesIn(delay_id, int qty);
extern int delayMostBytesWanted(const MemObject * mem, int max);
-extern delay_id delayMostBytesAllowed(const MemObject * mem);
+extern delay_id delayMostBytesAllowed(const MemObject * mem, size_t * bytes);
extern void delaySetStoreClient(store_client * sc, delay_id delay_id);
extern void delayRegisterDelayIdPtr(delay_id * loc);
extern void delayUnregisterDelayIdPtr(delay_id * loc);
diff -ruN squid-2.5.STABLE10/src/snmp_core.c squid-2.5.STABLE11/src/snmp_core.c
--- squid-2.5.STABLE10/src/snmp_core.c Wed May 4 12:03:47 2005
+++ squid-2.5.STABLE11/src/snmp_core.c Sun Jun 19 15:01:21 2005
@@ -1,6 +1,6 @@
/*
- * $Id: snmp_core.c,v 1.51.2.5 2005/05/04 18:03:47 hno Exp $
+ * $Id: snmp_core.c,v 1.51.2.6 2005/06/19 21:01:21 hno Exp $
*
* DEBUG: section 49 SNMP support
* AUTHOR: Glenn Chisholm
@@ -660,7 +660,11 @@
if (Current[count] == mibTreeEntry->name[count]) {
count++;
while ((mibTreeEntry) && (count < CurrentLen) && (!mibTreeEntry->parsefunction)) {
- mibTreeEntry = snmpTreeEntry(Current[count], count, mibTreeEntry);
+ 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 -ruN squid-2.5.STABLE10/src/ssl.c squid-2.5.STABLE11/src/ssl.c
--- squid-2.5.STABLE10/src/ssl.c Sun Apr 17 18:54:30 2005
+++ squid-2.5.STABLE11/src/ssl.c Thu Sep 1 14:24:27 2005
@@ -1,6 +1,6 @@
/*
- * $Id: ssl.c,v 1.118.2.11 2005/04/18 00:54:30 hno Exp $
+ * $Id: ssl.c,v 1.118.2.12 2005/09/01 20:24:27 hno Exp $
*
* DEBUG: section 26 Secure Sockets Layer Proxy
* AUTHOR: Duane Wessels
@@ -106,6 +106,8 @@
sslState->client.fd = -1;
if (sslState->server.fd == -1)
sslStateFree(sslState);
+ else if (!sslState->connected)
+ comm_close(sslState->server.fd);
}
static void
diff -ruN squid-2.5.STABLE10/src/store.c squid-2.5.STABLE11/src/store.c
--- squid-2.5.STABLE10/src/store.c Fri Mar 25 19:50:53 2005
+++ squid-2.5.STABLE11/src/store.c Thu Sep 1 16:42:03 2005
@@ -1,6 +1,6 @@
/*
- * $Id: store.c,v 1.544.2.8 2005/03/26 02:50:53 hno Exp $
+ * $Id: store.c,v 1.544.2.9 2005/09/01 22:42:03 hno Exp $
*
* DEBUG: section 20 Storage Manager
* AUTHOR: Harvest Derived
@@ -1232,9 +1232,11 @@
void
storeBufferFlush(StoreEntry * e)
{
- EBIT_CLR(e->flags, DELAY_SENDING);
- InvokeHandlers(e);
- storeSwapOut(e);
+ if (EBIT_TEST(e->flags, DELAY_SENDING)) {
+ EBIT_CLR(e->flags, DELAY_SENDING);
+ InvokeHandlers(e);
+ storeSwapOut(e);
+ }
}
squid_off_t
diff -ruN squid-2.5.STABLE10/src/store_io.c squid-2.5.STABLE11/src/store_io.c
--- squid-2.5.STABLE10/src/store_io.c Fri Mar 25 19:50:54 2005
+++ squid-2.5.STABLE11/src/store_io.c Sat Sep 10 19:11:57 2005
@@ -20,7 +20,7 @@
storeIOState *
storeCreate(StoreEntry * e, STIOCB * file_callback, STIOCB * close_callback, void *callback_data)
{
- size_t objsize;
+ squid_off_t objsize;
sdirno dirn;
SwapDir *SD;
storeIOState *sio;
@@ -41,7 +41,7 @@
store_io_stats.create.select_fail++;
return NULL;
}
- debug(20, 2) ("storeCreate: Selected dir '%d' for obj size '%ld'\n", dirn, (long int) objsize);
+ debug(20, 2) ("storeCreate: Selected dir '%d' for obj size '%" PRINTF_OFF_T "'\n", dirn, objsize);
SD = &Config.cacheSwap.swapDirs[dirn];
/* Now that we have a fs to use, call its storeCreate function */
diff -ruN squid-2.5.STABLE10/src/structs.h squid-2.5.STABLE11/src/structs.h
--- squid-2.5.STABLE10/src/structs.h Wed May 4 12:03:47 2005
+++ squid-2.5.STABLE11/src/structs.h Sat Sep 3 03:14:43 2005
@@ -1,6 +1,6 @@
/*
- * $Id: structs.h,v 1.408.2.43 2005/05/04 18:03:47 hno Exp $
+ * $Id: structs.h,v 1.408.2.48 2005/09/03 09:14:43 serassio Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
@@ -480,6 +480,8 @@
int rotateNumber;
} Log;
char *adminEmail;
+ char *EmailFrom;
+ char *EmailProgram;
char *effectiveUser;
char *effectiveGroup;
struct {
@@ -609,6 +611,7 @@
int relaxed_header_parser;
int accel_uses_host_header;
int accel_no_pmtu_disc;
+ int global_internal_static;
} onoff;
acl *aclList;
struct {
@@ -837,7 +840,7 @@
struct _Packer {
/* protected, use interface functions instead */
append_f append;
- vprintf_f vprintf;
+ vprintf_f packer_vprintf;
void *real_handle; /* first parameter to real append and vprintf */
};
@@ -1619,6 +1622,7 @@
unsigned int internal:1;
unsigned int body_sent:1;
unsigned int reset_tcp:1;
+ unsigned int must_keepalive:1;
};
struct _link_list {
diff -ruN squid-2.5.STABLE10/src/tools.c squid-2.5.STABLE11/src/tools.c
--- squid-2.5.STABLE10/src/tools.c Fri Apr 22 14:45:12 2005
+++ squid-2.5.STABLE11/src/tools.c Fri Sep 16 15:13:18 2005
@@ -1,6 +1,6 @@
/*
- * $Id: tools.c,v 1.213.2.15 2005/04/22 20:45:12 hno Exp $
+ * $Id: tools.c,v 1.213.2.20 2005/09/16 21:13:18 hno Exp $
*
* DEBUG: section 21 Misc Functions
* AUTHOR: Harvest Derived
@@ -35,6 +35,10 @@
#include "squid.h"
+#if HAVE_SYS_PRCTL_H
+#include
+#endif
+
#define DEAD_MSG "\
The Squid Cache (version %s) died.\n\
\n\
@@ -106,11 +110,14 @@
if ((fp = fopen(filename, "w")) == NULL)
return;
#endif
- fprintf(fp, "From: %s\n", appname);
+ 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);
- snprintf(command, 256, "mail %s < %s", Config.adminEmail, filename);
+ snprintf(command, 256, "%s %s < %s", Config.EmailProgram, Config.adminEmail, filename);
system(command); /* XXX should avoid system(3) */
unlink(filename);
}
@@ -491,7 +498,10 @@
if (strchr(host, '.'))
return host;
}
- fatal("Could not determine fully qualified hostname. Please set 'visible_hostname'\n");
+ 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 */
}
@@ -551,6 +561,11 @@
if (setuid(Config2.effectiveUserID) < 0)
debug(50, 0) ("ALERT: setuid: %s\n", xstrerror());
#endif
+#if HAVE_PRCTL && defined(PR_SET_DUMPABLE)
+ /* Set Linux DUMPABLE flag */
+ if (Config.coredump_dir && prctl(PR_SET_DUMPABLE, 1) != 0)
+ debug(50, 2) ("prctl: %s\n", xstrerror());
+#endif
}
/* Enter a privilegied section */
@@ -563,6 +578,11 @@
#else
setuid(0);
#endif
+#if HAVE_PRCTL && defined(PR_SET_DUMPABLE)
+ /* Set Linux DUMPABLE flag */
+ if (Config.coredump_dir && prctl(PR_SET_DUMPABLE, 1) != 0)
+ debug(50, 2) ("prctl: %s\n", xstrerror());
+#endif
}
/* Give up the posibility to gain privilegies.
@@ -582,6 +602,11 @@
setuid(0);
if (setuid(uid) < 0)
debug(50, 1) ("no_suid: setuid: %s\n", xstrerror());
+#endif
+#if HAVE_PRCTL && defined(PR_SET_DUMPABLE)
+ /* Set Linux DUMPABLE flag */
+ if (Config.coredump_dir && prctl(PR_SET_DUMPABLE, 1) != 0)
+ debug(50, 2) ("prctl: %s\n", xstrerror());
#endif
}
diff -ruN squid-2.5.STABLE10/src/urn.c squid-2.5.STABLE11/src/urn.c
--- squid-2.5.STABLE10/src/urn.c Sun Sep 1 06:38:04 2002
+++ squid-2.5.STABLE11/src/urn.c Thu Sep 1 16:14:45 2005
@@ -1,6 +1,6 @@
/*
- * $Id: urn.c,v 1.68.2.3 2002/09/01 12:38:04 hno Exp $
+ * $Id: urn.c,v 1.68.2.4 2005/09/01 22:14:45 hno Exp $
*
* DEBUG: section 52 URN Parsing
* AUTHOR: Kostas Anagnostakis
@@ -132,6 +132,7 @@
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;
}
diff -ruN squid-2.5.STABLE10/src/wais.c squid-2.5.STABLE11/src/wais.c
--- squid-2.5.STABLE10/src/wais.c Wed Oct 24 02:19:09 2001
+++ squid-2.5.STABLE11/src/wais.c Sat Sep 10 19:49:54 2005
@@ -1,6 +1,6 @@
/*
- * $Id: wais.c,v 1.138 2001/10/24 08:19:09 hno Exp $
+ * $Id: wais.c,v 1.138.2.2 2005/09/11 01:49:54 hno Exp $
*
* DEBUG: section 24 WAIS Relay
* AUTHOR: Harvest Derived
@@ -70,10 +70,8 @@
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));
- }
+ fwdFail(waisState->fwd,
+ errorCon(ERR_READ_TIMEOUT, HTTP_GATEWAY_TIMEOUT));
}
comm_close(fd);
}
@@ -91,7 +89,7 @@
int bin;
size_t read_sz;
#if DELAY_POOLS
- delay_id delay_id = delayMostBytesAllowed(entry->mem_obj);
+ delay_id delay_id;
#endif
if (EBIT_TEST(entry->flags, ENTRY_ABORTED)) {
comm_close(fd);
@@ -100,7 +98,7 @@
errno = 0;
read_sz = 4096;
#if DELAY_POOLS
- read_sz = delayBytesWanted(delay_id, 1, read_sz);
+ delay_id = delayMostBytesAllowed(entry->mem_obj, &read_sz);
#endif
statCounter.syscalls.sock.reads++;
len = FD_READ_METHOD(fd, buf, read_sz);
@@ -130,20 +128,13 @@
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);
+ fwdFail(waisState->fwd, 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);
+ fwdFail(waisState->fwd, errorCon(ERR_ZERO_SIZE_OBJECT, HTTP_SERVICE_UNAVAILABLE));
comm_close(fd);
} else if (len == 0) {
/* Connection closed; retrieval done. */
@@ -179,8 +170,7 @@
ErrorState *err;
err = errorCon(ERR_WRITE_ERROR, HTTP_SERVICE_UNAVAILABLE);
err->xerrno = errno;
- err->request = requestLink(waisState->request);
- errorAppendEntry(entry, err);
+ fwdFail(waisState->fwd, err);
comm_close(fd);
} else {
/* Schedule read reply. */
diff -ruN squid-2.5.STABLE10/src/whois.c squid-2.5.STABLE11/src/whois.c
--- squid-2.5.STABLE10/src/whois.c Fri Apr 13 18:03:24 2001
+++ squid-2.5.STABLE11/src/whois.c Thu Sep 1 16:42:03 2005
@@ -1,6 +1,6 @@
/*
- * $Id: whois.c,v 1.16 2001/04/14 00:03:24 hno Exp $
+ * $Id: whois.c,v 1.16.2.2 2005/09/01 22:42:03 hno Exp $
*
* DEBUG: section 75 WHOIS protocol
* AUTHOR: Duane Wessels, Kostas Anagnostakis
@@ -97,25 +97,30 @@
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;
+ 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",
fd, xstrerror());
if (ignoreErrno(errno)) {
commSetSelect(fd, COMM_SELECT_READ, whoisReadReply, p, Config.Timeout.read);
- } else if (mem->inmem_hi == 0) {
+ } else {
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 {
diff -ruN squid-2.5.STABLE10/src/win32.c squid-2.5.STABLE11/src/win32.c
--- squid-2.5.STABLE10/src/win32.c Tue Jun 25 05:44:36 2002
+++ squid-2.5.STABLE11/src/win32.c Tue Sep 20 05:52:25 2005
@@ -1,6 +1,6 @@
/*
- * $Id: win32.c,v 1.4.2.1 2002/06/25 11:44:36 hno Exp $
+ * $Id: win32.c,v 1.4.2.2 2005/09/20 11:52:25 serassio Exp $
*
* * * * * * * * Legal stuff * * * * * * *
*
@@ -58,8 +58,12 @@
return _WIN_OS_WINXP;
}
if ((osvi.dwMajorVersion == 5) && (osvi.dwMinorVersion == 2)) {
- WIN32_OS_string = xstrdup("Windows .NET");
+ WIN32_OS_string = xstrdup("Windows Server 2003");
return _WIN_OS_WINNET;
+ }
+ if ((osvi.dwMajorVersion == 6) && (osvi.dwMinorVersion == 0)) {
+ WIN32_OS_string = xstrdup("Windows code name \"Longhorn\"");
+ return _WIN_OS_WINLON;
}
break;
case VER_PLATFORM_WIN32_WINDOWS: