From 0ba8b2caeb0828fd3c6947a6706f0cd9b2aeb8f4 Mon Sep 17 00:00:00 2001 From: harsh jain Date: Thu, 26 Oct 2023 05:06:44 +0700 Subject: [PATCH] fix(filter-subscribe): params.selectedPeer not set (#836) * fix(filter-subscribe): params.selectedPeer not set --- waku/v2/protocol/filter/client.go | 17 ++++++++++++++--- waku/v2/protocol/filter/options.go | 7 +++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/waku/v2/protocol/filter/client.go b/waku/v2/protocol/filter/client.go index bca7ec36..5e49b1a6 100644 --- a/waku/v2/protocol/filter/client.go +++ b/waku/v2/protocol/filter/client.go @@ -311,7 +311,14 @@ func (wf *WakuFilterLightNode) Subscribe(ctx context.Context, contentFilter prot cFilter.PubsubTopic = pubSubTopic cFilter.ContentTopics = protocol.NewContentTopicSet(cTopics...) - err := wf.request(ctx, params, pb.FilterSubscribeRequest_SUBSCRIBE, cFilter) + paramsCopy := params.Copy() + paramsCopy.selectedPeer = selectedPeer + err := wf.request( + ctx, + paramsCopy, + pb.FilterSubscribeRequest_SUBSCRIBE, + cFilter, + ) if err != nil { wf.log.Error("Failed to subscribe", zap.String("pubSubTopic", pubSubTopic), zap.Strings("contentTopics", cTopics), zap.Error(err)) @@ -532,7 +539,9 @@ func (wf *WakuFilterLightNode) UnsubscribeWithSubscription(ctx context.Context, if !wf.subscriptions.Has(sub.PeerID, sub.ContentFilter) { // Last sub for this [peer, contentFilter] pair - err = wf.unsubscribeFromServer(ctx, &FilterSubscribeParameters{selectedPeer: sub.PeerID, requestID: params.requestID}, sub.ContentFilter) + paramsCopy := params.Copy() + paramsCopy.selectedPeer = sub.PeerID + err = wf.unsubscribeFromServer(ctx, paramsCopy, sub.ContentFilter) resultChan <- WakuFilterPushResult{ Err: err, PeerID: sub.PeerID, @@ -586,9 +595,11 @@ func (wf *WakuFilterLightNode) unsubscribeAll(ctx context.Context, opts ...Filte } }() + paramsCopy := params.Copy() + paramsCopy.selectedPeer = peerID err := wf.request( ctx, - &FilterSubscribeParameters{selectedPeer: peerID, requestID: params.requestID}, + params, pb.FilterSubscribeRequest_UNSUBSCRIBE_ALL, protocol.ContentFilter{}) if err != nil { diff --git a/waku/v2/protocol/filter/options.go b/waku/v2/protocol/filter/options.go index d73bee91..038d2b57 100644 --- a/waku/v2/protocol/filter/options.go +++ b/waku/v2/protocol/filter/options.go @@ -11,6 +11,13 @@ import ( "go.uber.org/zap" ) +func (old *FilterSubscribeParameters) Copy() *FilterSubscribeParameters { + return &FilterSubscribeParameters{ + selectedPeer: old.selectedPeer, + requestID: old.requestID, + } +} + type ( FilterSubscribeParameters struct { selectedPeer peer.ID