From f5d736d107ccd1a2a9a4bf1b4b946f2906a48757 Mon Sep 17 00:00:00 2001 From: Fabio Barone Date: Mon, 24 Sep 2018 09:21:49 -0500 Subject: [PATCH] swarm/network/stream: Syncing flag for ChunkDeliveryMsg --- swarm/network/stream/delivery.go | 10 ++++++---- swarm/network/stream/messages.go | 3 ++- swarm/network/stream/peer.go | 7 ++++--- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/swarm/network/stream/delivery.go b/swarm/network/stream/delivery.go index 3c5e7fed9e..7a7eabcc4a 100644 --- a/swarm/network/stream/delivery.go +++ b/swarm/network/stream/delivery.go @@ -180,7 +180,8 @@ func (d *Delivery) handleRetrieveRequestMsg(ctx context.Context, sp *Peer, req * return } if req.SkipCheck { - err = sp.Deliver(ctx, chunk, s.priority) + syncing := false + err = sp.Deliver(ctx, chunk, s.priority, syncing) if err != nil { log.Warn("ERROR in handleRetrieveRequestMsg", "err", err) } @@ -197,9 +198,10 @@ func (d *Delivery) handleRetrieveRequestMsg(ctx context.Context, sp *Peer, req * } type ChunkDeliveryMsg struct { - Addr storage.Address - SData []byte // the stored chunk Data (incl size) - peer *Peer // set in handleChunkDeliveryMsg + Addr storage.Address + SData []byte // the stored chunk Data (incl size) + peer *Peer // set in handleChunkDeliveryMsg + Syncing bool // if true, this is a delivery for syncing (no SWAP accounting needed) } // TODO: Fix context SNAFU diff --git a/swarm/network/stream/messages.go b/swarm/network/stream/messages.go index 74c785d587..636c995a70 100644 --- a/swarm/network/stream/messages.go +++ b/swarm/network/stream/messages.go @@ -347,7 +347,8 @@ func (p *Peer) handleWantedHashesMsg(ctx context.Context, req *WantedHashesMsg) return fmt.Errorf("handleWantedHashesMsg get data %x: %v", hash, err) } chunk := storage.NewChunk(hash, data) - if err := p.Deliver(ctx, chunk, s.priority); err != nil { + syncing := true + if err := p.Deliver(ctx, chunk, s.priority, syncing); err != nil { return err } } diff --git a/swarm/network/stream/peer.go b/swarm/network/stream/peer.go index f7ad57b032..d0a32b0b5f 100644 --- a/swarm/network/stream/peer.go +++ b/swarm/network/stream/peer.go @@ -130,7 +130,7 @@ func NewPeer(peer *protocols.Peer, streamer *Registry) *Peer { } // Deliver sends a storeRequestMsg protocol message to the peer -func (p *Peer) Deliver(ctx context.Context, chunk storage.Chunk, priority uint8) error { +func (p *Peer) Deliver(ctx context.Context, chunk storage.Chunk, priority uint8, syncing bool) error { var sp opentracing.Span ctx, sp = spancontext.StartSpan( ctx, @@ -138,8 +138,9 @@ func (p *Peer) Deliver(ctx context.Context, chunk storage.Chunk, priority uint8) defer sp.Finish() msg := &ChunkDeliveryMsg{ - Addr: chunk.Address(), - SData: chunk.Data(), + Addr: chunk.Address(), + SData: chunk.Data(), + Syncing: syncing, } return p.SendPriority(ctx, msg, priority) }