eschulte pushed a commit to branch master
in repository elpa.
commit 912ad475e497db63396d827dd703ec4929e2f35a
Author: Eric Schulte <[email protected]>
Date: Wed Dec 18 23:46:51 2013 -0700
handle close-connection thrown during header parse
---
emacs-web-server.el | 15 ++++++++-------
1 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/emacs-web-server.el b/emacs-web-server.el
index b085723..efcfb5c 100644
--- a/emacs-web-server.el
+++ b/emacs-web-server.el
@@ -131,13 +131,14 @@ function.
(with-slots (handler clients) (plist-get (process-plist proc) :server)
(unless (assoc proc clients)
(push (cons proc (make-instance 'ews-client)) clients))
- (let ((client (cdr (assoc proc clients))))
- (when (ews-do-filter client string)
- (when (not (eq (catch 'close-connection
- (ews-call-handler proc (cdr (headers client))
handler))
- :keep-open))
- (setq clients (assq-delete-all proc clients))
- (delete-process proc))))))
+ (let ((c (cdr (assoc proc clients))))
+ (when (not (eq (catch 'close-connection
+ (if (ews-do-filter c string)
+ (ews-call-handler proc (cdr (headers c)) handler)
+ :keep-open))
+ :keep-open))
+ (setq clients (assq-delete-all proc clients))
+ (delete-process proc)))))
(defun ews-do-filter (client string)
"Return non-nil when finished and the client may be deleted."