diff --git a/p2p/net/swarm/swarm_conn.go b/p2p/net/swarm/swarm_conn.go index 4b13be54f1..0b0c626cea 100644 --- a/p2p/net/swarm/swarm_conn.go +++ b/p2p/net/swarm/swarm_conn.go @@ -92,7 +92,13 @@ func (c *Conn) Close() error { } func (c *Conn) GetStreams() ([]inet.Stream, error) { - return nil, fmt.Errorf("GetStreams() not yet implemented") + ss := c.StreamConn().Streams() + out := make([]inet.Stream, len(ss)) + + for i, s := range ss { + out[i] = (*Stream)(s) + } + return out, nil } func wrapConn(psc *ps.Conn) (*Conn, error) { diff --git a/p2p/net/swarm/swarm_net_test.go b/p2p/net/swarm/swarm_net_test.go index ff13934088..95bc268307 100644 --- a/p2p/net/swarm/swarm_net_test.go +++ b/p2p/net/swarm/swarm_net_test.go @@ -165,6 +165,15 @@ func TestNetworkOpenStream(t *testing.T) { t.Fatal(err) } + streams, err := nets[0].ConnsToPeer(nets[1].LocalPeer())[0].GetStreams() + if err != nil { + t.Fatal(err) + } + + if len(streams) != 1 { + t.Fatal("should only have one stream there") + } + _, err = s.Write([]byte("hello ipfs")) if err != nil { t.Fatal(err)