mirror of
https://github.com/mudler/edgevpn.git
synced 2025-09-26 21:01:44 +08:00
add support for custom p2p node listen maddrs and dht announce maddrs (#799)
This commit is contained in:
12
cmd/util.go
12
cmd/util.go
@@ -45,6 +45,16 @@ var CommonFlags []cli.Flag = []cli.Flag{
|
||||
Usage: "Specify a path to a edgevpn config file",
|
||||
EnvVars: []string{"EDGEVPNCONFIG"},
|
||||
},
|
||||
&cli.StringSliceFlag{
|
||||
Name: "listen-maddrs",
|
||||
Usage: "Override default 0.0.0.0 listen multiaddresses",
|
||||
EnvVars: []string{"EDGEVPNLISTENMADDRS"},
|
||||
},
|
||||
&cli.StringSliceFlag{
|
||||
Name: "dht-announce-maddrs",
|
||||
Usage: "Override listen-maddrs on DHT announce",
|
||||
EnvVars: []string{"EDGEVPNDHTANNOUNCEMADDRS"},
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "timeout",
|
||||
Usage: "Specify a default timeout for connection stream",
|
||||
@@ -407,6 +417,8 @@ func ConfigFromContext(c *cli.Context) *config.Config {
|
||||
return &config.Config{
|
||||
NetworkConfig: c.String("config"),
|
||||
NetworkToken: c.String("token"),
|
||||
ListenMaddrs: (c.StringSlice("listen-maddrs")),
|
||||
DHTAnnounceMaddrs: stringsToMultiAddr(c.StringSlice("dht-announce-maddrs")),
|
||||
Address: c.String("address"),
|
||||
Router: c.String("router"),
|
||||
Interface: c.String("interface"),
|
||||
|
@@ -47,6 +47,8 @@ import (
|
||||
type Config struct {
|
||||
NetworkConfig, NetworkToken string
|
||||
Address string
|
||||
ListenMaddrs []string
|
||||
DHTAnnounceMaddrs []multiaddr.Multiaddr
|
||||
Router string
|
||||
Interface string
|
||||
Libp2pLogLevel, LogLevel string
|
||||
@@ -204,10 +206,20 @@ func (c Config) ToOpts(l *logger.Logger) ([]node.Option, []vpn.Option, error) {
|
||||
if c.LowProfile {
|
||||
dhtOpts = append(dhtOpts, dht.BucketSize(20))
|
||||
}
|
||||
if len(c.DHTAnnounceMaddrs) > 0 {
|
||||
dhtOpts = append(dhtOpts, dht.AddressFilter(
|
||||
func(m []multiaddr.Multiaddr) []multiaddr.Multiaddr {
|
||||
return c.DHTAnnounceMaddrs
|
||||
},
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
d := discovery.NewDHT(dhtOpts...)
|
||||
m := &discovery.MDNS{}
|
||||
|
||||
opts := []node.Option{
|
||||
node.ListenAddresses(c.ListenMaddrs...),
|
||||
node.WithDiscoveryInterval(c.Discovery.Interval),
|
||||
node.WithLedgerAnnounceTime(c.Ledger.AnnounceInterval),
|
||||
node.WithLedgerInterval(c.Ledger.SyncInterval),
|
||||
|
Reference in New Issue
Block a user