on master help sign in
Fix bug #4: scope forkForwardsTo cleanup to (toKey, encryptedBlob), not blob alone
3265616iko
server.knot+2−2
@@ -792,10 +792,10 @@ forkForwardsTo = \to encryptedBlob servers -> forEach servers (\server -> do
792 *forwards = remaining
792 *forwards = remaining
793 pres <- *presence
793 pres <- *presence
794 let stillLocal = hasLocalPresence pres to t
794 let stillLocal = hasLocalPresence pres to t
795− let othersPending = any (\x -> x.encryptedBlob == encryptedBlob) remaining
795+ let othersPending = any (\x -> x.toKey == to && x.encryptedBlob == encryptedBlob) remaining
796 when (not (stillLocal || othersPending)) (do
796 when (not (stillLocal || othersPending)) (do
797 msgs <- *messages
797 msgs <- *messages
798− *messages = filter (\m -> m.encryptedBlob != encryptedBlob) msgs)))
798+ *messages = filter (\m -> not (m.toKey == to && m.encryptedBlob == encryptedBlob)) msgs)))
799
799
800-- ============================================
800-- ============================================
801-- Handler: federation receive
801-- Handler: federation receive