- (let* ((s (network-stream c))
- (log (logging-stream c))
- (line (read-line s)))
- (format log "< ~a~%" line)
- (multiple-value-bind (message type) (parse-server-line line)
- (let ((handler (lookup-handler type))
- (mode (connection-mode c)))
- (if handler
- (funcall handler mode message)
- (error 'no-handler :mode mode :type type))))
- line))
-
-(defmethod send-message ((c connection) message)
- (let ((s (network-stream c))
- (log (logging-stream c)))
- (format log "< ~a~%" message)
+ (handler-case
+ (let* ((s (network-stream c))
+ (line (read-line s)))
+ (empire-log:info "< ~a~%" line)
+ (multiple-value-bind (message type) (parse-server-line line)
+ (let ((handler (lookup-handler type))
+ (mode (connection-mode c)))
+ (if handler
+ (funcall handler mode message)
+ (error 'no-handler :mode mode :type type))))
+ line)
+ (sb-int:closed-stream-error () nil)
+ (end-of-file () nil)))
+
+(defun raw-send-message (s message)