aboutsummaryrefslogtreecommitdiffstats
path: root/whisper
diff options
context:
space:
mode:
authorVlad <gluk256@gmail.com>2018-02-23 21:52:25 +0800
committerVlad <gluk256@gmail.com>2018-02-23 21:52:25 +0800
commit6919c36432226a9d86dbe4a65ed9563dd42a4e08 (patch)
treeebfae50c5cca6b9d734d7a86bfc1c0b83012993e /whisper
parentb677a07d36c957c4221bae952189559ac0c70537 (diff)
downloaddexon-6919c36432226a9d86dbe4a65ed9563dd42a4e08.tar.gz
dexon-6919c36432226a9d86dbe4a65ed9563dd42a4e08.tar.zst
dexon-6919c36432226a9d86dbe4a65ed9563dd42a4e08.zip
whisper: refactoring
Diffstat (limited to 'whisper')
-rw-r--r--whisper/whisperv5/api.go23
-rw-r--r--whisper/whisperv6/api.go26
-rw-r--r--whisper/whisperv6/whisper.go5
3 files changed, 3 insertions, 51 deletions
diff --git a/whisper/whisperv5/api.go b/whisper/whisperv5/api.go
index b4494d0d6..ee566625c 100644
--- a/whisper/whisperv5/api.go
+++ b/whisper/whisperv5/api.go
@@ -60,32 +60,9 @@ func NewPublicWhisperAPI(w *Whisper) *PublicWhisperAPI {
w: w,
lastUsed: make(map[string]time.Time),
}
-
- go api.run()
return api
}
-// run the api event loop.
-// this loop deletes filter that have not been used within filterTimeout
-func (api *PublicWhisperAPI) run() {
- timeout := time.NewTicker(2 * time.Minute)
- for {
- <-timeout.C
-
- api.mu.Lock()
- for id, lastUsed := range api.lastUsed {
- if time.Since(lastUsed).Seconds() >= filterTimeout {
- delete(api.lastUsed, id)
- if err := api.w.Unsubscribe(id); err != nil {
- log.Error("could not unsubscribe whisper filter", "error", err)
- }
- log.Debug("delete whisper filter (timeout)", "id", id)
- }
- }
- api.mu.Unlock()
- }
-}
-
// Version returns the Whisper sub-protocol version.
func (api *PublicWhisperAPI) Version(ctx context.Context) string {
return ProtocolVersionStr
diff --git a/whisper/whisperv6/api.go b/whisper/whisperv6/api.go
index f3d9977fa..96e2b17e7 100644
--- a/whisper/whisperv6/api.go
+++ b/whisper/whisperv6/api.go
@@ -61,32 +61,9 @@ func NewPublicWhisperAPI(w *Whisper) *PublicWhisperAPI {
w: w,
lastUsed: make(map[string]time.Time),
}
-
- go api.run()
return api
}
-// run the api event loop.
-// this loop deletes filter that have not been used within filterTimeout
-func (api *PublicWhisperAPI) run() {
- timeout := time.NewTicker(2 * time.Minute)
- for {
- <-timeout.C
-
- api.mu.Lock()
- for id, lastUsed := range api.lastUsed {
- if time.Since(lastUsed).Seconds() >= filterTimeout {
- delete(api.lastUsed, id)
- if err := api.w.Unsubscribe(id); err != nil {
- log.Error("could not unsubscribe whisper filter", "error", err)
- }
- log.Debug("delete whisper filter (timeout)", "id", id)
- }
- }
- api.mu.Unlock()
- }
-}
-
// Version returns the Whisper sub-protocol version.
func (api *PublicWhisperAPI) Version(ctx context.Context) string {
return ProtocolVersionStr
@@ -219,7 +196,8 @@ func (api *PublicWhisperAPI) DeleteSymKey(ctx context.Context, id string) bool {
return api.w.DeleteSymKey(id)
}
-// MakeLightClient turns the node into light client, which does not forward any incoming messages.
+// MakeLightClient turns the node into light client, which does not forward
+// any incoming messages, and sends only messages originated in this node.
func (api *PublicWhisperAPI) MakeLightClient(ctx context.Context) bool {
api.w.lightClient = true
return api.w.lightClient
diff --git a/whisper/whisperv6/whisper.go b/whisper/whisperv6/whisper.go
index e0ed00bb5..b0b601f03 100644
--- a/whisper/whisperv6/whisper.go
+++ b/whisper/whisperv6/whisper.go
@@ -590,10 +590,7 @@ func (whisper *Whisper) Unsubscribe(id string) error {
// network in the coming cycles.
func (whisper *Whisper) Send(envelope *Envelope) error {
ok, err := whisper.add(envelope, false)
- if err != nil {
- return err
- }
- if !ok {
+ if err == nil && !ok {
return fmt.Errorf("failed to add envelope")
}
return err