From b9683af2da882d542208a15d67d8040bab8fa5c2 Mon Sep 17 00:00:00 2001 From: Billy Brown Date: Thu, 21 Dec 2023 17:07:00 +0000 Subject: Corrected Range and Content-Range header handling Corrected the handling of the Range request header and the Content- Range response header. They now have separate parsers, to match the standard, and the content-range unparser is now correctly named. The Range header can be in one of three forms: Range: bytes=- Range: bytes=- Range: bytes=- The Content-Range header can be in one of three forms: Content-Range: bytes -/ Content-Range: bytes -/* Content-Range: bytes */ The unit tests were updated to reflect the changes. Signed-off-by: Peter Bex --- intarweb.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'intarweb.scm') diff --git a/intarweb.scm b/intarweb.scm index 78383d5..c40e1c4 100644 --- a/intarweb.scm +++ b/intarweb.scm @@ -81,14 +81,14 @@ rfc1123-subparser rfc850-subparser asctime-subparser http-date-subparser product-subparser quality-subparser unknown-header-parser filename-subparser symbol-subparser symbol-subparser-ci natnum-subparser - host/port-subparser base64-subparser range-subparser filename-subparser - etag-parser software-parser mailbox-subparser + host/port-subparser base64-subparser range-subparser content-range-subparser + filename-subparser etag-parser software-parser mailbox-subparser if-range-parser retry-after-subparser via-parser warning-parser key/value-subparser set-cookie-parser cache-control-parser pragma-parser te-parser cookie-parser strict-transport-security-parser must-be-quoted-chars quote-string unparse-token - default-header-unparser etag-unparser host/port-unparser + content-range-unparser default-header-unparser etag-unparser host/port-unparser product-unparser software-unparser rfc1123-unparser cookie-unparser strict-transport-security-unparser @@ -436,7 +436,7 @@ (content-length . ,(single natnum-subparser)) (content-location . ,(single normalized-uri)) (content-md5 . ,(single base64-subparser)) - (content-range . ,(single range-subparser)) + (content-range . ,(single content-range-subparser)) (content-type . ,(single symbol-subparser-ci `((charset . ,symbol-subparser-ci)))) (date . ,(single http-date-subparser)) @@ -670,6 +670,7 @@ (define header-unparsers (make-parameter `((content-disposition . ,content-disposition-unparser) + (content-range . ,content-range-unparser) (date . ,rfc1123-unparser) (etag . ,etag-unparser) (expires . ,rfc1123-unparser) -- cgit v1.2.3