@@ -12,6 +12,7 @@ import (
1212 "testing"
1313 "time"
1414
15+ "github.com/coreos/go-semver/semver"
1516 "github.com/ethersphere/bee/v2/pkg/p2p"
1617 "github.com/ethersphere/bee/v2/pkg/spinlock"
1718 "github.com/ethersphere/bee/v2/pkg/swarm"
@@ -122,10 +123,12 @@ func (r *Recorder) NewStream(ctx context.Context, addr swarm.Address, h p2p.Head
122123 }
123124 }
124125
126+ version , versionErr := semver .NewVersion (protocolVersion )
127+
125128 recordIn := newRecord (r .messageLatency )
126129 recordOut := newRecord (r .messageLatency )
127- streamOut := newStream (recordIn , recordOut )
128- streamIn := newStream (recordOut , recordIn )
130+ streamOut := newStream (recordIn , recordOut , version , versionErr )
131+ streamIn := newStream (recordOut , recordIn , version , versionErr )
129132
130133 var handler p2p.HandlerFunc
131134 var headler p2p.HeadlerFunc
@@ -260,10 +263,12 @@ type stream struct {
260263 responseHeaders p2p.Headers
261264 closed bool
262265 lock sync.Mutex
266+ version * semver.Version
267+ versionErr error
263268}
264269
265- func newStream (in , out * record ) * stream {
266- return & stream {in : in , out : out }
270+ func newStream (in , out * record , version * semver. Version , versionErr error ) * stream {
271+ return & stream {in : in , out : out , version : version , versionErr : versionErr }
267272}
268273
269274func (s * stream ) Read (p []byte ) (int , error ) {
@@ -290,6 +295,10 @@ func (s *stream) ResponseHeaders() p2p.Headers {
290295 return s .responseHeaders
291296}
292297
298+ func (s * stream ) Version () (* semver.Version , error ) {
299+ return s .version , s .versionErr
300+ }
301+
293302func (s * stream ) Close () error {
294303 s .lock .Lock ()
295304 defer s .lock .Unlock ()
0 commit comments