35 httpRequest(aRequest), entry(anEntry), conn(aConn), ale(anAle)
54 entry->unlock(
"Mgr::Forwarder");
65 if (closer !=
nullptr) {
108 mustStop(
"commClosed");
117 Must(entry !=
nullptr);
118 Must(httpRequest !=
nullptr);
121 entry->replaceHttpReply(
error->BuildHttpReply());
RefCount< AsyncCallT< Dialer > > asyncCall(int aDebugSection, int aDebugLevel, const char *aName, const Dialer &aDialer)
#define SWALLOW_EXCEPTIONS(code)
void error(char *format,...)
#define CBDATA_NAMESPACED_CLASS_INIT(namespace, type)
virtual void handleTimeout()
virtual void handleException(const std::exception &e)
terminate with an error
Cache Manager Action parameters extracted from the user request.
void noteCommClosed(const CommCloseCbParams ¶ms)
called when the client socket gets closed by some external force
void handleTimeout() override
void sendError(ErrorState *error)
send error page
Comm::ConnectionPointer conn
HTTP client connection descriptor.
void handleException(const std::exception &e) override
terminate with an error
Forwarder(const Comm::ConnectionPointer &aConn, const ActionParams &aParams, HttpRequest *aRequest, StoreEntry *anEntry, const AccessLogEntryPointer &anAle)
void handleError() override
void swanSong() override
closes our copy of the client HTTP connection socket
StoreEntry * entry
Store entry expecting the response.
AsyncCall::Pointer closer
comm_close handler for the HTTP connection
HttpRequest * httpRequest
HTTP client request for detailing errors.
void lock(const char *context)
AsyncCall::Pointer comm_add_close_handler(int fd, CLCB *handler, void *data)
void comm_remove_close_handler(int fd, CLCB *handler, void *data)
#define debugs(SECTION, LEVEL, CONTENT)
void HTTPMSGUNLOCK(M *&a)
void HTTPMSGLOCK(Http::Message *a)
bool IsConnOpen(const Comm::ConnectionPointer &conn)