hs-tls/Network/TLS/Session.hs
Vincent Hanquez c8d9f0677b switch session related callback to a new SessionManager class.
add necessary helper setSessionManager to not have to propagate
Rank2Types and ExistentialQuantification to the user.
2012-07-12 08:59:59 +01:00

30 lines
950 B
Haskell

-- |
-- Module : Network.TLS.Session
-- License : BSD-style
-- Maintainer : Vincent Hanquez <vincent@snarc.org>
-- Stability : experimental
-- Portability : unknown
--
{-# LANGUAGE ExistentialQuantification #-}
module Network.TLS.Session
( SessionManager(..)
, NoSessionManager(..)
) where
import Network.TLS.Types
-- | A session manager
class SessionManager a where
-- | used on server side to decide whether to resume a client session
sessionResume :: a -> SessionID -> IO (Maybe SessionData)
-- | used when a session is established.
sessionEstablish :: a -> SessionID -> SessionData -> IO ()
-- | used when a session is invalidated
sessionInvalidate :: a -> SessionID -> IO ()
data NoSessionManager = NoSessionManager
instance SessionManager NoSessionManager where
sessionResume _ _ = return Nothing
sessionEstablish _ _ _ = return ()
sessionInvalidate _ _ = return ()