Skip to content

Commit c9a7d60

Browse files
committed
remove event from expiration manager if it is deleted.
1 parent 2bb6d4d commit c9a7d60

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

deleting.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ func (rl *Relay) handleDeleteRequest(ctx context.Context, evt *nostr.Event) erro
6767
return err
6868
}
6969
}
70+
71+
// if it was tracked to be expired that is not needed anymore
72+
rl.expirationManager.removeEvent(target.ID)
7073
} else {
7174
// fail and stop here
7275
return fmt.Errorf("blocked: %s", msg)

expiration.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,3 +134,16 @@ func (em *expirationManager) trackEvent(evt *nostr.Event) {
134134
em.mu.Unlock()
135135
}
136136
}
137+
138+
func (em *expirationManager) removeEvent(id string) {
139+
em.mu.Lock()
140+
defer em.mu.Unlock()
141+
142+
// Find and remove the event from the heap
143+
for i := 0; i < len(em.events); i++ {
144+
if em.events[i].id == id {
145+
heap.Remove(&em.events, i)
146+
break
147+
}
148+
}
149+
}

0 commit comments

Comments
 (0)