Special command dispatch. Log with object prefix.
authorGerd Flaig <gefla@gefla-mac-zrh>
Fri, 2 Jan 2009 16:03:22 +0000 (17:03 +0100)
committerGerd Flaig <gefla@gefla-mac-zrh>
Fri, 2 Jan 2009 16:03:22 +0000 (17:03 +0100)
empire.lisp
web.lisp

index 358d0010f5d8c5c1d1d715a60ebf89afd2c46ecb..5b58812bd257662c8afed7eb4199c597771e1070 100644 (file)
@@ -99,7 +99,7 @@
        (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
index 135cdb4c424b27aaf366e4ced1a51d9caecebdb1..f97b18da710f536d792f98d3ea321b59194ec59a 100644 (file)
--- a/web.lisp
+++ b/web.lisp
@@ -83,7 +83,7 @@
             (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))))