*standard-output*))
(defun add-log-entry (stream fmt &rest args)
- (format-date-time (get-universal-time) :stream stream)
- (write-char #\space stream)
- (apply #'format stream fmt args)
- (write-char #\newline stream)
- (force-output stream))
+ (handler-case
+ (progn
+ (format-date-time (get-universal-time) :stream stream)
+ (write-char #\space stream)
+ (apply #'format stream fmt args)
+ (write-char #\newline stream)
+ (force-output stream))
+ (error (e)
+ (warn "Error ~A when trying to add-log-entry '~A'." e
+ (apply #'format nil fmt args)))))
(defun add-private-log-entry (logger fmt &rest args)
(apply #'add-log-entry (get-private-log-stream logger) fmt args))
(defun is-connected (logger)
(%is-connected logger))
+(defparameter *timeout* 60)
+
(defun is-connected (logger)
#-allegro (%is-connected logger)
- #+allegro (mp:with-timeout (60 nil)
+ #+allegro (mp:with-timeout (*timeout* nil)
(%is-connected logger)))
+(defun quit-maybe-timeout (connection msg)
+ #-allegro (quit connection msg)
+ #+allegro (mp:with-timeout (*timeout* nil)
+ (quit connection msg)))
+
(defun %is-connected (logger)
(when (ignore-errors (ping (connection logger) (server logger)))
(dotimes (i 20)
(log-disconnection logger)
(when (connection logger)
- (ignore-errors (quit (connection logger) "Client terminated by server"))
+ (ignore-errors (quit-maybe-timeout (connection logger) "Client terminated by server"))
(setf *recon-nick* (nickname logger)
*recon-server* (server logger)
*recon-username* (username logger)