Skip to content

Commit bf46ccd

Browse files
add an option for the swarm dial timeout
1 parent 9bb973c commit bf46ccd

File tree

4 files changed

+26
-4
lines changed

4 files changed

+26
-4
lines changed

config/config.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ type Config struct {
7474
Insecure bool
7575
PSK pnet.PSK
7676

77+
DialTimeout time.Duration
78+
7779
RelayCustom bool
7880
Relay bool // should the relay transport be used
7981

@@ -135,8 +137,18 @@ func (cfg *Config) makeSwarm() (*swarm.Swarm, error) {
135137
return nil, err
136138
}
137139

140+
opts := make([]swarm.Option, 0, 3)
141+
if cfg.Reporter != nil {
142+
opts = append(opts, swarm.WithMetrics(cfg.Reporter))
143+
}
144+
if cfg.ConnectionGater != nil {
145+
opts = append(opts, swarm.WithConnectionGater(cfg.ConnectionGater))
146+
}
147+
if cfg.DialTimeout != 0 {
148+
opts = append(opts, swarm.WithDialTimeout(cfg.DialTimeout))
149+
}
138150
// TODO: Make the swarm implementation configurable.
139-
return swarm.NewSwarm(pid, cfg.Peerstore, swarm.WithMetrics(cfg.Reporter), swarm.WithConnectionGater(cfg.ConnectionGater))
151+
return swarm.NewSwarm(pid, cfg.Peerstore, opts...)
140152
}
141153

142154
func (cfg *Config) addTransports(h host.Host) (err error) {

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ require (
3131
github.com/libp2p/go-libp2p-noise v0.3.0
3232
github.com/libp2p/go-libp2p-peerstore v0.6.0
3333
github.com/libp2p/go-libp2p-quic-transport v0.15.2
34-
github.com/libp2p/go-libp2p-swarm v0.9.0
34+
github.com/libp2p/go-libp2p-swarm v0.9.1-0.20211219154103-1de208c84b89
3535
github.com/libp2p/go-libp2p-testing v0.6.0
3636
github.com/libp2p/go-libp2p-tls v0.3.1
3737
github.com/libp2p/go-libp2p-transport-upgrader v0.6.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -458,8 +458,8 @@ github.com/libp2p/go-libp2p-quic-transport v0.15.2 h1:wHBEceRy+1/8Ec8dAIyr+/P7L2
458458
github.com/libp2p/go-libp2p-quic-transport v0.15.2/go.mod h1:wv4uGwjcqe8Mhjj7N/Ic0aKjA+/10UnMlSzLO0yRpYQ=
459459
github.com/libp2p/go-libp2p-swarm v0.3.0/go.mod h1:hdv95GWCTmzkgeJpP+GK/9D9puJegb7H57B5hWQR5Kk=
460460
github.com/libp2p/go-libp2p-swarm v0.8.0/go.mod h1:sOMp6dPuqco0r0GHTzfVheVBh6UEL0L1lXUZ5ot2Fvc=
461-
github.com/libp2p/go-libp2p-swarm v0.9.0 h1:LdWjHDVjPMYt3NCG2EHcQiIP8XzA8BHhHz8ZLAYol2Y=
462-
github.com/libp2p/go-libp2p-swarm v0.9.0/go.mod h1:2f8d8uxTJmpeqHF/1ujjdXZp+98nNIbujVOMEZxCbZ8=
461+
github.com/libp2p/go-libp2p-swarm v0.9.1-0.20211219154103-1de208c84b89 h1:ta6pS0U7c74sgpxvghR04DiielJrvmRzqOTJ7GRyXoI=
462+
github.com/libp2p/go-libp2p-swarm v0.9.1-0.20211219154103-1de208c84b89/go.mod h1:2f8d8uxTJmpeqHF/1ujjdXZp+98nNIbujVOMEZxCbZ8=
463463
github.com/libp2p/go-libp2p-testing v0.0.3/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E=
464464
github.com/libp2p/go-libp2p-testing v0.1.1/go.mod h1:xaZWMJrPUM5GlDBxCeGUi7kI4eqnjVyavGroI2nxEM0=
465465
github.com/libp2p/go-libp2p-testing v0.1.2-0.20200422005655-8775583591d8/go.mod h1:Qy8sAncLKpwXtS2dSnDOP8ktexIAHKu+J+pnZOFZLTc=

options.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,3 +461,13 @@ func EnableHolePunching(opts ...holepunch.Option) Option {
461461
return nil
462462
}
463463
}
464+
465+
func WithDialTimeout(t time.Duration) Option {
466+
return func(cfg *Config) error {
467+
if t <= 0 {
468+
return errors.New("dial timeout needs to be non-negative")
469+
}
470+
cfg.DialTimeout = t
471+
return nil
472+
}
473+
}

0 commit comments

Comments
 (0)