Http1Server.cc
Go to the documentation of this file.
165 setReplyError(context, request, ERR_UNSUP_HTTPVERSION, Http::scHttpVersionNotSupported, requestErrorBytes);
207 Http::One::Server::setReplyError(Http::StreamPointer &context, HttpRequest::Pointer &request, err_type requestError, Http::StatusCode errStatusCode, const char *requestErrorBytes)
219 repContext->setReplyToError(requestError, errStatusCode, context->http->uri, this, nullptr, requestErrorBytes, nullptr);
271 ACLFilledChecklist bodyContinuationCheck(Config.accessList.forceRequestBodyContinuation, request.getRaw(), NULL);
282 const AsyncCall::Pointer cb = asyncCall(11, 3, "Http1::Server::proceedAfterBodyContinuation", CbDialer(this, &Http1::Server::proceedAfterBodyContinuation, Http::StreamPointer(context)));
AsyncCall * asyncCall(int aDebugSection, int aDebugLevel, const char *aName, const Dialer &aDialer)
Definition: AsyncCall.h:154
#define JobCallback(dbgSection, dbgLevel, Dialer, job, method)
Convenience macro to create a Dialer-based job callback.
Definition: AsyncJobCalls.h:69
void clientProcessRequestFinished(ConnStateData *conn, const HttpRequest::Pointer &request)
Definition: client_side.cc:1584
CBDATA_NAMESPACED_CLASS_INIT(Http1, Server)
void httpHdrMangleList(HttpHeader *l, HttpRequest *request, const AccessLogEntryPointer &al, req_or_rep_t req_or_rep)
Definition: HttpHeaderTools.cc:326
Definition: FilledChecklist.h:33
virtual void syncAle(HttpRequest *adaptedRequest, const char *logUri) const
assigns uninitialized adapted_request and url ALE components
Definition: FilledChecklist.cc:131
AccessLogEntry::Pointer al
info for the future access.log, and external ACL
Definition: FilledChecklist.h:101
Definition: AsyncJob.h:32
Definition: client_side_request.h:38
void initRequest(HttpRequest *)
Definition: client_side_request.cc:1613
void setLogUriToRawUri(const char *, const HttpRequestMethod &)
Definition: client_side_request.cc:1864
Definition: CommCalls.h:181
noteTakeServerConnectionControl() callback parameter
Definition: client_side.h:214
Definition: client_side.h:84
virtual int pipelinePrefetchMax() const
returning N allows a pipeline of 1+N requests (see pipeline_prefetch)
Definition: client_side.cc:1763
virtual void noteBodyConsumerAborted(BodyPipe::Pointer)=0
Definition: client_side.cc:2121
void requestTimeout(const CommTimeoutCbParams ¶ms)
Definition: client_side.cc:2132
bundles HTTP 1xx reply and the "successfully forwarded" callback
Definition: HttpControlMsg.h:47
Definition: HttpReply.h:25
void removeIrrelevantContentLength()
Some response status codes prohibit sending Content-Length (RFC 7230 section 3.3.2).
Definition: HttpReply.cc:671
static HttpRequest * FromUrlXXX(const char *url, const MasterXaction::Pointer &, const HttpRequestMethod &method=Http::METHOD_GET)
Definition: HttpRequest.cc:529
Definition: RequestParser.h:31
Manages a connection from an HTTP/1 or HTTP/0.9 client.
Definition: Http1Server.h:21
virtual Http::Stream * parseOneRequest()
Definition: Http1Server.cc:73
virtual void noteBodyConsumerAborted(BodyPipe::Pointer)
Definition: Http1Server.cc:292
virtual void noteTakeServerConnectionControl(ServerConnectionContext)
Definition: Http1Server.cc:379
virtual void handleReply(HttpReply *rep, StoreIOBuffer receivedData)
Definition: Http1Server.cc:299
Server(const MasterXaction::Pointer &xact, const bool beHttpsServer)
Definition: Http1Server.cc:27
void proceedAfterBodyContinuation(Http::StreamPointer context)
Definition: Http1Server.cc:226
bool buildHttpRequest(Http::StreamPointer &context)
Definition: Http1Server.cc:94
void setReplyError(Http::StreamPointer &context, HttpRequest::Pointer &request, err_type requestError, Http::StatusCode errStatusCode, const char *requestErrorBytes)
Definition: Http1Server.cc:207
virtual void noteMoreBodySpaceAvailable(BodyPipe::Pointer)
Definition: Http1Server.cc:60
virtual void processParsedRequest(Http::StreamPointer &context)
start processing a freshly parsed request
Definition: Http1Server.cc:244
virtual time_t idleTimeout() const
timeout to use when waiting for the next request
Definition: Http1Server.cc:35
virtual int pipelinePrefetchMax() const
returning N allows a pipeline of 1+N requests (see pipeline_prefetch)
Definition: Http1Server.cc:233
virtual bool writeControlMsgAndCall(HttpReply *rep, AsyncCall::Pointer &call)
handle a control message received by context from a peer and call back
Definition: Http1Server.cc:331
void set(const AnyP::ProtocolVersion &newVersion, Http::StatusCode newStatus, const char *newReason=NULL)
Definition: StatusLine.cc:35
Http::StatusCode status() const
retrieve the status code for this status line
Definition: StatusLine.h:45
Definition: Stream.h:70
static Pointer MakePortful(const AnyP::PortCfgPointer &aPort)
Definition: MasterXaction.h:54
Definition: MemBuf.h:24
Definition: Server.h:30
struct SquidConfig::@111 accessList
struct SquidConfig::@96 Timeout
acl_access * forceRequestBodyContinuation
Definition: SquidConfig.h:410
Definition: StoreIOBuffer.h:16
Definition: SquidString.h:26
Definition: AsyncJobCalls.h:108
Definition: client_side_reply.h:23
void setReplyToError(err_type, Http::StatusCode, char const *, const ConnStateData *, HttpRequest *, const char *, Auth::UserRequest::Pointer)
builds error using clientBuildError() and calls setReplyToError() below
Definition: client_side_reply.cc:99
Definition: clientStream.h:76
void clientProcessRequest(ConnStateData *conn, const Http1::RequestParserPointer &hp, Http::Stream *context)
Definition: client_side.cc:1600
int commSetConnTimeout(const Comm::ConnectionPointer &conn, int timeout, AsyncCall::Pointer &callback)
Definition: comm.cc:563
void Write(const Comm::ConnectionPointer &conn, const char *buf, int size, AsyncCall::Pointer &callback, FREE *free_func)
Definition: Write.cc:33
Definition: forward.h:17
ConnStateData * NewServer(const MasterXaction::Pointer &xact)
create a new HTTP connection handler; never returns NULL
Definition: Http1Server.cc:395
AnyP::ProtocolVersion ProtocolVersion(unsigned int aMajor, unsigned int aMinor)
HTTP version label information.
Definition: ProtocolVersion.h:19
ConnStateData * NewServer(const MasterXaction::Pointer &xact)
create a new HTTPS connection handler; never returns NULL
Definition: Http1Server.cc:401
Definition: parse.c:104
void switchToTunnel(HttpRequest *request, const Comm::ConnectionPointer &clientConn, const Comm::ConnectionPointer &srvConn, const SBuf &preReadServerData)
Definition: tunnel.cc:1462