Browse Source

Add connection closed handler to `SessionConfiguration' object

master
Jon Kristensen 13 years ago
parent
commit
03ae8c9d65
  1. 2
      source/Network/Xmpp/Concurrent.hs
  2. 5
      source/Network/Xmpp/Types.hs

2
source/Network/Xmpp/Concurrent.hs

@ -93,7 +93,7 @@ newSession stream config = runErrorT $ do
outC <- lift newTChanIO outC <- lift newTChanIO
stanzaChan <- lift newTChanIO stanzaChan <- lift newTChanIO
iqHandlers <- lift $ newTVarIO (Map.empty, Map.empty) iqHandlers <- lift $ newTVarIO (Map.empty, Map.empty)
eh <- lift $ newTVarIO $ EventHandlers { connectionClosedHandler = \_ -> return () } eh <- lift $ newTVarIO $ EventHandlers { connectionClosedHandler = sessionClosedHandler config }
let stanzaHandler = toChans stanzaChan outC iqHandlers let stanzaHandler = toChans stanzaChan outC iqHandlers
(kill, wLock, streamState, readerThread) <- ErrorT $ startThreadsWith stanzaHandler eh stream (kill, wLock, streamState, readerThread) <- ErrorT $ startThreadsWith stanzaHandler eh stream
writer <- lift $ forkIO $ writeWorker outC wLock writer <- lift $ forkIO $ writeWorker outC wLock

5
source/Network/Xmpp/Types.hs

@ -1093,7 +1093,10 @@ hostnameP = do
data SessionConfiguration = SessionConfiguration data SessionConfiguration = SessionConfiguration
{ -- | Configuration for the @Stream@ object. { -- | Configuration for the @Stream@ object.
sessionStreamConfiguration :: StreamConfiguration sessionStreamConfiguration :: StreamConfiguration
-- | Handler to be run when the session ends (for whatever reason).
, sessionClosedHandler :: XmppFailure -> IO ()
} }
instance Default SessionConfiguration where instance Default SessionConfiguration where
def = SessionConfiguration { sessionStreamConfiguration = def } def = SessionConfiguration { sessionStreamConfiguration = def
, sessionClosedHandler = \_ -> return () }

Loading…
Cancel
Save