From: Kevin M. Rosenberg Date: Mon, 14 Nov 2005 16:56:32 +0000 (+0000) Subject: r10829: keep trying re-adding logger after a disconnection. X-Git-Tag: v0.9.3~3 X-Git-Url: http://git.kpe.io/?p=irc-logger.git;a=commitdiff_plain;h=913a4d568c9189f0f025fde3593b6c1b8ec5b25a r10829: keep trying re-adding logger after a disconnection. --- diff --git a/logger.lisp b/logger.lisp index b242f5a..cb1a243 100644 --- a/logger.lisp +++ b/logger.lisp @@ -381,9 +381,9 @@ (defun add-private-log-entry (logger fmt &rest args) (apply #'add-log-entry - (if (get-private-log-stream logger) + (if (and logger (get-private-log-stream logger)) (get-private-log-stream logger) - *standard-output*) + *standard-output*) fmt args)) (defun privmsg-hook (msg) @@ -804,23 +804,34 @@ *recon-channel-names* (channel-names logger)) (ignore-errors (remove-logger logger))) - (let ((new-logger - (ignore-errors - (add-logger *recon-nick* *recon-server* - :channels *recon-channel-names* - :output *recon-user-output* - :password *recon-password* - :realname *recon-realname* - :username *recon-username* - :logging-stream *recon-logging-stream* - :private-log *recon-private-log* - :unknown-log *recon-unknown-log* - :async *recon-async* - :formats *recon-formats*)))) - (when new-logger - (sleep 5) - (when (is-connected new-logger) - (log-reconnection new-logger))))) + (do ((new-logger nil)) + (new-logger) + (setq new-logger + (ignore-errors + (add-logger *recon-nick* *recon-server* + :channels *recon-channel-names* + :output *recon-user-output* + :password *recon-password* + :realname *recon-realname* + :username *recon-username* + :logging-stream *recon-logging-stream* + :private-log *recon-private-log* + :unknown-log *recon-unknown-log* + :async *recon-async* + :formats *recon-formats*))) + (cond + (new-logger + (sleep 20) + (cond + ((is-connected new-logger) + (log-reconnection new-logger)) + (t + (log-daemon-message new-logger "Newly added logger is not connected. Removing connection and will re-attempt.") + (ignore-errors (remove-logger new-logger)) + (setq new-logger nil)))) + (t + (log-daemon-message nil "Got NIL for new logger. Waiting and retrying.") + (sleep 20))))) ) ;; end closure (defun daemon-monitor ()