Skip to content

Commit adcf68b

Browse files
authored
add support for custom p2p node listen maddrs and dht announce maddrs (#799)
1 parent dc85272 commit adcf68b

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

cmd/util.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,16 @@ var CommonFlags []cli.Flag = []cli.Flag{
4545
Usage: "Specify a path to a edgevpn config file",
4646
EnvVars: []string{"EDGEVPNCONFIG"},
4747
},
48+
&cli.StringSliceFlag{
49+
Name: "listen-maddrs",
50+
Usage: "Override default 0.0.0.0 listen multiaddresses",
51+
EnvVars: []string{"EDGEVPNLISTENMADDRS"},
52+
},
53+
&cli.StringSliceFlag{
54+
Name: "dht-announce-maddrs",
55+
Usage: "Override listen-maddrs on DHT announce",
56+
EnvVars: []string{"EDGEVPNDHTANNOUNCEMADDRS"},
57+
},
4858
&cli.StringFlag{
4959
Name: "timeout",
5060
Usage: "Specify a default timeout for connection stream",
@@ -407,6 +417,8 @@ func ConfigFromContext(c *cli.Context) *config.Config {
407417
return &config.Config{
408418
NetworkConfig: c.String("config"),
409419
NetworkToken: c.String("token"),
420+
ListenMaddrs: (c.StringSlice("listen-maddrs")),
421+
DHTAnnounceMaddrs: stringsToMultiAddr(c.StringSlice("dht-announce-maddrs")),
410422
Address: c.String("address"),
411423
Router: c.String("router"),
412424
Interface: c.String("interface"),

pkg/config/config.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ import (
4747
type Config struct {
4848
NetworkConfig, NetworkToken string
4949
Address string
50+
ListenMaddrs []string
51+
DHTAnnounceMaddrs []multiaddr.Multiaddr
5052
Router string
5153
Interface string
5254
Libp2pLogLevel, LogLevel string
@@ -204,10 +206,20 @@ func (c Config) ToOpts(l *logger.Logger) ([]node.Option, []vpn.Option, error) {
204206
if c.LowProfile {
205207
dhtOpts = append(dhtOpts, dht.BucketSize(20))
206208
}
209+
if len(c.DHTAnnounceMaddrs) > 0 {
210+
dhtOpts = append(dhtOpts, dht.AddressFilter(
211+
func(m []multiaddr.Multiaddr) []multiaddr.Multiaddr {
212+
return c.DHTAnnounceMaddrs
213+
},
214+
),
215+
)
216+
}
217+
207218
d := discovery.NewDHT(dhtOpts...)
208219
m := &discovery.MDNS{}
209220

210221
opts := []node.Option{
222+
node.ListenAddresses(c.ListenMaddrs...),
211223
node.WithDiscoveryInterval(c.Discovery.Interval),
212224
node.WithLedgerAnnounceTime(c.Ledger.AnnounceInterval),
213225
node.WithLedgerInterval(c.Ledger.SyncInterval),

0 commit comments

Comments
 (0)