[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #62581] write-http-response procedure is broken
From: |
Sam Lee |
Subject: |
[bug #62581] write-http-response procedure is broken |
Date: |
Sat, 4 Jun 2022 02:07:47 -0400 (EDT) |
URL:
<https://savannah.gnu.org/bugs/?62581>
Summary: write-http-response procedure is broken
Project: MIT/GNU Scheme
Submitter: samlee
Submitted: Sat 04 Jun 2022 06:07:45 AM UTC
Category: runtime
Severity: 3 - Normal
Priority: 5 - Normal
Item Group: Incorrect behavior
Status: None
Privacy: Public
Assigned to: None
Originator Name:
Originator Email:
Open/Closed: Open
Discussion Lock: Any
Keywords:
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Sat 04 Jun 2022 06:07:45 AM UTC By: Sam Lee <samlee>
(let* ((socket (open-tcp-server-socket 8000))
(port (tcp-server-connection-accept socket #t #f))
(response (make-http-response (make-http-version 1 1) 200 "OK" '()
(string->utf8 "Hello!"))))
(write-http-response response port))
When the code above is run, and I connect to localhost:8000 using a web
browser, `write-http-response` will fail with this error:
;The object #[textual-i/o-port 12 for channel: #[channel 13]], passed as an
argument to #[compiled-procedure 14 ("binary-port" #x3) #x1c #x29ce984], is
not the correct type.
So, I changed `tcp-server-connection-accept` to
`tcp-server-binary-connection-accept`:
(let* ((socket (open-tcp-server-socket 8000))
(port (tcp-server-binary-connection-accept socket #t #f))
(response (make-http-response (make-http-version 1 1) 200 "OK" '()
(string->utf8 "Hello!"))))
(write-http-response response port))
When I connect to localhost:8000, there will also be an error:
;The object #[binary-i/o-port 12], passed as an argument to write-char, is not
the correct type.
This error is caused by `(newline port)` in `write-http-response` [1]. The
`newline` procedure can only accept a textual port, not a binary port. A
similar problem exists in the `write-http-request` procedure, so you may want
to fix that too.
[1]:
https://git.savannah.gnu.org/cgit/mit-scheme.git/tree/src/runtime/http-io.scm?h=release-11.2#n191
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?62581>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [bug #62581] write-http-response procedure is broken,
Sam Lee <=