diff options
author | Billy Brown <druidofluhn@gmail.com> | 2023-12-21 17:07:00 +0000 |
---|---|---|
committer | Peter Bex <peter@more-magic.net> | 2024-01-11 13:59:39 +0100 |
commit | b9683af2da882d542208a15d67d8040bab8fa5c2 (patch) | |
tree | 947497195eb439a0a22e4839f9adcb952c4b579c /intarweb.scm | |
parent | b2632661807a99fc7c3e610e8bd1b04c68b869c5 (diff) | |
download | intarweb-b9683af2da882d542208a15d67d8040bab8fa5c2.tar.gz |
Corrected Range and Content-Range header handling2.1.0
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=<start>-<end>
Range: bytes=<start>-
Range: bytes=-<end>
The Content-Range header can be in one of three forms:
Content-Range: bytes <start>-<end>/<size>
Content-Range: bytes <start>-<end>/*
Content-Range: bytes */<size>
The unit tests were updated to reflect the changes.
Signed-off-by: Peter Bex <peter@more-magic.net>
Diffstat (limited to 'intarweb.scm')
-rw-r--r-- | intarweb.scm | 9 |
1 files changed, 5 insertions, 4 deletions
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) |