(setf socket sock
stream s
connection-handler handler)))
- (empire-log:info "empire:reconnect: ~a" c))
+ (empire-log:info "~a: reconnect" c))
(defparameter +C_CMDOK+ "0")
(defparameter +C_DATA+ "1")
(defmethod set-new-mode ((m base-mode) new-mode)
(let* ((c (connection m))
(mode (make-mode c new-mode)))
+ (empire-log:info "~a: set-new-mode ~a -> ~a" c (connection-mode c) new-mode)
(setf (connection-mode c) mode)))
(defgeneric handle-data (base-mode message))
(reconnect c))))))
message))
+(defparameter +special-command-char+ #\;)
+
+(defun special-command-p (line)
+ (char= +special-command-char+ (aref line 0)))
+
+(defmethod special-xup ((c connection))
+ t)
+
+(defmethod special-command ((c connection) line)
+ (cond ((string= line "xup") (special-xup c))
+ (t (empire-web:data (session c) "Unknown special command"))))
+
+(defmethod command ((c connection) line)
+ (cond ((special-command-p line) (special-command c (subseq line 1)))
+ (t (send-message c line))))
+
(defgeneric play (connection))
(defmethod play ((c connection))
(with-slots (user password) c
(pass (post-parameter "password"))
(session (make-session user pass)))
(setf (session-value 'session) session)
- (empire-log:info "User ~a logging in. Session ~a" user session)
+ (empire-log:info "~a: User ~a logging in." session user)
(redirect +root-url+))
(usocket:connection-refused-error (e)
(format nil "Connection error: ~a~%" e))))