From e618742c59dd9ab48322658063d880204691c7ab Mon Sep 17 00:00:00 2001 From: Vlad Date: Mon, 23 Jan 2017 22:25:17 +0100 Subject: [PATCH] whisper: refactoring and cleanup --- cmd/wnode/main.go | 30 +++++++----------------------- whisper/mailserver/mailserver.go | 2 +- whisper/whisperv5/envelope.go | 4 ---- 3 files changed, 8 insertions(+), 28 deletions(-) diff --git a/cmd/wnode/main.go b/cmd/wnode/main.go index cd4f1fa7d8..cbf093aa7e 100644 --- a/cmd/wnode/main.go +++ b/cmd/wnode/main.go @@ -48,18 +48,16 @@ import ( "golang.org/x/crypto/pbkdf2" ) -const ( - quitCommand = "~Q" - enodePrefix = "enode://" -) +const quitCommand = "~Q" // singletons var ( server *p2p.Server shh *whisper.Whisper done chan struct{} - input *bufio.Reader = bufio.NewReader(os.Stdin) mailServer mailserver.WMailServer + + input = bufio.NewReader(os.Stdin) ) // encryption @@ -115,6 +113,7 @@ func processArgs() { } } + const enodePrefix = "enode://" if len(*argEnode) > 0 { if (*argEnode)[:len(enodePrefix)] != enodePrefix { *argEnode = enodePrefix + *argEnode @@ -529,25 +528,10 @@ func requestExpiredMessagesLoop() { } func extractIdFromEnode(s string) []byte { - if len(s) == 0 { - return nil - } - - p := len(enodePrefix) - if s[:p] == enodePrefix { - s = s[p:] - } - - i := strings.Index(s, "@") - if i > 0 { - s = s[:i] - } - - b, err := hex.DecodeString(s) + n, err := discover.ParseNode(s) if err != nil { - utils.Fatalf("Failed to decode enode: %s", err) + utils.Fatalf("Failed to parse enode: %s", err) return nil } - - return b + return n.ID[:] } diff --git a/whisper/mailserver/mailserver.go b/whisper/mailserver/mailserver.go index a7e67dbf08..f7d6c3e5c1 100644 --- a/whisper/mailserver/mailserver.go +++ b/whisper/mailserver/mailserver.go @@ -116,7 +116,7 @@ func (s *WMailServer) DeliverMail(peer *whisper.Peer, request *whisper.Envelope) for i.Next() { var envelope whisper.Envelope - err = envelope.DecodeBytes(i.Value()) + err = rlp.DecodeBytes(i.Value(), &envelope) if err != nil { glog.V(logger.Error).Infof("RLP decoding failed: %s", err) } diff --git a/whisper/whisperv5/envelope.go b/whisper/whisperv5/envelope.go index 3c94ffbdaa..1b976705d4 100644 --- a/whisper/whisperv5/envelope.go +++ b/whisper/whisperv5/envelope.go @@ -172,10 +172,6 @@ func (e *Envelope) DecodeRLP(s *rlp.Stream) error { if err != nil { return err } - return e.DecodeBytes(raw) -} - -func (e *Envelope) DecodeBytes(raw []byte) error { // The decoding of Envelope uses the struct fields but also needs // to compute the hash of the whole RLP-encoded envelope. This // type has the same structure as Envelope but is not an