Commit 5a704d2d authored by Cole Brown's avatar Cole Brown Committed by Steven Allen
Browse files

Add Stat to mock net conns and streams

parent 10a44085
...@@ -29,14 +29,16 @@ type conn struct { ...@@ -29,14 +29,16 @@ type conn struct {
rconn *conn // counterpart rconn *conn // counterpart
streams list.List streams list.List
proc process.Process proc process.Process
stat inet.Stat
sync.RWMutex sync.RWMutex
} }
func newConn(ln, rn *peernet, l *link) *conn { func newConn(ln, rn *peernet, l *link, dir inet.Direction) *conn {
c := &conn{net: ln, link: l} c := &conn{net: ln, link: l}
c.local = ln.peer c.local = ln.peer
c.remote = rn.peer c.remote = rn.peer
c.stat = inet.Stat{Direction: dir}
c.localAddr = ln.ps.Addrs(ln.peer)[0] c.localAddr = ln.ps.Addrs(ln.peer)[0]
c.remoteAddr = rn.ps.Addrs(rn.peer)[0] c.remoteAddr = rn.ps.Addrs(rn.peer)[0]
...@@ -155,3 +157,8 @@ func (c *conn) RemotePeer() peer.ID { ...@@ -155,3 +157,8 @@ func (c *conn) RemotePeer() peer.ID {
func (c *conn) RemotePublicKey() ic.PubKey { func (c *conn) RemotePublicKey() ic.PubKey {
return c.remotePubKey return c.remotePubKey
} }
// Stat returns metadata about the connection
func (c *conn) Stat() inet.Stat {
return c.stat
}
...@@ -33,8 +33,8 @@ func (l *link) newConnPair(dialer *peernet) (*conn, *conn) { ...@@ -33,8 +33,8 @@ func (l *link) newConnPair(dialer *peernet) (*conn, *conn) {
l.RLock() l.RLock()
defer l.RUnlock() defer l.RUnlock()
c1 := newConn(l.nets[0], l.nets[1], l) c1 := newConn(l.nets[0], l.nets[1], l, inet.DirOutbound)
c2 := newConn(l.nets[1], l.nets[0], l) c2 := newConn(l.nets[1], l.nets[0], l, inet.DirInbound)
c1.rconn = c2 c1.rconn = c2
c2.rconn = c1 c2.rconn = c1
...@@ -48,8 +48,8 @@ func (l *link) newStreamPair() (*stream, *stream) { ...@@ -48,8 +48,8 @@ func (l *link) newStreamPair() (*stream, *stream) {
ra, wb := io.Pipe() ra, wb := io.Pipe()
rb, wa := io.Pipe() rb, wa := io.Pipe()
sa := NewStream(wa, ra) sa := NewStream(wa, ra, inet.DirOutbound)
sb := NewStream(wb, rb) sb := NewStream(wb, rb, inet.DirInbound)
return sa, sb return sa, sb
} }
......
...@@ -25,6 +25,7 @@ type stream struct { ...@@ -25,6 +25,7 @@ type stream struct {
writeErr error writeErr error
protocol protocol.ID protocol protocol.ID
stat inet.Stat
} }
var ErrReset error = errors.New("stream reset") var ErrReset error = errors.New("stream reset")
...@@ -35,7 +36,7 @@ type transportObject struct { ...@@ -35,7 +36,7 @@ type transportObject struct {
arrivalTime time.Time arrivalTime time.Time
} }
func NewStream(w *io.PipeWriter, r *io.PipeReader) *stream { func NewStream(w *io.PipeWriter, r *io.PipeReader, dir inet.Direction) *stream {
s := &stream{ s := &stream{
read: r, read: r,
write: w, write: w,
...@@ -43,6 +44,7 @@ func NewStream(w *io.PipeWriter, r *io.PipeReader) *stream { ...@@ -43,6 +44,7 @@ func NewStream(w *io.PipeWriter, r *io.PipeReader) *stream {
close: make(chan struct{}, 1), close: make(chan struct{}, 1),
closed: make(chan struct{}), closed: make(chan struct{}),
toDeliver: make(chan *transportObject), toDeliver: make(chan *transportObject),
stat: inet.Stat{Direction: dir},
} }
go s.transport() go s.transport()
...@@ -66,6 +68,10 @@ func (s *stream) Protocol() protocol.ID { ...@@ -66,6 +68,10 @@ func (s *stream) Protocol() protocol.ID {
return s.protocol return s.protocol
} }
func (s *stream) Stat() inet.Stat {
return s.stat
}
func (s *stream) SetProtocol(proto protocol.ID) { func (s *stream) SetProtocol(proto protocol.ID) {
s.protocol = proto s.protocol = proto
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment