Function: erc-process-sentinel-2

erc-process-sentinel-2 is a byte-compiled function defined in erc-backend.el.gz.

Signature

(erc-process-sentinel-2 EVENT BUFFER)

Documentation

Called when erc-process-sentinel-1 has detected an unexpected disconnect.

Source Code

;; Defined in /usr/src/emacs/lisp/erc/erc-backend.el.gz
(defun erc-process-sentinel-2 (event buffer)
  "Called when `erc-process-sentinel-1' has detected an unexpected disconnect."
  (if (not (buffer-live-p buffer))
      (erc-update-mode-line)
    (with-current-buffer buffer
      (let ((reconnect-p (erc-server-reconnect-p event)) message delay)
        (setq message (if reconnect-p 'disconnected 'disconnected-noreconnect))
        (erc-display-message nil 'error (current-buffer) message)
        (if (not reconnect-p)
            ;; terminate, do not reconnect
            (progn
              (erc-display-message nil 'error (current-buffer)
                                   'terminated ?e event)
              ;; Update mode line indicators
              (erc-update-mode-line)
              (set-buffer-modified-p nil))
          ;; reconnect
          (condition-case nil
              (progn
                (setq erc-server-reconnecting   nil
                      erc-server-reconnect-count (1+ erc-server-reconnect-count))
                (setq delay erc-server-reconnect-timeout)
                (run-at-time delay nil
                             #'erc-server-delayed-reconnect buffer))
            (error (unless (integerp erc-server-reconnect-attempts)
                     (message "%s ... %s"
                              "Reconnecting until we succeed"
                              "kill the ERC server buffer to stop"))
                   (erc-server-delayed-reconnect buffer))))))))