aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/erc/erc-backend.el16
1 files changed, 13 insertions, 3 deletions
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index b52c8f5454f..daaa1b0428a 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -493,9 +493,19 @@ The current buffer is given by BUFFER."
493 4 erc-server-send-ping-interval 493 4 erc-server-send-ping-interval
494 #'erc-server-send-ping 494 #'erc-server-send-ping
495 buffer)) 495 buffer))
496 (setq erc-server-ping-timer-alist (cons (cons buffer 496
497 erc-server-ping-handler) 497 ;; I check the timer alist for an existing timer. If one exists,
498 erc-server-ping-timer-alist))))) 498 ;; I get rid of it
499 (let ((timer-tuple (assq buffer erc-server-ping-timer-alist)))
500 (if timer-tuple
501 ;; this buffer already has a timer. Cancel it and set the new one
502 (progn
503 (erc-cancel-timer (cdr timer-tuple))
504 (setf (cdr (assq buffer erc-server-ping-timer-alist)) erc-server-ping-handler))
505
506 ;; no existing timer for this buffer. Add new one
507 (add-to-list 'erc-server-ping-timer-alist
508 (cons buffer erc-server-ping-handler)))))))
499 509
500(defun erc-server-process-alive (&optional buffer) 510(defun erc-server-process-alive (&optional buffer)
501 "Return non-nil when BUFFER has an `erc-server-process' open or running." 511 "Return non-nil when BUFFER has an `erc-server-process' open or running."