adapt make-error-response:

- no URI header field in 1.1
- new 30x status codes in 1.1
This commit is contained in:
vibr 2004-07-29 16:08:30 +00:00
parent 1b4bdb59c6
commit 5e14a326b9
1 changed files with 12 additions and 10 deletions

View File

@ -173,20 +173,22 @@
(make-writer-body writer-proc)))))
(cond
;; This error response requires two args: message is the new URI: field,
;; and the first EXTRA is the older Location: field.
((or (eq? code (status-code moved-temp))
(eq? code (status-code moved-perm)))
;; This error response requires one arg:
;; message is the Location field.
;; the Location field's field value must be a single absolute URI
((or (eq? code (status-code found));302
(eq? code (status-code see-other));303
(eq? code (status-code temp-redirect));307
(eq? code (status-code moved-perm)));301
(create-response
(list (cons 'uri message)
(cons 'location (car extras)))
(list (cons 'location message))
(lambda (port options)
(title-html port "Document moved")
(format port
"This document has ~A moved to a <A HREF=\"~A\">new location</A>.~%"
(if (eq? code (status-code moved-temp))
"temporarily"
"permanently")
(if (eq? code (status-code moved-perm))
"permanently"
"temporarily")
message)
(close-html port))))
@ -290,7 +292,7 @@ response of a gateway.~%")
;; the browser won't notice the redirect. Thus, it will keep the
;; original URL. For "real" redirections, use
;; (make-error-response (status-code moved-perm) req
;; "new-location" "new-location").
;; "new-location").
(define (make-redirect-response new-location)
(make-response
(status-code redirect)