diff options
Diffstat (limited to 'module/web/http.scm')
-rw-r--r-- | module/web/http.scm | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/module/web/http.scm b/module/web/http.scm index 4276e1744..32a3093f1 100644 --- a/module/web/http.scm +++ b/module/web/http.scm @@ -157,13 +157,12 @@ The default writer will call ‘put-string’." Raise a 'bad-header' exception if the line does not end in CRLF or LF, or if EOF is reached." (match (%read-line port) + (((? string? line) . "\r\n") + line) (((? string? line) . #\newline) - ;; '%read-line' does not consider #\return a delimiter; so if it's - ;; there, remove it. We are more tolerant than the RFC in that we - ;; tolerate LF-only endings. - (if (string-suffix? "\r" line) - (string-drop-right line 1) - line)) + ;; We are more tolerant than the RFC in that we tolerate LF-only + ;; endings. + line) ((line . _) ;EOF or missing delimiter (bad-header 'read-header-line line)))) @@ -184,8 +183,7 @@ 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")) + (if (string-null? line) (values *eof* *eof*) (let* ((delim (or (string-index line #\:) (bad-header '%read line))) |