hs-tls/Network/TLS/Session.hs

31 lines
950 B
Haskell
Raw Normal View History

-- |
-- 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 ()