diff --git a/src/ChangeLog b/src/ChangeLog index 73f832fe1c9cb29a9b83ebe1e336458affea27a6..578402b5c0c9e9cbc27577e0acff1cd88595bfdb 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2015-12-11 Peter Liljenberg <peter.liljenberg@gmail.com> + * commands2.el: Terminate keep-alive with kill-buffer-hook, as + lyskom-keep-alive-callback can't do it once the buffer is killed. + Also improve error logging in the callback. + 2014-10-30 Christer Ekholm <che@chrekh.se> * Makefile: Use cp -f to copy files to build-directory for target diff --git a/src/commands2.el b/src/commands2.el index 0e77cad75ec3a575a85003ca32aae65185d876e5..e8368e723e175c2510874ee6cbd9a38d3d3c7949 100644 --- a/src/commands2.el +++ b/src/commands2.el @@ -2373,13 +2373,14 @@ This command accepts text number prefix arguments \(see local) (defun lyskom-keep-alive-callback (buffer) - (condition-case nil + (condition-case callback-error (save-current-buffer (set-buffer buffer) (if (eq (process-status lyskom-proc) 'open) (initiate-get-time 'keep nil) (lyskom-stop-keep-alive) (message "Terminating keep-alive"))) - (error (message "ERROR!") (lyskom-stop-keep-alive)))) + (error (message "Error during keep-alive: %s" callback-error) + (lyskom-stop-keep-alive)))) (def-kom-command kom-keep-alive () "Keep the LysKOM session alive by sending a request every once in a @@ -2423,7 +2424,12 @@ See `kom-keep-alive' for more information." (mapc 'disable-timeout lyskom-keep-alive-timers) (setq lyskom-keep-alive-timers nil)) +(defun lyskom-buffer-kill-keep-alive-hook () + (if lyskom-keep-alive-timers + (message "Terminating keep-alive for buffer %s" (buffer-name (current-buffer)))) + (lyskom-stop-keep-alive)) +(add-hook 'kill-buffer-hook 'lyskom-buffer-kill-keep-alive-hook) ;;; ======================================================================== ;;; Check (if Person is a) member (of Conference)