[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 03/03: http: Use 'read-header-line' instead of 'read-lin
From: |
Ludovic Courtès |
Subject: |
[Guile-commits] 03/03: http: Use 'read-header-line' instead of 'read-line*'. |
Date: |
Wed, 06 Jan 2016 16:25:38 +0000 |
civodul pushed a commit to branch stable-2.0
in repository guile.
commit 4d08e38e0a7e07fda7443fe7a0b5f9d61b313fda
Author: Ludovic Courtès <address@hidden>
Date: Wed Jan 6 17:15:20 2016 +0100
http: Use 'read-header-line' instead of 'read-line*'.
* module/web/http.scm (read-line*): Remove.
(read-continuation-line, read-header, read-request-line): Use
'read-header-line' instead of 'read-line*'.
---
module/web/http.scm | 22 +++-------------------
1 files changed, 3 insertions(+), 19 deletions(-)
diff --git a/module/web/http.scm b/module/web/http.scm
index 1587e09..a1c0de4 100644
--- a/module/web/http.scm
+++ b/module/web/http.scm
@@ -159,28 +159,12 @@ or if EOF is reached."
((line . _) ;EOF or missing delimiter
(bad-header 'read-header-line line))))
-(define* (read-line* port)
- (let* ((pair (%read-line port))
- (line (car pair))
- (delim (cdr pair)))
- (if (and (string? line) (char? delim))
- (let ((orig-len (string-length line)))
- (let lp ((len orig-len))
- (if (and (> len 0)
- (char-whitespace? (string-ref line (1- len))))
- (lp (1- len))
- (if (= len orig-len)
- line
- (substring line 0 len)))))
- (bad-header '%read line))))
-
(define (read-continuation-line port val)
(if (or (eqv? (peek-char port) #\space)
(eqv? (peek-char port) #\tab))
(read-continuation-line port
(string-append val
- (begin
- (read-line* port))))
+ (read-header-line port)))
val))
(define *eof* (call-with-input-string "" read))
@@ -192,7 +176,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-line* port)))
+ (let ((line (read-header-line port)))
(if (or (string-null? line)
(string=? line "\r"))
(values *eof* *eof*)
@@ -1096,7 +1080,7 @@ not have to have a scheme or host name. The result is a
URI object."
(define (read-request-line port)
"Read the first line of an HTTP request from PORT, returning
three values: the method, the URI, and the version."
- (let* ((line (read-line* port))
+ (let* ((line (read-header-line port))
(d0 (string-index line char-set:whitespace)) ; "delimiter zero"
(d1 (string-rindex line char-set:whitespace)))
(if (and d0 d1 (< d0 d1))