diff options
Diffstat (limited to 'Presence/Presence.hs')
-rw-r--r-- | Presence/Presence.hs | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/Presence/Presence.hs b/Presence/Presence.hs index 41204818..adae567a 100644 --- a/Presence/Presence.hs +++ b/Presence/Presence.hs | |||
@@ -109,7 +109,7 @@ data PresenceState = forall status. PresenceState | |||
109 | 109 | ||
110 | 110 | ||
111 | newPresenceState :: Maybe ConsoleWriter | 111 | newPresenceState :: Maybe ConsoleWriter |
112 | -> Maybe (ToxManager ConnectionKey) | 112 | -> Maybe (PresenceState -> ToxManager ConnectionKey) |
113 | -> TMVar (XMPPServer, Connection.Manager status Text) | 113 | -> TMVar (XMPPServer, Connection.Manager status Text) |
114 | -> IO PresenceState | 114 | -> IO PresenceState |
115 | newPresenceState cw toxman xmpp = atomically $ do | 115 | newPresenceState cw toxman xmpp = atomically $ do |
@@ -117,15 +117,16 @@ newPresenceState cw toxman xmpp = atomically $ do | |||
117 | clientsByUser <- newTVar Map.empty | 117 | clientsByUser <- newTVar Map.empty |
118 | remotesByPeer <- newTVar Map.empty | 118 | remotesByPeer <- newTVar Map.empty |
119 | keyToChan <- newTVar Map.empty | 119 | keyToChan <- newTVar Map.empty |
120 | return PresenceState | 120 | let st = PresenceState |
121 | { clients = clients | 121 | { clients = clients |
122 | , clientsByUser = clientsByUser | 122 | , clientsByUser = clientsByUser |
123 | , remotesByPeer = remotesByPeer | 123 | , remotesByPeer = remotesByPeer |
124 | , keyToChan = keyToChan | 124 | , keyToChan = keyToChan |
125 | , server = xmpp | 125 | , server = xmpp |
126 | , consoleWriter = cw | 126 | , consoleWriter = cw |
127 | , toxManager = toxman | 127 | , toxManager = Nothing |
128 | } | 128 | } |
129 | return $ st { toxManager = fmap ($ st) toxman } | ||
129 | 130 | ||
130 | 131 | ||
131 | nameForClient :: PresenceState -> ConnectionKey -> IO Text | 132 | nameForClient :: PresenceState -> ConnectionKey -> IO Text |