diff mbox series

[2/2] block/curl: HTTP header field names are case insensitive

Message ID 20200219132745.315381-3-david.edmondson@oracle.com (mailing list archive)
State New, archived
Headers show
Series block/curl: Improve HTTP header parsing | expand

Commit Message

David Edmondson Feb. 19, 2020, 1:27 p.m. UTC
RFC 7230 section 3.2 indicates that HTTP header field names are case
insensitive.

Signed-off-by: David Edmondson <david.edmondson@oracle.com>
---
 block/curl.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Philippe Mathieu-Daudé Feb. 19, 2020, 2:01 p.m. UTC | #1
Hi David,

On 2/19/20 2:27 PM, David Edmondson wrote:
> RFC 7230 section 3.2 indicates that HTTP header field names are case
> insensitive.
> 
> Signed-off-by: David Edmondson <david.edmondson@oracle.com>
> ---
>   block/curl.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/block/curl.c b/block/curl.c
> index 0cf99a4b31b8..4256659cd85b 100644
> --- a/block/curl.c
> +++ b/block/curl.c
> @@ -216,11 +216,11 @@ static size_t curl_header_cb(void *ptr, size_t size, size_t nmemb, void *opaque)
>       size_t realsize = size * nmemb;
>       const char *header = (char *)ptr;
>       const char *end = header + realsize;
> -    const char *accept_ranges = "Accept-Ranges:";
> +    const char *accept_ranges = "accept-ranges:";
>       const char *bytes = "bytes";
>   
>       if (realsize >= strlen(accept_ranges)
> -        && strncmp(header, accept_ranges, strlen(accept_ranges)) == 0) {
> +        && strncasecmp(header, accept_ranges, strlen(accept_ranges)) == 0) {

Can you use g_ascii_strncasecmp() instead?

>   
>           char *p = strchr(header, ':') + 1;
>   
>
diff mbox series

Patch

diff --git a/block/curl.c b/block/curl.c
index 0cf99a4b31b8..4256659cd85b 100644
--- a/block/curl.c
+++ b/block/curl.c
@@ -216,11 +216,11 @@  static size_t curl_header_cb(void *ptr, size_t size, size_t nmemb, void *opaque)
     size_t realsize = size * nmemb;
     const char *header = (char *)ptr;
     const char *end = header + realsize;
-    const char *accept_ranges = "Accept-Ranges:";
+    const char *accept_ranges = "accept-ranges:";
     const char *bytes = "bytes";
 
     if (realsize >= strlen(accept_ranges)
-        && strncmp(header, accept_ranges, strlen(accept_ranges)) == 0) {
+        && strncasecmp(header, accept_ranges, strlen(accept_ranges)) == 0) {
 
         char *p = strchr(header, ':') + 1;