From 3bc192a7d523fcf953c15f31b60e8a29bd19ce00 Mon Sep 17 00:00:00 2001 From: Till Faelligen Date: Thu, 28 Apr 2022 16:06:08 +0200 Subject: [PATCH] Use map[string]time.Duration to specify different expiry times --- federationapi/storage/shared/storage_edus.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/federationapi/storage/shared/storage_edus.go b/federationapi/storage/shared/storage_edus.go index 8a6e4abc5..8bb43a2d1 100644 --- a/federationapi/storage/shared/storage_edus.go +++ b/federationapi/storage/shared/storage_edus.go @@ -27,10 +27,9 @@ import ( // expireEDUTypes contains EDUs which can/should be expired after a given time // if the target server isn't reachable for some reason. -var expireEDUTypes = map[string]struct{}{ - gomatrixserverlib.MTyping: {}, - gomatrixserverlib.MPresence: {}, - gomatrixserverlib.MReceipt: {}, +var expireEDUTypes = map[string]time.Duration{ + gomatrixserverlib.MTyping: time.Minute, + gomatrixserverlib.MPresence: time.Minute * 10, } // AssociateEDUWithDestination creates an association that the @@ -43,9 +42,9 @@ func (d *Database) AssociateEDUWithDestination( eduType string, ) error { var expiresAt *gomatrixserverlib.Timestamp - if _, ok := expireEDUTypes[eduType]; ok { - // Keep EDUs for at least one hour before deleting them - ts := gomatrixserverlib.AsTimestamp(time.Now().Add(time.Hour)) + if duration, ok := expireEDUTypes[eduType]; ok { + // Keep EDUs for at least x minutes before deleting them + ts := gomatrixserverlib.AsTimestamp(time.Now().Add(duration)) expiresAt = &ts } return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {