Go to the documentation of this file.
56 #define READV_MAXCHUNKS 512
57 #define READV_MAXCHUNKSIZE (1024*128)
ReqType request
The request we got.
Definition: XrdHttpReq.hh:182
XrdOucEnv * opaque
The opaque data, after parsing.
Definition: XrdHttpReq.hh:192
virtual bool Data(XrdXrootd::Bridge::Context &info, const struct iovec *iovP, int iovN, int iovL, bool final)
ReqType
These are the HTTP/DAV requests that we support.
Definition: XrdHttpReq.hh:165
XrdOucString resource
The resource specified by the request, stripped of opaque data.
Definition: XrdHttpReq.hh:190
int reqstate
State machine to talk to the bridge.
Definition: XrdHttpReq.hh:265
Definition: XrdHttpReq.hh:59
@ rtMKCOL
Definition: XrdHttpReq.hh:176
std::map< std::string, std::string > allheaders
Definition: XrdHttpReq.hh:187
@ rtMOVE
Definition: XrdHttpReq.hh:177
int parseFirstLine(char *line, int len)
Parse the first line of the header.
bool headerok
Tells if we have finished reading the header.
Definition: XrdHttpReq.hh:198
void parseResource(char *url)
@ rtPROPFIND
Definition: XrdHttpReq.hh:175
std::string buildPartialHdr(long long bytestart, long long byteend, long long filesize, char *token)
Build a partial header for a multipart response.
XrdOucString resourceplusopaque
The resource specified by the request, including all the opaque data.
Definition: XrdHttpReq.hh:194
Definition: XProtocol.hh:636
XErrorCode
Definition: XProtocol.hh:965
long long m_current_chunk_size
Definition: XrdHttpReq.hh:86
long long byteend
Definition: XrdHttpReq.hh:62
virtual int File(XrdXrootd::Bridge::Context &info, int dlen)
std::string m_digest_header
The computed digest for the HTTP response header.
Definition: XrdHttpReq.hh:225
std::string etext
Definition: XrdHttpReq.hh:245
long flags
Definition: XrdHttpReq.hh:69
std::string destination
The destination field specified in the req.
Definition: XrdHttpReq.hh:216
@ rtUnset
Definition: XrdHttpReq.hh:166
std::vector< ReadWriteOp > rwOps_split
Definition: XrdHttpReq.hh:206
void clientUnMarshallReadAheadList(int nitems)
void trim(std::string &str)
long modtime
Definition: XrdHttpReq.hh:70
XrdHttpProtocol * prot
Definition: XrdHttpReq.hh:93
Definition: XrdHttpReq.hh:77
bool keepalive
Definition: XrdHttpReq.hh:208
Definition: XrdXrootdBridge.hh:294
long long writtenbytes
In a long write, we track where we have arrived.
Definition: XrdHttpReq.hh:268
@ rtHEAD
Definition: XrdHttpReq.hh:170
@ rtUnknown
Definition: XrdHttpReq.hh:167
int PostProcessChecksum(std::string &digest_header)
void clientMarshallReadAheadList(int nitems)
unsigned int rwOpPartialDone
Definition: XrdHttpReq.hh:237
long id
Definition: XrdHttpReq.hh:68
std::string requestverb
Definition: XrdHttpReq.hh:183
int PostProcessHTTPReq(bool final=false)
long long m_current_chunk_offset
Definition: XrdHttpReq.hh:85
bool fopened
Definition: XrdHttpReq.hh:259
virtual bool Redir(XrdXrootd::Bridge::Context &info, int port, const char *hname)
const struct iovec * iovP
The latest data chunks got from the xrd layer. These are valid only inside the callbacks!
Definition: XrdHttpReq.hh:249
std::string hdr2cgistr
Additional opaque info that may come from the hdr2cgi directive.
Definition: XrdHttpReq.hh:228
int depth
Definition: XrdHttpReq.hh:210
unsigned int rwOpDone
To coordinate multipart responses across multiple calls.
Definition: XrdHttpReq.hh:237
XResponseType xrdresp
The last response data we got.
Definition: XrdHttpReq.hh:243
char fhandle[4]
Definition: XrdHttpReq.hh:258
Definition: XrdOucEnv.hh:42
Definition: XProtocol.hh:821
long long bytestart
Definition: XrdHttpReq.hh:61
virtual bool Done(XrdXrootd::Bridge::Context &info)
the result context
long fileflags
Definition: XrdHttpReq.hh:256
bool m_transfer_encoding_chunked
Definition: XrdHttpReq.hh:84
virtual bool Error(XrdXrootd::Bridge::Context &info, int ecode, const char *etext)
int httpStatusCode
Definition: XrdHttpReq.hh:80
XrdHttpReq(XrdHttpProtocol *protinstance)
Definition: XrdHttpReq.hh:118
Definition: XrdHttpProtocol.hh:76
std::string httpStatusText
Definition: XrdHttpReq.hh:81
@ rtDELETE
Definition: XrdHttpReq.hh:174
bool m_appended_hdr2cgistr
Definition: XrdHttpReq.hh:229
int parseLine(char *line, int len)
Parse the header.
long long length
Definition: XrdHttpReq.hh:209
std::string stringresp
If we want to give a string as a response, we compose it here.
Definition: XrdHttpReq.hh:262
@ rtPUT
Definition: XrdHttpReq.hh:171
ClientRequest xrdreq
The last issued xrd request, often pending.
Definition: XrdHttpReq.hh:240
std::string path
Definition: XrdHttpReq.hh:66
XResponseType
Definition: XProtocol.hh:874
int ReqReadV()
Prepare the buffers for sending a readv request.
std::string buildPartialHdrEnd(char *token)
Build the closing part for a multipart response.
std::vector< ReadWriteOp > rwOps
The original list of multiple reads to perform.
Definition: XrdHttpReq.hh:203
void mapXrdErrorToHttpStatus()
XrdOucString m_resource_with_digest
Definition: XrdHttpReq.hh:223
int iovN
array count
Definition: XrdHttpReq.hh:250
@ rtGET
Definition: XrdHttpReq.hh:169
Definition: XrdSecEntity.hh:64
std::string host
The host field specified in the req.
Definition: XrdHttpReq.hh:214
@ rtOPTIONS
Definition: XrdHttpReq.hh:172
Definition: XrdXrootdBridge.hh:226
long filemodtime
Definition: XrdHttpReq.hh:257
int parseContentRange(char *)
readahead_list * ralist
Definition: XrdHttpReq.hh:146
bool sendcontinue
Definition: XrdHttpReq.hh:211
void appendOpaque(XrdOucString &s, XrdSecEntity *secent, char *hash, time_t tnow)
long long filesize
Definition: XrdHttpReq.hh:255
Definition: XrdOucString.hh:254
@ rtMalformed
Definition: XrdHttpReq.hh:168
XrdOucString redirdest
Definition: XrdHttpReq.hh:246
std::string m_req_digest
The requested digest type.
Definition: XrdHttpReq.hh:219
long long size
Definition: XrdHttpReq.hh:67
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 iovL
byte count
Definition: XrdHttpReq.hh:251
@ rtPOST
Definition: XrdHttpReq.hh:178
XErrorCode xrderrcode
Definition: XrdHttpReq.hh:244
@ rtPATCH
Definition: XrdHttpReq.hh:173
Definition: XrdHttpReq.hh:65