|
Squid Web Cache master
|
#include "squid.h"#include "acl/FilledChecklist.h"#include "base/AsyncJobCalls.h"#include "base/DelayedAsyncCalls.h"#include "base/Raw.h"#include "base/TextException.h"#include "base64.h"#include "CachePeer.h"#include "client_side.h"#include "comm/Connection.h"#include "comm/Read.h"#include "comm/Write.h"#include "error/Detail.h"#include "errorpage.h"#include "fd.h"#include "fde.h"#include "globals.h"#include "HeaderMangling.h"#include "http.h"#include "http/one/ResponseParser.h"#include "http/one/TeChunkedParser.h"#include "http/StatusCode.h"#include "http/Stream.h"#include "HttpControlMsg.h"#include "HttpHdrCc.h"#include "HttpHdrContRange.h"#include "HttpHdrSc.h"#include "HttpHdrScTarget.h"#include "HttpHeaderTools.h"#include "HttpReply.h"#include "HttpRequest.h"#include "HttpUpgradeProtocolAccess.h"#include "log/access_log.h"#include "MemBuf.h"#include "MemObject.h"#include "neighbors.h"#include "pconn.h"#include "peer_proxy_negotiate_auth.h"#include "refresh.h"#include "RefreshPattern.h"#include "rfc1738.h"#include "SquidConfig.h"#include "SquidMath.h"#include "StatCounters.h"#include "Store.h"#include "StrList.h"#include "tools.h"#include "util.h"#include "auth/UserRequest.h"#include "DelayPools.h"Go to the source code of this file.
Macros | |
| #define | REFRESH_OVERRIDE(flag) |
| #define | BBUF_SZ (MAX_URL+32) |
Functions | |
| static void | httpMaybeRemovePublic (StoreEntry *, Http::StatusCode) |
| static void | copyOneHeaderFromClientsideRequestToUpstreamRequest (const HttpHeaderEntry *e, const String strConnection, const HttpRequest *request, HttpHeader *hdr_out, const int we_do_ranges, const Http::StateFlags &) |
| static StoreEntry * | findPreviouslyCachedEntry (StoreEntry *newEntry) |
| static void | assembleVaryKey (String &vary, SBuf &vstr, const HttpRequest &request) |
| assemble a variant key (vary-mark) from the given Vary header and HTTP request | |
| SBuf | httpMakeVaryMark (HttpRequest *request, HttpReply const *reply) |
| static void | httpFixupAuthentication (HttpRequest *request, const HttpHeader *hdr_in, HttpHeader *hdr_out, const CachePeer *const peer, const Http::StateFlags &flags) |
| void | httpStart (FwdState *fwd) |
| std::ostream & | operator<< (std::ostream &os, const HttpStateData::ReuseDecision &d) |
Variables | |
| static const char *const | crlf = "\r\n" |
| #define BBUF_SZ (MAX_URL+32) |
| #define REFRESH_OVERRIDE | ( | flag | ) |
|
static |
Definition at line 554 of file http.cc.
References SBuf::append(), String::clean(), HttpHeader::getByName(), Http::Message::header, SBuf::isEmpty(), rfc1738_escape_part, strListGetItem(), String::termedBuf(), and SBuf::toLower().
Referenced by httpMakeVaryMark().
|
static |
Decides whether a particular header may be cloned from the received Clients request to our outgoing fetch request.
Definition at line 2159 of file http.cc.
References HttpHeader::addEntry(), RequestFlags::auth, AnyP::Uri::authority(), Http::AUTHORIZATION, SBuf::c_str(), RequestFlags::cachable, Http::CACHE_CONTROL, SquidConfig::cache_miss_revalidate, Http::StateFlags::chunked_request, HttpHeaderEntry::clone(), Config, Http::CONNECTION, Http::CONTENT_LENGTH, debugs, HttpRequest::flags, Http::FRONT_END_HTTPS, Http::StateFlags::front_end_https, HttpHeaderEntry::getInt64(), HttpHeader::has(), HttpHeader::hasListMember(), Http::HOST, HttpHeaderEntry::id, Http::IF_MATCH, Http::IF_MODIFIED_SINCE, Http::IF_NONE_MATCH, Http::IF_RANGE, Http::KEEP_ALIVE, Http::MAX_FORWARDS, HttpRequest::method, Http::METHOD_OPTIONS, Http::METHOD_TRACE, HttpHeaderEntry::name, SquidConfig::onoff, HttpRequest::peer_domain, HttpRequest::peer_login, Http::PROXY_AUTHENTICATE, Http::PROXY_AUTHORIZATION, Http::PROXY_CONNECTION, HttpHeader::putInt64(), HttpHeader::putStr(), Http::RANGE, SquidConfig::redir_rewrites_host, RequestFlags::redirected, Http::REQUEST_RANGE, String::size(), strListIsMember(), Http::TE, Http::StateFlags::toOrigin, Http::StateFlags::toOriginPeer(), Http::TRAILER, Http::TRANSFER_ENCODING, Http::UPGRADE, HttpRequest::url, HttpHeaderEntry::value, Http::VIA, SquidConfig::via, and Http::X_FORWARDED_FOR.
Referenced by HttpStateData::httpBuildRequestHeader().
|
static |
Definition at line 160 of file http.cc.
References assert, RefCount< C >::getRaw(), StoreEntry::mem_obj, MemObject::method, MemObject::request, storeGetPublic(), storeGetPublicByRequest(), and MemObject::storeId().
Referenced by HttpStateData::haveParsedReplyHeaders(), and httpMaybeRemovePublic().
|
static |
Definition at line 1794 of file http.cc.
References RequestFlags::auth_no_keytab, HttpRequest::auth_user_request, Http::AUTHORIZATION, base64_encode_final(), base64_encode_init(), base64_encode_len, base64_encode_update(), HttpRequest::extacl_passwd, HttpRequest::extacl_user, HttpRequest::flags, HttpHeader::getStr(), HttpHeader::has(), CachePeer::host, httpHeaderPutStrf(), MAX_LOGIN_SZ, HttpRequest::peer_login, PEER_PROXY_NEGOTIATE_NOKEYTAB, Http::StateFlags::peering, Http::PROXY_AUTHORIZATION, HttpHeader::putStr(), String::rawBuf(), String::size(), String::termedBuf(), Http::StateFlags::toOrigin, Http::StateFlags::tunneling, and Auth::UserRequest::username().
Referenced by HttpStateData::httpBuildRequestHeader().
| SBuf httpMakeVaryMark | ( | HttpRequest * | request, |
| HttpReply const * | reply | ||
| ) |
Definition at line 590 of file http.cc.
References assembleVaryKey(), String::clean(), debugs, HttpHeader::getList(), Http::HDR_X_ACCELERATOR_VARY, Http::Message::header, and Http::VARY.
Referenced by StoreEntry::adjustVary(), HttpStateData::haveParsedReplyHeaders(), and varyEvaluateMatch().
|
static |
Remove an existing public store entry if the incoming response (to be stored in a currently private entry) is going to invalidate it.
Definition at line 170 of file http.cc.
References assert, RequestFlags::cachable, EBIT_TEST, findPreviouslyCachedEntry(), HttpRequest::flags, StoreEntry::flags, RefCount< C >::getRaw(), HTCP_CLR_INVALIDATION, KEY_PRIVATE, StoreEntry::mem_obj, MemObject::method, Http::METHOD_HEAD, neighborsHtcpClear(), StoreEntry::release(), MemObject::request, Http::scForbidden, Http::scFound, Http::scGone, Http::scMethodNotAllowed, Http::scMovedPermanently, Http::scMultipleChoices, Http::scNonAuthoritativeInformation, Http::scNotFound, Http::scOkay, Http::scSeeOther, Http::scUnauthorized, storeGetPublic(), storeGetPublicByRequestMethod(), and MemObject::storeId().
Referenced by HttpStateData::haveParsedReplyHeaders().
| void httpStart | ( | FwdState * | fwd | ) |
Definition at line 2531 of file http.cc.
References debugs, FwdState::entry, HttpRequest::method, FwdState::request, AsyncJob::Start(), and StoreEntry::url().
Referenced by FwdState::dispatch().
| std::ostream & operator<< | ( | std::ostream & | os, |
| const HttpStateData::ReuseDecision & | d | ||
| ) |
Definition at line 2673 of file http.cc.
References HttpStateData::ReuseDecision::answer, assert, HttpStateData::ReuseDecision::doNotCacheButShare, HttpStateData::ReuseDecision::entry, HttpStateData::ReuseDecision::reason, HttpStateData::ReuseDecision::reuseNot, and HttpStateData::ReuseDecision::statusCode.