websocket: Preventing some eof-object related errors.
[8sync.git] / 8sync / systems / websocket / server.scm
index 97645bb8ef3490a0b5b6f0e06c4b235b1e252925..6283255ede52bcc5bfc48277e134878a538665fc 100644 (file)
@@ -1,5 +1,6 @@
 ;;; guile-websocket --- WebSocket client/server
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
+;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;;
 ;;; This file is part of guile-websocket.
 ;;;
@@ -133,7 +134,9 @@ called for each complete message that is received."
       (let ((frame (read-frame-maybe)))
         (cond
          ;; EOF - port is closed.
-         ((not frame)
+         ;; @@: Sometimes the eof object appears here as opposed to
+         ;;   at lookahead, but I'm not sure why
+         ((or (not frame) (eof-object? frame))
           (close-down))
          ;; Per section 5.4, control frames may appear interspersed
          ;; along with a fragmented message.