github.com/moby/docker@v26.1.3+incompatible/libnetwork/drivers_ipam.go (about) 1 package libnetwork 2 3 import ( 4 "github.com/docker/docker/libnetwork/ipamapi" 5 builtinIpam "github.com/docker/docker/libnetwork/ipams/builtin" 6 nullIpam "github.com/docker/docker/libnetwork/ipams/null" 7 remoteIpam "github.com/docker/docker/libnetwork/ipams/remote" 8 "github.com/docker/docker/libnetwork/ipamutils" 9 "github.com/docker/docker/pkg/plugingetter" 10 ) 11 12 func initIPAMDrivers(r ipamapi.Registerer, pg plugingetter.PluginGetter, addressPool []*ipamutils.NetworkToSplit) error { 13 // TODO: pass address pools as arguments to builtinIpam.Init instead of 14 // indirectly through global mutable state. Swarmkit references that 15 // function so changing its signature breaks the build. 16 if err := builtinIpam.SetDefaultIPAddressPool(addressPool); err != nil { 17 return err 18 } 19 20 for _, fn := range [](func(ipamapi.Registerer) error){ 21 builtinIpam.Register, 22 nullIpam.Register, 23 } { 24 if err := fn(r); err != nil { 25 return err 26 } 27 } 28 29 return remoteIpam.Register(r, pg) 30 }