From: Jan Nieuwenhuizen Date: Mon, 22 Apr 2019 17:13:39 +0000 (+0200) Subject: websocket: frame: Insert blocking put-bytevector hack. X-Git-Url: https://jxself.org/git/?p=8sync.git;a=commitdiff_plain;h=266a8f61a5fe151a9718feebdbb0b3d74465f6e2 websocket: frame: Insert blocking put-bytevector hack. HACK: Do not suspend writes to avoid `The connection to ws://localhost:1236/ was interrupted while the page was loading.' (icecat)` `could not decode a text frame as utf-8' (ungoogled chromium) * 8sync/systems/websocket/frame.scm: Use blocking write for put-bytevector. bug --- diff --git a/8sync/systems/websocket/frame.scm b/8sync/systems/websocket/frame.scm index 7a71dba..da55b90 100644 --- a/8sync/systems/websocket/frame.scm +++ b/8sync/systems/websocket/frame.scm @@ -327,6 +327,14 @@ MASKING-KEY." ;;; Frame writer ;;; +;; HACK: Do not suspend writes to avoid +;; `The connection to ws://localhost:1236/ was interrupted while the page was loading.' (icecat) +;; `could not decode a text frame as utf-8' (ungoogled chromium) +(define put-bytevector (@ (ice-9 binary-ports) put-bytevector)) + +;; This has no effect. +;; (define put-u8 (@ (ice-9 binary-ports) put-u8)) + (define* (write-frame frame #:optional (port (current-output-port))) ;; Packs an unsigned integer into a bytevector in network byte ;; order.