From df38038bc03b23f7bd89fc7164aff5d21f1825b7 Mon Sep 17 00:00:00 2001 From: Richard Ramos Date: Thu, 20 Oct 2022 09:42:01 -0400 Subject: [PATCH] feat: allow lightpush to be used as client always --- go.mod | 2 ++ go.sum | 3 +++ waku/v2/protocol/lightpush/waku_lightpush.go | 14 ++++++++------ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 8544d59b..8b49ba0d 100644 --- a/go.mod +++ b/go.mod @@ -130,6 +130,7 @@ require ( github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 // indirect github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_golang v1.13.0 // indirect github.com/prometheus/client_model v0.2.0 // indirect github.com/prometheus/common v0.37.0 // indirect @@ -163,5 +164,6 @@ require ( gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect lukechampine.com/blake3 v1.1.7 // indirect ) diff --git a/go.sum b/go.sum index dadfd920..89a3ef7f 100644 --- a/go.sum +++ b/go.sum @@ -1267,6 +1267,7 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= @@ -1453,6 +1454,7 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stvp/go-udp-testing v0.0.0-20201019212854-469649b16807/go.mod h1:7jxmlfBCDBXRzr0eAQJ48XC1hBu1np4CS5+cHEYfwpc= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= @@ -2279,6 +2281,7 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/postgres v1.0.8/go.mod h1:4eOzrI1MUfm6ObJU/UcmbXyiHSs8jSwH95G5P5dxcAg= gorm.io/gorm v1.20.12/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= diff --git a/waku/v2/protocol/lightpush/waku_lightpush.go b/waku/v2/protocol/lightpush/waku_lightpush.go index b2b6578b..aff73f36 100644 --- a/waku/v2/protocol/lightpush/waku_lightpush.go +++ b/waku/v2/protocol/lightpush/waku_lightpush.go @@ -49,7 +49,7 @@ func NewWakuLightPush(ctx context.Context, h host.Host, relay *relay.WakuRelay, // Start inits the lighpush protocol func (wakuLP *WakuLightPush) Start() error { - if wakuLP.IsClientOnly() { + if wakuLP.relayIsNotAvailable() { return errors.New("relay is required, without it, it is only a client and cannot be started") } @@ -60,8 +60,8 @@ func (wakuLP *WakuLightPush) Start() error { return nil } -// IsClientOnly determines if this node supports relaying messages for other lightpush clients -func (wakuLp *WakuLightPush) IsClientOnly() bool { +// relayIsNotAvailable determines if this node supports relaying messages for other lightpush clients +func (wakuLp *WakuLightPush) relayIsNotAvailable() bool { return wakuLp.relay == nil } @@ -85,7 +85,7 @@ func (wakuLP *WakuLightPush) onRequest(s network.Stream) { if requestPushRPC.Query != nil { logger.Info("push request") response := new(pb.PushResponse) - if !wakuLP.IsClientOnly() { + if !wakuLP.relayIsNotAvailable() { pubSubTopic := requestPushRPC.Query.PubsubTopic message := requestPushRPC.Query.Message @@ -203,8 +203,10 @@ func (wakuLP *WakuLightPush) IsStarted() bool { // Stop unmounts the lightpush protocol func (wakuLP *WakuLightPush) Stop() { - wakuLP.h.RemoveStreamHandler(LightPushID_v20beta1) - wakuLP.started = false + if wakuLP.started { + wakuLP.h.RemoveStreamHandler(LightPushID_v20beta1) + wakuLP.started = false + } } // PublishToTopic is used to broadcast a WakuMessage to a pubsub topic via lightpush protocol