@@ -495,8 +495,7 @@ removeOffline = \presenceSet offlineOnlyKeys trustedOffline t ->
495495 diff presenceSet (do
496496 p <- presenceSet
497497 k <- offlineOnlyKeys
498− where samePubkeyServer p k
499− where any trustedOffline (\o -> samePubkeyServer o k && (if o.timestamp > t then t else o.timestamp) > p.timestamp)
498+ where samePubkeyServer p k && any trustedOffline (\o -> samePubkeyServer o k && (if o.timestamp > t then t else o.timestamp) > p.timestamp)
500499 yield p)
501500
502501countMessagesFor = \messages toKey t ->
@@ -509,11 +508,9 @@ countMessagesFor = \messages toKey t ->
509508validGossipEvents : [GossipEvent] -> Timestamp -> [ValidGossipEntry]
510509validGossipEvents = \events t -> do
511510 e <- events
512− where isValidHex e.pubkey && not (tooLong e.pubkey maxPubkeyLen)
513− where not (tooLong e.server maxServerNameLen) && not (isBadServerName e.server)
511+ where isValidHex e.pubkey && not (tooLong e.pubkey maxPubkeyLen) && not (tooLong e.server maxServerNameLen) && not (isBadServerName e.server)
514512 let server = normalizeServerName e.server
515− where not (server == serverHostN)
516− where e.timestamp <= t + clockSkewTolerance
513+ where not (server == serverHostN) && e.timestamp <= t + clockSkewTolerance
517514 let ttl = clampTtl e.ttl
518515 let expiresAt = e.timestamp + ttl * 1000
519516 where expiresAt > t
@@ -558,8 +555,7 @@ pruneExpired = \t -> do
558555 yield a
559556 yield {expiredLocal: (do
560557 p <- presenceBefore
561− where p.expiresAt <= t && p.server == serverHostN
562− where none presenceAfter (\q -> q.pubkey == p.pubkey && q.server == serverHostN)
558+ where p.expiresAt <= t && p.server == serverHostN && none presenceAfter (\q -> q.pubkey == p.pubkey && q.server == serverHostN)
563559 yield p), peerServers: peerServersBefore}
564560
565561maybePrune = \t -> do
@@ -578,7 +574,7 @@ forEachBatch = \items batchSize process ->
578574 process batch
579575 forEachBatch rest batchSize process
580576
581−sendBatchedGossipToServer : Text -> [GossipEvent] -> Int -> IO {network} {}
577+sendBatchedGossipToServer : ServerName -> [GossipEvent] -> Int -> IO {network} {}
582578sendBatchedGossipToServer = \server allEvents hops ->
583579 forEachBatch allEvents maxGossipEvents (\batch -> do
584580 _ <- fetch (federationScheme ++ server) (RecvGossip {
@@ -586,7 +582,7 @@ sendBatchedGossipToServer = \server allEvents hops ->
586582 events: batch, hopsRemaining: hops, fromServer: serverHostN})
587583 yield {})
588584
589−sendBatchedGossip : [Text] -> [GossipEvent] -> Int -> IO {network} {}
585+sendBatchedGossip : [ServerName] -> [GossipEvent] -> Int -> IO {network} {}
590586sendBatchedGossip = \peerServers allEvents hops ->
591587 sendToEach peerServers (\server -> sendBatchedGossipToServer server allEvents hops)
592588