Refactored code for NetworkDomain, added NetworkDomain.Prefix parameter to Mobile module

This commit is contained in:
vadym 2022-12-11 14:52:15 +02:00
parent 8da27aad4f
commit 56ed2bd629
8 changed files with 24 additions and 36 deletions

View file

@ -47,13 +47,17 @@ func (m *Mesh) StartJSON(configjson []byte) error {
if err := json.Unmarshal(configjson, &m.config); err != nil { if err := json.Unmarshal(configjson, &m.config); err != nil {
return err return err
} }
// Setup the Yggdrasil node itself. // Setup the Mesh node itself.
{ {
sk, err := hex.DecodeString(m.config.PrivateKey) sk, err := hex.DecodeString(m.config.PrivateKey)
if err != nil { if err != nil {
panic(err) panic(err)
} }
options := []core.SetupOption{} options := []core.SetupOption{
core.NodeInfo(m.config.NodeInfo),
core.NodeInfoPrivacy(m.config.NodeInfoPrivacy),
core.NetworkDomain(m.config.NetworkDomain),
}
for _, peer := range m.config.Peers { for _, peer := range m.config.Peers {
options = append(options, core.Peer{URI: peer}) options = append(options, core.Peer{URI: peer})
} }

View file

@ -8,6 +8,12 @@ type NetworkDomainConfig = config.NetworkDomainConfig
var defaultConfig = "" // LDFLAGS='-X github.com/yggdrasil-network/yggdrasil-go/src/defaults.defaultConfig=/path/to/config var defaultConfig = "" // LDFLAGS='-X github.com/yggdrasil-network/yggdrasil-go/src/defaults.defaultConfig=/path/to/config
var defaultAdminListen = "" // LDFLAGS='-X github.com/yggdrasil-network/yggdrasil-go/src/defaults.defaultAdminListen=unix://path/to/sock' var defaultAdminListen = "" // LDFLAGS='-X github.com/yggdrasil-network/yggdrasil-go/src/defaults.defaultAdminListen=unix://path/to/sock'
type defaultParameters struct {
//Network domain
DefaultNetworkDomain NetworkDomainConfig
}
// Defines which parameters are expected by default for configuration on a // Defines which parameters are expected by default for configuration on a
// specific platform. These values are populated in the relevant defaults_*.go // specific platform. These values are populated in the relevant defaults_*.go
// for the platform being targeted. They must be set. // for the platform being targeted. They must be set.
@ -21,15 +27,23 @@ type platformDefaultParameters struct {
// Multicast interfaces // Multicast interfaces
DefaultMulticastInterfaces []MulticastInterfaceConfig DefaultMulticastInterfaces []MulticastInterfaceConfig
//Network domain
DefaultNetworkDomain NetworkDomainConfig
// TUN // TUN
MaximumIfMTU uint64 MaximumIfMTU uint64
DefaultIfMTU uint64 DefaultIfMTU uint64
DefaultIfName string DefaultIfName string
} }
// Defines defaults for the all platforms.
func define() defaultParameters {
return defaultParameters{
// Network domain
DefaultNetworkDomain: NetworkDomainConfig{
Prefix: "fc",
},
}
}
func GetDefaults() platformDefaultParameters { func GetDefaults() platformDefaultParameters {
defaults := getDefaults() defaults := getDefaults()
if defaultConfig != "" { if defaultConfig != "" {
@ -56,10 +70,10 @@ func GenerateConfig() *config.NodeConfig {
cfg.InterfacePeers = map[string][]string{} cfg.InterfacePeers = map[string][]string{}
cfg.AllowedPublicKeys = []string{} cfg.AllowedPublicKeys = []string{}
cfg.MulticastInterfaces = defaults.DefaultMulticastInterfaces cfg.MulticastInterfaces = defaults.DefaultMulticastInterfaces
cfg.NetworkDomain = defaults.DefaultNetworkDomain
cfg.IfName = defaults.DefaultIfName cfg.IfName = defaults.DefaultIfName
cfg.IfMTU = defaults.DefaultIfMTU cfg.IfMTU = defaults.DefaultIfMTU
cfg.NodeInfoPrivacy = false cfg.NodeInfoPrivacy = false
cfg.NetworkDomain = define().DefaultNetworkDomain
return cfg return cfg
} }

View file

@ -19,11 +19,6 @@ func getDefaults() platformDefaultParameters {
{Regex: "bridge.*", Beacon: true, Listen: true}, {Regex: "bridge.*", Beacon: true, Listen: true},
}, },
// Network domain
DefaultNetworkDomain: NetworkDomainConfig{
Prefix: "fc",
},
// TUN // TUN
MaximumIfMTU: 65535, MaximumIfMTU: 65535,
DefaultIfMTU: 65535, DefaultIfMTU: 65535,

View file

@ -18,11 +18,6 @@ func getDefaults() platformDefaultParameters {
{Regex: ".*", Beacon: true, Listen: true}, {Regex: ".*", Beacon: true, Listen: true},
}, },
// Network domain
DefaultNetworkDomain: NetworkDomainConfig{
Prefix: "fc",
},
// TUN // TUN
MaximumIfMTU: 32767, MaximumIfMTU: 32767,
DefaultIfMTU: 32767, DefaultIfMTU: 32767,

View file

@ -18,11 +18,6 @@ func getDefaults() platformDefaultParameters {
{Regex: ".*", Beacon: true, Listen: true}, {Regex: ".*", Beacon: true, Listen: true},
}, },
// Network domain
DefaultNetworkDomain: NetworkDomainConfig{
Prefix: "fc",
},
// TUN // TUN
MaximumIfMTU: 65535, MaximumIfMTU: 65535,
DefaultIfMTU: 65535, DefaultIfMTU: 65535,

View file

@ -18,11 +18,6 @@ func getDefaults() platformDefaultParameters {
{Regex: ".*", Beacon: true, Listen: true}, {Regex: ".*", Beacon: true, Listen: true},
}, },
// Network domain
DefaultNetworkDomain: NetworkDomainConfig{
Prefix: "fc",
},
// TUN // TUN
MaximumIfMTU: 16384, MaximumIfMTU: 16384,
DefaultIfMTU: 16384, DefaultIfMTU: 16384,

View file

@ -18,11 +18,6 @@ func getDefaults() platformDefaultParameters {
{Regex: ".*", Beacon: true, Listen: true}, {Regex: ".*", Beacon: true, Listen: true},
}, },
// Network domain
DefaultNetworkDomain: NetworkDomainConfig{
Prefix: "fc",
},
// TUN // TUN
MaximumIfMTU: 65535, MaximumIfMTU: 65535,
DefaultIfMTU: 65535, DefaultIfMTU: 65535,

View file

@ -18,11 +18,6 @@ func getDefaults() platformDefaultParameters {
{Regex: ".*", Beacon: true, Listen: true}, {Regex: ".*", Beacon: true, Listen: true},
}, },
// Network domain
DefaultNetworkDomain: NetworkDomainConfig{
Prefix: "fc",
},
// TUN // TUN
MaximumIfMTU: 65535, MaximumIfMTU: 65535,
DefaultIfMTU: 65535, DefaultIfMTU: 65535,