Index: squid/src/client_side.c diff -c squid/src/client_side.c:1.561.2.43 squid/src/client_side.c:1.561.2.45 *** squid/src/client_side.c:1.561.2.43 Sun Aug 31 03:33:32 2003 --- squid/src/client_side.c Mon Sep 1 14:12:02 2003 *************** *** 1966,2001 **** http->range_iter.prefix_size = rep->hdr_sz; debug(33, 3) ("clientSendMoreData: Appending %d bytes after %d bytes of headers\n", (int) body_size, rep->hdr_sz); ! ch = clientAclChecklistCreate(Config.accessList.reply, http); ! ch->reply = rep; ! rv = aclCheckFast(Config.accessList.reply, ch); ! aclChecklistFree(ch); ! ch = NULL; ! debug(33, 2) ("The reply for %s %s is %s, because it matched '%s'\n", ! RequestMethodStr[http->request->method], http->uri, ! rv ? "ALLOWED" : "DENIED", ! AclMatchedName ? AclMatchedName : "NO ACL's"); ! if (!rv && rep->sline.status != HTTP_FORBIDDEN ! && !clientAlwaysAllowResponse(rep->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. */ ! ErrorState *err; ! err = errorCon(ERR_ACCESS_DENIED, HTTP_FORBIDDEN); ! err->request = requestLink(http->request); ! storeUnregister(http->sc, http->entry, http); ! http->sc = NULL; ! storeUnlockObject(http->entry); ! http->entry = clientCreateStoreEntry(http, http->request->method, ! null_request_flags); ! errorAppendEntry(http->entry, err); ! httpReplyDestroy(rep); ! /* ! * log with TCP_DENIED, the same as for http_access checks ! */ ! http->log_type = LOG_TCP_DENIED; ! memFree(buf, MEM_CLIENT_SOCK_BUF); ! return; } } else if (size < CLIENT_SOCK_SZ && entry->store_status == STORE_PENDING) { /* wait for more to arrive */ --- 1966,1999 ---- http->range_iter.prefix_size = rep->hdr_sz; debug(33, 3) ("clientSendMoreData: Appending %d bytes after %d bytes of headers\n", (int) body_size, rep->hdr_sz); ! if (http->log_type != LOG_TCP_DENIED && !clientAlwaysAllowResponse(rep->sline.status)) { ! ch = clientAclChecklistCreate(Config.accessList.reply, http); ! ch->reply = rep; ! rv = aclCheckFast(Config.accessList.reply, ch); ! aclChecklistFree(ch); ! ch = NULL; ! debug(33, 2) ("The reply for %s %s is %s, because it matched '%s'\n", ! RequestMethodStr[http->request->method], http->uri, ! rv ? "ALLOWED" : "DENIED", ! AclMatchedName ? AclMatchedName : "NO ACL's"); ! if (!rv) { ! ErrorState *err; ! err = errorCon(ERR_ACCESS_DENIED, HTTP_FORBIDDEN); ! err->request = requestLink(http->request); ! storeUnregister(http->sc, http->entry, http); ! http->sc = NULL; ! storeUnlockObject(http->entry); ! http->entry = clientCreateStoreEntry(http, http->request->method, ! null_request_flags); ! errorAppendEntry(http->entry, err); ! httpReplyDestroy(rep); ! /* ! * log with TCP_DENIED, the same as for http_access checks ! */ ! http->log_type = LOG_TCP_DENIED; ! memFree(buf, MEM_CLIENT_SOCK_BUF); ! return; ! } } } else if (size < CLIENT_SOCK_SZ && entry->store_status == STORE_PENDING) { /* wait for more to arrive */

AltStyle によって変換されたページ (->オリジナル) /