9#ifndef SQUID_SRC_HTTP_MESSAGE_H
10#define SQUID_SRC_HTTP_MESSAGE_H
152 static_assert(std::is_base_of<Http::Message, M>::value,
"M must inherit from Http::Message");
154 if (a->unlock() == 0)
#define RefCountable
The locking interface for use on Reference-Counted classes.
void error(char *format,...)
common parts of HttpRequest and HttpReply
virtual void hdrCacheInit()
virtual void configureContentLengthInterpreter(Http::ContentLengthInterpreter &)=0
configures the interpreter as needed
Sources
Who may have created or modified this message?
@ srcHttp
http_port or HTTP server
@ srcEcap
eCAP service that uses insecure libraries/daemons
@ srcFtps
ftps_port or SFTP server; currently unused
@ srcIcaps
Secure ICAP service.
@ srcHttps
https_port or bumped http_port tunnel; HTTPS server
@ srcSafe
Safe sources mask.
@ srcFtp
ftp_port or FTP server
@ srcIcap
traditional ICAP service without encryption
@ srcUnsafe
Unsafe sources mask.
@ srcEcaps
eCAP service that is considered secure; currently unused
void packInto(Packable *, bool full_uri) const
produce a message copy, except for a few connection-specific settings
void setContentLength(int64_t)
[re]sets Content-Length header and cached value
virtual bool expectingBody(const HttpRequestMethod &, int64_t &) const =0
virtual bool sanityCheckStartLine(const char *buf, const size_t hdr_len, Http::StatusCode *error)=0
int httpMsgParseStep(const char *buf, int len, int atEnd)
uint32_t sources
The message sources.
virtual int httpMsgParseError()
void firstLineBuf(MemBuf &)
useful for debugging
virtual void packFirstLineInto(Packable *p, bool full_uri) const =0
virtual Http::Message * clone() const =0
ParseState
parse state of HttpReply or HttpRequest
@ psReadyToParseStartLine
ParseState pstate
the current parsing state
bool parseHeader(Http1::Parser &, Http::ContentLengthInterpreter &)
virtual bool inheritProperties(const Http::Message *)=0
bool parse(const char *buf, const size_t sz, bool eol, Http::StatusCode *error)
bool parseCharBuf(const char *buf, ssize_t end)
virtual bool parseFirstLine(const char *blk_start, const char *blk_end)=0
BodyPipe::Pointer body_pipe
optional pipeline to receive message body
HttpHdrCc * cache_control
void putCc(const HttpHdrCc &)
AnyP::ProtocolVersion http_ver
void HTTPMSGUNLOCK(M *&a)
void HTTPMSGLOCK(Http::Message *a)