From 266a8f61a5fe151a9718feebdbb0b3d74465f6e2 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Mon, 22 Apr 2019 19:13:39 +0200 Subject: [PATCH] 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 --- 8sync/systems/websocket/frame.scm | 8 ++++++++ 1 file changed, 8 insertions(+) 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. -- 2.31.1