#include "acl/ChecklistFiller.h"
#include "base/RunnersRegistry.h"
#include "clientStreamForward.h"
#include "comm.h"
#include "error/Error.h"
#include "helper/forward.h"
#include "http/forward.h"
#include "HttpControlMsg.h"
#include "ipc/FdNotes.h"
#include "log/forward.h"
#include "proxyp/forward.h"
#include "sbuf/SBuf.h"
#include "servers/Server.h"
#include "auth/UserRequest.h"
#include "security/KeyLogger.h"
#include "security/forward.h"
#include "security/Handshake.h"
#include "ssl/support.h"
#include "MessageBucket.h"
#include <iosfwd>
Go to the source code of this file.
Classes | |
class | ConnStateData |
class | ConnStateData::PinnedIdleContext |
parameters for the async notePinnedConnectionBecameIdle() call More... | |
class | ConnStateData::ServerConnectionContext |
noteTakeServerConnectionControl() callback parameter More... | |
Namespaces | |
Ssl | |
Typedefs | |
typedef RefCount< MasterXaction > | MasterXactionPointer |
Functions | |
const char * | findTrailingHTTPVersion (const char *uriAndHTTPVersion, const char *end=nullptr) |
int | varyEvaluateMatch (StoreEntry *entry, HttpRequest *req) |
void | clientStartListeningOn (AnyP::PortCfgPointer &port, const RefCount< CommCbFunPtrCallT< CommAcceptCbPtrFun > > &subCall, const Ipc::FdNoteId noteId) |
accept requests to a given port and inform subCall about them More... | |
void | clientOpenListenSockets (void) |
void | clientConnectionsClose (void) |
void | httpRequestFree (void *) |
void | clientSetKeepaliveFlag (ClientHttpRequest *http) |
decide whether to expect multiple requests on the corresponding connection More... | |
void | clientPackRangeHdr (const HttpReplyPointer &, const HttpHdrRangeSpec *, String boundary, MemBuf *) |
append a "part" HTTP header (as in a multi-part/range reply) to the buffer More... | |
void | clientPackTermBound (String boundary, MemBuf *) |
put terminating boundary for multiparts to the buffer More... | |
void | clientProcessRequest (ConnStateData *, const Http1::RequestParserPointer &, Http::Stream *) |
void | clientProcessRequestFinished (ConnStateData *, const HttpRequest::Pointer &) |
void | clientPostHttpsAccept (ConnStateData *) |
std::ostream & | operator<< (std::ostream &os, const ConnStateData::PinnedIdleContext &pic) |
std::ostream & | operator<< (std::ostream &, const ConnStateData::ServerConnectionContext &) |
Variables | |
CSR | clientGetMoreData |
CSS | clientReplyStatus |
CSD | clientReplyDetach |
CSCB | clientSocketRecipient |
CSD | clientSocketDetach |
Typedef Documentation
◆ MasterXactionPointer
typedef RefCount<MasterXaction> MasterXactionPointer |
Definition at line 45 of file client_side.h.
Function Documentation
◆ clientConnectionsClose()
void clientConnectionsClose | ( | void | ) |
Definition at line 3369 of file client_side.cc.
References CodeContext::Current(), debugs, HttpPortList, HttpSockets, Important, NHttpSockets, CodeContext::Reset(), and Ftp::StopListening().
Referenced by releaseServerSockets(), and serverConnectionsClose().
◆ clientOpenListenSockets()
void clientOpenListenSockets | ( | void | ) |
Definition at line 3359 of file client_side.cc.
References clientHttpConnectionsOpen(), fatal(), NHttpSockets, and Ftp::StartListening().
Referenced by serverConnectionsOpen().
◆ clientPackRangeHdr()
void clientPackRangeHdr | ( | const HttpReplyPointer & | , |
const HttpHdrRangeSpec * | , | ||
String | boundary, | ||
MemBuf * | |||
) |
Definition at line 709 of file client_side.cc.
References MemBuf::append(), Packable::appendf(), assert, HttpHeader::clean(), Http::Message::content_length, Http::CONTENT_TYPE, debugs, HttpHeader::getStr(), HttpHeader::has(), Http::Message::header, hoReply, httpHeaderAddContRange(), HttpHeader::packInto(), HttpHeader::putStr(), SQUIDSTRINGPH, and SQUIDSTRINGPRINT.
Referenced by ClientHttpRequest::mRangeCLen(), and Http::Stream::packRange().
◆ clientPackTermBound()
Definition at line 702 of file client_side.cc.
References Packable::appendf(), debugs, MemBuf::size, SQUIDSTRINGPH, and SQUIDSTRINGPRINT.
Referenced by ClientHttpRequest::mRangeCLen(), and Http::Stream::packRange().
◆ clientPostHttpsAccept()
void clientPostHttpsAccept | ( | ConnStateData * | ) |
◆ clientProcessRequest()
void clientProcessRequest | ( | ConnStateData * | , |
const Http1::RequestParserPointer & | , | ||
Http::Stream * | |||
) |
Definition at line 1568 of file client_side.cc.
References ClientHttpRequest::Flags::accel, RequestFlags::accelerated, ClientHttpRequest::al, assert, HttpRequest::auth_user_request, Http::Message::body_pipe, ClientHttpRequest::calloutContext, HttpRequest::checkEntityFraming(), ClientHttpRequest::checkForInternalAccess(), HttpHeader::chunked(), clientIsRequestBodyTooLargeForPolicy(), clientProcessRequestFinished(), clientSetKeepaliveFlag(), Http::Message::content_length, debugs, ClientHttpRequest::doCallouts(), ERR_INVALID_REQ, ERR_TOO_BIG, ERR_UNSUP_REQ, ConnStateData::expectRequestBody(), ConnStateData::flags, HttpRequest::flags, ClientHttpRequest::flags, ConnStateData::getAuth(), Http::Stream::getClientReplyContext(), HttpHeader::getInt64(), RefCount< C >::getRaw(), ConnStateData::handleRequestBodyData(), Http::Message::header, Http::Stream::http, Http::Message::http_ver, AnyP::ProtocolVersion::major, HttpRequest::manager(), Http::MAX_FORWARDS, Http::Stream::mayUseConnection(), HttpRequest::method, Http::METHOD_CONNECT, Http::METHOD_OPTIONS, AnyP::ProtocolVersion::minor, RequestFlags::noDirect, ClientHttpRequest::Out::offset, ClientHttpRequest::out, ConnStateData::port, BodyPipe::productionEnded(), AnyP::PROTO_HTTPS, AnyP::ProtocolVersion::protocol, Http::Stream::pullData(), ConnStateData::quitAfterError(), ConnStateData::readMore, ClientHttpRequest::request, Http::scContentTooLarge, Http::scNone, Http::scNotImplemented, ConnStateData::serveDelayedError(), clientReplyContext::setReplyToError(), Http::Message::sources, Http::Message::srcFtp, Http::Message::srcHttp, Http::Message::srcHttps, RequestFlags::sslBumped, ConnStateData::switchedToHttps(), and urlCheckRequest().
Referenced by Ftp::Server::doProcessRequest(), Http::One::Server::proceedAfterBodyContinuation(), and Http::One::Server::processParsedRequest().
◆ clientProcessRequestFinished()
void clientProcessRequestFinished | ( | ConnStateData * | , |
const HttpRequest::Pointer & | |||
) |
Definition at line 1552 of file client_side.cc.
◆ clientSetKeepaliveFlag()
void clientSetKeepaliveFlag | ( | ClientHttpRequest * | http | ) |
clientSetKeepaliveFlag() sets request->flags.proxyKeepalive. This is the client-side persistent connection flag. We need to set this relatively early in the request processing to handle hacks for broken servers and clients.
Definition at line 674 of file client_side.cc.
References debugs, HttpRequest::flags, Http::Message::http_ver, HttpRequest::method, Http::Message::persistent(), RequestFlags::proxyKeepalive, and ClientHttpRequest::request.
Referenced by clientProcessRequest(), and Ftp::Server::doProcessRequest().
◆ clientStartListeningOn()
void clientStartListeningOn | ( | AnyP::PortCfgPointer & | port, |
const RefCount< CommCbFunPtrCallT< CommAcceptCbPtrFun > > & | subCall, | ||
const Ipc::FdNoteId | noteId | ||
) |
Definition at line 3293 of file client_side.cc.
References assert, asyncCall(), clientListenerConnectionOpened(), COMM_INTERCEPTION, COMM_NONBLOCKING, COMM_REUSEPORT, COMM_TRANSPARENT, HttpSockets, MAXTCPLISTENPORTS, NHttpSockets, port, and Ipc::StartListening().
Referenced by clientHttpConnectionsOpen(), and Ftp::StartListening().
◆ findTrailingHTTPVersion()
const char* findTrailingHTTPVersion | ( | const char * | uriAndHTTPVersion, |
const char * | end | ||
) |
'end' defaults to NULL for backwards compatibility remove default value if we ever get rid of NULL-terminated request buffers.
Definition at line 1052 of file client_side.cc.
References assert, and xisspace.
Referenced by HttpRequest::parseFirstLine().
◆ httpRequestFree()
void httpRequestFree | ( | void * | ) |
Definition at line 475 of file client_side.cc.
References assert.
Referenced by Http::Stream::~Stream().
◆ operator<<() [1/2]
std::ostream& operator<< | ( | std::ostream & | , |
const ConnStateData::ServerConnectionContext & | |||
) |
Definition at line 4018 of file client_side.cc.
References ConnStateData::ServerConnectionContext::conn_, SBuf::length(), and ConnStateData::ServerConnectionContext::preReadServerBytes.
◆ operator<<() [2/2]
std::ostream& operator<< | ( | std::ostream & | os, |
const ConnStateData::PinnedIdleContext & | pic | ||
) |
Definition at line 4012 of file client_side.cc.
References ConnStateData::PinnedIdleContext::connection, and ConnStateData::PinnedIdleContext::request.
◆ varyEvaluateMatch()
int varyEvaluateMatch | ( | StoreEntry * | entry, |
HttpRequest * | req | ||
) |
Definition at line 3393 of file client_side.cc.
References SBuf::clear(), SBuf::cmp(), DBG_IMPORTANT, debugs, MemObject::freshestReply(), HttpHeader::has(), Http::HDR_X_ACCELERATOR_VARY, Http::Message::header, httpMakeVaryMark(), SBuf::isEmpty(), StoreEntry::mem(), StoreEntry::mem_obj, MemObject::urlXXX(), Http::VARY, VARY_CANCEL, HttpRequest::vary_headers, MemObject::vary_headers, VARY_MATCH, VARY_NONE, and VARY_OTHER.
Referenced by clientReplyContext::cacheHit().
Variable Documentation
◆ clientGetMoreData
CSR clientGetMoreData |
Definition at line 529 of file client_side.h.
Referenced by ConnStateData::abortRequestParsing(), ConnStateData::buildFakeRequest(), Downloader::buildRequest(), ConnStateData::parseHttpRequest(), and Ftp::Server::parseOneRequest().
◆ clientReplyDetach
CSD clientReplyDetach |
Definition at line 531 of file client_side.h.
Referenced by ConnStateData::abortRequestParsing(), ConnStateData::buildFakeRequest(), Downloader::buildRequest(), ConnStateData::parseHttpRequest(), and Ftp::Server::parseOneRequest().
◆ clientReplyStatus
CSS clientReplyStatus |
Definition at line 530 of file client_side.h.
Referenced by ConnStateData::abortRequestParsing(), ConnStateData::buildFakeRequest(), Downloader::buildRequest(), ConnStateData::parseHttpRequest(), and Ftp::Server::parseOneRequest().
◆ clientSocketDetach
CSD clientSocketDetach |
Definition at line 533 of file client_side.h.
Referenced by Ftp::Server::parseOneRequest().
◆ clientSocketRecipient
CSCB clientSocketRecipient |
Definition at line 532 of file client_side.h.
Referenced by Ftp::Server::parseOneRequest().
Introduction
- About Squid
- Why Squid?
- Squid Developers
- How to Donate
- How to Help Out
- Getting Squid
- Squid Source Packages
- Squid Deployment Case-Studies
- Squid Software Foundation
Documentation
- Quick Setup
- Configuration:
- FAQ and Wiki
- Guide Books:
- Non-English
- More...
Support
- Security Advisories
- Bugzilla Database
- Mailing lists
- Contacting us
- Commercial services
- Project Sponsors
- Squid-based products