@@ -569,8 +569,10 @@ forwardQueuedToServer : PubkeyHex -> ServerName -> IO {rw *forwards, r *messages
569569forwardQueuedToServer = \pubkey server -> atomic (do
570570 msgs <- *messages
571571 fwds <- *forwards
572+ let existing = count (filter (\f -> f.toServer == server) fwds)
573+ let budget = max 0 (maxForwardsPerServer - existing)
572574 let candidates = filter (\m -> m.toKey == pubkey && not any (forwardMatches m.encryptedBlob server) fwds) msgs
573− let newFwds = map (\m -> {toServer: server, m.toKey, m.encryptedBlob, retries: 0}) (take maxForwardsPerServer candidates)
575+ let newFwds = map (\m -> {toServer: server, m.toKey, m.encryptedBlob, retries: 0}) (take budget candidates)
574576 *forwards = union fwds newFwds)
575577
576578-- ============================================