gameServer/OfficialServer/DBInteraction.hs
changeset 4932 f11d80bac7ed
parent 4921 2efad3acbb74
child 4943 21d6b2b79cfe
--- a/gameServer/OfficialServer/DBInteraction.hs	Sun Feb 06 18:59:53 2011 +0300
+++ b/gameServer/OfficialServer/DBInteraction.hs	Sun Feb 06 21:50:29 2011 +0300
@@ -5,32 +5,38 @@
 ) where
 
 import Prelude hiding (catch);
+import Control.Concurrent
+import Control.Monad
+import Data.List as L
+import Data.ByteString.Char8 as B
+#if defined(OFFICIAL_SERVER)
 import System.Process
 import System.IO as SIO
-import Control.Concurrent
 import qualified Control.Exception as Exception
-import Control.Monad
 import qualified Data.Map as Map
 import Data.Maybe
+import Data.Time
 import System.Log.Logger
-import Data.Time
-import Data.ByteString.Char8 as B
-import Data.List as L
+#endif
 ------------------------
 import CoreTypes
+#if defined(OFFICIAL_SERVER)
 import Utils
+#endif
 
+localAddressList :: [B.ByteString]
 localAddressList = ["127.0.0.1", "0:0:0:0:0:0:0:1", "0:0:0:0:0:ffff:7f00:1"]
 
+fakeDbConnection :: forall b. ServerInfo -> IO b
 fakeDbConnection serverInfo = forever $ do
     q <- readChan $ dbQueries serverInfo
     case q of
-        CheckAccount clId clUid _ clHost -> do
+        CheckAccount clId clUid _ clHost ->
             writeChan (coreChan serverInfo) $ ClientAccountInfo clId clUid (if clHost `L.elem` localAddressList then Admin else Guest)
         ClearCache -> return ()
         SendStats {} -> return ()
 
-
+dbConnectionLoop :: forall b. ServerInfo -> IO b
 #if defined(OFFICIAL_SERVER)
 pipeDbConnectionLoop queries coreChan hIn hOut accountsCache =
     Exception.handle (\(e :: Exception.IOException) -> warningM "Database" (show e) >> return accountsCache) $
@@ -97,5 +103,6 @@
 dbConnectionLoop = fakeDbConnection
 #endif
 
+startDBConnection :: ServerInfo -> IO ()
 startDBConnection serverInfo =
-    forkIO $ dbConnectionLoop serverInfo
+    forkIO (dbConnectionLoop serverInfo) >> return ()