func missingNets(defined common.NetList, loaded []activeNet) []string { diff := make(map[string]struct{}) for _, n := range defined.StringsOnlyNames() { if n != "all" { diff[n] = struct{}{} } } for _, an := range loaded { delete(diff, an.conf.Name) } var missing []string for n := range diff { missing = append(missing, n) } return missing }
func loadUserNets(localConfig string, netsLoadList common.NetList) ([]activeNet, error) { if netsLoadList.None() { stderr.Printf("networking namespace with loopback only") return nil, nil } userNetPath := filepath.Join(localConfig, UserNetPathSuffix) stderr.Printf("loading networks from %v", userNetPath) files, err := listFiles(userNetPath) if err != nil { return nil, err } sort.Strings(files) nets := make([]activeNet, 0, len(files)) for _, filename := range files { filepath := filepath.Join(userNetPath, filename) if !strings.HasSuffix(filepath, ".conf") { continue } n, err := loadNet(filepath) if err != nil { return nil, err } if !(netsLoadList.All() || netsLoadList.Specific(n.conf.Name)) { continue } if n.conf.Name == "default" || n.conf.Name == "default-restricted" { stderr.Printf(`overriding %q network with %v`, n.conf.Name, filename) } if netExists(nets, n.conf.Name) { stderr.Printf("%q network already defined, ignoring %v", n.conf.Name, filename) continue } n.runtime.Args = netsLoadList.SpecificArgs(n.conf.Name) nets = append(nets, *n) } return nets, nil }