Skip to content

Commit

Permalink
fix: stop subscription if ctx is cancelled during connection
Browse files Browse the repository at this point in the history
  • Loading branch information
im-adithya committed Aug 27, 2024
1 parent d529dcc commit 333d4ff
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions internal/nostr/nostr.go
Original file line number Diff line number Diff line change
Expand Up @@ -702,12 +702,18 @@ func (svc *Service) startSubscription(ctx context.Context, subscription *Subscri
waitToReconnectSeconds := 0

for {
// close relays with connection errors before connecting again
// because context expiration has no effect on relays
// TODO: Call relay.Connect on already initialized relays
// context expiration has no effect on relays
if relay != nil && relay.Connection != nil && isCustomRelay {
relay.Close()
}
if ctx.Err() != nil {
svc.Logger.WithFields(logrus.Fields{
"subscription_id": subscription.ID,
"relay_url": subscription.RelayUrl,
}).Debug("Context canceled, stopping subscription")
svc.stopSubscription(subscription)
return
}
time.Sleep(time.Duration(waitToReconnectSeconds) * time.Second)
relay, isCustomRelay, err = svc.getRelayConnection(ctx, subscription.RelayUrl)
if err != nil {
Expand Down

0 comments on commit 333d4ff

Please sign in to comment.