Commit 7aa01a69 authored by Marcin Siodelski's avatar Marcin Siodelski
Browse files

[master] Merge branch 'trac3527'

parents 4716a0b3 83b5c2c9
...@@ -2362,7 +2362,20 @@ TEST_F(IfaceMgrTest, detectIfaces) { ...@@ -2362,7 +2362,20 @@ TEST_F(IfaceMgrTest, detectIfaces) {
// Go over all interfaces detected by the unit test and see if they // Go over all interfaces detected by the unit test and see if they
// match with the interfaces detected by IfaceMgr. // match with the interfaces detected by IfaceMgr.
for (ifptr = iflist; ifptr != 0; ifptr = ifptr->ifa_next) { for (ifptr = iflist; ifptr != 0; ifptr = ifptr->ifa_next) {
Iface* i = ifacemgr.getIface(std::string(ifptr->ifa_name)); // When more than one IPv4 address is assigned to the particular
// physical interface, virtual interfaces may be created for each
// additional IPv4 address. For example, when multiple addresses
// are assigned to the eth0 interface, additional virtual interfaces
// will be eth0:0, eth0:1 etc. This is the case on some Linux
// distributions. The getifaddrs will return virtual interfaces,
// with single address each, but the Netlink-based implementation
// (used by IfaceMgr) will rather hold a list of physical interfaces
// with multiple IPv4 addresses assigned. This means that the test
// can't use a name of the interface returned by getifaddrs to match
// with the interface name held by IfaceMgr. Instead, we use the
// index of the interface because the virtual interfaces have the
// same indexes as the physical interfaces.
Iface* i = ifacemgr.getIface(if_nametoindex(ifptr->ifa_name));
// If the given interface was also detected by the IfaceMgr, // If the given interface was also detected by the IfaceMgr,
// check that its properties are correct. // check that its properties are correct.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment