#include <XrdHttpReq.hh>
Public Types | |
| enum | ReqType : int { rtUnset = -1 , rtUnknown = 0 , rtMalformed , rtGET , rtHEAD , rtPUT , rtOPTIONS , rtPATCH , rtDELETE , rtPROPFIND , rtMKCOL , rtMOVE , rtPOST , rtCOPY , rtCount } |
| These are the HTTP/DAV requests that we support. More... | |
Public Member Functions | |
| XrdHttpReq (XrdHttpProtocol *protinstance, const XrdHttpReadRangeHandler::Configuration &rcfg) | |
| virtual | ~XrdHttpReq () |
| void | addCgi (const std::string &key, const std::string &value) |
| void | appendOpaque (XrdOucString &s, XrdSecEntity *secent, char *hash, time_t tnow) |
| std::string | buildPartialHdr (long long bytestart, long long byteend, long long filesize, char *token) |
| Build a partial header for a multipart response. | |
| std::string | buildPartialHdrEnd (char *token) |
| Build the closing part for a multipart response. | |
| virtual bool | Data (XrdXrootd::Bridge::Context &info, const struct iovec *iovP, int iovN, int iovL, bool final) |
| virtual bool | Done (XrdXrootd::Bridge::Context &info) |
| the result context | |
| virtual bool | Error (XrdXrootd::Bridge::Context &info, int ecode, const char *etext) |
| virtual int | File (XrdXrootd::Bridge::Context &info, int dlen) |
| int | getHttpStatusCode () |
| int | getInitialStatusCode () |
| int | parseBody (char *body, long long len) |
| Parse the body of a request, assuming that it's XML and that it's entirely in memory. | |
| int | parseFirstLine (char *line, int len) |
| Parse the first line of the header. | |
| int | parseLine (char *line, int len) |
| Parse the header. | |
| int | ProcessHTTPReq () |
| virtual bool | Redir (XrdXrootd::Bridge::Context &info, int port, const char *hname) |
| int | ReqReadV (const XrdHttpIOList &cl) |
| Prepare the buffers for sending a readv request. | |
| virtual void | reset () |
| void | setHttpStatusCode (int code) |
| void | setTransferStatusHeader (std::string &header) |
| const std::string & | userAgent () const |
| Public Member Functions inherited from XrdXrootd::Bridge::Result | |
| Result () | |
| Constructor & Destructor. | |
| virtual | ~Result () |
| virtual void | Free (Bridge::Context &info, char *buffP, int buffL) |
| virtual bool | Wait (Bridge::Context &info, int wtime, const char *wtext) |
| virtual Bridge::Result * | WaitResp (Bridge::Context &info, int wtime, const char *wtext) |
Public Attributes | |
| std::map< std::string, std::string > | allheaders |
| bool | closeAfterError |
| int | depth |
| std::string | destination |
| The destination field specified in the req. | |
| long long | etagval |
| std::string | etext |
| char | fhandle [4] |
| long | filectime |
| long | fileflags |
| long | filemodtime |
| long long | filesize |
| bool | final |
| true -> final result | |
| bool | fopened |
| std::string | hdr2cgistr |
| Additional opaque info that may come from the hdr2cgi directive. | |
| bool | headerok |
| Tells if we have finished reading the header. | |
| std::string | host |
| The host field specified in the req. | |
| int | iovL |
| byte count | |
| int | iovN |
| array count | |
| const struct iovec * | iovP |
| The latest data chunks got from the xrd layer. These are valid only inside the callbacks! | |
| bool | keepalive |
| long long | length |
| bool | m_appended_asize {false} |
| Track whether we already appended the oss.asize argument for PUTs. | |
| bool | m_appended_hdr2cgistr |
| std::string | m_digest_header |
| The computed digest for the HTTP response header. | |
| std::string | m_origin |
| std::map< std::string, std::string > | m_repr_digest |
| Repr-Digest map where the key is the digest name and the value is the base64 encoded digest value. | |
| XrdHttpChecksumHandler::XrdHttpChecksumRawPtr | m_req_cksum = nullptr |
| The checksum that was ran for this request. | |
| XrdOucString | m_resource_with_digest |
| std::string | m_want_digest |
| The requested digest type. | |
| std::map< std::string, uint8_t > | m_want_repr_digest |
| XrdHttpMonState | monState |
| int | mScitag |
| XrdOucEnv * | opaque |
| The opaque data, after parsing. | |
| std::vector< readahead_list > | ralist |
| bool | readClosing |
| XrdHttpReadRangeHandler | readRangeHandler |
| Tracking the next ranges of data to read during GET. | |
| XrdOucString | redirdest |
| int | reqstate |
| State machine to talk to the bridge. | |
| ReqType | request |
| The request we got. | |
| std::string | requestverb |
| XrdOucString | resource |
| The resource specified by the request, stripped of opaque data. | |
| XrdOucString | resourceplusopaque |
| The resource specified by the request, including all the opaque data. | |
| unsigned int | rwOpDone |
| To coordinate multipart responses across multiple calls. | |
| unsigned int | rwOpPartialDone |
| bool | sendcontinue |
| std::chrono::steady_clock::time_point | startTime = std::chrono::steady_clock::time_point::min() |
| std::string | stringresp |
| If we want to give a string as a response, we compose it here. | |
| long long | writtenbytes |
| In a long write, we track where we have arrived. | |
| XErrorCode | xrderrcode |
| ClientRequest | xrdreq |
| The last issued xrd request, often pending. | |
| XResponseType | xrdresp |
| The last response data we got. | |
Definition at line 65 of file XrdHttpReq.hh.
| enum XrdHttpReq::ReqType : int |
These are the HTTP/DAV requests that we support.
| Enumerator | |
|---|---|
| rtUnset | |
| rtUnknown | |
| rtMalformed | |
| rtGET | |
| rtHEAD | |
| rtPUT | |
| rtOPTIONS | |
| rtPATCH | |
| rtDELETE | |
| rtPROPFIND | |
| rtMKCOL | |
| rtMOVE | |
| rtPOST | |
| rtCOPY | |
| rtCount | |
Definition at line 76 of file XrdHttpReq.hh.
|
inline |
Definition at line 207 of file XrdHttpReq.hh.
References closeAfterError, depth, fopened, headerok, keepalive, length, mScitag, opaque, readRangeHandler, and writtenbytes.
|
virtual |
Definition at line 112 of file XrdHttpReq.cc.
References reset().
| void XrdHttpReq::addCgi | ( | const std::string & | key, |
| const std::string & | value ) |
Definition at line 760 of file XrdHttpReq.cc.
References hdr2cgistr.
Referenced by parseLine().
| void XrdHttpReq::appendOpaque | ( | XrdOucString & | s, |
| XrdSecEntity * | secent, | ||
| char * | hash, | ||
| time_t | tnow ) |
Definition at line 652 of file XrdHttpReq.cc.
References XrdSecEntity::creds, XrdSecEntity::credslen, encode_opaque(), encode_str(), XrdSecEntity::endorsements, XrdSecEntity::grps, hdr2cgistr, XrdSecEntity::host, XrdSecEntity::moninfo, XrdSecEntity::name, opaque, XrdSecEntity::role, and XrdSecEntity::vorg.
Referenced by ProcessHTTPReq(), and Redir().
| std::string XrdHttpReq::buildPartialHdr | ( | long long | bytestart, |
| long long | byteend, | ||
| long long | filesize, | ||
| char * | token ) |
Build a partial header for a multipart response.
Definition at line 444 of file XrdHttpReq.cc.
| std::string XrdHttpReq::buildPartialHdrEnd | ( | char * | token | ) |
Build the closing part for a multipart response.
Definition at line 454 of file XrdHttpReq.cc.
|
virtual |
Effect a client data response.
The Data() method is called when Run() resulted in a successful data response. The method should rewrite the data and send it to the client using the associated XrdLink object. As an example, 1) Result::Data(info, iovP, iovN, iovL) is called. 2) Inspect iovP, rewrite the data. 3) Send the response: info->linkP->Send(new_iovP, new_iovN, new_iovL); 4) Handle send errors and cleanup(e.g. deallocate storage). 5) Return, the exchange is now complete.
| info | the context associated with the result. |
| iovP | a pointer to the iovec structure containing the xrootd data response about to be sent to the client. The request header is not included in the iovec structure. The elements of this structure must not be modified by the method. |
| iovN | the number of elements in the iovec structure array. |
| iovL | total number of data bytes that would be sent to the client. This is simply the sum of all the lengths in the iovec. |
| final | True is this is the final result. Otherwise, this is a partial result (i.e. kXR_oksofar) and more data will result causing additional callbacks. |
| info | the result context |
| iovP | pointer to data array |
| iovN | array count |
| iovL | byte count |
| final | true -> final result |
Implements XrdXrootd::Bridge::Result.
Definition at line 462 of file XrdHttpReq.cc.
References iovL, iovN, iovP, kXR_ok, reset(), TRACE, and xrdresp.
|
virtual |
the result context
Effect a client acknowledgement.
The Done() method is called when Run() resulted in success and there is no associated data for the client (equivalent to a simple kXR_ok response).
| info | the context associated with the result. |
Implements XrdXrootd::Bridge::Result.
Definition at line 508 of file XrdHttpReq.cc.
References iovN, kXR_ok, reset(), TRACE, and xrdresp.
|
virtual |
Effect a client error response.
The Error() method is called when an error was encountered while processing the Run() request. The error should be reflected to the client.
| info | the context associated with the result. |
| ecode | the "kXR" error code describing the nature of the error. The code is in host byte format. |
| etext | a null terminated string describing the error in human terms |
| info | the result context |
| ecode | the "kXR" error code |
| etext | associated error message |
Implements XrdXrootd::Bridge::Result.
Definition at line 525 of file XrdHttpReq.cc.
References escapeXML(), etext, kXR_error, kXR_isDirectory, kXR_open, request, reset(), rtGET, TRACE, xrderrcode, xrdreq, and xrdresp.
|
virtual |
Notify callback that a sendfile() request is pending.
The File() method is called when Run() resulted in a sendfile response (i.e. sendfile() would have been used to send data to the client). This allows the callback to reframe the sendfile() data using the Send() method in the passed context object (see class Context above).
| info | the context associated with the result. |
| dlen | total number of data bytes that would be sent to the client. |
| info | the result context |
| dlen | byte count |
Implements XrdXrootd::Bridge::Result.
Definition at line 484 of file XrdHttpReq.cc.
References readRangeHandler, XrdXrootd::Bridge::Context::Send(), and TRACE.
|
inline |
Definition at line 226 of file XrdHttpReq.hh.
|
inline |
Definition at line 225 of file XrdHttpReq.hh.
| int XrdHttpReq::parseBody | ( | char * | body, |
| long long | len ) |
Parse the body of a request, assuming that it's XML and that it's entirely in memory.
Definition at line 96 of file XrdHttpReq.cc.
Referenced by ProcessHTTPReq().
| int XrdHttpReq::parseFirstLine | ( | char * | line, |
| int | len ) |
Parse the first line of the header.
Definition at line 275 of file XrdHttpReq.cc.
References keepalive, MAX_TK_LEN, request, requestverb, rtCOPY, rtDELETE, rtGET, rtHEAD, rtMalformed, rtMKCOL, rtMOVE, rtOPTIONS, rtPATCH, rtPOST, rtPROPFIND, rtPUT, and rtUnknown.
| int XrdHttpReq::parseLine | ( | char * | line, |
| int | len ) |
Parse the header.
Definition at line 118 of file XrdHttpReq.cc.
References addCgi(), allheaders, depth, destination, keepalive, length, m_origin, m_repr_digest, m_want_digest, m_want_repr_digest, MAX_TK_LEN, opaque, XrdHttpHeaderUtils::parseReprDigest(), XrdHttpHeaderUtils::parseWantReprDigest(), readRangeHandler, request, rtMalformed, sendcontinue, and trim().
| int XrdHttpReq::ProcessHTTPReq | ( | ) |
Crunch an http request. Return values: 0->call Process again 1->request processed -1->error
If we have to add extra header information, add it here.
Definition at line 881 of file XrdHttpReq.cc.
References XrdOucString::append(), appendOpaque(), XrdOucString::c_str(), closeAfterError, XrdHttpProtocol::StaticPreloadInfo::data, DEBUG, depth, destination, encode_opaque(), XrdOucString::endswith(), XrdOucString::erasefromend(), fhandle, fileflags, filesize, fopened, hdr2cgistr, host, keepalive, kXR_close, kXR_delete, kXR_dirlist, kXR_dstat, kXR_gr, kXR_gw, kXR_isDir, kXR_isManager, kXR_mkdir, kXR_mkdirpath, kXR_mkpath, kXR_mv, kXR_new, kXR_open, kXR_open_read, kXR_open_wrto, kXR_or, kXR_read, kXR_retstat, kXR_rm, kXR_rmdir, kXR_seqio, kXR_stat, kXR_ur, kXR_uw, kXR_write, XrdHttpProtocol::StaticPreloadInfo::len, length, m_appended_asize, m_appended_hdr2cgistr, m_req_cksum, m_resource_with_digest, m_want_digest, m_want_repr_digest, obfuscateAuth(), opaque, parseBody(), ProcessHTTPReq(), XrdHttpExtHandler::ProcessReq(), ralist, readClosing, readRangeHandler, ReqReadV(), reqstate, request, reset(), resource, resourceplusopaque, rtDELETE, rtGET, rtHEAD, rtMalformed, rtMKCOL, rtMOVE, rtOPTIONS, rtPATCH, rtPROPFIND, rtPUT, rtUnknown, rtUnset, sendcontinue, startTime, STR_NPOS, TRACE, TRACE_DEBUG, TRACEI, TRACING, writtenbytes, and xrdreq.
Referenced by ProcessHTTPReq().
|
virtual |
Redirect the client to another host:port.
The Redir() method is called when the client must be redirected to another host.
| info | the context associated with the result. |
| port | the port number in host byte format. |
| hname | the DNS name of the host or IP address is IPV4 or IPV6 format (i.e. "n.n.n.n" or "[ipv6_addr]"). |
| info | the result context |
| port | the port number |
| hname | the destination host |
Implements XrdXrootd::Bridge::Result.
Definition at line 555 of file XrdHttpReq.cc.
References appendOpaque(), calcHashes(), encode_opaque(), encode_str(), keepalive, redirdest, request, reset(), resource, rtGET, stripCgi(), and TRACE.
| int XrdHttpReq::ReqReadV | ( | const XrdHttpIOList & | cl | ) |
Prepare the buffers for sending a readv request.
Definition at line 407 of file XrdHttpReq.cc.
References kXR_readv, ralist, and xrdreq.
Referenced by ProcessHTTPReq().
|
virtual |
State machine to talk to the bridge
Definition at line 2711 of file XrdHttpReq.cc.
References allheaders, closeAfterError, depth, destination, etext, filesize, fopened, hdr2cgistr, headerok, host, iovL, iovN, iovP, keepalive, kXR_noErrorYet, kXR_noResponsesYet, length, m_appended_asize, m_appended_hdr2cgistr, m_digest_header, m_origin, m_repr_digest, m_req_cksum, m_want_digest, m_want_repr_digest, monState, mScitag, NEW, opaque, ralist, readClosing, readRangeHandler, redirdest, reqstate, request, resource, rtUnset, sendcontinue, startTime, stringresp, TRACE, writtenbytes, xrderrcode, xrdreq, and xrdresp.
Referenced by ~XrdHttpReq(), Data(), Done(), Error(), ProcessHTTPReq(), and Redir().
|
inline |
Definition at line 228 of file XrdHttpReq.hh.
| void XrdHttpReq::setTransferStatusHeader | ( | std::string & | header | ) |
Definition at line 2031 of file XrdHttpReq.cc.
|
inline |
Definition at line 264 of file XrdHttpReq.hh.
| std::map<std::string, std::string> XrdHttpReq::allheaders |
Definition at line 273 of file XrdHttpReq.hh.
Referenced by parseLine(), and reset().
| bool XrdHttpReq::closeAfterError |
Definition at line 292 of file XrdHttpReq.hh.
Referenced by XrdHttpReq(), ProcessHTTPReq(), and reset().
| int XrdHttpReq::depth |
Definition at line 296 of file XrdHttpReq.hh.
Referenced by XrdHttpReq(), parseLine(), ProcessHTTPReq(), and reset().
| std::string XrdHttpReq::destination |
The destination field specified in the req.
Definition at line 302 of file XrdHttpReq.hh.
Referenced by parseLine(), ProcessHTTPReq(), and reset().
| long long XrdHttpReq::etagval |
Definition at line 347 of file XrdHttpReq.hh.
| std::string XrdHttpReq::etext |
Definition at line 337 of file XrdHttpReq.hh.
| char XrdHttpReq::fhandle[4] |
Definition at line 352 of file XrdHttpReq.hh.
Referenced by ProcessHTTPReq().
| long XrdHttpReq::filectime |
Definition at line 351 of file XrdHttpReq.hh.
| long XrdHttpReq::fileflags |
Definition at line 349 of file XrdHttpReq.hh.
Referenced by ProcessHTTPReq().
| long XrdHttpReq::filemodtime |
Definition at line 350 of file XrdHttpReq.hh.
| long long XrdHttpReq::filesize |
Definition at line 348 of file XrdHttpReq.hh.
Referenced by ProcessHTTPReq(), and reset().
| bool XrdHttpReq::final |
true -> final result
Definition at line 344 of file XrdHttpReq.hh.
| bool XrdHttpReq::fopened |
Definition at line 353 of file XrdHttpReq.hh.
Referenced by XrdHttpReq(), ProcessHTTPReq(), and reset().
| std::string XrdHttpReq::hdr2cgistr |
Additional opaque info that may come from the hdr2cgi directive.
Definition at line 318 of file XrdHttpReq.hh.
Referenced by addCgi(), appendOpaque(), ProcessHTTPReq(), and reset().
| bool XrdHttpReq::headerok |
Tells if we have finished reading the header.
Definition at line 284 of file XrdHttpReq.hh.
Referenced by XrdHttpReq(), and reset().
| std::string XrdHttpReq::host |
The host field specified in the req.
Definition at line 300 of file XrdHttpReq.hh.
Referenced by ProcessHTTPReq(), and reset().
| int XrdHttpReq::iovL |
| int XrdHttpReq::iovN |
array count
Definition at line 342 of file XrdHttpReq.hh.
| const struct iovec* XrdHttpReq::iovP |
The latest data chunks got from the xrd layer. These are valid only inside the callbacks!
pointer to data array
Definition at line 341 of file XrdHttpReq.hh.
| bool XrdHttpReq::keepalive |
Definition at line 294 of file XrdHttpReq.hh.
Referenced by XrdHttpReq(), parseFirstLine(), parseLine(), ProcessHTTPReq(), Redir(), and reset().
| long long XrdHttpReq::length |
Definition at line 295 of file XrdHttpReq.hh.
Referenced by XrdHttpExtReq::XrdHttpExtReq(), XrdHttpReq(), parseLine(), ProcessHTTPReq(), and reset().
| bool XrdHttpReq::m_appended_asize {false} |
Track whether we already appended the oss.asize argument for PUTs.
Definition at line 321 of file XrdHttpReq.hh.
Referenced by ProcessHTTPReq(), and reset().
| bool XrdHttpReq::m_appended_hdr2cgistr |
Definition at line 319 of file XrdHttpReq.hh.
Referenced by ProcessHTTPReq(), and reset().
| std::string XrdHttpReq::m_digest_header |
The computed digest for the HTTP response header.
Definition at line 315 of file XrdHttpReq.hh.
Referenced by reset().
| std::string XrdHttpReq::m_origin |
Definition at line 366 of file XrdHttpReq.hh.
Referenced by parseLine(), and reset().
| std::map<std::string,std::string> XrdHttpReq::m_repr_digest |
Repr-Digest map where the key is the digest name and the value is the base64 encoded digest value.
Definition at line 371 of file XrdHttpReq.hh.
Referenced by XrdHttpExtReq::XrdHttpExtReq(), parseLine(), and reset().
| XrdHttpChecksumHandler::XrdHttpChecksumRawPtr XrdHttpReq::m_req_cksum = nullptr |
The checksum that was ran for this request.
Definition at line 308 of file XrdHttpReq.hh.
Referenced by ProcessHTTPReq(), and reset().
| XrdOucString XrdHttpReq::m_resource_with_digest |
The checksum algorithm is specified as part of the opaque data in the URL. Hence, when a digest is generated to satisfy a request, we cache the tweaked URL in this data member.
Definition at line 313 of file XrdHttpReq.hh.
Referenced by ProcessHTTPReq().
| std::string XrdHttpReq::m_want_digest |
The requested digest type.
Definition at line 305 of file XrdHttpReq.hh.
Referenced by parseLine(), ProcessHTTPReq(), and reset().
| std::map<std::string,uint8_t> XrdHttpReq::m_want_repr_digest |
Want-Repr-Digest map where the key is the digest name and the value is the preference (between 0 and 9)
Definition at line 375 of file XrdHttpReq.hh.
Referenced by XrdHttpExtReq::XrdHttpExtReq(), parseLine(), ProcessHTTPReq(), and reset().
| XrdHttpMonState XrdHttpReq::monState |
Definition at line 377 of file XrdHttpReq.hh.
Referenced by XrdHttpMon::Record(), and reset().
| int XrdHttpReq::mScitag |
Definition at line 364 of file XrdHttpReq.hh.
Referenced by XrdHttpExtReq::XrdHttpExtReq(), XrdHttpReq(), and reset().
| XrdOucEnv* XrdHttpReq::opaque |
The opaque data, after parsing.
Definition at line 278 of file XrdHttpReq.hh.
Referenced by XrdHttpExtReq::XrdHttpExtReq(), XrdHttpReq(), appendOpaque(), parseLine(), ProcessHTTPReq(), and reset().
| std::vector<readahead_list> XrdHttpReq::ralist |
Definition at line 246 of file XrdHttpReq.hh.
Referenced by ProcessHTTPReq(), ReqReadV(), and reset().
| bool XrdHttpReq::readClosing |
Definition at line 288 of file XrdHttpReq.hh.
Referenced by ProcessHTTPReq(), and reset().
| XrdHttpReadRangeHandler XrdHttpReq::readRangeHandler |
Tracking the next ranges of data to read during GET.
Definition at line 287 of file XrdHttpReq.hh.
Referenced by XrdHttpReq(), File(), parseLine(), ProcessHTTPReq(), and reset().
| XrdOucString XrdHttpReq::redirdest |
Definition at line 338 of file XrdHttpReq.hh.
| int XrdHttpReq::reqstate |
State machine to talk to the bridge.
Definition at line 359 of file XrdHttpReq.hh.
Referenced by ProcessHTTPReq(), and reset().
| ReqType XrdHttpReq::request |
The request we got.
Definition at line 268 of file XrdHttpReq.hh.
Referenced by Error(), parseFirstLine(), parseLine(), ProcessHTTPReq(), XrdHttpMon::Record(), Redir(), and reset().
| std::string XrdHttpReq::requestverb |
Definition at line 269 of file XrdHttpReq.hh.
Referenced by parseFirstLine().
| XrdOucString XrdHttpReq::resource |
The resource specified by the request, stripped of opaque data.
Definition at line 276 of file XrdHttpReq.hh.
Referenced by XrdHttpExtReq::XrdHttpExtReq(), ProcessHTTPReq(), Redir(), and reset().
| XrdOucString XrdHttpReq::resourceplusopaque |
The resource specified by the request, including all the opaque data.
Definition at line 280 of file XrdHttpReq.hh.
Referenced by XrdHttpExtReq::XrdHttpExtReq(), and ProcessHTTPReq().
| unsigned int XrdHttpReq::rwOpDone |
To coordinate multipart responses across multiple calls.
Definition at line 329 of file XrdHttpReq.hh.
| unsigned int XrdHttpReq::rwOpPartialDone |
Definition at line 329 of file XrdHttpReq.hh.
| bool XrdHttpReq::sendcontinue |
Definition at line 297 of file XrdHttpReq.hh.
Referenced by parseLine(), ProcessHTTPReq(), and reset().
| std::chrono::steady_clock::time_point XrdHttpReq::startTime = std::chrono::steady_clock::time_point::min() |
Definition at line 368 of file XrdHttpReq.hh.
Referenced by ProcessHTTPReq(), XrdHttpMon::Record(), and reset().
| std::string XrdHttpReq::stringresp |
If we want to give a string as a response, we compose it here.
Definition at line 356 of file XrdHttpReq.hh.
Referenced by reset().
| long long XrdHttpReq::writtenbytes |
In a long write, we track where we have arrived.
Definition at line 362 of file XrdHttpReq.hh.
Referenced by XrdHttpReq(), ProcessHTTPReq(), and reset().
| XErrorCode XrdHttpReq::xrderrcode |
Definition at line 336 of file XrdHttpReq.hh.
| ClientRequest XrdHttpReq::xrdreq |
The last issued xrd request, often pending.
Definition at line 332 of file XrdHttpReq.hh.
Referenced by Error(), ProcessHTTPReq(), ReqReadV(), and reset().
| XResponseType XrdHttpReq::xrdresp |