|
|
|
@ -1,25 +1,27 @@ |
|
|
|
{-# OPTIONS_HADDOCK hide #-} |
|
|
|
{-# OPTIONS_HADDOCK hide #-} |
|
|
|
{-# LANGUAGE DeriveDataTypeable #-} |
|
|
|
{-# LANGUAGE DeriveDataTypeable #-} |
|
|
|
{-# LANGUAGE OverloadedStrings #-} |
|
|
|
{-# LANGUAGE OverloadedStrings #-} |
|
|
|
|
|
|
|
{-# LANGUAGE PackageImports #-} |
|
|
|
|
|
|
|
|
|
|
|
module Network.Xmpp.Tls where |
|
|
|
module Network.Xmpp.Tls where |
|
|
|
|
|
|
|
|
|
|
|
import qualified Control.Exception.Lifted as Ex |
|
|
|
import Control.Applicative ((<$>)) |
|
|
|
import Control.Monad |
|
|
|
import qualified Control.Exception.Lifted as Ex |
|
|
|
import Control.Monad.Error |
|
|
|
import Control.Monad |
|
|
|
import Control.Monad.State.Strict |
|
|
|
import Control.Monad.Error |
|
|
|
import Crypto.Random.API |
|
|
|
import Control.Monad.State.Strict |
|
|
|
import qualified Data.ByteString as BS |
|
|
|
import "crypto-random" Crypto.Random |
|
|
|
import qualified Data.ByteString.Char8 as BSC8 |
|
|
|
import qualified Data.ByteString as BS |
|
|
|
import qualified Data.ByteString.Lazy as BL |
|
|
|
import qualified Data.ByteString.Char8 as BSC8 |
|
|
|
import Data.Conduit |
|
|
|
import qualified Data.ByteString.Lazy as BL |
|
|
|
import Data.IORef |
|
|
|
import Data.Conduit |
|
|
|
import Data.XML.Types |
|
|
|
import Data.IORef |
|
|
|
import Network.DNS.Resolver (ResolvConf) |
|
|
|
import Data.XML.Types |
|
|
|
import Network.TLS |
|
|
|
import Network.DNS.Resolver (ResolvConf) |
|
|
|
import Network.Xmpp.Stream |
|
|
|
import Network.TLS |
|
|
|
import Network.Xmpp.Types |
|
|
|
import Network.Xmpp.Stream |
|
|
|
import System.Log.Logger (debugM, errorM, infoM) |
|
|
|
import Network.Xmpp.Types |
|
|
|
|
|
|
|
import System.Log.Logger (debugM, errorM, infoM) |
|
|
|
|
|
|
|
|
|
|
|
mkBackend :: StreamHandle -> Backend |
|
|
|
mkBackend :: StreamHandle -> Backend |
|
|
|
mkBackend con = Backend { backendSend = \bs -> void (streamSend con bs) |
|
|
|
mkBackend con = Backend { backendSend = \bs -> void (streamSend con bs) |
|
|
|
@ -121,7 +123,7 @@ tlsinit :: (MonadIO m, MonadIO m1) => |
|
|
|
) |
|
|
|
) |
|
|
|
tlsinit params backend = do |
|
|
|
tlsinit params backend = do |
|
|
|
liftIO $ debugM "Pontarius.Xmpp.Tls" "TLS with debug mode enabled." |
|
|
|
liftIO $ debugM "Pontarius.Xmpp.Tls" "TLS with debug mode enabled." |
|
|
|
gen <- liftIO $ getSystemRandomGen -- TODO: Find better random source? |
|
|
|
gen <- liftIO (cprgCreate <$> createEntropyPool :: IO SystemRNG) |
|
|
|
con <- client params gen backend |
|
|
|
con <- client params gen backend |
|
|
|
handshake con |
|
|
|
handshake con |
|
|
|
let src = forever $ do |
|
|
|
let src = forever $ do |
|
|
|
|