intercepted request. The two are now handled separately from each other.
This fixes two issues:
a) Transparently intercepted requests is no longer under the restrictions
of accelerated requests in peering relations etc..
b) No risk of confusion in authentication. Authentication is now allowed
for accelerated requests but not transparently intercepted requests.
dnl
dnl Duane Wessels, wessels@nlanr.net, February 1996 (autoconf v2.9)
dnl
-dnl $Id: configure.in,v 1.324 2003/02/16 02:28:13 robertc Exp $
+dnl $Id: configure.in,v 1.325 2003/02/22 14:59:32 hno Exp $
dnl
dnl
dnl
AC_CONFIG_AUX_DIR(cfgaux)
AM_INIT_AUTOMAKE(squid, 3.0-DEVEL)
AM_CONFIG_HEADER(include/autoconf.h)
-AC_REVISION($Revision: 1.324 $)dnl
+AC_REVISION($Revision: 1.325 $)dnl
AC_PREFIX_DEFAULT(/usr/local/squid)
AM_MAINTAINER_MODE
],[OPT_DEFAULT_HOSTS="/etc/hosts"])
AC_SUBST(OPT_DEFAULT_HOSTS)
-AC_ARG_ENABLE(auth-on-acceleration,
-[ --enable-auth-on-acceleration
- Enable authentication in accelerators],
-[ if test "$enableval" = "yes" ; then
- echo "AUTH_ON_ACCELERATION enabled"
- AC_DEFINE(AUTH_ON_ACCELERATION, 1, [Enable authentication support in accelerators])
- else
- AC_DEFINE(AUTH_ON_ACCELERATION, 0, [Enable authentication support in accelerators])
- fi
-])
-
-
dnl Select auth schemes modules to build
AC_ARG_ENABLE(auth,
[ --enable-auth=\"list of auth scheme modules\"
/*
- * $Id: ACLChecklist.cc,v 1.7 2003/02/21 22:50:04 robertc Exp $
+ * $Id: ACLChecklist.cc,v 1.8 2003/02/22 14:59:33 hno Exp $
*
* DEBUG: section 28 Access Control
* AUTHOR: Duane Wessels
if (NULL == request) {
fatal ("requiresRequest SHOULD have been true for this ACL!!");
return 0;
- } else if (!request->flags.accelerated) {
- /* Proxy authorization on proxy requests */
- headertype = HDR_PROXY_AUTHORIZATION;
- } else if (request->flags.internal) {
- /* WWW authorization on accelerated internal requests */
- headertype = HDR_AUTHORIZATION;
- } else {
-#if AUTH_ON_ACCELERATION
+ } else if (request->flags.accelerated) {
/* WWW authorization on accelerated requests */
headertype = HDR_AUTHORIZATION;
-#else
-
- debug(28, 1) ("ACHChecklist::authenticated: authentication not applicable on accelerated requests.\n");
+ } else if (request->flags.transparent) {
+ debug(28, 1) ("ACHChecklist::authenticated: authentication not applicable on transparently intercepted requests.\n");
return -1;
-#endif
-
+ } else {
+ /* Proxy authorization on proxy requests */
+ headertype = HDR_PROXY_AUTHORIZATION;
}
/* get authed here */
#
-# $Id: cf.data.pre,v 1.305 2003/02/21 21:01:16 hno Exp $
+# $Id: cf.data.pre,v 1.306 2003/02/22 14:59:33 hno Exp $
#
#
# SQUID Web Proxy Cache http://www.squid-cache.org/
# to check username/password combinations (see
# auth_param directive).
#
- # WARNING: proxy_auth can't be used in a transparent proxy. It
- # collides with any authentication done by origin servers. It may
- # seem like it works at first, but it doesn't.
+ # NOTE: proxy_auth can't be used in a transparent proxy as
+ # the browser needs to be configured for using a proxy in order
+ # to respond to proxy authentication.
acl aclname snmp_community string ...
# A community string to limit access to your SNMP Agent
/*
- * $Id: client_side.cc,v 1.624 2003/02/21 22:50:07 robertc Exp $
+ * $Id: client_side.cc,v 1.625 2003/02/22 14:59:34 hno Exp $
*
* DEBUG: section 33 Client-side Routines
* AUTHOR: Duane Wessels
{
int deferred:
- 1; /* This is a pipelined request waiting for the
- * current object to complete */
+ 1; /* This is a pipelined request waiting for the current object to complete */
int parsed_ok:
- 1; /* Was this parsed correctly? */
+ 1; /* Was this parsed correctly? */
}
flags;
private:
void prepareReply(HttpReply * rep);
- bool mayUseConnection_; /* This request may use the connection -
- * don't read anymore requests for now
- */
+ bool mayUseConnection_; /* This request may use the connection. Don't read anymore requests for now */
};
CBDATA_TYPE(ClientSocketContext);
{
char *host;
- http->flags.accel = 1;
+ http->flags.transparent = 1;
if (*url != '/')
return; /* already in good shape */
request->flags.accelerated = http->flags.accel;
+ request->flags.transparent = http->flags.transparent;
+
if (!http->flags.internal) {
if (internalCheck(request->urlpath.buf())) {
if (internalHostnameIs(request->host) &&
if (size > 0) {
kb_incr(&statCounter.client_http.kbytes_in, size);
conn->in.notYetUsed += size;
- conn->in.buf[conn->in.notYetUsed] = '\0'; /* Terminate the string
- */
+ conn->in.buf[conn->in.notYetUsed] = '\0'; /* Terminate the string */
} else if (size == 0) {
debug(33, 5) ("clientReadRequest: FD %d closed?\n", fd);
/*
- * $Id: client_side_request.h,v 1.7 2003/02/21 22:50:07 robertc Exp $
+ * $Id: client_side_request.h,v 1.8 2003/02/22 14:59:34 hno Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
unsigned int accel:
1;
+unsigned int transparent:
+ 1;
+
unsigned int internal:
1;
/*
- * $Id: structs.h,v 1.452 2003/02/21 22:50:12 robertc Exp $
+ * $Id: structs.h,v 1.453 2003/02/22 14:59:35 hno Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
}
body;
- auth_type_t auth_type; /* Is this connection based authentication ? if so
- * what type it is. */
+ auth_type_t auth_type; /* Is this connection based authentication? if so what type it is. */
/* note this is ONLY connection based because NTLM is against HTTP spec */
/* the user details for connection based authentication */
auth_user_request_t *auth_user_request;
struct request_flags
{
- request_flags():range(0),nocache(0),ims(0),auth(0),cachable(0),hierarchical(0),loopdetect(0),proxy_keepalive(0),proxying(0),refresh(0),redirected(0),need_validation(0),accelerated(0),internal(0),internalclient(0),body_sent(0),destinationIPLookedUp_(0)
+ request_flags():range(0),nocache(0),ims(0),auth(0),cachable(0),hierarchical(0),loopdetect(0),proxy_keepalive(0),proxying(0),refresh(0),redirected(0),need_validation(0),accelerated(0),transparent(0),internal(0),internalclient(0),body_sent(0),destinationIPLookedUp_(0)
{
#if HTTP_VIOLATIONS
nocache_hack = 1;
unsigned int accelerated:
1;
+unsigned int transparent:
+ 1;
+
unsigned int internal:
1;
{
char *buf;
HLPSCB *callback;
- int placeholder; /* if 1, this is a dummy request waiting for a stateful helper
- * to become available for deferred requests.*/
+ int placeholder; /* if 1, this is a dummy request waiting for a stateful helper to become available for deferred requests.*/
void *data;
};