whisper: fix issues after rebase

This commit is contained in:
Guillaume Ballet 2018-04-21 19:56:31 +02:00
parent 2205d77508
commit 10e426d6f2
6 changed files with 19 additions and 15 deletions

View file

@ -22,6 +22,7 @@ package main
import (
"bufio"
"crypto/ecdsa"
crand "crypto/rand"
"crypto/sha512"
"encoding/binary"
"encoding/hex"
@ -87,6 +88,7 @@ var (
asymmetricMode = flag.Bool("asym", false, "use asymmetric encryption")
generateKey = flag.Bool("generatekey", false, "generate and show the private key")
fileExMode = flag.Bool("fileexchange", false, "file exchange mode")
fileReader = flag.Bool("filereader", false, "load and decrypt messages saved as files, display as plain text")
testMode = flag.Bool("test", false, "use of predefined parameters for diagnostics")
echoMode = flag.Bool("echo", false, "echo mode: prints some arguments for diagnostics")
@ -107,6 +109,7 @@ var (
argSaveDir = flag.String("savedir", "", "directory where incoming messages will be saved as files")
useLibP2P = flag.Bool("libp2p", false, "Use libp2p as the protocol layer")
useDeadlines = flag.Bool("deadlines", false, "When using libp2p, force deadline checking")
)
func main() {
@ -649,7 +652,6 @@ func messageLoop() {
printMessageInfo(msg)
reportedOnce = true
}
}
// All messages are saved upon specifying argSaveDir.
// fileExMode only specifies how messages are displayed on the console after they are saved.

View file

@ -17,7 +17,6 @@
package mailserver
import (
"bytes"
"encoding/binary"
"fmt"
@ -110,7 +109,7 @@ func (s *WMailServer) DeliverMail(peer whisper.Peer, request *whisper.Envelope)
ok, lower, upper, bloom := s.validateRequest([]byte(peer.ID()), request)
if ok {
s.processRequest(peer, lower, upper, topic)
s.processRequest(peer, lower, upper, bloom)
}
}

View file

@ -41,7 +41,7 @@ func newPeer(host *Whisper, remote *p2p.Peer, rw p2p.MsgReadWriter) Peer {
powRequirement: 0.0,
known: set.New(),
quit: make(chan struct{}),
bloomFilter: makeFullNodeBloom(),
bloomFilter: MakeFullNodeBloom(),
fullNode: true,
},
remote,

View file

@ -124,7 +124,7 @@ func newLibP2PPeer(s *LibP2PWhisperServer, w *Whisper, pid peer.ID, rw p2p.MsgRe
powRequirement: 0.0,
known: set.New(),
quit: make(chan struct{}),
bloomFilter: makeFullNodeBloom(),
bloomFilter: MakeFullNodeBloom(),
fullNode: true,
},
pid,

View file

@ -20,7 +20,6 @@ import (
"fmt"
"math"
"sync"
"time"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/log"
@ -82,19 +81,19 @@ func (peer *PeerBase) handshakeBase() error {
return err
}
if packet.Code != statusCode {
return fmt.Errorf("peer [%s] sent packet %x before status packet", peer.ID(), packet.Code)
return fmt.Errorf("sent packet %x before status packet", packet.Code)
}
s := rlp.NewStream(packet.Payload, uint64(packet.Size))
_, err = s.List()
if err != nil {
return fmt.Errorf("peer [%s] sent bad status message: %v", peer.ID(), err)
return fmt.Errorf("sent bad status message: %v", err)
}
peerVersion, err := s.Uint()
if err != nil {
return fmt.Errorf("peer [%s] sent bad status message (unable to decode version): %v", peer.ID(), err)
return fmt.Errorf("sent bad status message (unable to decode version): %v", err)
}
if peerVersion != ProtocolVersion {
return fmt.Errorf("peer [%s]: protocol version mismatch %d != %d", peer.ID(), peerVersion, ProtocolVersion)
return fmt.Errorf(": protocol version mismatch %d != %d", peerVersion, ProtocolVersion)
}
// only version is mandatory, subsequent parameters are optional
@ -102,7 +101,7 @@ func (peer *PeerBase) handshakeBase() error {
if err == nil {
pow := math.Float64frombits(powRaw)
if math.IsInf(pow, 0) || math.IsNaN(pow) || pow < 0.0 {
return fmt.Errorf("peer [%s] sent bad status message: invalid pow", peer.ID())
return fmt.Errorf("sent bad status message: invalid pow")
}
peer.powRequirement = pow
@ -111,14 +110,14 @@ func (peer *PeerBase) handshakeBase() error {
if err == nil {
sz := len(bloom)
if sz != BloomFilterSize && sz != 0 {
return fmt.Errorf("peer [%s] sent bad status message: wrong bloom filter size %d", peer.ID(), sz)
return fmt.Errorf("sent bad status message: wrong bloom filter size %d", sz)
}
peer.setBloomFilter(bloom)
}
}
if err := <-errc; err != nil {
return fmt.Errorf("peer [%s] failed to send status packet: %v", peer.ID(), err)
return fmt.Errorf("failed to send status packet: %v", err)
}
return nil
}

View file

@ -99,6 +99,10 @@ type Whisper struct {
mailServer MailServer // MailServer interface
}
type DevP2PBridge struct {
*Whisper
}
// New creates a Whisper client ready to communicate through the Ethereum P2P network.
func New(cfg *Config) *Whisper {
if cfg == nil {
@ -608,7 +612,7 @@ func (whisper *Whisper) Send(envelope *Envelope) error {
// Start implements node.Service, starting the background data propagation thread
// of the Whisper protocol.
func (whisper *Whisper) Start(WhisperServer) error {
func (whisper *Whisper) Start(/* WhisperServer*/ *p2p.Server) error {
log.Info("started whisper v." + ProtocolVersionStr)
go whisper.update()