@@ -47,6 +47,9 @@ gossipOriginHops = 2
48backgroundPruneInterval : Int<Ms>
48backgroundPruneInterval : Int<Ms>
49backgroundPruneInterval = 30000 -- 30 seconds
49backgroundPruneInterval = 30000 -- 30 seconds
50+pollSleepInterval : Int<Ms>
51+pollSleepInterval = 500 -- 500ms between poll attempts
52+maxPollWaitAttempts = 60 -- 60 * 500ms = 30 second max long-poll
50federationEnabled = federationSecret != ""
53federationEnabled = federationSecret != ""
51federationAuth = "Bearer " ++ federationSecret
54federationAuth = "Bearer " ++ federationSecret
52federationUrl = \server -> federationScheme ++ server
55federationUrl = \server -> federationScheme ++ server
@@ -815,15 +818,14 @@ pruneAndRetry = \t -> do
816pollOnce = \token cursor -> do
819pollOnce = \token cursor -> do
819− sessions <- *sessions
821+ sessions <- *sessions
820− let auth = authenticateSession sessions token t
822+ let auth = authenticateSession sessions token t
821− case auth of
823+ case auth of
823− yield (PollUnauthorized {})
824+ Unauthorized {} -> yield (PollUnauthorized {})
824− Authorized {pubkey} -> do
825+ Authorized {pubkey} -> do
825− seqCounter <- *seqCounter
826+ seqCounter <- *seqCounter
826− let clampedCursor = clamp 0 (max seqCounter t) cursor
827+ let clampedCursor = clamp 0 (max seqCounter t) cursor
827 matchingMsgs <- do
829 matchingMsgs <- do
828 m <- *messages
830 m <- *messages
829 where m.toKey == pubkey && m.receivedAt >= t - messageMaxAge && m.receivedAt > clampedCursor
831 where m.toKey == pubkey && m.receivedAt >= t - messageMaxAge && m.receivedAt > clampedCursor