From 6ead474a785d3ed5cdc72bfb83e5a1f7aac8a4a4 Mon Sep 17 00:00:00 2001 From: yo Date: Sun, 11 Feb 2024 10:17:31 +0100 Subject: [PATCH] BUGFIX on mac handling when none + BUGFIX on mac generation (+1 for jailside) --- cmd/start.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cmd/start.go b/cmd/start.go index b328120..75ace73 100644 --- a/cmd/start.go +++ b/cmd/start.go @@ -810,7 +810,9 @@ func generateMAC(jail *Jail, nic string) ([]byte, []byte, error) { } hsmac := append(prefix, suffix...) - jsmac := append(hsmac[:5], hsmac[5]+1) + jsmac := make([]byte, 6) + copy(jsmac, hsmac) + jsmac[5] = jsmac[5] + 1 // Save MACs to config pname := fmt.Sprintf("Config.%s_mac", strings.Title(nic)) @@ -853,6 +855,12 @@ func setupVnetInterfaceHostSide(jail *Jail) ([]string, error) { return []string{}, err } } else { + if strings.EqualFold(val.String(), "none") { + hsmac, _, err = generateMAC(jail, nic) + if err != nil { + return []string{}, err + } + } hsmac, err = hex.DecodeString(strings.Split(val.String(), " ")[0]) if err != nil { return []string{}, fmt.Errorf("Error converting %s to hex\n", strings.Split(val.String(), " ")[0]) @@ -912,7 +920,9 @@ func setupVnetInterfaceJailSide(jail *Jail, hostepairs []string) error { for _, i := range strings.Split(jail.Config.Ip4_addr, ",") { v := strings.Split(i, "|") - ip4s[v[0]] = v[1] + if len(v) > 1 { + ip4s[v[0]] = v[1] + } } for _, i := range strings.Split(jail.Config.Ip6_addr, ",") { v := strings.Split(i, "|")