XrdHttpReq::parseLine
makes all HTTP headers visible in a map, which can be used by external plug-ins.
The decoding function for range requests uses strtok_r, which writes a \0 bytes into the string.
Afterwards we assign the range value in the external header map, so that instead of seeing:
allheaders["Range"] = "bytes=2-8"
we see only
allheaderes["Range"] ="bytes"
which breaks range requests in external plug-ins.
The simple solution is to move
// We memorize the heaers also as a string
// because external plugins may need to process it differently
std::string ss = val;
trim(ss);
allheaders[key] = ss;
before all the header key parsing is called ...
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Use REPLY-ALL to reply to list
To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1