branch: externals/websocket commit 73eb210eb03f504b81415cb57f176e881a37ae1c Merge: 53bfd56e12 6369b4fc48 Author: Andrew Hyatt <ahy...@gmail.com> Commit: GitHub <nore...@github.com>
Merge pull request #59 from dickmao/state-change encode-coding-string (quote utf-8) isn't necessary and was causing disconnects somehow. --- websocket.el | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/websocket.el b/websocket.el index 88c8c1b00b..b10bfb9dcd 100644 --- a/websocket.el +++ b/websocket.el @@ -46,6 +46,7 @@ (require 'bindat) (require 'url-parse) (require 'url-cookie) +(require 'seq) (eval-when-compile (require 'cl-lib)) ;;; Code: @@ -289,15 +290,11 @@ This is used to both mask and unmask data." ;; string of the same length (for example, 6 multibyte chars for 你好 instead ;; of the correct 6 unibyte chars, which would convert into 2 multibyte ;; chars). - (funcall - #'encode-coding-string - (let ((result (make-string (length data) ?x))) - (cl-loop - for i from 0 below (length data) - do - (setf (seq-elt result i) (logxor (aref key (mod i 4)) (seq-elt data i))) - finally (return result))) - 'utf-8)) + (cl-loop + with result = (make-string (length data) ?x) + for i from 0 below (length data) + do (setf (seq-elt result i) (logxor (aref key (mod i 4)) (seq-elt data i))) + finally return (string-as-unibyte result))) (defun websocket-ensure-length (s n) "Ensure the string S has at most N bytes.