func NewNetworkManager(ctx context.Context, sm subnet.Manager) (*Manager, error) { extIface, err := lookupExtIface(opts.iface) if err != nil { return nil, err } bm := backend.NewManager(ctx, sm, extIface) manager := &Manager{ ctx: ctx, sm: sm, bm: bm, allowedNetworks: make(map[string]bool), networks: make(map[string]*Network), watch: opts.watchNetworks, ipMasq: opts.ipMasq, extIface: extIface, } for _, name := range strings.Split(opts.networks, ",") { if name != "" { manager.allowedNetworks[name] = true } } return manager, nil }
func NewNetworkManager(ctx context.Context, sm subnet.Manager) (*Manager, error) { extIface, err := lookupExtIface(opts.iface) if err != nil { return nil, err } bm := backend.NewManager(ctx, sm, extIface) manager := &Manager{ ctx: ctx, sm: sm, bm: bm, allowedNetworks: make(map[string]bool), networks: make(map[string]*Network), watch: opts.watchNetworks, ipMasq: opts.ipMasq, extIface: extIface, } for _, name := range strings.Split(opts.networks, ",") { if name != "" { manager.allowedNetworks[name] = true } } if manager.isMultiNetwork() { // Get list of existing networks result, err := manager.sm.WatchNetworks(ctx, nil) if err != nil { return nil, err } for _, n := range result.Snapshot { if manager.isNetAllowed(n) { manager.networks[n] = NewNetwork(ctx, sm, bm, n, manager.ipMasq) } } } else { manager.networks[""] = NewNetwork(ctx, sm, bm, "", manager.ipMasq) } return manager, nil }