diff options
Diffstat (limited to 'Presence/XMPP.hs')
-rw-r--r-- | Presence/XMPP.hs | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/Presence/XMPP.hs b/Presence/XMPP.hs index 99e7b3f1..c81ed8c7 100644 --- a/Presence/XMPP.hs +++ b/Presence/XMPP.hs | |||
@@ -543,10 +543,13 @@ handlePresenceProbe session stanza = do | |||
543 | liftIO $ L.putStrLn $ "RECEIVED PROBE "<++>bshow (peerAddress session,to) | 543 | liftIO $ L.putStrLn $ "RECEIVED PROBE "<++>bshow (peerAddress session,to) |
544 | liftIO $ do | 544 | liftIO $ do |
545 | subs <- getSubscribers (peerSessionFactory session) user | 545 | subs <- getSubscribers (peerSessionFactory session) user |
546 | liftIO $ L.putStrLn $ "subscribers for "<++>bshow user<++>": " <++>bshow subs | ||
546 | forM_ subs $ \jidstr -> do | 547 | forM_ subs $ \jidstr -> do |
547 | handle (\(SomeException _) -> return ()) $ do | 548 | handle (\(SomeException _) -> return ()) $ do |
549 | L.putStrLn $ "parsing " <++>jidstr | ||
548 | sub <- parseHostNameJID jidstr | 550 | sub <- parseHostNameJID jidstr |
549 | when (peer sub == peer jid) $ do | 551 | putStrLn $ "comparing " ++show (peer sub , peerAddress session) |
552 | when (peer sub == peerAddress session) $ do | ||
550 | ps <- userStatus session user | 553 | ps <- userStatus session user |
551 | mapM_ (announcePresence session) ps | 554 | mapM_ (announcePresence session) ps |
552 | return () | 555 | return () |
@@ -692,6 +695,7 @@ toPeer sock cache chan = do | |||
692 | send r | 695 | send r |
693 | forM_ (Map.assocs . probes $ cache) $ \(to,froms) -> do | 696 | forM_ (Map.assocs . probes $ cache) $ \(to,froms) -> do |
694 | forM_ (Set.toList froms) $ \from -> do | 697 | forM_ (Set.toList froms) $ \from -> do |
698 | liftIO $ L.putStrLn "sending cached probe..." | ||
695 | r <- liftIO $ presenceProbe sock from to | 699 | r <- liftIO $ presenceProbe sock from to |
696 | send r | 700 | send r |
697 | fix $ \loop -> do | 701 | fix $ \loop -> do |
@@ -701,22 +705,27 @@ toPeer sock cache chan = do | |||
701 | r <- lift $ xmlifyPresenceForPeer sock p | 705 | r <- lift $ xmlifyPresenceForPeer sock p |
702 | send r | 706 | send r |
703 | PresenceProbe from to -> do | 707 | PresenceProbe from to -> do |
708 | liftIO $ L.putStrLn "sending live probe..." | ||
704 | r <- liftIO $ presenceProbe sock from to | 709 | r <- liftIO $ presenceProbe sock from to |
705 | send r | 710 | send r |
706 | loop | 711 | loop |
707 | send goodbyePeer | 712 | send goodbyePeer |
708 | 713 | ||
709 | handleOutgoingToPeer sock cache chan snk = do | 714 | handleOutgoingToPeer sock cache chan snk = do |
715 | p <- getPeerName sock | ||
716 | L.putStrLn $ "(>P) connected " <++> showPeer (RemotePeer p) | ||
717 | finally ( | ||
710 | #ifdef RENDERFLUSH | 718 | #ifdef RENDERFLUSH |
711 | toPeer sock cache chan | 719 | toPeer sock cache chan |
712 | $$ flushList | 720 | $$ flushList |
713 | =$= renderBuilderFlush def | 721 | =$= renderBuilderFlush def |
714 | =$= builderToByteStringFlush | 722 | =$= builderToByteStringFlush |
715 | =$= discardFlush | 723 | =$= discardFlush |
716 | =$ snk | 724 | =$ snk |
717 | #else | 725 | #else |
718 | toPeer sock cache chan $$ renderChunks =$ snk | 726 | toPeer sock cache chan $$ renderChunks =$ snk |
719 | #endif | 727 | #endif |
728 | ) $ L.putStrLn $ "(>P) disconnected " <++> showPeer (RemotePeer p) | ||
720 | 729 | ||
721 | connect' :: SockAddr -> Int -> IO (Maybe Socket) | 730 | connect' :: SockAddr -> Int -> IO (Maybe Socket) |
722 | connect' addr port = do | 731 | connect' addr port = do |