#
-# $Id: cf.data.pre,v 1.462 2007/08/28 01:57:20 hno Exp $
+# $Id: cf.data.pre,v 1.463 2007/08/30 13:03:42 hno Exp $
#
# SQUID Web Proxy Cache http://www.squid-cache.org/
# ----------------------------------------------------------
TYPE: acl_access
LOC: Config.accessList.reply
DEFAULT: none
-DEFAULT_IF_NONE: allow all
DOC_START
Allow replies to client requests. This is complementary to http_access.
/*
- * $Id: client_side_reply.cc,v 1.136 2007/08/27 21:56:58 hno Exp $
+ * $Id: client_side_reply.cc,v 1.137 2007/08/30 13:03:43 hno Exp $
*
* DEBUG: section 88 Client-side Reply Routines
* AUTHOR: Robert Collins (Originally Duane Wessels in client_side.c)
assert(reply);
buildMaxBodySize(reply);
+ /* Dont't block our own responses or HTTP status messages */
+ if (http->logType == LOG_TCP_DENIED || alwaysAllowResponse(reply->sline.status)) {
+ processReplyAccessResult(1);
+ return;
+ }
+
if (http->isReplyBodyTooLarge(reply->content_length)) {
ErrorState *err =
clientBuildError(ERR_TOO_BIG, HTTP_FORBIDDEN, NULL,
}
headers_sz = reply->hdr_sz;
+
+ if (!Config.accessList.reply) {
+ processReplyAccessResult(1);
+ return;
+ }
+
ACLChecklist *replyChecklist;
replyChecklist = clientAclChecklistCreate(Config.accessList.reply, http);
replyChecklist->reply = HTTPMSGLOCK(reply);
<< ", because it matched '"
<< (AclMatchedName ? AclMatchedName : "NO ACL's") << "'" );
- if (!accessAllowed && reply->sline.status != HTTP_FORBIDDEN
- && !alwaysAllowResponse(reply->sline.status)) {
- /* the if above is slightly broken, but there is no way
- * to tell if this is a squid generated error page, or one from
- * upstream at this point. */
+ if (!accessAllowed) {
ErrorState *err;
err_type page_id;
page_id = aclGetDenyInfoPage(&Config.denyInfoList, AclMatchedName, 1);