Исправление no-such-file, (текущая версия) :
Глянул по-быстрому. Если кроваво, то проще всего будет пропатчить здесь
(define (read-header port)
"Read one HTTP header from PORT. Return two values: the header
name and the parsed Scheme value. May raise an exception if the header
was known but the value was invalid.
Returns the end-of-file object for both values if the end of the message
body was reached (i.e., a blank line)."
(let ((line (read-header-line port)))
(if (or (string-null? line)
(string=? line "\r"))
(values *eof* *eof*)
(let* ((delim (or (string-index line #\:)
(bad-header '%read line)))
(sym (string->header (substring line 0 delim)))) ;;;; <--------- Символ cache-control из заголовка
(values
sym
(parse-header
sym
(read-continuation-line
port
(string-trim-both line char-set:whitespace (1+ delim))))))))) ;;;; <-------- ТУТ привязывается значение
Т.е. перед тем как совать в парсер можно его подменить. Как вариант чуть менее кровавого патча - сделать декоратор для parse-header.
Исходная версия no-such-file, :
Глянул по-быстрому. Если кроваво, то проще всего будет пропатчить здесь
(define (read-header port)
"Read one HTTP header from PORT. Return two values: the header
name and the parsed Scheme value. May raise an exception if the header
was known but the value was invalid.
Returns the end-of-file object for both values if the end of the message
body was reached (i.e., a blank line)."
(let ((line (read-header-line port)))
(if (or (string-null? line)
(string=? line "\r"))
(values *eof* *eof*)
(let* ((delim (or (string-index line #\:)
(bad-header '%read line)))
(sym (string->header (substring line 0 delim)))) ;;;; <--------- Символ cache-control из заголовка
(values
sym
(parse-header
sym
(read-continuation-line
port
(string-trim-both line char-set:whitespace (1+ delim))))))))) ;;;; <-------- ТУТ привязывается значение
Т.е. перед тем как совать в парсер можно его подменить.