diff options
author | holisticode <holistic.computing@gmail.com> | 2018-10-21 15:30:41 +0800 |
---|---|---|
committer | Viktor Trón <viktor.tron@gmail.com> | 2018-10-21 15:30:41 +0800 |
commit | 88b41a9e680a764aa079051aa7c71b3c6879d60a (patch) | |
tree | ede6da904a9791d2ecc7e3fa5ec9dfb3d91e5007 /swarm/network/stream/peer.go | |
parent | 66debd91d9268067000c061093a674ce34f18d48 (diff) | |
download | dexon-88b41a9e680a764aa079051aa7c71b3c6879d60a.tar dexon-88b41a9e680a764aa079051aa7c71b3c6879d60a.tar.gz dexon-88b41a9e680a764aa079051aa7c71b3c6879d60a.tar.bz2 dexon-88b41a9e680a764aa079051aa7c71b3c6879d60a.tar.lz dexon-88b41a9e680a764aa079051aa7c71b3c6879d60a.tar.xz dexon-88b41a9e680a764aa079051aa7c71b3c6879d60a.tar.zst dexon-88b41a9e680a764aa079051aa7c71b3c6879d60a.zip |
swarm/network/stream: disambiguate chunk delivery messages (retrieval… (#17920)
* swarm/network/stream: disambiguate chunk delivery messages (retrieval vs syncing)
* swarm/network/stream: addressed PR comments
* swarm/network/stream: stream protocol version change due to new message types in this PR
Diffstat (limited to 'swarm/network/stream/peer.go')
-rw-r--r-- | swarm/network/stream/peer.go | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/swarm/network/stream/peer.go b/swarm/network/stream/peer.go index 89d135ad5..4bccf56f5 100644 --- a/swarm/network/stream/peer.go +++ b/swarm/network/stream/peer.go @@ -128,17 +128,34 @@ 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 { +// Depending on the `syncing` parameter we send different message types +func (p *Peer) Deliver(ctx context.Context, chunk storage.Chunk, priority uint8, syncing bool) error { var sp opentracing.Span + var msg interface{} + + spanName := "send.chunk.delivery" + + //we send different types of messages if delivery is for syncing or retrievals, + //even if handling and content of the message are the same, + //because swap accounting decides which messages need accounting based on the message type + if syncing { + msg = &ChunkDeliveryMsgSyncing{ + Addr: chunk.Address(), + SData: chunk.Data(), + } + spanName += ".syncing" + } else { + msg = &ChunkDeliveryMsgRetrieval{ + Addr: chunk.Address(), + SData: chunk.Data(), + } + spanName += ".retrieval" + } ctx, sp = spancontext.StartSpan( ctx, - "send.chunk.delivery") + spanName) defer sp.Finish() - msg := &ChunkDeliveryMsg{ - Addr: chunk.Address(), - SData: chunk.Data(), - } return p.SendPriority(ctx, msg, priority) } |