Skip to content
This repository was archived by the owner on May 26, 2022. It is now read-only.

Commit 51da4b6

Browse files
authoredApr 10, 2019
Merge pull request #116 from libp2p/feat/no-dial-option
Add context option to disable dialing when opening a new stream
2 parents 87b9a9c + 6292467 commit 51da4b6

File tree

4 files changed

+17
-1
lines changed

4 files changed

+17
-1
lines changed
 

‎go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ require (
99
github.com/libp2p/go-libp2p-crypto v0.0.1
1010
github.com/libp2p/go-libp2p-loggables v0.0.1
1111
github.com/libp2p/go-libp2p-metrics v0.0.1
12-
github.com/libp2p/go-libp2p-net v0.0.1
12+
github.com/libp2p/go-libp2p-net v0.0.2
1313
github.com/libp2p/go-libp2p-peer v0.0.1
1414
github.com/libp2p/go-libp2p-peerstore v0.0.1
1515
github.com/libp2p/go-libp2p-protocol v0.0.1

‎go.sum

+2
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lw
8080
github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08=
8181
github.com/libp2p/go-libp2p-net v0.0.1 h1:xJ4Vh4yKF/XKb8fd1Ev0ebAGzVjMxXzrxG2kjtU+F5Q=
8282
github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c=
83+
github.com/libp2p/go-libp2p-net v0.0.2 h1:qP06u4TYXfl7uW/hzqPhlVVTSA2nw1B/bHBJaUnbh6M=
84+
github.com/libp2p/go-libp2p-net v0.0.2/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c=
8385
github.com/libp2p/go-libp2p-peer v0.0.1 h1:0qwAOljzYewINrU+Kndoc+1jAL7vzY/oY2Go4DCGfyY=
8486
github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo=
8587
github.com/libp2p/go-libp2p-peerstore v0.0.1 h1:twKovq8YK5trLrd3nB7PD2Zu9JcyAIdm7Bz9yBWjhq8=

‎swarm.go

+4
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,10 @@ func (s *Swarm) NewStream(ctx context.Context, p peer.ID) (inet.Stream, error) {
295295
for {
296296
c := s.bestConnToPeer(p)
297297
if c == nil {
298+
if nodial, _ := inet.GetNoDial(ctx); nodial {
299+
return nil, inet.ErrNoConn
300+
}
301+
298302
if dials >= DialAttempts {
299303
return nil, errors.New("max dial attempts exceeded")
300304
}

‎swarm_test.go

+10
Original file line numberDiff line numberDiff line change
@@ -335,3 +335,13 @@ func TestFilterBounds(t *testing.T) {
335335
t.Log("got connect")
336336
}
337337
}
338+
339+
func TestNoDial(t *testing.T) {
340+
ctx := context.Background()
341+
swarms := makeSwarms(ctx, t, 2)
342+
343+
_, err := swarms[0].NewStream(inet.WithNoDial(ctx, "swarm test"), swarms[1].LocalPeer())
344+
if err != inet.ErrNoConn {
345+
t.Fatal("should have failed with ErrNoConn")
346+
}
347+
}

0 commit comments

Comments
 (0)
This repository has been archived.