| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Timeouts should be handled by a concurrency layer such as fibers.
|
| |
|
|
|
|
|
|
|
|
| |
* web/socket/frame.scm (frame-reader): Removed.
(make-deadline, deadline-seconds-remaining, read-frame/deadline): New
procedures.
(read-data-frame, read-close-frame): Call deadline procedures instead of
frame-reader.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* web/socket/client.scm (close-websocket): Add timeout parameter. Call
read-close-frame with timeout.
(websocket-receive): Add timeout parameter. Call read-data-frame with
timeout. Don't close the websocket on timeout.
* web/socket/frame.scm (port-readable?, port-writable?, frame-reader):
New helper procedures.
(read-close-frame): New procedure.
(read-data-frame): Add timeout parameter. Use frame-reader to support a
composed read timeout.
|
|
|
|
|
|
|
|
|
| |
* web/socket/frame.scm (read-data-frame): New procedure, extracted from
serve-client.
* web/socket/client.scm (websocket-receive): Call read-data-frame.
Clean up the websocket if the connection was closed.
* web/socket/server.scm (serve-client): Call read-data-frame. Flush the
port after writing the handshake response.
|
|
|
|
|
|
|
|
|
| |
* web/socket/client.scm (make-client-socket): Add verify-certificate?
parameter. Call open-socket-for-uri to create the socket.
(handshake): Flush the port after writing the request.
(make-websocket): Add #:verify-certificate? parameter.
* web/socket/frame.scm (write-frame): Flush the port after writing the
frame.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
See https://bugs.gnu.org/42713.
* tests/frame.scm (test-runner): New define.
Use it in exit statement.
|
|
|
|
|
| |
* web/socket/server.scm (make-server-socket): Add #:family parameter
and use it for inet-pton.
|
|
|
|
|
| |
* web/socket/client.scm (open-entropy-port): Add hack for
missing /dev/urandom.
|
|
|
|
| |
* web/socket/client.scm (web): Export websocket-socket.
|
|
|
|
| |
* Makefile.am (SOURCES): Add web/socket/client.scm.
|
|
|
|
|
| |
* configure.ac: Add AC_CANONICAL_HOST to get host.
* Makefile.am (.scm.go): Set it as target.
|
|
|
|
| |
* Makefile.am (godir, moddir): Softcode effective version.
|
|
|
|
| |
* web/socket/client.scm (close-websocket): Return an unspecified value.
|
|
|
|
|
|
|
| |
* web/socket/client.scm (generate-websocket-nonce): Rename to...
(generate-client-key): ...this.
(make-handshake-request): Change argument list.
(handshake): Validate accept key.
|
|
|
|
|
|
|
| |
* web/socket/server.scm (handshake): Moved.
(make-handshake-response): Use new make-accept-key procedure.
* web/socket/utils.scm: New file.
* Makefile.am (SOURCES): Add it.
|
|
|
|
|
| |
* web/socket/client.scm (generate-masking-key): New procedure.
(websocket-send): Mask the frame to be sent.
|
|
|
|
|
|
|
| |
* web/socket/client.scm (generate-websocket-nonce): New procedure.
(make-handshake-request): Change argument from uri to websocket.
Generate a real nonce for Sec-WebSocket-Key header.
(handshake): Adjust make-handshake-request call.
|
|
|
|
|
|
|
| |
* web/socket/client.scm (<websocket>)[entropy-port]: New field.
(open-entropy-port): New procedure.
(make-websocket): Open entropy port.
(close-websocket): Close entropy port.
|
|
|
|
|
| |
* web/socket/client.scm (display-websocket): New procedure.
(<websocket>): Set custom record type printer.
|
|
|
|
|
|
|
|
|
|
|
| |
* web/socket/client.scm (<websocket>)[state]: New field.
(websocket-state, set-websocket-state!): New field accessors.
(websocket-connecting?, websocket-open?, websocket-closing?,
websocket-closed?): New procedures.
(handshake): Set socket to 'open' state after successful handshake.
(make-websocket): Set socket to 'connecting' state initially.
(close-websocket): Set socket to 'closing' before sending close frame,
and then to 'closed' underlying TCP socket is closed.
|
|
|
|
| |
* web/socket/frame.scm (read-frame): s/to/too/
|
|
|
|
|
| |
* web/socket/client.scm (close-websocket): Wait for server to close the
connection for a reasonable amount of time.
|
|
|
|
|
|
| |
* web/socket/server.scm (serve-client): Handle EOF object and client
sockets that have closed while trying to echo the close frame.
(run-server): Ignore SIGPIPE to prevent server crashes.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* web/socket/frame.scm (write-frame)[masked-data]: Correctly copy the
source bytevector.
|
|
|
|
| |
* web/socket/frame.scm (make-ping-frame): New procedure.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|