hs-tls/Network/TLS/Server.hs

18 lines
624 B
Haskell
Raw Normal View History

module Network.TLS.Server (recvData) where
2010-09-09 21:47:19 +00:00
import Control.Monad.Trans
2011-03-01 20:01:40 +00:00
import Network.TLS.Core
2010-09-09 21:47:19 +00:00
import Network.TLS.Struct
import qualified Data.ByteString.Lazy as L
{- | recvData get data out of Data packet, and automatically renegociate if
- a Handshake ClientHello is received -}
recvData :: MonadIO m => TLSCtx -> m L.ByteString
recvData ctx = do
pkt <- recvPacket ctx
2010-09-09 21:47:19 +00:00
case pkt of
Right [Handshake (ClientHello _ _ _ _ _ _)] -> handshake ctx >> recvData ctx
Right [AppData x] -> return $ L.fromChunks [x]
2010-09-09 21:47:19 +00:00
Left err -> error ("error received: " ++ show err)
_ -> error "unexpected item"