From fe3508881b9d1f8980d2bbeeb6087708c66564a6 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Sun, 29 Sep 2024 17:02:19 -0300 Subject: [PATCH] in the last commits we had forgotten to handle the case in which there was no WithLabel(). --- relay.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/relay.go b/relay.go index 4f9166b..4f6cb4b 100644 --- a/relay.go +++ b/relay.go @@ -409,18 +409,23 @@ func (r *Relay) PrepareSubscription(ctx context.Context, filters Filters, opts . match: filters.Match, } + label := "" for _, opt := range opts { switch o := opt.(type) { case WithLabel: - buf := subIdPool.Get().([]byte)[:0] - buf = strconv.AppendInt(buf, sub.counter, 10) - buf = append(buf, ':') - buf = append(buf, string(o)...) - defer subIdPool.Put(buf) - sub.id = string(buf) + label = string(o) } } + // subscription id calculation + buf := subIdPool.Get().([]byte)[:0] + buf = strconv.AppendInt(buf, sub.counter, 10) + buf = append(buf, ':') + buf = append(buf, label...) + defer subIdPool.Put(buf) + sub.id = string(buf) + + // we track subscriptions only by their counter, no need for the full id r.Subscriptions.Store(int64(sub.counter), sub) // start handling events, eose, unsub etc: