branch: externals/websocket commit 767b80425c8662cc5aefccfa13ea0bba8cb67d44 Author: xhcoding <xhcod...@foxmail.com> Commit: xhcoding <xhcod...@foxmail.com>
fix create header error when custom-headers-alist contains %s --- websocket.el | 61 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/websocket.el b/websocket.el index e4e499ba66..947b68b305 100644 --- a/websocket.el +++ b/websocket.el @@ -914,36 +914,37 @@ All these parameters are defined as in `websocket-open'." (cookie-header (url-cookie-generate-header-lines host-port (car (url-path-and-query parsed-url)) (equal (url-type parsed-url) "wss")))) - (format (concat "Host: %s\r\n" - "Upgrade: websocket\r\n" - "Connection: Upgrade\r\n" - "Sec-WebSocket-Key: %s\r\n" - "Sec-WebSocket-Version: 13\r\n" - (when protocol - (concat - (mapconcat - (lambda (protocol) - (format "Sec-WebSocket-Protocol: %s" protocol)) - protocol "\r\n") - "\r\n")) - (when extensions - (format "Sec-WebSocket-Extensions: %s\r\n" - (mapconcat - (lambda (ext) - (concat - (car ext) - (when (cdr ext) "; ") - (when (cdr ext) - (mapconcat 'identity (cdr ext) "; ")))) - extensions ", "))) - (when cookie-header cookie-header) - (concat (mapconcat (lambda (cons) (format "%s: %s" (car cons) (cdr cons))) - custom-headers-alist "\r\n") - (when custom-headers-alist "\r\n")) - "\r\n") - host-port - key - protocol))) + (concat + (format (concat "Host: %s\r\n" + "Upgrade: websocket\r\n" + "Connection: Upgrade\r\n" + "Sec-WebSocket-Key: %s\r\n" + "Sec-WebSocket-Version: 13\r\n" + (when protocol + (concat + (mapconcat + (lambda (protocol) + (format "Sec-WebSocket-Protocol: %s" protocol)) + protocol "\r\n") + "\r\n")) + (when extensions + (format "Sec-WebSocket-Extensions: %s\r\n" + (mapconcat + (lambda (ext) + (concat + (car ext) + (when (cdr ext) "; ") + (when (cdr ext) + (mapconcat 'identity (cdr ext) "; ")))) + extensions ", ")))) + host-port + key + protocol) + (when cookie-header cookie-header) + (mapconcat (lambda (cons) (format "%s: %s" (car cons) (cdr cons))) + custom-headers-alist "\r\n") + (when custom-headers-alist "\r\n") + "\r\n"))) (defun websocket-get-server-response (websocket client-protocols client-extensions) "Get the websocket response from client WEBSOCKET."