]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Latest bugfixes from the NTLM development branch.
authorrobertc <>
Wed, 28 Nov 2001 15:01:41 +0000 (15:01 +0000)
committerrobertc <>
Wed, 28 Nov 2001 15:01:41 +0000 (15:01 +0000)
These include
* A memory leak in the auth infrastructure.
* Debugging and reliability fixes to the NTLMSSP helper.
* The brand spanking new winbindd helper developed by Kinkie with input from
  the SAMBA team. This helper should eliminate the occasional errors currently
  plaguing NTLM with the NTLMSSP helper. It's included for completeness, as
  it has no squid-internal changes, but the actual helper needs some serious
  user bashing to be called stable.

48 files changed:
Makefile.in
configure
configure.in
contrib/Makefile.in
helpers/basic_auth/LDAP/Makefile.in
helpers/basic_auth/MSNT/Makefile.in
helpers/basic_auth/Makefile.in
helpers/basic_auth/NCSA/Makefile.in
helpers/basic_auth/PAM/Makefile.in
helpers/basic_auth/SMB/Makefile.in
helpers/basic_auth/YP/Makefile.in
helpers/basic_auth/getpwnam/Makefile.in
helpers/basic_auth/multi-domain-NTLM/Makefile.in
helpers/digest_auth/Makefile.in
helpers/digest_auth/password/Makefile.in
helpers/ntlm_auth/Makefile.am
helpers/ntlm_auth/Makefile.in
helpers/ntlm_auth/SMB/Makefile.in
helpers/ntlm_auth/SMB/libntlmssp.c
helpers/ntlm_auth/SMB/ntlm.h
helpers/ntlm_auth/SMB/ntlm_auth.c
helpers/ntlm_auth/SMB/smbval/Makefile.in
helpers/ntlm_auth/SMB/smbval/smblib.c
helpers/ntlm_auth/fakeauth/Makefile.in
helpers/ntlm_auth/no_check/Makefile.in
include/autoconf.h.in
lib/Makefile.in
scripts/Makefile.in
snmplib/Makefile.in
snmplib/mib.c
src/auth/Makefile.in
src/auth/basic/Makefile.in
src/auth/digest/Makefile.in
src/auth/ntlm/Makefile.in
src/auth/ntlm/auth_ntlm.cc
src/auth/ntlm/auth_ntlm.h
src/authenticate.cc
src/enums.h
src/fs/Makefile.in
src/fs/aufs/Makefile.in
src/fs/coss/Makefile.in
src/fs/diskd/Makefile.in
src/fs/null/Makefile.in
src/fs/ufs/Makefile.in
src/helper.cc
src/repl/Makefile.in
src/repl/heap/Makefile.in
src/repl/lru/Makefile.in

index 2f39d23a93a773bc1dc58cf0ca5b8d199eb1492c..907edfc8bc0447c53f8bd38ffead3bdcca46c32a 100644 (file)
@@ -14,7 +14,7 @@
 @SET_MAKE@
 
 #
-# $Id: Makefile.in,v 1.3 2001/10/03 14:56:50 hno Exp $
+# $Id: Makefile.in,v 1.4 2001/11/28 08:01:41 robertc Exp $
 #
 
 SHELL = @SHELL@
@@ -76,7 +76,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 19610bd76e12b0c17428af4fb6d92c18a79b7f74..390d10c9456ab86519c211889f714c09bb15ee63 100755 (executable)
--- a/configure
+++ b/configure
@@ -967,7 +967,7 @@ fi
 
 # Define the identity of the package.
 PACKAGE=Squid
-VERSION=2.5-DEVEL
+VERSION=2.5-ntlm
 cat >> confdefs.h <<EOF
 #define PACKAGE "$PACKAGE"
 EOF
@@ -3715,6 +3715,7 @@ for ac_hdr in \
        sys/socket.h \
        sys/stat.h \
        sys/statvfs.h \
+       syscall.h \
        sys/syscall.h \
        sys/time.h \
        sys/types.h \
@@ -3724,26 +3725,30 @@ for ac_hdr in \
        syslog.h \
        time.h \
        unistd.h \
+       utime.h \
        varargs.h \
        byteswap.h \
        glib.h \
        stdint.h \
        inttypes.h \
+       grp.h \
+       nss_common.h \
+       nss.h
 
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3737: checking for $ac_hdr" >&5
+echo "configure:3742: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3742 "configure"
+#line 3747 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3747: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3752: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3771,12 +3776,12 @@ done
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:3775: checking for working const" >&5
+echo "configure:3780: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3780 "configure"
+#line 3785 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -3825,7 +3830,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:3829: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3834: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -3846,14 +3851,14 @@ EOF
 fi
 
 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:3850: checking whether byte ordering is bigendian" >&5
+echo "configure:3855: checking whether byte ordering is bigendian" >&5
 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_bigendian=unknown
 # See if sys/param.h defines the BYTE_ORDER macro.
 cat > conftest.$ac_ext <<EOF
-#line 3857 "configure"
+#line 3862 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -3864,11 +3869,11 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:3868: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3873: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   # It does; now see whether it defined to BIG_ENDIAN or not.
 cat > conftest.$ac_ext <<EOF
-#line 3872 "configure"
+#line 3877 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -3879,7 +3884,7 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:3883: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3888: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
@@ -3899,7 +3904,7 @@ if test "$cross_compiling" = yes; then
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 3903 "configure"
+#line 3908 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -3912,7 +3917,7 @@ main () {
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:3916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_bigendian=no
 else
@@ -3937,20 +3942,20 @@ fi
 
 
 echo $ac_n "checking if ANSI prototypes work""... $ac_c" 1>&6
-echo "configure:3941: checking if ANSI prototypes work" >&5
+echo "configure:3946: checking if ANSI prototypes work" >&5
 if eval "test \"`echo '$''{'ac_cv_have_ansi_prototypes'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 3947 "configure"
+#line 3952 "configure"
 #include "confdefs.h"
 int foo(char *); int foo (char *bar) {return 1;}
 int main() {
 foo("bar")
 ; return 0; }
 EOF
-if { (eval echo configure:3954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3959: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_ansi_prototypes="yes"
 else
@@ -3972,13 +3977,13 @@ EOF
 fi
 
 echo $ac_n "checking for tm->tm_gmtoff""... $ac_c" 1>&6
-echo "configure:3976: checking for tm->tm_gmtoff" >&5
+echo "configure:3981: checking for tm->tm_gmtoff" >&5
 if eval "test \"`echo '$''{'ac_cv_have_tm_gmoff'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 3982 "configure"
+#line 3987 "configure"
 #include "confdefs.h"
 #include <time.h>
 #include <sys/time.h>
@@ -3987,7 +3992,7 @@ struct tm foo;
       foo.tm_gmtoff = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:3991: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3996: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_tm_gmoff="yes"
 else
@@ -4009,13 +4014,13 @@ EOF
 fi
 
 echo $ac_n "checking for struct mallinfo""... $ac_c" 1>&6
-echo "configure:4013: checking for struct mallinfo" >&5
+echo "configure:4018: checking for struct mallinfo" >&5
 if eval "test \"`echo '$''{'ac_cv_have_struct_mallinfo'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 4019 "configure"
+#line 4024 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if HAVE_MALLOC_H
@@ -4033,7 +4038,7 @@ struct mallinfo foo;
     foo.keepcost = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:4037: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4042: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_struct_mallinfo="yes"
 else
@@ -4055,13 +4060,13 @@ EOF
 fi
 
 echo $ac_n "checking for extended mallinfo""... $ac_c" 1>&6
-echo "configure:4059: checking for extended mallinfo" >&5
+echo "configure:4064: checking for extended mallinfo" >&5
 if eval "test \"`echo '$''{'ac_cv_have_ext_mallinfo'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 4065 "configure"
+#line 4070 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <malloc.h>
@@ -4070,7 +4075,7 @@ struct mallinfo foo;
       foo.mxfast = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:4074: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4079: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_ext_mallinfo="yes"
 else
@@ -4092,13 +4097,13 @@ EOF
 fi
 
 echo $ac_n "checking for struct rusage""... $ac_c" 1>&6
-echo "configure:4096: checking for struct rusage" >&5
+echo "configure:4101: checking for struct rusage" >&5
 if eval "test \"`echo '$''{'ac_cv_have_struct_rusage'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 4102 "configure"
+#line 4107 "configure"
 #include "confdefs.h"
 
 #if HAVE_SYS_TIME_H
@@ -4111,7 +4116,7 @@ int main() {
 struct rusage R;
 ; return 0; }
 EOF
-if { (eval echo configure:4115: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_struct_rusage="yes"
 else
@@ -4133,13 +4138,13 @@ EOF
 fi
 
 echo $ac_n "checking for ip->ip_hl""... $ac_c" 1>&6
-echo "configure:4137: checking for ip->ip_hl" >&5
+echo "configure:4142: checking for ip->ip_hl" >&5
 if eval "test \"`echo '$''{'ac_cv_have_ip_hl'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 4143 "configure"
+#line 4148 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <netinet/in.h>
@@ -4158,7 +4163,7 @@ struct iphdr ip;
       ip.ip_hl= 0;
 ; return 0; }
 EOF
-if { (eval echo configure:4162: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4167: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_ip_hl="yes"
 else
@@ -4180,7 +4185,7 @@ EOF
 fi
 
 echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:4184: checking size of void *" >&5
+echo "configure:4189: checking size of void *" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_void_p'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4188,7 +4193,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4192 "configure"
+#line 4197 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -4200,7 +4205,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_void_p=`cat conftestval`
 else
@@ -4220,7 +4225,7 @@ EOF
 
 
 echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:4224: checking size of short" >&5
+echo "configure:4229: checking size of short" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4228,7 +4233,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4232 "configure"
+#line 4237 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -4240,7 +4245,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4249: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
@@ -4260,7 +4265,7 @@ EOF
 
 
 echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:4264: checking size of int" >&5
+echo "configure:4269: checking size of int" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4268,7 +4273,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4272 "configure"
+#line 4277 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -4280,7 +4285,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
@@ -4300,7 +4305,7 @@ EOF
 
 
 echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:4304: checking size of long" >&5
+echo "configure:4309: checking size of long" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4308,7 +4313,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4312 "configure"
+#line 4317 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -4320,7 +4325,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4324: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
@@ -4340,7 +4345,7 @@ EOF
 
 
 echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:4344: checking size of long long" >&5
+echo "configure:4349: checking size of long long" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4348,7 +4353,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4352 "configure"
+#line 4357 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -4360,7 +4365,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4364: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long_long=`cat conftestval`
 else
@@ -4380,7 +4385,7 @@ EOF
 
 
 echo $ac_n "checking size of __int64""... $ac_c" 1>&6
-echo "configure:4384: checking size of __int64" >&5
+echo "configure:4389: checking size of __int64" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof___int64'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4388,7 +4393,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4392 "configure"
+#line 4397 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -4400,7 +4405,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4404: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof___int64=`cat conftestval`
 else
@@ -4420,7 +4425,7 @@ EOF
 
 
 echo $ac_n "checking size of int16_t""... $ac_c" 1>&6
-echo "configure:4424: checking size of int16_t" >&5
+echo "configure:4429: checking size of int16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_int16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4428,7 +4433,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4432 "configure"
+#line 4437 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -4440,7 +4445,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_int16_t=`cat conftestval`
 else
@@ -4460,7 +4465,7 @@ EOF
 
 
 echo $ac_n "checking size of uint16_t""... $ac_c" 1>&6
-echo "configure:4464: checking size of uint16_t" >&5
+echo "configure:4469: checking size of uint16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_uint16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4468,7 +4473,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4472 "configure"
+#line 4477 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -4480,7 +4485,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_uint16_t=`cat conftestval`
 else
@@ -4500,7 +4505,7 @@ EOF
 
 
 echo $ac_n "checking size of u_int16_t""... $ac_c" 1>&6
-echo "configure:4504: checking size of u_int16_t" >&5
+echo "configure:4509: checking size of u_int16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_u_int16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4508,7 +4513,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4512 "configure"
+#line 4517 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -4520,7 +4525,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_u_int16_t=`cat conftestval`
 else
@@ -4540,7 +4545,7 @@ EOF
 
 
 echo $ac_n "checking size of int32_t""... $ac_c" 1>&6
-echo "configure:4544: checking size of int32_t" >&5
+echo "configure:4549: checking size of int32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_int32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4548,7 +4553,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4552 "configure"
+#line 4557 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -4560,7 +4565,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4569: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_int32_t=`cat conftestval`
 else
@@ -4580,7 +4585,7 @@ EOF
 
 
 echo $ac_n "checking size of uint32_t""... $ac_c" 1>&6
-echo "configure:4584: checking size of uint32_t" >&5
+echo "configure:4589: checking size of uint32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_uint32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4588,7 +4593,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4592 "configure"
+#line 4597 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -4600,7 +4605,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_uint32_t=`cat conftestval`
 else
@@ -4620,7 +4625,7 @@ EOF
 
 
 echo $ac_n "checking size of u_int32_t""... $ac_c" 1>&6
-echo "configure:4624: checking size of u_int32_t" >&5
+echo "configure:4629: checking size of u_int32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_u_int32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4628,7 +4633,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4632 "configure"
+#line 4637 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -4640,7 +4645,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_u_int32_t=`cat conftestval`
 else
@@ -4660,7 +4665,7 @@ EOF
 
 
 echo $ac_n "checking size of int64_t""... $ac_c" 1>&6
-echo "configure:4664: checking size of int64_t" >&5
+echo "configure:4669: checking size of int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4668,7 +4673,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4672 "configure"
+#line 4677 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -4680,7 +4685,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_int64_t=`cat conftestval`
 else
@@ -4700,7 +4705,7 @@ EOF
 
 
 echo $ac_n "checking size of uint64_t""... $ac_c" 1>&6
-echo "configure:4704: checking size of uint64_t" >&5
+echo "configure:4709: checking size of uint64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_uint64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4708,7 +4713,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4712 "configure"
+#line 4717 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -4720,7 +4725,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4729: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_uint64_t=`cat conftestval`
 else
@@ -4740,7 +4745,7 @@ EOF
 
 
 echo $ac_n "checking size of u_int64_t""... $ac_c" 1>&6
-echo "configure:4744: checking size of u_int64_t" >&5
+echo "configure:4749: checking size of u_int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_u_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4748,7 +4753,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4752 "configure"
+#line 4757 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <sys/types.h>
@@ -4760,7 +4765,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4764: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_u_int64_t=`cat conftestval`
 else
@@ -4782,12 +4787,12 @@ EOF
 
 if test "x$ac_cv_sizeof_short" = "x2"; then
        echo $ac_n "checking for int16_t""... $ac_c" 1>&6
-echo "configure:4786: checking for int16_t" >&5
+echo "configure:4791: checking for int16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4791 "configure"
+#line 4796 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -4816,12 +4821,12 @@ fi
 
 elif test "x$ac_cv_sizeof_int" = "x2"; then
        echo $ac_n "checking for int16_t""... $ac_c" 1>&6
-echo "configure:4820: checking for int16_t" >&5
+echo "configure:4825: checking for int16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4825 "configure"
+#line 4830 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -4851,12 +4856,12 @@ fi
 fi
 if test "x$ac_cv_sizeof_uint16_t" = "x2"; then
        echo $ac_n "checking for u_int16_t""... $ac_c" 1>&6
-echo "configure:4855: checking for u_int16_t" >&5
+echo "configure:4860: checking for u_int16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4860 "configure"
+#line 4865 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -4885,12 +4890,12 @@ fi
 
 elif test "x$ac_cv_sizeof_short" = "x2"; then
        echo $ac_n "checking for u_int16_t""... $ac_c" 1>&6
-echo "configure:4889: checking for u_int16_t" >&5
+echo "configure:4894: checking for u_int16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4894 "configure"
+#line 4899 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -4919,12 +4924,12 @@ fi
 
 elif test "x$ac_cv_sizeof_int" = "x2"; then
        echo $ac_n "checking for u_int16_t""... $ac_c" 1>&6
-echo "configure:4923: checking for u_int16_t" >&5
+echo "configure:4928: checking for u_int16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4928 "configure"
+#line 4933 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -4954,12 +4959,12 @@ fi
 fi
 if test "x$ac_cv_sizeof_int" = "x4"; then
        echo $ac_n "checking for int32_t""... $ac_c" 1>&6
-echo "configure:4958: checking for int32_t" >&5
+echo "configure:4963: checking for int32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4963 "configure"
+#line 4968 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -4988,12 +4993,12 @@ fi
 
 elif "x$ac_cv_sizeof_long" = "x4"; then
        echo $ac_n "checking for int32_t""... $ac_c" 1>&6
-echo "configure:4992: checking for int32_t" >&5
+echo "configure:4997: checking for int32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4997 "configure"
+#line 5002 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5023,12 +5028,12 @@ fi
 fi
 if test "x$ac_cv_sizeof_uint32_t" = "x4"; then
        echo $ac_n "checking for u_int32_t""... $ac_c" 1>&6
-echo "configure:5027: checking for u_int32_t" >&5
+echo "configure:5032: checking for u_int32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5032 "configure"
+#line 5037 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5057,12 +5062,12 @@ fi
 
 elif test "x$ac_cv_sizeof_int" = "x4"; then
        echo $ac_n "checking for u_int32_t""... $ac_c" 1>&6
-echo "configure:5061: checking for u_int32_t" >&5
+echo "configure:5066: checking for u_int32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5066 "configure"
+#line 5071 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5091,12 +5096,12 @@ fi
 
 elif test "x$ac_cv_sizeof_long" = "x4"; then
        echo $ac_n "checking for u_int32_t""... $ac_c" 1>&6
-echo "configure:5095: checking for u_int32_t" >&5
+echo "configure:5100: checking for u_int32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5100 "configure"
+#line 5105 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5126,12 +5131,12 @@ fi
 fi
 if test "x$ac_cv_sizeof_long" = "x8"; then
        echo $ac_n "checking for int64_t""... $ac_c" 1>&6
-echo "configure:5130: checking for int64_t" >&5
+echo "configure:5135: checking for int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5135 "configure"
+#line 5140 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5160,12 +5165,12 @@ fi
 
 elif test "x$ac_cv_sizeof_long_long" = "x8"; then
        echo $ac_n "checking for int64_t""... $ac_c" 1>&6
-echo "configure:5164: checking for int64_t" >&5
+echo "configure:5169: checking for int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5169 "configure"
+#line 5174 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5194,12 +5199,12 @@ fi
 
 elif test "x$ac_cv_sizeof___int64" = "x8"; then
        echo $ac_n "checking for int64_t""... $ac_c" 1>&6
-echo "configure:5198: checking for int64_t" >&5
+echo "configure:5203: checking for int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5203 "configure"
+#line 5208 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5229,12 +5234,12 @@ fi
 fi
 if test "x$ac_cv_sizeof_uint64_t" = "x8"; then
        echo $ac_n "checking for u_int64_t""... $ac_c" 1>&6
-echo "configure:5233: checking for u_int64_t" >&5
+echo "configure:5238: checking for u_int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5238 "configure"
+#line 5243 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5263,12 +5268,12 @@ fi
 
 elif test "x$ac_cv_sizeof_long" = "x8"; then
        echo $ac_n "checking for u_int64_t""... $ac_c" 1>&6
-echo "configure:5267: checking for u_int64_t" >&5
+echo "configure:5272: checking for u_int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5272 "configure"
+#line 5277 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5297,12 +5302,12 @@ fi
 
 elif test "x$ac_cv_sizeof_long_long" = "x8"; then
        echo $ac_n "checking for u_int64_t""... $ac_c" 1>&6
-echo "configure:5301: checking for u_int64_t" >&5
+echo "configure:5306: checking for u_int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5306 "configure"
+#line 5311 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5331,12 +5336,12 @@ fi
 
 elif test "x$ac_cv_sizeof___int64" = "x8"; then
        echo $ac_n "checking for int64_t""... $ac_c" 1>&6
-echo "configure:5335: checking for int64_t" >&5
+echo "configure:5340: checking for int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5340 "configure"
+#line 5345 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5366,12 +5371,12 @@ fi
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:5370: checking for pid_t" >&5
+echo "configure:5375: checking for pid_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5375 "configure"
+#line 5380 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5399,12 +5404,12 @@ EOF
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:5403: checking for size_t" >&5
+echo "configure:5408: checking for size_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5408 "configure"
+#line 5413 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5432,12 +5437,12 @@ EOF
 fi
 
 echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:5436: checking for ssize_t" >&5
+echo "configure:5441: checking for ssize_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5441 "configure"
+#line 5446 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5465,12 +5470,12 @@ EOF
 fi
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:5469: checking for off_t" >&5
+echo "configure:5474: checking for off_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5474 "configure"
+#line 5479 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5498,12 +5503,12 @@ EOF
 fi
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:5502: checking for mode_t" >&5
+echo "configure:5507: checking for mode_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5507 "configure"
+#line 5512 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5531,12 +5536,12 @@ EOF
 fi
 
 echo $ac_n "checking for fd_mask""... $ac_c" 1>&6
-echo "configure:5535: checking for fd_mask" >&5
+echo "configure:5540: checking for fd_mask" >&5
 if eval "test \"`echo '$''{'ac_cv_type_fd_mask'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5540 "configure"
+#line 5545 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5567,19 +5572,19 @@ fi
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:5571: checking for working alloca.h" >&5
+echo "configure:5576: checking for working alloca.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5576 "configure"
+#line 5581 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:5583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -5600,12 +5605,12 @@ EOF
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:5604: checking for alloca" >&5
+echo "configure:5609: checking for alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5609 "configure"
+#line 5614 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -5633,7 +5638,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:5637: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -5665,12 +5670,12 @@ EOF
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:5669: checking whether alloca needs Cray hooks" >&5
+echo "configure:5674: checking whether alloca needs Cray hooks" >&5
 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5674 "configure"
+#line 5679 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -5695,12 +5700,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5699: checking for $ac_func" >&5
+echo "configure:5704: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5704 "configure"
+#line 5709 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5723,7 +5728,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5732: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5750,7 +5755,7 @@ done
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:5754: checking stack direction for C alloca" >&5
+echo "configure:5759: checking stack direction for C alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5758,7 +5763,7 @@ else
   ac_cv_c_stack_direction=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 5762 "configure"
+#line 5767 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -5777,7 +5782,7 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:5781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_stack_direction=1
 else
@@ -5801,13 +5806,13 @@ fi
 
 
 echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
-echo "configure:5805: checking for socklen_t" >&5
+echo "configure:5810: checking for socklen_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_socklen_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 5811 "configure"
+#line 5816 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -5838,13 +5843,13 @@ EOF
 fi
 
 echo $ac_n "checking for mtyp_t""... $ac_c" 1>&6
-echo "configure:5842: checking for mtyp_t" >&5
+echo "configure:5847: checking for mtyp_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_mtyp_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 5848 "configure"
+#line 5853 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/ipc.h>
@@ -5872,7 +5877,7 @@ EOF
  fi
 
 echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6
-echo "configure:5876: checking for main in -lnsl" >&5
+echo "configure:5881: checking for main in -lnsl" >&5
 ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5880,14 +5885,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5884 "configure"
+#line 5889 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5915,7 +5920,7 @@ else
 fi
 
 echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6
-echo "configure:5919: checking for main in -lsocket" >&5
+echo "configure:5924: checking for main in -lsocket" >&5
 ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5923,14 +5928,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5927 "configure"
+#line 5932 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5934: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5939: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5958,11 +5963,53 @@ else
 fi
 
 
+echo $ac_n "checking for unix domain sockets""... $ac_c" 1>&6
+echo "configure:5968: checking for unix domain sockets" >&5
+if eval "test \"`echo '$''{'squid_cv_unixsocket'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+    cat > conftest.$ac_ext <<EOF
+#line 5974 "configure"
+#include "confdefs.h"
+
+#include <sys/types.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+int main() {
+
+  struct sockaddr_un sunaddr; 
+  sunaddr.sun_family = AF_UNIX;
+
+; return 0; }
+EOF
+if { (eval echo configure:5989: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  squid_cv_unixsocket=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  squid_cv_unixsocket=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$squid_cv_unixsocket" 1>&6
+if test x"$squid_cv_unixsocket" = x"yes"; then
+   cat >> confdefs.h <<\EOF
+#define HAVE_UNIXSOCKET 1
+EOF
+
+fi
+
 if test "x$ac_cv_enabled_dlmalloc" = "xyes" ; then
   echo "skipping libmalloc check (--enable-dlmalloc specified)"
 else
   echo $ac_n "checking for main in -lgnumalloc""... $ac_c" 1>&6
-echo "configure:5966: checking for main in -lgnumalloc" >&5
+echo "configure:6013: checking for main in -lgnumalloc" >&5
 ac_lib_var=`echo gnumalloc'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5970,14 +6017,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgnumalloc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5974 "configure"
+#line 6021 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6028: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6020,7 +6067,7 @@ fi
                        *)
   
                                echo $ac_n "checking for main in -lmalloc""... $ac_c" 1>&6
-echo "configure:6024: checking for main in -lmalloc" >&5
+echo "configure:6071: checking for main in -lmalloc" >&5
 ac_lib_var=`echo malloc'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6028,14 +6075,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lmalloc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6032 "configure"
+#line 6079 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6068,7 +6115,7 @@ fi
 fi
 
 echo $ac_n "checking for main in -lbsd""... $ac_c" 1>&6
-echo "configure:6072: checking for main in -lbsd" >&5
+echo "configure:6119: checking for main in -lbsd" >&5
 ac_lib_var=`echo bsd'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6076,14 +6123,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lbsd  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6080 "configure"
+#line 6127 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6087: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6111,7 +6158,7 @@ else
 fi
 
 echo $ac_n "checking for main in -lregex""... $ac_c" 1>&6
-echo "configure:6115: checking for main in -lregex" >&5
+echo "configure:6162: checking for main in -lregex" >&5
 ac_lib_var=`echo regex'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6119,14 +6166,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lregex  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6123 "configure"
+#line 6170 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6147,7 +6194,7 @@ else
 fi
 
 echo $ac_n "checking for gethostbyname in -lbind""... $ac_c" 1>&6
-echo "configure:6151: checking for gethostbyname in -lbind" >&5
+echo "configure:6198: checking for gethostbyname in -lbind" >&5
 ac_lib_var=`echo bind'_'gethostbyname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6155,7 +6202,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lbind  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6159 "configure"
+#line 6206 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6166,7 +6213,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:6170: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6200,7 +6247,7 @@ if test $ac_cv_lib_bind_gethostbyname = "no" ; then
                ;;
        *)
                echo $ac_n "checking for inet_aton in -lresolv""... $ac_c" 1>&6
-echo "configure:6204: checking for inet_aton in -lresolv" >&5
+echo "configure:6251: checking for inet_aton in -lresolv" >&5
 ac_lib_var=`echo resolv'_'inet_aton | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6208,7 +6255,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lresolv  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6212 "configure"
+#line 6259 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6219,7 +6266,7 @@ int main() {
 inet_aton()
 ; return 0; }
 EOF
-if { (eval echo configure:6223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6235,7 +6282,7 @@ fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for inet_aton in -l44bsd""... $ac_c" 1>&6
-echo "configure:6239: checking for inet_aton in -l44bsd" >&5
+echo "configure:6286: checking for inet_aton in -l44bsd" >&5
 ac_lib_var=`echo 44bsd'_'inet_aton | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6243,7 +6290,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l44bsd  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6247 "configure"
+#line 6294 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6254,7 +6301,7 @@ int main() {
 inet_aton()
 ; return 0; }
 EOF
-if { (eval echo configure:6258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6286,7 +6333,7 @@ else
 fi
 
                echo $ac_n "checking for main in -lresolv""... $ac_c" 1>&6
-echo "configure:6290: checking for main in -lresolv" >&5
+echo "configure:6337: checking for main in -lresolv" >&5
 ac_lib_var=`echo resolv'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6294,14 +6341,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lresolv  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6298 "configure"
+#line 6345 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6352: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6332,7 +6379,7 @@ fi
     esac
 fi
 echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:6336: checking for main in -lm" >&5
+echo "configure:6383: checking for main in -lm" >&5
 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6340,14 +6387,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6344 "configure"
+#line 6391 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6398: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6376,7 +6423,7 @@ fi
 
 
 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:6380: checking for crypt in -lcrypt" >&5
+echo "configure:6427: checking for crypt in -lcrypt" >&5
 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6384,7 +6431,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcrypt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6388 "configure"
+#line 6435 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6395,7 +6442,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:6399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6446: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6418,7 +6465,7 @@ fi
 
 
 echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:6422: checking for dlopen in -ldl" >&5
+echo "configure:6469: checking for dlopen in -ldl" >&5
 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6426,7 +6473,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6430 "configure"
+#line 6477 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6437,7 +6484,7 @@ int main() {
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:6441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6460,7 +6507,7 @@ fi
 
 
 echo $ac_n "checking for main in -lpthread""... $ac_c" 1>&6
-echo "configure:6464: checking for main in -lpthread" >&5
+echo "configure:6511: checking for main in -lpthread" >&5
 ac_lib_var=`echo pthread'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6468,14 +6515,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lpthread  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6472 "configure"
+#line 6519 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6498,7 +6545,7 @@ fi
 
 
 echo $ac_n "checking for aio_read in -lrt""... $ac_c" 1>&6
-echo "configure:6502: checking for aio_read in -lrt" >&5
+echo "configure:6549: checking for aio_read in -lrt" >&5
 ac_lib_var=`echo rt'_'aio_read | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6506,7 +6553,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lrt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6510 "configure"
+#line 6557 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6517,7 +6564,7 @@ int main() {
 aio_read()
 ; return 0; }
 EOF
-if { (eval echo configure:6521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6568: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6542,7 +6589,7 @@ fi
 case "$host" in
        *-pc-sco3.2*)
                echo $ac_n "checking for strftime in -lintl""... $ac_c" 1>&6
-echo "configure:6546: checking for strftime in -lintl" >&5
+echo "configure:6593: checking for strftime in -lintl" >&5
 ac_lib_var=`echo intl'_'strftime | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6550,7 +6597,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6554 "configure"
+#line 6601 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6561,7 +6608,7 @@ int main() {
 strftime()
 ; return 0; }
 EOF
-if { (eval echo configure:6565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6746,12 +6793,12 @@ for ac_func in \
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6750: checking for $ac_func" >&5
+echo "configure:6797: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6755 "configure"
+#line 6802 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6774,7 +6821,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6825: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6800,7 +6847,7 @@ done
 
 
 echo $ac_n "checking if setresuid is implemented""... $ac_c" 1>&6
-echo "configure:6804: checking if setresuid is implemented" >&5
+echo "configure:6851: checking if setresuid is implemented" >&5
 if eval "test \"`echo '$''{'ac_cv_func_setresuid'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6808,7 +6855,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 6812 "configure"
+#line 6859 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -6821,7 +6868,7 @@ else
   }
   
 EOF
-if { (eval echo configure:6825: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_setresuid="yes"
 else
@@ -6867,7 +6914,7 @@ fi
   
 if test "$IPF_TRANSPARENT" ; then
     echo $ac_n "checking if IP-Filter header files are installed""... $ac_c" 1>&6
-echo "configure:6871: checking if IP-Filter header files are installed" >&5
+echo "configure:6918: checking if IP-Filter header files are installed" >&5
     # hold on to your hats...
     if test "$ac_cv_header_ip_compat_h" = "yes" ||
         test "$ac_cv_header_ip_fil_compat_h" = "yes" ||
@@ -6908,7 +6955,7 @@ fi
 
 if test "$LINUX_NETFILTER" ; then
     echo $ac_n "checking if Linux 2.4 kernel header files are installed""... $ac_c" 1>&6
-echo "configure:6912: checking if Linux 2.4 kernel header files are installed" >&5
+echo "configure:6959: checking if Linux 2.4 kernel header files are installed" >&5
     # hold on to your hats...
     if test "$ac_cv_header_linux_netfilter_ipv4_h" = "yes"; then
         LINUX_NETFILTER="yes"
@@ -6942,13 +6989,13 @@ if test -z "$USE_GNUREGEX" ; then
     esac
 fi
 echo $ac_n "checking if GNUregex needs to be compiled""... $ac_c" 1>&6
-echo "configure:6946: checking if GNUregex needs to be compiled" >&5
+echo "configure:6993: checking if GNUregex needs to be compiled" >&5
 if test -z "$USE_GNUREGEX"; then
 if test "$ac_cv_func_regcomp" = "no" || test "$USE_GNUREGEX" = "yes" ; then
        USE_GNUREGEX="yes"
 else
        cat > conftest.$ac_ext <<EOF
-#line 6952 "configure"
+#line 6999 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <regex.h>
@@ -6956,7 +7003,7 @@ int main() {
 regex_t t; regcomp(&t,"",0);
 ; return 0; }
 EOF
-if { (eval echo configure:6960: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7007: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   USE_GNUREGEX="no"
 else
@@ -6987,12 +7034,12 @@ for ac_func in \
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6991: checking for $ac_func" >&5
+echo "configure:7038: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6996 "configure"
+#line 7043 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7015,7 +7062,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7043,12 +7090,12 @@ done
 
 
 echo $ac_n "checking Default FD_SETSIZE value""... $ac_c" 1>&6
-echo "configure:7047: checking Default FD_SETSIZE value" >&5
+echo "configure:7094: checking Default FD_SETSIZE value" >&5
 if test "$cross_compiling" = yes; then
   DEFAULT_FD_SETSIZE=256
 else
   cat > conftest.$ac_ext <<EOF
-#line 7052 "configure"
+#line 7099 "configure"
 #include "confdefs.h"
 
 #if HAVE_STDIO_H
@@ -7073,7 +7120,7 @@ main() {
 }
 
 EOF
-if { (eval echo configure:7077: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   DEFAULT_FD_SETSIZE=`cat conftestval`
 else
@@ -7092,7 +7139,7 @@ EOF
 
 
 echo $ac_n "checking Maximum number of filedescriptors we can open""... $ac_c" 1>&6
-echo "configure:7096: checking Maximum number of filedescriptors we can open" >&5
+echo "configure:7143: checking Maximum number of filedescriptors we can open" >&5
 TLDFLAGS="$LDFLAGS"
 case $host in
 i386-unknown-freebsd*)
@@ -7104,7 +7151,7 @@ if test "$cross_compiling" = yes; then
   SQUID_MAXFD=256
 else
   cat > conftest.$ac_ext <<EOF
-#line 7108 "configure"
+#line 7155 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -7164,7 +7211,7 @@ main() {
 }
 
 EOF
-if { (eval echo configure:7168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7215: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   SQUID_MAXFD=`cat conftestval`
 else
@@ -7191,12 +7238,12 @@ fi
 LDFLAGS="$TLDFLAGS"
 
 echo $ac_n "checking Default UDP send buffer size""... $ac_c" 1>&6
-echo "configure:7195: checking Default UDP send buffer size" >&5
+echo "configure:7242: checking Default UDP send buffer size" >&5
 if test "$cross_compiling" = yes; then
   SQUID_UDP_SO_SNDBUF=16384
 else
   cat > conftest.$ac_ext <<EOF
-#line 7200 "configure"
+#line 7247 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7217,7 +7264,7 @@ main ()
 }
 
 EOF
-if { (eval echo configure:7221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   SQUID_UDP_SO_SNDBUF=`cat conftestval`
 else
@@ -7236,12 +7283,12 @@ EOF
 
 
 echo $ac_n "checking Default UDP receive buffer size""... $ac_c" 1>&6
-echo "configure:7240: checking Default UDP receive buffer size" >&5
+echo "configure:7287: checking Default UDP receive buffer size" >&5
 if test "$cross_compiling" = yes; then
   SQUID_UDP_SO_RCVBUF=16384
 else
   cat > conftest.$ac_ext <<EOF
-#line 7245 "configure"
+#line 7292 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7262,7 +7309,7 @@ main ()
 }
 
 EOF
-if { (eval echo configure:7266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   SQUID_UDP_SO_RCVBUF=`cat conftestval`
 else
@@ -7281,12 +7328,12 @@ EOF
 
 
 echo $ac_n "checking Default TCP send buffer size""... $ac_c" 1>&6
-echo "configure:7285: checking Default TCP send buffer size" >&5
+echo "configure:7332: checking Default TCP send buffer size" >&5
 if test "$cross_compiling" = yes; then
   SQUID_TCP_SO_SNDBUF=16384
 else
   cat > conftest.$ac_ext <<EOF
-#line 7290 "configure"
+#line 7337 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7307,7 +7354,7 @@ main ()
 }
 
 EOF
-if { (eval echo configure:7311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   SQUID_TCP_SO_SNDBUF=`cat conftestval`
 else
@@ -7326,12 +7373,12 @@ EOF
 
 
 echo $ac_n "checking Default TCP receive buffer size""... $ac_c" 1>&6
-echo "configure:7330: checking Default TCP receive buffer size" >&5
+echo "configure:7377: checking Default TCP receive buffer size" >&5
 if test "$cross_compiling" = yes; then
   SQUID_TCP_SO_RCVBUF=16384
 else
   cat > conftest.$ac_ext <<EOF
-#line 7335 "configure"
+#line 7382 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7352,7 +7399,7 @@ main ()
 }
 
 EOF
-if { (eval echo configure:7356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   SQUID_TCP_SO_RCVBUF=`cat conftestval`
 else
@@ -7371,19 +7418,19 @@ EOF
 
 
 echo $ac_n "checking if sys_errlist is already defined""... $ac_c" 1>&6
-echo "configure:7375: checking if sys_errlist is already defined" >&5
+echo "configure:7422: checking if sys_errlist is already defined" >&5
 if eval "test \"`echo '$''{'ac_cv_needs_sys_errlist'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7380 "configure"
+#line 7427 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 char *s = sys_errlist;
 ; return 0; }
 EOF
-if { (eval echo configure:7387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7434: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_needs_sys_errlist="no"
 else
@@ -7405,16 +7452,16 @@ EOF
 fi
 
 echo $ac_n "checking for libresolv _dns_ttl_ hack""... $ac_c" 1>&6
-echo "configure:7409: checking for libresolv _dns_ttl_ hack" >&5
+echo "configure:7456: checking for libresolv _dns_ttl_ hack" >&5
 cat > conftest.$ac_ext <<EOF
-#line 7411 "configure"
+#line 7458 "configure"
 #include "confdefs.h"
 extern int _dns_ttl_;
 int main() {
 return _dns_ttl_;
 ; return 0; }
 EOF
-if { (eval echo configure:7418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 cat >> confdefs.h <<\EOF
@@ -7430,12 +7477,12 @@ fi
 rm -f conftest*
 
 echo $ac_n "checking if inet_ntoa() actually works""... $ac_c" 1>&6
-echo "configure:7434: checking if inet_ntoa() actually works" >&5
+echo "configure:7481: checking if inet_ntoa() actually works" >&5
 if test "$cross_compiling" = yes; then
   INET_NTOA_RESULT="broken"
 else
   cat > conftest.$ac_ext <<EOF
-#line 7439 "configure"
+#line 7486 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7454,7 +7501,7 @@ main ()
 }
 
 EOF
-if { (eval echo configure:7458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   INET_NTOA_RESULT=`cat conftestval`
 else
@@ -7480,9 +7527,9 @@ fi
 
 if test "$ac_cv_header_sys_statvfs_h" = "yes" ; then
 echo $ac_n "checking for working statvfs() interface""... $ac_c" 1>&6
-echo "configure:7484: checking for working statvfs() interface" >&5
+echo "configure:7531: checking for working statvfs() interface" >&5
 cat > conftest.$ac_ext <<EOF
-#line 7486 "configure"
+#line 7533 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7499,7 +7546,7 @@ statvfs("/tmp", &sfs);
 
 ; return 0; }
 EOF
-if { (eval echo configure:7503: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7550: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_func_statvfs=yes
 else
@@ -7519,12 +7566,12 @@ fi
 fi
 
 echo $ac_n "checking for _res.nsaddr_list""... $ac_c" 1>&6
-echo "configure:7523: checking for _res.nsaddr_list" >&5
+echo "configure:7570: checking for _res.nsaddr_list" >&5
 if eval "test \"`echo '$''{'ac_cv_have_res_nsaddr_list'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7528 "configure"
+#line 7575 "configure"
 #include "confdefs.h"
 
 #if HAVE_SYS_TYPES_H
@@ -7547,7 +7594,7 @@ int main() {
 _res.nsaddr_list[0];
 ; return 0; }
 EOF
-if { (eval echo configure:7551: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_res_nsaddr_list="yes"
 else
@@ -7569,12 +7616,12 @@ fi
 
 if test $ac_cv_have_res_nsaddr_list = "no" ; then
 echo $ac_n "checking for _res.ns_list""... $ac_c" 1>&6
-echo "configure:7573: checking for _res.ns_list" >&5
+echo "configure:7620: checking for _res.ns_list" >&5
 if eval "test \"`echo '$''{'ac_cv_have_res_ns_list'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7578 "configure"
+#line 7625 "configure"
 #include "confdefs.h"
 
 #if HAVE_SYS_TYPES_H
@@ -7597,7 +7644,7 @@ int main() {
 _res.ns_list[0].addr;
 ; return 0; }
 EOF
-if { (eval echo configure:7601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7648: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_res_ns_list="yes"
 else
@@ -7772,6 +7819,7 @@ trap 'rm -fr `echo "\
        src/auth/ntlm/helpers/no_check/Makefile \
        src/auth/ntlm/helpers/NTLMSSP/Makefile \
        src/auth/ntlm/helpers/NTLMSSP/smbval/Makefile \
+       src/auth/ntlm/helpers/winbind/Makefile \
        contrib/Makefile \
        snmplib/Makefile \
        icons/Makefile \
@@ -7988,6 +8036,7 @@ CONFIG_FILES=\${CONFIG_FILES-"\
        src/auth/ntlm/helpers/no_check/Makefile \
        src/auth/ntlm/helpers/NTLMSSP/Makefile \
        src/auth/ntlm/helpers/NTLMSSP/smbval/Makefile \
+       src/auth/ntlm/helpers/winbind/Makefile \
        contrib/Makefile \
        snmplib/Makefile \
        icons/Makefile \
index 338e3a31287047164e8f72da8454cfc2b3da2166..69936f67a3caef077ecb8f68a6a7bd2849eb9746 100644 (file)
@@ -3,15 +3,15 @@ dnl  Configuration input file for Squid
 dnl
 dnl  Duane Wessels, wessels@nlanr.net, February 1996 (autoconf v2.9)
 dnl
-dnl  $Id: configure.in,v 1.243 2001/11/28 03:02:33 robertc Exp $
+dnl  $Id: configure.in,v 1.244 2001/11/28 08:01:43 robertc Exp $
 dnl
 dnl
 dnl
 AC_INIT(src/main.c)
 AC_CONFIG_AUX_DIR(cfgaux)
-AM_INIT_AUTOMAKE(Squid, 2.5-DEVEL)
+AM_INIT_AUTOMAKE(Squid, 2.5-ntlm)
 AM_CONFIG_HEADER(include/autoconf.h)
-AC_REVISION($Revision: 1.243 $)dnl
+AC_REVISION($Revision: 1.244 $)dnl
 AC_PREFIX_DEFAULT(/usr/local/squid)
 AM_MAINTAINER_MODE
 
@@ -1102,6 +1102,7 @@ AC_CHECK_HEADERS( \
        sys/socket.h \
        sys/stat.h \
        sys/statvfs.h \
+       syscall.h \
        sys/syscall.h \
        sys/time.h \
        sys/types.h \
@@ -1111,11 +1112,15 @@ AC_CHECK_HEADERS( \
        syslog.h \
        time.h \
        unistd.h \
+       utime.h \
        varargs.h \
        byteswap.h \
        glib.h \
        stdint.h \
        inttypes.h \
+       grp.h \
+       nss_common.h \
+       nss.h
 )
 
 AC_C_CONST
@@ -1320,6 +1325,24 @@ dnl Check for needed libraries
 AC_CHECK_LIB(nsl, main)
 AC_CHECK_LIB(socket, main)
 
+dnl Ripped from the Samba sources
+AC_CACHE_CHECK([for unix domain sockets],squid_cv_unixsocket, [
+    AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <sys/socket.h>
+#include <sys/un.h>],
+[
+  struct sockaddr_un sunaddr; 
+  sunaddr.sun_family = AF_UNIX;
+],
+        squid_cv_unixsocket=yes,squid_cv_unixsocket=no)])
+if test x"$squid_cv_unixsocket" = x"yes"; then
+   AC_DEFINE(HAVE_UNIXSOCKET)
+fi
+dnl end rip
+
 if test "x$ac_cv_enabled_dlmalloc" = "xyes" ; then
   echo "skipping libmalloc check (--enable-dlmalloc specified)"
 else
@@ -2080,6 +2103,7 @@ AC_OUTPUT([\
        src/auth/ntlm/helpers/no_check/Makefile \
        src/auth/ntlm/helpers/NTLMSSP/Makefile \
        src/auth/ntlm/helpers/NTLMSSP/smbval/Makefile \
+       src/auth/ntlm/helpers/winbind/Makefile \
        contrib/Makefile \
        snmplib/Makefile \
        icons/Makefile \
index 7a0ce0d46c2a6cbe740f8d4d84ab3fe13a02f22a..967b4b07d3f3410cf42f3d6144cbc2edeb9376b8 100644 (file)
@@ -77,7 +77,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index d463a4ad76ad6be2ba0a79e1ee2108d9073c0e15..9dc37253d3497faf7acd9c1c5cefb7d2b223bec5 100644 (file)
@@ -72,7 +72,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 1ac91cf2b95f7296b6c9790005f3921e04016d36..7990bafc1d6fc1648b6c28389a0addcb91da699a 100644 (file)
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.5 2001/10/03 14:56:58 hno Exp $
+#  $Id: Makefile.in,v 1.6 2001/11/28 08:01:50 robertc Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -80,7 +80,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 71039d04f066d7cc55caa9aee9f4eec2a658b123..d0f31b46f1ef66909acca2ba75ae8d559560bdc2 100644 (file)
@@ -15,7 +15,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.5 2001/10/03 14:56:57 hno Exp $
+#  $Id: Makefile.in,v 1.6 2001/11/28 08:01:49 robertc Exp $
 #
 
 SHELL = @SHELL@
@@ -77,7 +77,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 3768f6c417512b1e6cb5e2f02e2e24a618631a6c..1016c4da71ed6015c7c8781b429323d0fe8cf91c 100644 (file)
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.6 2001/10/03 14:56:59 hno Exp $
+#  $Id: Makefile.in,v 1.7 2001/11/28 08:01:50 robertc Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -80,7 +80,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 3e1847d8f7d40633e0f9b20a7a18cc1bed74a02d..273609870033cb7a0692ff05fcda6c56e9b544e1 100644 (file)
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.5 2001/10/03 14:56:59 hno Exp $
+#  $Id: Makefile.in,v 1.6 2001/11/28 08:01:51 robertc Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -80,7 +80,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 4376f3b7ee38be57f20e1ad22dfebdcf692e3a6f..effac8c0ff9a8b7c5f68db27fc708fc6e88290f8 100644 (file)
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.5 2001/10/03 14:57:00 hno Exp $
+#  $Id: Makefile.in,v 1.6 2001/11/28 08:01:52 robertc Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -85,7 +85,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 45c07d93779211c9d7cf6289ce0298556c4e8f29..e7f6e0bd464d8c4b6fbbdbb5e066b986e4e7a976 100644 (file)
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.7 2001/10/03 14:57:01 hno Exp $
+#  $Id: Makefile.in,v 1.8 2001/11/28 08:01:52 robertc Exp $
 #
 #
 
@@ -79,7 +79,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index ac00c25e26b92413f8b0809d677ca09db805ba2c..b1f2464dee9bbdadd3e94ddf41e7e3610c7fd736 100644 (file)
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.6 2001/10/03 14:57:01 hno Exp $
+#  $Id: Makefile.in,v 1.7 2001/11/28 08:01:53 robertc Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -80,7 +80,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index fcf5a9ba236b51f58c09b0058b7d1df1880903d9..a787e3346ea85f735acded573405fabf031aa732 100644 (file)
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.3 2001/10/03 14:57:02 hno Exp $
+#  $Id: Makefile.in,v 1.4 2001/11/28 08:01:54 robertc Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -80,7 +80,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index d86a65941a7c10e46398e556a2a88a40946dd79c..2128e1a692c9b4df803f39c8b85190af2b23bdee 100644 (file)
@@ -15,7 +15,7 @@
 
 #  Makefile for digest auth helpers in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.4 2001/10/03 14:57:03 hno Exp $
+#  $Id: Makefile.in,v 1.5 2001/11/28 08:01:55 robertc Exp $
 #
 
 SHELL = @SHELL@
@@ -77,7 +77,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 720bb57ab1377bda8f8680b822a4742e7a90c1db..0c63e8880237700f02abffaf7e0443ce1d79b0dc 100644 (file)
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.6 2001/10/03 14:57:04 hno Exp $
+#  $Id: Makefile.in,v 1.7 2001/11/28 08:01:56 robertc Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -80,7 +80,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 217f73f4d8a93cb7f23aeacf880fb7a5e3089ffc..465648d65fb24e9751f296c56c4396354b85ddd5 100644 (file)
@@ -1,7 +1,7 @@
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.am,v 1.1 2001/08/31 11:19:25 robertc Exp $
+#  $Id: Makefile.am,v 1.2 2001/11/28 08:01:58 robertc Exp $
 #
 
-DIST_SUBDIRS   = fakeauth no_check NTLMSSP
+DIST_SUBDIRS   = fakeauth no_check NTLMSSP winbind
 SUBDIRS                = @NTLM_AUTH_HELPERS@
index 20d0ae689a81e4bd6561e997120bbebe107e1a65..d52c73a70e9f67825c34fa10ca2becdf52acb7f2 100644 (file)
@@ -15,7 +15,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.4 2001/10/03 14:57:05 hno Exp $
+#  $Id: Makefile.in,v 1.5 2001/11/28 08:01:58 robertc Exp $
 #
 
 SHELL = @SHELL@
@@ -77,7 +77,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
@@ -123,7 +124,7 @@ am__quote = @am__quote@
 install_sh = @install_sh@
 makesnmplib = @makesnmplib@
 
-DIST_SUBDIRS = fakeauth no_check NTLMSSP
+DIST_SUBDIRS = fakeauth no_check NTLMSSP winbind
 SUBDIRS = @NTLM_AUTH_HELPERS@
 subdir = src/auth/ntlm/helpers
 mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
index 9dd86a76e2a64a53f485e978db690b0c505b11be..4b4477259739ebfd0898d25a6ede5127ee53780a 100644 (file)
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.6 2001/10/03 14:57:06 hno Exp $
+#  $Id: Makefile.in,v 1.7 2001/11/28 08:01:59 robertc Exp $
 #
 
 SHELL = @SHELL@
@@ -78,7 +78,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 010be05ca3b5878ecd99ee8c18787892a6c50a06..fee7336ff38a30bdebe974f2d6aad3905461b7a9 100644 (file)
@@ -13,6 +13,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
  */
 
+typedef unsigned char uchar;
 
 #include "ntlm.h"
 #include "util.h"              /* from Squid */
@@ -69,7 +70,10 @@ int SMB_Logon_Server(SMB_Handle_Type Con_Handle, char *UserName, char *PassWord,
 #endif /* DEBUG */
 
 
+#define ENCODED_PASS_LEN 24
 static char challenge[NONCE_LEN];
+static char lmencoded_empty_pass[ENCODED_PASS_LEN],
+       ntencoded_empty_pass[ENCODED_PASS_LEN];
 SMB_Handle_Type handle = NULL;
 
 /* Disconnects from the DC. A reconnection will be done upon the next request
@@ -101,12 +105,12 @@ is_dc_ok(char *domain, char *domain_controller)
 }
 
 
+static char errstr[1001];
 /* returns 0 on success, > 0 on failure */
 static int
 init_challenge(char *domain, char *domain_controller)
 {
     int smberr;
-    char errstr[100];
 
     if (handle != NULL) {
        return 0;
@@ -114,7 +118,7 @@ init_challenge(char *domain, char *domain_controller)
     debug("Connecting to server %s domain %s\n", domain_controller, domain);
     handle = SMB_Connect_Server(NULL, domain_controller, domain);
     smberr = SMB_Get_Last_Error();
-    SMB_Get_Error_Msg(smberr, errstr, 100);
+    SMB_Get_Error_Msg(smberr, errstr, 1000);
 
 
     if (handle == NULL) {      /* couldn't connect */
@@ -134,16 +138,23 @@ init_challenge(char *domain, char *domain_controller)
        return 3;
     }
     memcpy(challenge, handle->Encrypt_Key, NONCE_LEN);
+               SMBencrypt("",challenge,lmencoded_empty_pass);
+               SMBNTencrypt("",challenge,ntencoded_empty_pass);
     return 0;
 }
 
+static char my_domain[100], my_domain_controller[100];
 const char *
 make_challenge(char *domain, char *domain_controller)
 {
-    if (init_challenge(domain, domain_controller) > 0) {
+       /* trying to circumvent some strange problem wih pointers in SMBLib */
+       /* Ugly as hell, but the lib is going to be dropped... */
+       strcpy(my_domain,domain);
+       strcpy(my_domain_controller,domain_controller);
+    if (init_challenge(my_domain, my_domain_controller) > 0) {
        return NULL;
     }
-    return ntlm_make_challenge(domain, domain_controller, challenge, NONCE_LEN);
+    return ntlm_make_challenge(my_domain, my_domain_controller, challenge, NONCE_LEN);
 }
 
 #define min(A,B) (A<B?A:B)
@@ -151,6 +162,7 @@ make_challenge(char *domain, char *domain_controller)
 int ntlm_errno;
 static char credentials[1024]; /* we can afford to waste */
 
+
 /* Fetches the user's credentials from the challenge.
  * Returns NULL if domain or user is not defined
  * No identity control is performed.
@@ -184,7 +196,7 @@ char *
 ntlm_check_auth(ntlm_authenticate * auth, int auth_length)
 {
     int rv;
-    char pass[25];
+    char pass[25], encrypted_pass[40];
     char *domain = credentials;
     char *user;
     lstring tmp;
@@ -194,19 +206,10 @@ ntlm_check_auth(ntlm_authenticate * auth, int auth_length)
        ntlm_errno = NTLM_NOT_CONNECTED;
        return NULL;
     }
-    /* Authenticating against the NT response doesn't seem to work... */
-    tmp = ntlm_fetch_string((char *) auth, auth_length, &auth->lmresponse);
-    if (tmp.str == NULL) {
-       fprintf(stderr, "No auth at all. Returning no-auth\n");
-       ntlm_errno = NTLM_LOGON_ERROR;
-       return NULL;
-    }
-    memcpy(pass, tmp.str, tmp.l);
-    pass[25] = '\0';
 
 /*      debug("fetching domain\n"); */
     tmp = ntlm_fetch_string((char *) auth, auth_length, &auth->domain);
-    if (tmp.str == NULL) {
+    if (tmp.str == NULL || tmp.l == 0) {
        debug("No domain supplied. Returning no-auth\n");
        ntlm_errno = NTLM_LOGON_ERROR;
        return NULL;
@@ -217,7 +220,7 @@ ntlm_check_auth(ntlm_authenticate * auth, int auth_length)
 
 /*      debug("fetching user name\n"); */
     tmp = ntlm_fetch_string((char *) auth, auth_length, &auth->user);
-    if (tmp.str == NULL) {
+    if (tmp.str == NULL || tmp.l == 0) {
        debug("No username supplied. Returning no-auth\n");
        ntlm_errno = NTLM_LOGON_ERROR;
        return NULL;
@@ -225,6 +228,47 @@ ntlm_check_auth(ntlm_authenticate * auth, int auth_length)
     memcpy(user, tmp.str, tmp.l);
     *(user + tmp.l) = '\0';
 
+               
+               /* Authenticating against the NT response doesn't seem to work... */
+    tmp = ntlm_fetch_string((char *) auth, auth_length, &auth->lmresponse);
+    if (tmp.str == NULL || tmp.l == 0) {
+       fprintf(stderr, "No auth at all. Returning no-auth\n");
+       ntlm_errno = NTLM_LOGON_ERROR;
+       return NULL;
+    }
+               
+    memcpy(pass, tmp.str, tmp.l);
+    pass[25] = '\0';
+
+#if 1
+               debug ("Empty LM pass detection: user: '%s', ours:'%s', his: '%s'"
+                                        "(length: %d)\n",
+                                        user,lmencoded_empty_pass,tmp.str,tmp.l);
+               if (memcmp(tmp.str,lmencoded_empty_pass,ENCODED_PASS_LEN)==0) {
+                       fprintf(stderr,"Empty LM password supplied for user %s\\%s. "
+                                                       "No-auth\n",domain,user);
+                       ntlm_errno=NTLM_LOGON_ERROR;
+                       return NULL;
+               }
+               
+               tmp = ntlm_fetch_string ((char *) auth, auth_length, &auth->ntresponse);
+               if (tmp.str != NULL && tmp.l != 0) {
+                       debug ("Empty NT pass detection: user: '%s', ours:'%s', his: '%s'"
+                                                "(length: %d)\n",
+                                                user,ntencoded_empty_pass,tmp.str,tmp.l);
+                       if (memcmp(tmp.str,lmencoded_empty_pass,ENCODED_PASS_LEN)==0) {
+                               fprintf(stderr,"Empty NT password supplied for user %s\\%s. "
+                                                               "No-auth\n",domain,user);
+                               ntlm_errno=NTLM_LOGON_ERROR;
+                               return NULL;
+                       }
+               }
+#endif
+
+               /* TODO: check against empty password!!!!! */
+               
+
+
     debug("checking domain: '%s', user: '%s', pass='%s'\n", domain, user, pass);
 
     rv = SMB_Logon_Server(handle, user, pass, domain, 1);
index cb50453f037806ff770e21ccb66bb23b74a5d93f..e839741d11d430c3ac01bbc2b42f918b25df44bd 100644 (file)
@@ -34,7 +34,7 @@
  * define this if you want debugging
  */
 #ifndef DEBUG
-/* #define DEBUG */
+#define DEBUG
 #endif
 
 #define DEAD_DC_RETRY_INTERVAL 30
 #include <stdio.h>
 #include <unistd.h>
 static char *__foo;
-#define debug(X...) fprintf(stderr,"ntlm-auth[%d](%s:%d): ", getpid(), \
+extern char debug_enabled;
+#define debug(X...) if (debug_enabled) { \
+                    fprintf(stderr,"ntlm-auth[%d](%s:%d): ", getpid(), \
                     ((__foo=strrchr(__FILE__,'/'))==NULL?__FILE__:__foo+1),\
                     __LINE__);\
-                    fprintf(stderr,X)
+                    fprintf(stderr,X); }
 #else /* DEBUG */
 #define debug(X...)            /* */
 #endif /* DEBUG */
index ff9cd3733384c2c8e9425cbc2b2e27cde70b1faa..e496110f12841394ae0824ffa981de0d4aa97863 100644 (file)
@@ -133,17 +133,18 @@ void
 usage()
 {
     fprintf(stderr,
-       "%s usage:\n%s [-b] [-f] domain\\controller [domain\\controller ...]\n-b, if specified, enables load-balancing among controllers\n-f, if specified, enables failover among controllers (DEPRECATED and always active)\n-l, if specified, changes behavior on domain controller failyures to\tlast-ditch\n\nYou MUST specify at least one Domain Controller.\nYou can use either \\ or / as separator between the domain name \n\tand the controller name\n",
+       "%s usage:\n%s [-b] [-f] [-d] domain\\controller [domain\\controller ...]\n-b, if specified, enables load-balancing among controllers\n-f, if specified, enables failover among controllers (DEPRECATED and always active)\n-l, if specified, changes behavior on domain controller failyures to\tlast-ditch.-d enables debugging statements if DEBUG was defined at build-time.\n\nYou MUST specify at least one Domain Controller.\nYou can use either \\ or / as separator between the domain name \n\tand the controller name\n",
        my_program_name, my_program_name);
 }
 
+char debug_enabled=0;
 
 void
 process_options(int argc, char *argv[])
 {
     int opt, j, had_error = 0;
     dc *new_dc = NULL, *last_dc = NULL;
-    while (-1 != (opt = getopt(argc, argv, "bfl"))) {
+    while (-1 != (opt = getopt(argc, argv, "bfld"))) {
        switch (opt) {
        case 'b':
            load_balance = 1;
@@ -157,6 +158,9 @@ process_options(int argc, char *argv[])
            last_ditch_enabled = 1;
            break;
 #endif
+       case 'd':
+               debug_enabled=1;
+               break;
        default:
            fprintf(stderr, "unknown option: -%c. Exiting\n", opt);
            usage();
@@ -323,6 +327,10 @@ manage_request()
            }
            if (cred == NULL) {
                int smblib_err, smb_errorclass, smb_errorcode, nb_error;
+               if (ntlm_errno == NTLM_LOGON_ERROR) {   /* hackish */
+                       SEND("NA Logon Failure");
+                       return;
+               }
                /* there was an error. We have two errno's to look at.
                 * libntlmssp's erno is insufficient, we'll have to look at
                 * the actual SMB library error codes, to acually figure
index a805a7bfc6c205124eaed55aa22aaa22992531ff..594d372b9ec8a1ae4ec4f6437407e9c91c1452a3 100644 (file)
@@ -74,7 +74,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 506b3384e456d74f8c4ef7c193b46a927dd1b949..996141bdcd6341521dabd9ce4566d974e151ae36 100644 (file)
@@ -451,7 +451,7 @@ SMB_Logon_Server(SMB_Handle_Type Con_Handle, char *UserName,
 
        SSVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_mbs_offset, SMBLIB_MAX_XMIT);
        SSVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_mmc_offset, 0);
-       SSVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_vcn_offset, 0);
+       SSVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_vcn_offset, 1); /* Thanks Tridge! */
        SIVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_snk_offset, 0);
        SSVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_cipl_offset, pass_len);
        SSVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_cspl_offset, 0);
index b7773aafb0bf5ba9a34651a4fad9a497e67f5d12..ee5728897cdd6091b87e0949a6004da0b018b13b 100644 (file)
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.6 2001/10/03 14:57:07 hno Exp $
+#  $Id: Makefile.in,v 1.7 2001/11/28 08:02:01 robertc Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -80,7 +80,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 422a2d81ac0d2bff373ab4016dfa5170dae92353..def143c93f7f871c95390323db4d1c32bde7a3a4 100644 (file)
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.6 2001/10/03 14:57:07 hno Exp $
+#  $Id: Makefile.in,v 1.7 2001/11/28 08:02:01 robertc Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -80,7 +80,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 85a5393567f12dd078d33eaf223d1e4f056655f4..2b1bbe4aba669ad90159e31c3b720b53dbdca871 100644 (file)
@@ -1,4 +1,4 @@
-/* include/autoconf.h.in.  Generated automatically from configure.in by autoheader.  */
+/* include/autoconf.h.in.  Generated automatically from configure.in by autoheader 2.13.  */
 /* 
  * All configurable options are enabled by using --enable-....
  * when running configure. See configure --help for a list
  */
 #undef LINUX_NETFILTER
 
+/*
+ * Do we have unix sockets? (required for the winbind ntlm helper
+ */
+#undef HAVE_UNIXSOCKET
+
 #undef int16_t
 
 #undef u_int16_t
 /* Define if you have the <netinet/tcp.h> header file.  */
 #undef HAVE_NETINET_TCP_H
 
+/* Define if you have the <nss.h> header file.  */
+#undef HAVE_NSS_H
+
+/* Define if you have the <nss_common.h> header file.  */
+#undef HAVE_NSS_COMMON_H
+
 /* Define if you have the <openssl/err.h> header file.  */
 #undef HAVE_OPENSSL_ERR_H
 
 /* Define if you have the <sys/wait.h> header file.  */
 #undef HAVE_SYS_WAIT_H
 
+/* Define if you have the <syscall.h> header file.  */
+#undef HAVE_SYSCALL_H
+
 /* Define if you have the <syslog.h> header file.  */
 #undef HAVE_SYSLOG_H
 
 /* Define if you have the <unistd.h> header file.  */
 #undef HAVE_UNISTD_H
 
+/* Define if you have the <utime.h> header file.  */
+#undef HAVE_UTIME_H
+
 /* Define if you have the <varargs.h> header file.  */
 #undef HAVE_VARARGS_H
 
index 4d7839fc0a376e6dbb552d0454ce07035fa2af74..12fcc180e561b1cfe87313a5ba60c9dadf3172b4 100644 (file)
@@ -14,7 +14,7 @@
 @SET_MAKE@
 
 #
-#  $Id: Makefile.in,v 1.55 2001/11/21 23:47:12 hno Exp $
+#  $Id: Makefile.in,v 1.56 2001/11/28 08:01:44 robertc Exp $
 #
 
 SHELL = @SHELL@
@@ -76,7 +76,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index b0c275a487e4200bf7fb1fe8b1df990954de12f2..42714052f0742f5bbb67146d0b7eb8c56a677495 100644 (file)
@@ -77,7 +77,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 5c83e1c8efc952d49ebd8e73802c13e3e2a57271..ae1b7a0a011c4c9501fdf692cf1a73ea734bb44e 100644 (file)
@@ -72,7 +72,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 14da2d396bc356ef0674a0c87b1b6e4889bba6bc..0e07d96c3604ddd8f6571f3c632476ef9ab81458 100644 (file)
@@ -83,7 +83,6 @@ SOFTWARE.
 #include "util.h"
 #include "snprintf.h"
 
-
 static struct snmp_mib_tree *get_symbol(oid *objid, int objidlen, struct snmp_mib_tree *subtree, char *buf);
 
 oid RFC1066_MIB[] =
index 74a00a702c3bc517719e1918c5a7615fde9e2c5f..a9fe20e5c16387fd3f2e972f537142b87059f30f 100644 (file)
@@ -15,7 +15,7 @@
 
 #  Makefile for authentication modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.4 2001/10/03 14:56:56 hno Exp $
+#  $Id: Makefile.in,v 1.5 2001/11/28 08:01:48 robertc Exp $
 #
 
 SHELL = @SHELL@
@@ -77,7 +77,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index b39a6ab012890b6fdf4f9d5e7dbb4d5662ccd503..8f1a7ab6ccb9735f65902eb0175b9a9f0ed844f6 100644 (file)
@@ -72,7 +72,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 0e8bc0a5970f73db1b03002ae2cd8ecaa589b05a..f54074c54c965f3434de69035ee63fa6ac9f4f2c 100644 (file)
@@ -72,7 +72,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index b20444f5ab30b628f0223d9b4858a63bb6ec5102..14057e6273e1e65f4deec990a379190fab220d13 100644 (file)
@@ -72,7 +72,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 8d0fbeff9b57f3d2c9d96f0b7860de8dab4fd84d..d958c6c3b90d0843053b8374168be2dc62af52a7 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: auth_ntlm.cc,v 1.15 2001/10/24 05:26:16 hno Exp $
+ * $Id: auth_ntlm.cc,v 1.16 2001/11/28 08:01:57 robertc Exp $
  *
  * DEBUG: section 29    NTLM Authenticator
  * AUTHOR: Robert Collins
@@ -284,8 +284,9 @@ authenticateNTLMDirection(auth_user_request_t * auth_user_request)
     /* null auth_user is checked for by authenticateDirection */
     switch (ntlm_request->auth_state) {
     case AUTHENTICATE_STATE_NONE:      /* no progress at all. */
-       if (ntlm_request->flags.credentials_ok != 2)
-           debug(29, 1) ("authenticateNTLMDirection: called before NTLM Authenticate!. Report a bug to squid-dev. au %p\n", auth_user_request);
+       debug(29, 1) ("authenticateNTLMDirection: called before NTLM Authenticate!. Report a bug to squid-dev. au %x\n", auth_user_request);
+       /* fall thru */
+    case AUTHENTICATE_STATE_FAILED:
        return -2;
     case AUTHENTICATE_STATE_NEGOTIATE:         /* send to helper */
     case AUTHENTICATE_STATE_RESPONSE:  /*send to helper */
@@ -321,6 +322,7 @@ authenticateNTLMFixErrorHeader(auth_user_request_t * auth_user_request, HttpRepl
            ntlm_request = auth_user_request->scheme_data;
            switch (ntlm_request->auth_state) {
            case AUTHENTICATE_STATE_NONE:
+           case AUTHENTICATE_STATE_FAILED:
                debug(29, 9) ("authenticateNTLMFixErrorHeader: Sending type:%d header: 'NTLM'\n", type);
                httpHeaderPutStrf(&rep->header, type, "NTLM");
                /* drop the connection */
@@ -442,6 +444,9 @@ authenticateNTLMHandleReply(void *data, void *lastserver, char *reply)
        return S_HELPER_RELEASE;
     }
     if (!reply) {
+        /* TODO: this occurs when a helper crashes. We should clean up that helpers resources
+        * and queued requests.
+        */
        fatal("authenticateNTLMHandleReply: called with no result string\n");
     }
     /* seperate out the useful data */
@@ -486,7 +491,6 @@ authenticateNTLMHandleReply(void *data, void *lastserver, char *reply)
        assert(ntlm_request->auth_state == AUTHENTICATE_STATE_RESPONSE);
        ntlm_user->username = xstrndup(reply, MAX_LOGIN_SZ);
        ntlm_request->authserver = NULL;
-       ntlm_request->flags.credentials_ok = 1;         /* login ok */
 #ifdef NTLM_FAIL_OPEN
     } else if (strncasecmp(reply, "LD ", 3) == 0) {
        /* This is a variant of BH, which rather than deny access
@@ -508,16 +512,12 @@ authenticateNTLMHandleReply(void *data, void *lastserver, char *reply)
        ntlm_user = auth_user_request->auth_user->scheme_data;
        assert(ntlm_user != NULL);
        result = S_HELPER_RELEASE;
-       /* we only expect OK when finishing the handshake */
+       /* we only expect LD when finishing the handshake */
        assert(ntlm_request->auth_state == AUTHENTICATE_STATE_RESPONSE);
        ntlm_user->username = xstrndup(reply, MAX_LOGIN_SZ);
        helperstate = helperStatefulServerGetData(ntlm_request->authserver);
        ntlm_request->authserver = NULL;
-       ntlm_request->flags.credentials_ok = 1;         /* login ok */
        /* BH code: mark helper as broken */
-       /* Not a valid helper response to a YR request. Assert so the helper
-        * programmer will fix their bugs! */
-       assert(ntlm_request->auth_state != AUTHENTICATE_STATE_NEGOTIATE);
        /* mark it for starving */
        helperstate->starve = 1;
 #endif
@@ -534,9 +534,8 @@ authenticateNTLMHandleReply(void *data, void *lastserver, char *reply)
        /* todo: action of Negotiate state on error */
        result = S_HELPER_RELEASE;      /*some error has occured. no more requests */
        ntlm_request->authserver = NULL;
-       ntlm_request->flags.credentials_ok = 2;         /* Login/Usercode failed */
        debug(29, 4) ("authenticateNTLMHandleReply: Error validating user via NTLM. Error returned '%s'\n", reply);
-       ntlm_request->auth_state = AUTHENTICATE_STATE_NONE;
+       ntlm_request->auth_state = AUTHENTICATE_STATE_FAILED;
        if ((t = strchr(reply, ' ')))   /* strip after a space */
            *t = '\0';
     } else if (strncasecmp(reply, "NA", 2) == 0) {
@@ -564,31 +563,29 @@ authenticateNTLMHandleReply(void *data, void *lastserver, char *reply)
        if (ntlm_request->auth_state == AUTHENTICATE_STATE_NEGOTIATE) {
            /* The helper broke on YR. It automatically
             * resets */
-           ntlm_request->flags.credentials_ok = 3;     /* cannot process */
-           debug(29, 1) ("authenticateNTLMHandleReply: Error obtaining challenge from helper: %p. Error returned '%s'\n", lastserver, reply);
+           debug(29, 1) ("authenticateNTLMHandleReply: Error obtaining challenge from helper: %d. Error returned '%s'\n", lastserver, reply);
            /* mark it for starving */
            helperstate->starve = 1;
            /* resubmit the request. This helper is currently busy, so we will get
-            * a different one. */
+            * a different one. Our auth state stays the same */
            authenticateNTLMStart(auth_user_request, r->handler, r->data);
            /* don't call the callback */
            cbdataUnlock(r->data);
            authenticateStateFree(r);
            debug(29, 9) ("NTLM HandleReply, telling stateful helper : %d\n", result);
            return result;
-       } else {
-           /* the helper broke on a KK */
-           /* first the standard KK stuff */
-           ntlm_request->flags.credentials_ok = 2;     /* Login/Usercode failed */
-           debug(29, 4) ("authenticateNTLMHandleReply: Error validating user via NTLM. Error returned '%s'\n", reply);
-           if ((t = strchr(reply, ' ')))       /* strip after a space */
-               *t = '\0';
-           /* now we mark the helper for resetting. */
-           helperstate->starve = 1;
-       }
-       ntlm_request->auth_state = AUTHENTICATE_STATE_NONE;
+       } 
+       /* the helper broke on a KK */
+       /* first the standard KK stuff */
+       debug(29, 4) ("authenticateNTLMHandleReply: Error validating user via NTLM. Error returned '%s'\n", reply);
+       if ((t = strchr(reply, ' ')))   /* strip after a space */
+           *t = '\0';
+       /* now we mark the helper for resetting. */
+       helperstate->starve = 1;
+       ntlm_request->auth_state = AUTHENTICATE_STATE_FAILED;
     } else {
        /* TODO: only work with auth_user here if it exists */
+        /* TODO: take the request state into consideration */
        assert(r->auth_user_request != NULL);
        assert(r->auth_user_request->auth_user->auth_type == AUTH_NTLM);
        auth_user_request = r->auth_user_request;
@@ -598,10 +595,10 @@ authenticateNTLMHandleReply(void *data, void *lastserver, char *reply)
        ntlm_request = auth_user_request->scheme_data;
        assert((ntlm_user != NULL) && (ntlm_request != NULL));
        debug(29, 1) ("authenticateNTLMHandleReply: *** Unsupported helper response ***, '%s'\n", reply);
+       /* **** NOTE THIS CODE IS EFFECTIVELY UNTESTED **** */
        /* restart the authentication process */
        ntlm_request->auth_state = AUTHENTICATE_STATE_NONE;
-       ntlm_request->flags.credentials_ok = 3;         /* cannot process */
-       assert(ntlm_request->authserver ? ntlm_request->authserver == lastserver : 1);
+       assert (ntlm_request->authserver ? ntlm_request->authserver == lastserver : 1);
        ntlm_request->authserver = NULL;
     }
     r->handler(r->data, NULL);
@@ -963,10 +960,6 @@ authenticateNTLMAuthenticateUser(auth_user_request_t * auth_user_request, reques
     case AUTHENTICATE_STATE_NONE:
        /* we've recieved a negotiate request. pass to a helper */
        debug(29, 9) ("authenticateNTLMAuthenticateUser: auth state ntlm none. %s\n", proxy_auth);
-       if (ntlm_request->flags.credentials_ok == 2) {
-           /* the authentication fialed badly... */
-           return;
-       }
        ntlm_request->auth_state = AUTHENTICATE_STATE_NEGOTIATE;
        ntlm_request->ntlmnegotiate = xstrndup(proxy_auth, NTLM_CHALLENGE_SZ + 5);
        conn->auth_type = AUTH_NTLM;
@@ -1023,7 +1016,6 @@ authenticateNTLMAuthenticateUser(auth_user_request_t * auth_user_request, reques
            /* get the existing entries details */
            ntlm_user = auth_user->scheme_data;
            debug(29, 9) ("Username to be used is %s\n", ntlm_user->username);
-           ntlm_request->flags.credentials_ok = 1;     /* authenticated ok */
            /* on ntlm auth we do not unlock the auth_user until the
             * connection is dropped. Thank MS for this quirk */
            auth_user->expiretime = current_time.tv_sec;
@@ -1069,12 +1061,15 @@ authenticateNTLMAuthenticateUser(auth_user_request_t * auth_user_request, reques
        /* set these to now because this is either a new login from an 
         * existing user or a new user */
        auth_user->expiretime = current_time.tv_sec;
-       ntlm_request->flags.credentials_ok = 1;         /*authenticated ok */
        return;
        break;
     case AUTHENTICATE_STATE_DONE:
        fatal("authenticateNTLMAuthenticateUser: unexpect auth state DONE! Report a bug to the squid developers.\n");
+       break;
+    case AUTHENTICATE_STATE_FAILED:
+       /* we've failed somewhere in authentication */
+       debug(29, 9) ("authenticateNTLMAuthenticateUser: auth state ntlm failed. %s\n", proxy_auth);
+       return;
     }
-
     return;
 }
index a82e522446d761b07fe78ed79624e79ab7c515a9..13a191edabe353228c0de7286b4fea54c5e0a106 100644 (file)
@@ -8,6 +8,15 @@
 
 #define DefaultAuthenticateChildrenMax  32     /* 32 processes */
 
+typedef enum {
+    AUTHENTICATE_STATE_NONE,
+    AUTHENTICATE_STATE_NEGOTIATE,
+    AUTHENTICATE_STATE_CHALLENGE,
+    AUTHENTICATE_STATE_RESPONSE,
+    AUTHENTICATE_STATE_DONE,
+    AUTHENTICATE_STATE_FAILED
+} auth_state_t;                 /* connection level auth state */
+
 /* Generic */
 typedef struct {
     void *data;
@@ -22,9 +31,6 @@ struct _ntlm_user {
 };
 
 struct _ntlm_request {
-    struct {
-       unsigned int credentials_ok:2;  /*0=unchecked,1=ok,2=failed */
-    } flags;
     /* what negotiate string did the client use? */
     char *ntlmnegotiate;
     /* what challenge did we give the client? */
index f5812b28d49c17022861094797280a003d209e8d..aa32f81275b5e5b14496c96092a3372f899b4844 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: authenticate.cc,v 1.35 2001/10/25 18:08:47 hno Exp $
+ * $Id: authenticate.cc,v 1.36 2001/11/28 08:01:46 robertc Exp $
  *
  * DEBUG: section 29    Authenticator
  * AUTHOR: Duane Wessels
@@ -235,6 +235,7 @@ authenticateAuthUserRequestFree(auth_user_request_t * auth_user_request)
        assert(auth_user_request->scheme_data == NULL);
     if (auth_user_request->message)
        xfree(auth_user_request->message);
+    memPoolFree(auth_user_request_pool, auth_user_request);
 }
 
 char *
@@ -676,11 +677,6 @@ void
 authenticateFixHeader(HttpReply * rep, auth_user_request_t * auth_user_request, request_t * request, int accelerated, int internal)
 /* send the auth types we are configured to support (and have compiled in!) */
 {
-/*    auth_type_t auth_type=err->auth_type;
- * auth_state_t auth_state=err->auth_state;
- * char *authchallenge=err->authchallenge;
- * auth_user_request_t *auth_user_request=err->auth_user_request;
- */
     int type = 0;
     switch (rep->sline.status) {
     case HTTP_PROXY_AUTHENTICATION_REQUIRED:
index fe1a80be796890ad669f7ff8baca654565307938..bbf8f75227e1ef65d7072b98f75a1d510cbb225e 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: enums.h,v 1.201 2001/11/17 11:09:24 hno Exp $
+ * $Id: enums.h,v 1.202 2001/11/28 08:01:46 robertc Exp $
  *
  *
  * SQUID Web Proxy Cache          http://www.squid-cache.org/
@@ -526,14 +526,6 @@ typedef enum {
     AUTH_BROKEN                        /* known type, but broken data */
 } auth_type_t;
 
-typedef enum {
-    AUTHENTICATE_STATE_NONE,
-    AUTHENTICATE_STATE_NEGOTIATE,
-    AUTHENTICATE_STATE_CHALLENGE,
-    AUTHENTICATE_STATE_RESPONSE,
-    AUTHENTICATE_STATE_DONE
-} auth_state_t;                        /* connection level auth state */
-
 /* stateful helper callback response codes */
 typedef enum {
     S_HELPER_UNKNOWN,
index 2c8fe0f309a287230500b565d030726c0c1e6fd2..628df40aefbc89f1f12196f638b9fda47eda8d55 100644 (file)
@@ -15,7 +15,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.6 2001/10/03 14:57:08 hno Exp $
+#  $Id: Makefile.in,v 1.7 2001/11/28 08:02:02 robertc Exp $
 #
 
 SHELL = @SHELL@
@@ -77,7 +77,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 9c8407c9b4a24d4f5c48afba9145b68ce97eb4b4..c63bad7d5cacf5b79df30217749c2725b2b9c9a3 100644 (file)
@@ -72,7 +72,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index f2d8fdd42e5326a3ba5b758d3b8af42fdda86826..318ef57081489e88a9f748ab59c0e254b5cefa8a 100644 (file)
@@ -72,7 +72,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 07fc9763d05f924a975164ec1ebf3c7e20a52605..043007efa9c2b3e4ca400d87597c78846aed20b1 100644 (file)
@@ -16,7 +16,7 @@
 #
 #  Makefile for the DISKD storage driver for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.4 2001/10/03 14:57:10 hno Exp $
+#  $Id: Makefile.in,v 1.5 2001/11/28 08:02:04 robertc Exp $
 #
 
 SHELL = @SHELL@
@@ -78,7 +78,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index aaa90929abb07ff54fa8ea144e32cc630d2f5302..c02d3969013d6d53076f77af9ab7ea32422c61c1 100644 (file)
@@ -72,7 +72,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index d7c3e570f6ab658b213ce63b1ee67f125b138ab8..6065e4a287f46e2616a43292f934ade2df1945ff 100644 (file)
@@ -72,7 +72,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index ac7d4fb60789874b152d2624c327aeecb7f51a1f..afb2b78d8c3ae3603e99d14e185b1fa477d0fedc 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: helper.cc,v 1.33 2001/10/24 07:45:35 hno Exp $
+ * $Id: helper.cc,v 1.34 2001/11/28 08:01:46 robertc Exp $
  *
  * DEBUG: section 29    Helper process maintenance
  * AUTHOR: Harvest Derived?
@@ -670,6 +670,7 @@ helperStatefulServerFree(int fd, void *data)
        helperStatefulRequestFree(r);
        srv->request = NULL;
     }
+    /* TODO: walk the local queue of requests and carry them all out */
     if (srv->wfd != srv->rfd && srv->wfd != -1)
        comm_close(srv->wfd);
     dlinkDelete(&srv->link, &hlp->servers);
index 28caa70071cf2e575739256618980636e2b8b32f..9dc1e2c82d5ef1220beb20f014e03ecf64629fb3 100644 (file)
@@ -15,7 +15,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.5 2001/10/03 14:57:11 hno Exp $
+#  $Id: Makefile.in,v 1.6 2001/11/28 08:02:05 robertc Exp $
 #
 
 SHELL = @SHELL@
@@ -77,7 +77,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 1f55760cc5da6aeebd7c9be6dfc264983f727d1e..d5b9ee1fbe7985db1d1626efac75998e2f917cdf 100644 (file)
@@ -72,7 +72,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
index 969e7633acf4df1c2240aa99f6b1f1e3ad6402ba..b8228aad4e2dbfdded94ba278e25dbf9dc859a4f 100644 (file)
@@ -72,7 +72,8 @@ CRYPTLIB = @CRYPTLIB@
 DEPDIR = @DEPDIR@
 DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@
 DLLIB = @DLLIB@
-ERR_LANGUAGE = @ERR_LANGUAGE@
+ERR_DEFAULT_LANGUAGE = @ERR_DEFAULT_LANGUAGE@
+ERR_LANGUAGES = @ERR_LANGUAGES@
 EXEEXT = @EXEEXT@
 FALSE = @FALSE@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@