equal
deleted
inserted
replaced
23 import Control.Concurrent.Chan |
23 import Control.Concurrent.Chan |
24 import Data.Time |
24 import Data.Time |
25 import Control.Monad |
25 import Control.Monad |
26 import Data.Unique |
26 import Data.Unique |
27 import qualified Codec.Binary.Base64 as Base64 |
27 import qualified Codec.Binary.Base64 as Base64 |
28 import qualified Data.ByteString as BW |
|
29 import qualified Data.ByteString.Char8 as B |
|
30 import qualified Control.Exception as E |
28 import qualified Control.Exception as E |
31 import System.Entropy |
29 import System.Entropy |
32 import Data.Either |
|
33 ----------------------------- |
30 ----------------------------- |
34 import CoreTypes |
31 import CoreTypes |
35 import Utils |
32 import Utils |
36 |
33 |
37 |
34 |
46 currentTime <- getCurrentTime |
43 currentTime <- getCurrentTime |
47 |
44 |
48 sendChan' <- newChan |
45 sendChan' <- newChan |
49 |
46 |
50 uid <- newUnique |
47 uid <- newUnique |
51 salt <- liftM (B.pack . Base64.encode . BW.unpack) $ hGetEntropy ch 18 |
48 salt <- liftM Base64.encode $ hGetEntropy ch 18 |
52 |
49 |
53 let newClient = |
50 let newClient = |
54 (ClientInfo |
51 (ClientInfo |
55 uid |
52 uid |
56 sendChan' |
53 sendChan' |