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>
50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package bridge
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/docker/libnetwork/testutils"
|
|
"github.com/vishvananda/netlink"
|
|
)
|
|
|
|
func TestInterfaceDefaultName(t *testing.T) {
|
|
defer testutils.SetupTestOSContext(t)()
|
|
|
|
nh, err := netlink.NewHandle()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
config := &networkConfiguration{}
|
|
_, err = newInterface(nh, config)
|
|
if err != nil {
|
|
t.Fatalf("newInterface() failed: %v", err)
|
|
}
|
|
|
|
if config.BridgeName != DefaultBridgeName {
|
|
t.Fatalf("Expected default interface name %q, got %q", DefaultBridgeName, config.BridgeName)
|
|
}
|
|
}
|
|
|
|
func TestAddressesEmptyInterface(t *testing.T) {
|
|
defer testutils.SetupTestOSContext(t)()
|
|
|
|
nh, err := netlink.NewHandle()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
inf, err := newInterface(nh, &networkConfiguration{})
|
|
if err != nil {
|
|
t.Fatalf("newInterface() failed: %v", err)
|
|
}
|
|
|
|
addrsv4, addrsv6, err := inf.addresses()
|
|
if err != nil {
|
|
t.Fatalf("Failed to get addresses of default interface: %v", err)
|
|
}
|
|
if len(addrsv4) != 0 {
|
|
t.Fatalf("Default interface has unexpected IPv4: %s", addrsv4)
|
|
}
|
|
if len(addrsv6) != 0 {
|
|
t.Fatalf("Default interface has unexpected IPv6: %v", addrsv6)
|
|
}
|
|
}
|