Fix checker logon process
authorWohlstand
Sun, 19 Jan 2014 00:18:28 +0400
changeset 10014 56d2f2d5aad8
parent 10013 4d7302e9b617
child 10015 4feced261c68
child 10016 59a6d65fcb60
Fix checker logon process
gameServer/Actions.hs
gameServer/OfficialServer/checker.hs
--- a/gameServer/Actions.hs	Sat Jan 18 18:20:43 2014 +0100
+++ b/gameServer/Actions.hs	Sun Jan 19 00:18:28 2014 +0400
@@ -454,8 +454,14 @@
     checkerLogin _ False _ = processAction $ ByeClient $ loc "No checker rights"
     checkerLogin p True _ = do
         wp <- client's webPassword
-        processAction $
-            if wp == p then ModifyClient $ \c -> c{logonPassed = True} else ByeClient $ loc "Authentication failed"
+        chan <- client's sendChan
+        mapM_ processAction $
+            if wp == p then 
+                [ModifyClient $ \c -> c{logonPassed = True}
+                , AnswerClients [chan] ["LOGONPASSED"]
+                ]
+                else 
+                [ByeClient $ loc "Authentication failed"]
     playerLogin p a contr = do
         chan <- client's sendChan
         mapM_ processAction [
--- a/gameServer/OfficialServer/checker.hs	Sat Jan 18 18:20:43 2014 +0100
+++ b/gameServer/OfficialServer/checker.hs	Sun Jan 19 00:18:28 2014 +0400
@@ -148,8 +148,8 @@
     onPacket :: Chan Message -> [B.ByteString] -> IO ()
     onPacket _ ("CONNECTED":_) = do
         answer ["CHECKER", protocolNumber, l, p]
-        answer ["READY"]
     onPacket _ ["PING"] = answer ["PONG"]
+    onPacket _ ["LOGONPASSED"] = answer ["READY"]
     onPacket chan ("REPLAY":msgs) = do
         checkReplay chan msgs
         warningM "Check" "Started check"