XErrorCode
Definition XProtocol.hh:987
XResponseType
Definition XProtocol.hh:896
void trim(std::string &str)
std::vector< XrdOucIOVec2 > XrdHttpIOList
Definition XrdHttpUtils.hh:95
Definition XrdHttpChecksum.hh:32
Definition XrdHttpProtocol.hh:78
Definition XrdHttpReadRangeHandler.hh:36
Definition XrdHttpReq.hh:71
int reqstate
State machine to talk to the bridge.
Definition XrdHttpReq.hh:297
char fhandle[4]
Definition XrdHttpReq.hh:290
int PostProcessHTTPReq(bool final=false)
int ReqReadV(const XrdHttpIOList &cl)
Prepare the buffers for sending a readv request.
bool keepalive
Definition XrdHttpReq.hh:235
unsigned int rwOpPartialDone
Definition XrdHttpReq.hh:268
ReqType
These are the HTTP/DAV requests that we support.
Definition XrdHttpReq.hh:196
@ rtUnset
Definition XrdHttpReq.hh:197
@ rtMalformed
Definition XrdHttpReq.hh:199
@ rtDELETE
Definition XrdHttpReq.hh:205
@ rtOPTIONS
Definition XrdHttpReq.hh:203
@ rtMOVE
Definition XrdHttpReq.hh:208
@ rtHEAD
Definition XrdHttpReq.hh:201
@ rtGET
Definition XrdHttpReq.hh:200
@ rtPATCH
Definition XrdHttpReq.hh:204
@ rtPROPFIND
Definition XrdHttpReq.hh:206
@ rtPUT
Definition XrdHttpReq.hh:202
@ rtUnknown
Definition XrdHttpReq.hh:198
@ rtPOST
Definition XrdHttpReq.hh:209
@ rtMKCOL
Definition XrdHttpReq.hh:207
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.
std::string httpStatusText
Definition XrdHttpReq.hh:75
std::vector< readahead_list > ralist
Definition XrdHttpReq.hh:177
long long length
Definition XrdHttpReq.hh:236
std::string destination
The destination field specified in the req.
Definition XrdHttpReq.hh:243
XrdOucString resource
The resource specified by the request, stripped of opaque data.
Definition XrdHttpReq.hh:221
bool headerok
Tells if we have finished reading the header.
Definition XrdHttpReq.hh:229
void clientMarshallReadAheadList(int nitems)
virtual bool Redir(XrdXrootd::Bridge::Context &info, int port, const char *hname)
XrdHttpProtocol * prot
Definition XrdHttpReq.hh:93
int sendReadResponsesMultiRanges(const XrdHttpIOList &received)
std::string m_digest_header
The computed digest for the HTTP response header.
Definition XrdHttpReq.hh:256
std::string etext
Definition XrdHttpReq.hh:276
std::string stringresp
If we want to give a string as a response, we compose it here.
Definition XrdHttpReq.hh:294
void getReadResponse(XrdHttpIOList &received)
XResponseType xrdresp
The last response data we got.
Definition XrdHttpReq.hh:274
bool m_status_trailer
Definition XrdHttpReq.hh:88
std::string requestverb
Definition XrdHttpReq.hh:214
ReqType request
The request we got.
Definition XrdHttpReq.hh:213
virtual bool Done(XrdXrootd::Bridge::Context &info)
the result context
long long writtenbytes
In a long write, we track where we have arrived.
Definition XrdHttpReq.hh:300
XrdOucEnv * opaque
The opaque data, after parsing.
Definition XrdHttpReq.hh:223
long fileflags
Definition XrdHttpReq.hh:287
int PostProcessChecksum(std::string &digest_header)
int iovL
byte count
Definition XrdHttpReq.hh:282
void sanitizeResourcePfx()
static void determineXRootDChecksumFromUserDigest(const std::string &userDigest, std::vector< std::string > &xrootdChecksums)
int depth
Definition XrdHttpReq.hh:237
virtual bool Error(XrdXrootd::Bridge::Context &info, int ecode, const char *etext)
bool fopened
Definition XrdHttpReq.hh:291
const struct iovec * iovP
The latest data chunks got from the xrd layer. These are valid only inside the callbacks!
Definition XrdHttpReq.hh:280
int httpStatusCode
Definition XrdHttpReq.hh:74
std::string m_req_digest
The requested digest type.
Definition XrdHttpReq.hh:246
XrdOucString resourceplusopaque
The resource specified by the request, including all the opaque data.
Definition XrdHttpReq.hh:225
long filectime
Definition XrdHttpReq.hh:289
std::string hdr2cgistr
Additional opaque info that may come from the hdr2cgi directive.
Definition XrdHttpReq.hh:259
std::string host
The host field specified in the req.
Definition XrdHttpReq.hh:241
long filemodtime
Definition XrdHttpReq.hh:288
int parseFirstLine(char *line, int len)
Parse the first line of the header.
XrdOucString redirdest
Definition XrdHttpReq.hh:277
long long m_current_chunk_size
Definition XrdHttpReq.hh:80
void parseResource(char *url)
virtual int File(XrdXrootd::Bridge::Context &info, int dlen)
int parseLine(char *line, int len)
Parse the header.
std::string buildPartialHdrEnd(char *token)
Build the closing part for a multipart response.
XrdHttpChecksumHandler::XrdHttpChecksumRawPtr m_req_cksum
The checksum that was ran for this request.
Definition XrdHttpReq.hh:249
bool m_transfer_encoding_chunked
Definition XrdHttpReq.hh:78
void mapXrdErrorToHttpStatus()
bool m_appended_hdr2cgistr
Definition XrdHttpReq.hh:260
void appendOpaque(XrdOucString &s, XrdSecEntity *secent, char *hash, time_t tnow)
int sendReadResponseSingleRange(const XrdHttpIOList &received)
int iovN
array count
Definition XrdHttpReq.hh:281
XrdHttpReq(XrdHttpProtocol *protinstance, const XrdHttpReadRangeHandler::Configuration &rcfg)
Definition XrdHttpReq.hh:149
virtual bool Data(XrdXrootd::Bridge::Context &info, const struct iovec *iovP, int iovN, int iovL, bool final)
XrdOucString m_resource_with_digest
Definition XrdHttpReq.hh:254
long long filesize
Definition XrdHttpReq.hh:286
bool readClosing
Definition XrdHttpReq.hh:233
long long m_current_chunk_offset
Definition XrdHttpReq.hh:79
static void extractChecksumFromList(const std::string &checksumList, std::vector< std::string > &extractedChecksum)
bool m_trailer_headers
Definition XrdHttpReq.hh:83
XErrorCode xrderrcode
Definition XrdHttpReq.hh:275
void clientUnMarshallReadAheadList(int nitems)
std::map< std::string, std::string > allheaders
Definition XrdHttpReq.hh:218
unsigned int rwOpDone
To coordinate multipart responses across multiple calls.
Definition XrdHttpReq.hh:268
bool sendcontinue
Definition XrdHttpReq.hh:238
ClientRequest xrdreq
The last issued xrd request, often pending.
Definition XrdHttpReq.hh:271
std::string buildPartialHdr(long long bytestart, long long byteend, long long filesize, char *token)
Build a partial header for a multipart response.
XrdHttpReadRangeHandler readRangeHandler
Tracking the next ranges of data to read during GET.
Definition XrdHttpReq.hh:232
Definition XrdOucEnv.hh:42
Definition XrdOucString.hh:254
Definition XrdSecEntity.hh:65
Definition XrdXrootdBridge.hh:226
Definition XrdXrootdBridge.hh:294
Definition XrdHttpReq.hh:59
long long size
Definition XrdHttpReq.hh:61
long flags
Definition XrdHttpReq.hh:63
long id
Definition XrdHttpReq.hh:62
std::string path
Definition XrdHttpReq.hh:60
long modtime
Definition XrdHttpReq.hh:64
Definition XrdHttpReadRangeHandler.hh:54
Definition XProtocol.hh:843