5
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2024-11-26 07:11:40 +00:00

Fix being able to enable/disable multicast

This commit is contained in:
Neil Alexander 2018-05-26 21:50:47 +01:00
parent bc899c395a
commit a0f547cc1b
No known key found for this signature in database
GPG Key ID: A02A2019A2BB0944
2 changed files with 13 additions and 7 deletions

View File

@ -16,6 +16,10 @@ type multicast struct {
func (m *multicast) init(core *Core) { func (m *multicast) init(core *Core) {
m.core = core m.core = core
m.groupAddr = "[ff02::114]:9001" m.groupAddr = "[ff02::114]:9001"
// Check if we've been given any expressions
if len(m.core.ifceExpr) == 0 {
return
}
// Ask the system for network interfaces // Ask the system for network interfaces
allifaces, err := net.Interfaces() allifaces, err := net.Interfaces()
if err != nil { if err != nil {

View File

@ -91,9 +91,11 @@ func generateConfig(isAutoconf bool) *nodeConfig {
cfg := nodeConfig{} cfg := nodeConfig{}
if isAutoconf { if isAutoconf {
cfg.Listen = "[::]:0" cfg.Listen = "[::]:0"
cfg.MulticastInterfaces = []string{".*"}
} else { } else {
r1 := rand.New(rand.NewSource(time.Now().UnixNano())) r1 := rand.New(rand.NewSource(time.Now().UnixNano()))
cfg.Listen = fmt.Sprintf("[::]:%d", r1.Intn(65534-32768)+32768) cfg.Listen = fmt.Sprintf("[::]:%d", r1.Intn(65534-32768)+32768)
cfg.MulticastInterfaces = []string{}
} }
cfg.AdminListen = "[::1]:9001" cfg.AdminListen = "[::1]:9001"
cfg.EncryptionPublicKey = hex.EncodeToString(bpub[:]) cfg.EncryptionPublicKey = hex.EncodeToString(bpub[:])
@ -102,7 +104,6 @@ func generateConfig(isAutoconf bool) *nodeConfig {
cfg.SigningPrivateKey = hex.EncodeToString(spriv[:]) cfg.SigningPrivateKey = hex.EncodeToString(spriv[:])
cfg.Peers = []string{} cfg.Peers = []string{}
cfg.AllowedEncryptionPublicKeys = []string{} cfg.AllowedEncryptionPublicKeys = []string{}
cfg.MulticastInterfaces = []string{".*"}
cfg.IfName = core.DEBUG_GetTUNDefaultIfName() cfg.IfName = core.DEBUG_GetTUNDefaultIfName()
cfg.IfMTU = core.DEBUG_GetTUNDefaultIfMTU() cfg.IfMTU = core.DEBUG_GetTUNDefaultIfMTU()
cfg.IfTAPMode = core.DEBUG_GetTUNDefaultIfTAPMode() cfg.IfTAPMode = core.DEBUG_GetTUNDefaultIfTAPMode()
@ -112,6 +113,7 @@ func generateConfig(isAutoconf bool) *nodeConfig {
func doGenconf() string { func doGenconf() string {
cfg := generateConfig(false) cfg := generateConfig(false)
cfg.MulticastInterfaces = append(cfg.MulticastInterfaces, ".*")
bs, err := hjson.Marshal(cfg) bs, err := hjson.Marshal(cfg)
if err != nil { if err != nil {
panic(err) panic(err)
@ -151,12 +153,12 @@ func main() {
// For now we will do a little bit to help the user adjust their // For now we will do a little bit to help the user adjust their
// configuration to match the new configuration format // configuration to match the new configuration format
changes := map[string]string{ changes := map[string]string{
"Multicast": "", "Multicast": "",
"LinkLocal": "MulticastInterfaces", "LinkLocal": "MulticastInterfaces",
"BoxPub": "EncryptionPublicKey", "BoxPub": "EncryptionPublicKey",
"BoxPriv": "EncryptionPrivateKey", "BoxPriv": "EncryptionPrivateKey",
"SigPub": "SigningPublicKey", "SigPub": "SigningPublicKey",
"SigPriv": "SigningPrivateKey", "SigPriv": "SigningPrivateKey",
"AllowedBoxPubs": "AllowedEncryptionPublicKeys", "AllowedBoxPubs": "AllowedEncryptionPublicKeys",
} }
for from, to := range changes { for from, to := range changes {