Make more web server encoding tweaks
This commit is contained in:
parent
b0bb65dbed
commit
cb2085b684
2 changed files with 33 additions and 12 deletions
|
@ -57,8 +57,7 @@
|
|||
sock))
|
||||
|
||||
(define* (make-chunked-output-port/knots port #:key (keep-alive? #f)
|
||||
(buffering 1200)
|
||||
(encoding "ISO-8859-1"))
|
||||
(buffering 1200))
|
||||
"Returns a new port which translates non-encoded data into a HTTP
|
||||
chunked transfer encoded data and writes this to PORT. Data written to
|
||||
this port is buffered until the port is flushed, at which point it is
|
||||
|
@ -83,7 +82,6 @@ KEEP-ALIVE? is true."
|
|||
|
||||
(define ret
|
||||
(make-custom-binary-output-port "chunked http" write! #f #f close))
|
||||
(set-port-encoding! ret encoding)
|
||||
(setvbuf ret 'block buffering)
|
||||
ret)
|
||||
|
||||
|
@ -284,10 +282,7 @@ on the procedure being called at any particular time."
|
|||
(lambda ()
|
||||
(write-response response client)
|
||||
|
||||
(let* ((change-client-port-encoding?
|
||||
(and (procedure? body)
|
||||
(not (response-content-length response))))
|
||||
(body-written?
|
||||
(let ((body-written?
|
||||
(if (procedure? body)
|
||||
(let* ((type (response-content-type response
|
||||
'(text/plain)))
|
||||
|
@ -298,10 +293,8 @@ on the procedure being called at any particular time."
|
|||
client
|
||||
(make-chunked-output-port/knots
|
||||
client
|
||||
#:keep-alive? #t
|
||||
#:encoding charset))))
|
||||
(when change-client-port-encoding?
|
||||
(set-port-encoding! client charset))
|
||||
#:keep-alive? #t))))
|
||||
(set-port-encoding! body-port charset)
|
||||
(let ((body-written?
|
||||
(with-exception-handler
|
||||
(lambda (exn)
|
||||
|
@ -324,7 +317,7 @@ on the procedure being called at any particular time."
|
|||
(if body-written?
|
||||
(begin
|
||||
(force-output client)
|
||||
(when change-client-port-encoding?
|
||||
(when (procedure? body)
|
||||
(set-port-encoding! client "ISO-8859-1"))
|
||||
(keep-alive? response))
|
||||
#f)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue