mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
53bf987984
This fix tries to address the issue raised in: https://github.com/docker/docker/issues/26341 where multiple addresses in a bridge may cause `--fixed-cidr` to not have the correct addresses. The issue is that `netutils.ElectInterfaceAddresses(bridgeName)` only returns the first IPv4 address. This fix changes `ElectInterfaceAddresses()` and `addresses()` so that all IPv4 addresses are returned. This will allow the possibility of selectively choose the address needed. Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
23 lines
909 B
Go
23 lines
909 B
Go
package netutils
|
|
|
|
import (
|
|
"net"
|
|
|
|
"github.com/docker/libnetwork/types"
|
|
)
|
|
|
|
// ElectInterfaceAddresses looks for an interface on the OS with the specified name
|
|
// and returns returns all its IPv4 and IPv6 addresses in CIDR notation.
|
|
// If a failure in retrieving the addresses or no IPv4 address is found, an error is returned.
|
|
// If the interface does not exist, it chooses from a predefined
|
|
// list the first IPv4 address which does not conflict with other
|
|
// interfaces on the system.
|
|
func ElectInterfaceAddresses(name string) ([]*net.IPNet, []*net.IPNet, error) {
|
|
return nil, nil, types.NotImplementedErrorf("not supported on freebsd")
|
|
}
|
|
|
|
// FindAvailableNetwork returns a network from the passed list which does not
|
|
// overlap with existing interfaces in the system
|
|
func FindAvailableNetwork(list []*net.IPNet) (*net.IPNet, error) {
|
|
return nil, types.NotImplementedErrorf("not supported on freebsd")
|
|
}
|