;;; guile-websocket --- WebSocket client/server
;;; Copyright © 2015 David Thompson <davet@gnu.org>
+;;; Copyright © 2019 Rutger van Beusekom <rutger.van.beusekom@gmail.com>
;;;
;;; This file is part of guile-websocket.
;;;
unmasked."
(make-frame #t 'close masking-key bv))
-(define* (make-text-frame text #:optional masking-key)
+(define* (make-text-frame text #:optional masking-key #:key (final? #t) (continuation? #f)) ;; bah: optional
"Return a text data frame containing the string TEXT, masked with MASKING-KEY.
By default, the text is unmasked."
- (make-frame #t 'text masking-key (string->utf8 text)))
+ (make-frame final? (if continuation? 'continuation 'text) masking-key (string->utf8 text)))
-(define* (make-binary-frame bv #:optional masking-key)
+(define* (make-binary-frame bv #:optional masking-key #:key (final? #t) (continuation? #f))
"Return a binary data frame containing the contents of the
bytevector BV, masked with MASKING-KEY. By default, the data is
unmasked."
- (make-frame #t 'binary masking-key bv))
+ (make-frame final? (if continuation? 'continuation 'binary) masking-key bv))
(define (continuation-frame? frame)
"Return #t if FRAME is a continuation frame."
(let ((bv (get-bytevector-n port length)))
(when masking-key
- (mask-bytevector! bv masking-key))
+ (unless (eof-object? bv)
+ (mask-bytevector! bv masking-key)))
bv))
(let* ((type-byte (get-u8 port))