summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoe <joe@jerkface.net>2013-07-31 16:36:19 -0400
committerjoe <joe@jerkface.net>2013-07-31 16:36:19 -0400
commit8819a10a91e9e797aeabdd37510ed3f4a7fbd4fc (patch)
tree76b4c2782d6e68b40e5d1af367c74d59c430b7a7
parent36637654a5d18125370ba1323e9e96a6bc01441f (diff)
Sends incomming messages to client, checked in overlooked file
Logging.hs
-rw-r--r--Presence/Logging.hs17
-rw-r--r--Presence/XMPP.hs23
2 files changed, 39 insertions, 1 deletions
diff --git a/Presence/Logging.hs b/Presence/Logging.hs
new file mode 100644
index 00000000..f55e2e79
--- /dev/null
+++ b/Presence/Logging.hs
@@ -0,0 +1,17 @@
1module Logging where
2
3import qualified Data.ByteString.Lazy.Char8 as L
4import qualified Data.ByteString.Char8 as S
5import qualified Data.Text.IO as Text
6import qualified Debug.Trace as Debug
7
8
9debugStr str = putStrLn str
10
11debugL bs = L.putStrLn bs
12
13debugS bs = S.putStrLn bs
14
15debugText text = Text.putStrLn text
16
17trace str a = Debug.trace str a
diff --git a/Presence/XMPP.hs b/Presence/XMPP.hs
index 1c6336b9..df19f211 100644
--- a/Presence/XMPP.hs
+++ b/Presence/XMPP.hs
@@ -478,7 +478,10 @@ toClient session pchan cmdChan rchan = toClient' False False
478 CmdChan InterestedInRoster -> do 478 CmdChan InterestedInRoster -> do
479 liftIO . debugStr $ "Roster: interested" 479 liftIO . debugStr $ "Roster: interested"
480 toClient' isBound True 480 toClient' isBound True
481 CmdChan (Chat msg) -> return () -- TODO 481 CmdChan (Chat msg) -> do
482 xs <- liftIO $ xmlifyMessageForClient msg
483 send xs
484 loop
482 -- CmdChan cmd -> liftIO (debugStr $ "unhandled event: "++show cmd) >> loop 485 -- CmdChan cmd -> liftIO (debugStr $ "unhandled event: "++show cmd) >> loop
483 RChan (RequestedSubscription who contact) -> do 486 RChan (RequestedSubscription who contact) -> do
484 jid <- liftIO $ getJID session 487 jid <- liftIO $ getJID session
@@ -1120,6 +1123,24 @@ xmlifyPresenceForPeer sock (Presence jid stat) = do
1120 , EventContent (ContentText stat) 1123 , EventContent (ContentText stat)
1121 , EventEndElement "{jabber:server}show" ] 1124 , EventEndElement "{jabber:server}show" ]
1122 1125
1126xmlifyMessageForClient msg = do
1127 let tojid = msgTo msg
1128 fromjid = msgFrom msg
1129 tonames <- getNamesForPeer (peer tojid)
1130 fromnames <- getNamesForPeer (peer fromjid)
1131 let mk_str ns jid = toStrict . L.decodeUtf8 $ name jid <$++> "@" <?++> L.fromChunks [head ns] <++?> "/" <++$> resource jid
1132 to_str = mk_str tonames tojid
1133 from_str = mk_str fromnames fromjid
1134 return $
1135 [ EventBeginElement "{jabber:client}message"
1136 [ attr "from" from_str
1137 , attr "to" to_str
1138 ]
1139 ]
1140 ++ xmlifyMsgElements (msgLangMap msg) ++
1141 [ EventEndElement "{jabber:client}message" ]
1142
1143
1123xmlifyMessageForPeer sock msg = do 1144xmlifyMessageForPeer sock msg = do
1124 addr <- getSocketName sock 1145 addr <- getSocketName sock
1125 remote <- getPeerName sock 1146 remote <- getPeerName sock