From 01b6e257e46a64869862d707378bffdfa1544669 Mon Sep 17 00:00:00 2001
From: Philipp Balzarek
Date: Wed, 27 Feb 2013 15:42:32 +0100
Subject: [PATCH] Adapt EchoClient to changed API
---
examples/EchoClient.hs | 30 +++++++++++++++++++-----------
1 file changed, 19 insertions(+), 11 deletions(-)
diff --git a/examples/EchoClient.hs b/examples/EchoClient.hs
index 4ff5d28..6cb384b 100644
--- a/examples/EchoClient.hs
+++ b/examples/EchoClient.hs
@@ -1,5 +1,6 @@
{-
+
Copyright © 2010-2012 Jon Kristensen, Philipp Balzarek
This file (EchoClient.hs) illustrates how to connect, authenticate, set a simple
@@ -20,13 +21,14 @@ import Data.Maybe (fromJust)
import qualified Data.Text as Text
import Text.Printf
+import Network.TLS
import Network.Xmpp
import Network.Xmpp.IM
+import System.IO (stderr)
import System.Log.Formatter
-import System.Log.Logger
import System.Log.Handler hiding (setLevel)
import System.Log.Handler.Simple
-import System.IO (stderr)
+import System.Log.Logger
-- Server and authentication details.
host = "localhost"
@@ -40,9 +42,12 @@ resource = Just "bot"
autoAccept :: Session -> IO ()
autoAccept session = forever $ do
st <- waitForPresence isPresenceSubscribe session
- let Just friend = presenceFrom st
- sendPresence (presenceSubscribed friend) session
- printf "Hello %s !" (show friend)
+ friend <- case presenceFrom st of
+ Just from -> do
+ sendPresence (presenceSubscribed from) session
+ return $ show from
+ Nothing -> return "anonymous" -- this shouldn't happen
+ printf "Hello %s !" friend
main :: IO ()
main = do
@@ -50,14 +55,17 @@ main = do
handler <- streamHandler stderr DEBUG >>= \h ->
return $ setFormatter h (simpleLogFormatter "$time - $loggername: $prio: $msg")
updateGlobalLogger "Pontarius.Xmpp" (addHandler handler)
-
- sess <- simpleConnect
+
+ sess' <- session
host
- port
realm
- username
- password
- resource
+ port
+ Nothing -- (Just defaultParamsClient)
+ (Just ([scramSha1 username Nothing password], resource))
+ sess <- case sess' of
+ Left err -> error $ "Error connection to XMPP server: " ++ show err
+ Right (_, Just err) -> error $ "Error while authenticating: " ++ show err
+ Right (sess, Nothing) -> return sess
-- We won't be able to receive stanzas before we set out status to online
sendPresence presenceOnline sess
putStrLn "Connected."