mbox series

[v3,0/2] block/curl: Improve HTTP header parsing

Message ID 20200224101310.101169-1-david.edmondson@oracle.com
Headers show
Series block/curl: Improve HTTP header parsing | expand

Message

David Edmondson Feb. 24, 2020, 10:13 a.m. UTC
An HTTP object store of my acquaintance returns "accept-ranges: bytes"
(all lower case) as a header, causing the QEMU curl backend to refuse
to talk to it. RFC 7230 says that HTTP headers are case insensitive,
so update the curl backend accordingly.

At the same time, allow for arbitrary white space around the HTTP
header field value, as required by the RFC.

v3:
- fix line length.

v2:
- strncasecmp -> g_ascii_strncasecmp (Philippe).
- isspace -> g_ascii_isspace, for good measure.

David Edmondson (2):
  block/curl: HTTP header fields allow whitespace around values
  block/curl: HTTP header field names are case insensitive

 block/curl.c | 32 ++++++++++++++++++++++++++++----
 1 file changed, 28 insertions(+), 4 deletions(-)

Comments

Max Reitz Feb. 25, 2020, 5:18 p.m. UTC | #1
On 24.02.20 11:13, David Edmondson wrote:
> An HTTP object store of my acquaintance returns "accept-ranges: bytes"
> (all lower case) as a header, causing the QEMU curl backend to refuse
> to talk to it. RFC 7230 says that HTTP headers are case insensitive,
> so update the curl backend accordingly.
> 
> At the same time, allow for arbitrary white space around the HTTP
> header field value, as required by the RFC.

Thanks, applied to my block branch:

https://git.xanclic.moe/XanClic/qemu/commits/branch/block

Max