From 5f4c4d54193db966a0c39a869817e41e3768efbc Mon Sep 17 00:00:00 2001
From: Philipp Balzarek
Date: Fri, 23 Aug 2013 14:27:10 +0200
Subject: [PATCH] twiddle with reconnect times
---
source/Network/Xmpp/Concurrent.hs | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/source/Network/Xmpp/Concurrent.hs b/source/Network/Xmpp/Concurrent.hs
index c626058..0465b5b 100644
--- a/source/Network/Xmpp/Concurrent.hs
+++ b/source/Network/Xmpp/Concurrent.hs
@@ -136,7 +136,7 @@ newSession stream config realm mbSasl = runErrorT $ do
iqHands <- lift $ newTVarIO (Map.empty, Map.empty)
eh <- lift $ newEmptyTMVarIO
ros <- liftIO . newTVarIO $ Roster Nothing Map.empty
- rew <- lift $ newTVarIO 3
+ rew <- lift $ newTVarIO 15
let rosterH = if (enableRoster config) then handleRoster ros
else \ _ _ -> return True
let stanzaHandler = runHandlers writeSem
@@ -226,7 +226,7 @@ reconnectNow sess@Session{conf = config, reconnectWait = rw} = do
Left e -> return $ Just e
Right (Left e) -> return $ Just e
Right (Right ()) -> do
- atomically $ writeTVar rw 3
+ atomically $ writeTVar rw 15
when (enableRoster config) $ initRoster sess
return Nothing
@@ -254,9 +254,9 @@ reconnect maxTries sess@Session{reconnectWait = rw} = go maxTries
doRetry = do
wait <- atomically $ do
wt <- readTVar rw
- writeTVar rw $ min 300 (2 * wt + 5)
+ writeTVar rw $ min 300 (2 * wt)
return wt
- t <- randomRIO (wait `div` 2, wait)
+ t <- randomRIO (wait `div` 4, max 30 wait)
debugM "Pontarius.Xmpp" $
"Waiting " ++ show t ++ " seconds before reconnecting"
threadDelay $ t * 10^(6 :: Int)