You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.1 KiB

14 years ago
{-# LANGUAGE NoMonomorphismRestriction, OverloadedStrings #-}
module Network.XMPPConduit where
import Control.Monad
import Control.Monad.Trans
import Control.Monad.Trans.State
14 years ago
14 years ago
import qualified Data.ByteString as BS
import Data.Text as Text
14 years ago
import Network
14 years ago
import Network.XMPP.Monad
import Network.XMPP.TLS
import Network.XMPP.Stream
import Network.XMPP.SASL
14 years ago
import Network.XMPP.Bind
14 years ago
14 years ago
import System.IO
14 years ago
fromHandle :: Handle -> Text -> Text -> Text -> IO ((), XMPPState)
fromHandle handle hostname username password =
14 years ago
xmppFromHandle handle hostname username Nothing $ do
14 years ago
xmppStartStream
14 years ago
-- this will check whether the server supports tls
-- on it's own
xmppStartTLS exampleParams
xmppSASL password
14 years ago
xmppBind
gets sResource >>= liftIO . print
gets sHaveTLS >>= liftIO . print
forever $ pullE >>= liftIO . print
14 years ago
return ()
14 years ago
main = do
con <- connectTo "localhost" (PortNumber 5222)
hSetBuffering con NoBuffering
14 years ago
(fs,st) <- fromHandle con "species64739.dyndns.org" "bot" "pwd"
14 years ago
print $ sHaveTLS st
14 years ago
putStrLn ""
hGetContents con >>= putStrLn