#include <StatusLine.h>

Public Member Functions | |
void | init () |
reset this status-line back to empty state More... | |
void | clean () |
reset this status-line back to Internal Server Error state More... | |
void | set (const AnyP::ProtocolVersion &newVersion, Http::StatusCode newStatus, const char *newReason=NULL) |
void | resetReason () |
reset the reason phrase to its default status code-derived value More... | |
Http::StatusCode | status () const |
retrieve the status code for this status line More... | |
const char * | reason () const |
retrieve the reason string for this status line More... | |
void | packInto (Packable *) const |
pack fields into a Packable object More... | |
bool | parse (const String &protoPrefix, const char *start, const char *end) |
Public Attributes | |
AnyP::ProtocolType | protocol |
AnyP::ProtocolVersion | version |
breakdown of protocol version label: (HTTP/ICY) and (0.9/1.0/1.1) More... | |
Private Attributes | |
Http::StatusCode | status_ |
status code. ie 100 ... 200 ... 404 ... 599 More... | |
const char * | reason_ |
points to a constant string (default or supplied), never free()d More... | |
Detailed Description
Holds the values parsed from an HTTP reply status line.
For example: HTTP/1.1 200 OK
Definition at line 27 of file StatusLine.h.
Member Function Documentation
◆ clean()
void Http::StatusLine::clean | ( | ) |
Definition at line 28 of file StatusLine.cc.
References NULL, Http::ProtocolVersion(), and Http::scInternalServerError.
Referenced by HttpReply::clean().
◆ init()
void Http::StatusLine::init | ( | void | ) |
Definition at line 22 of file StatusLine.cc.
References NULL, Http::ProtocolVersion(), Http::scNone, and set().
Referenced by HttpReply::init().
◆ packInto()
void Http::StatusLine::packInto | ( | Packable * | p | ) | const |
Definition at line 51 of file StatusLine.cc.
References Packable::appendf(), assert, DBG_IMPORTANT, debugs, AnyP::PROTO_ICY, Http::scInternalServerError, Http::scNone, Http::StatusCodeString(), and version.
Referenced by HttpReply::packFirstLineInto(), and HttpReply::packHeadersUsingFastPacker().
◆ parse()
bool Http::StatusLine::parse | ( | const String & | protoPrefix, |
const char * | start, | ||
const char * | end | ||
) |
Parse a buffer and fill internal structures;
- Returns
- true on success, false otherwise
Definition at line 87 of file StatusLine.cc.
References assert, SBuf::assign(), String::caseCmp(), String::cmp(), CurrentException(), debugs, Http::One::ResponseParser::ParseResponseStatus(), AnyP::PROTO_ICY, Http::scInvalidHeader, String::size(), version, and xisdigit.
Referenced by HttpReply::parseFirstLine().
◆ reason()
const char * Http::StatusLine::reason | ( | ) | const |
Definition at line 45 of file StatusLine.cc.
References Http::StatusCodeString().
Referenced by Ftp::Server::writeErrorReply().
◆ resetReason()
|
inline |
Definition at line 42 of file StatusLine.h.
References reason_.
◆ set()
void Http::StatusLine::set | ( | const AnyP::ProtocolVersion & | newVersion, |
Http::StatusCode | newStatus, | ||
const char * | newReason = NULL |
||
) |
set this status-line to the given values when reason is NULL the default message text for this StatusCode will be used when reason is not NULL, it must not point to a dynamically allocated value
Definition at line 35 of file StatusLine.cc.
References AnyP::PROTO_HTTP, and version.
Referenced by Http::Stream::buildRangeHeader(), Http::Tunneler::handleResponse(), HttpReply::httpMsgParseError(), Ftp::HttpReplyWrapper(), init(), HttpReply::make304(), HttpReply::MakeConnectionEstablished(), Http::One::Server::processParsedRequest(), HttpStateData::processReplyHeader(), HttpReply::redirect(), HttpReply::setHeaders(), and CacheManager::start().
◆ status()
|
inline |
Definition at line 45 of file StatusLine.h.
References status_.
Referenced by ErrorState::ErrorState(), Auth::UserRequest::AddReplyAuthHeader(), asHandleReply(), HttpReply::bodySize(), Http::Stream::buildRangeHeader(), clientReplyContext::buildReplyHeader(), Adaptation::Icap::Launcher::canRepeat(), FwdState::complete(), Adaptation::Icap::Options::configure(), HttpReply::configureContentLengthInterpreter(), HttpReply::contentRange(), esiBufferRecipient(), ESIContextNew(), HttpReply::expectingBody(), Adaptation::Icap::ModXact::finalizeLogInfo(), HttpStateData::handle1xx(), Ftp::Server::handleDataReply(), clientReplyContext::handleIMSReply(), Http::Tunneler::handleResponse(), HttpStateData::haveParsedReplyHeaders(), HttpReply::hdrCacheInit(), Client::maybePurgeOthers(), netdbExchangeHandleReply(), peerDigestFetchReply(), peerDigestSwapInHeaders(), clientReplyContext::processConditional(), clientReplyContext::processReplyAccess(), clientReplyContext::processReplyAccessResult(), HttpStateData::processReplyHeader(), FwdState::reforward(), HttpReply::removeIrrelevantContentLength(), HttpStateData::reusableReply(), clientReplyContext::setReplyToReply(), storeLog(), urnHandleReply(), and Http::One::Server::writeControlMsgAndCall().
Member Data Documentation
◆ protocol
AnyP::ProtocolType Http::StatusLine::protocol |
By rights protocol name should be a constant "HTTP", with no need for this field to exist. However there are protocols which violate HTTP by sending their own custom formats back with other protocol names (ICY streaming format being the current major problem).
Definition at line 68 of file StatusLine.h.
Referenced by clientReplyContext::buildReplyHeader(), clientReplyContext::cloneReply(), and HttpStateData::processReplyHeader().
◆ reason_
|
private |
Definition at line 77 of file StatusLine.h.
Referenced by resetReason().
◆ status_
|
private |
Definition at line 74 of file StatusLine.h.
Referenced by status().
◆ version
AnyP::ProtocolVersion Http::StatusLine::version |
Definition at line 70 of file StatusLine.h.
Referenced by HttpReply::bodySize(), Http::Stream::buildRangeHeader(), clientReplyContext::buildReplyHeader(), clientReplyContext::cloneReply(), HttpReply::hdrCacheInit(), and HttpStateData::processReplyHeader().
The documentation for this class was generated from the following files:
- src/http/StatusLine.h
- src/http/StatusLine.cc