HRESULT HostNetworkInterface::updateConfig() { NETIFINFO info; int rc = NetIfGetConfig(this, &info); if (RT_SUCCESS(rc)) { int iPrefixIPv6; m.realIPAddress = m.IPAddress = info.IPAddress.u; m.realNetworkMask = m.networkMask = info.IPNetMask.u; m.dhcpEnabled = info.fDhcpEnabled; if (info.IPv6Address.s.Lo || info.IPv6Address.s.Hi) m.realIPV6Address = m.IPV6Address = Utf8StrFmt("%RTnaipv6", &info.IPv6Address); else m.realIPV6Address = m.IPV6Address = Utf8Str::Empty; RTNetMaskToPrefixIPv6(&info.IPv6NetMask, &iPrefixIPv6); m.realIPV6PrefixLength = m.IPV6NetworkMaskPrefixLength = iPrefixIPv6; m.hardwareAddress = Utf8StrFmt("%RTmac", &info.MACAddress); AssertCompile((unsigned)NETIF_T_UNKNOWN == (unsigned)HostNetworkInterfaceMediumType_Unknown); m.mediumType = (HostNetworkInterfaceMediumType_T)info.enmMediumType; AssertCompile((unsigned)NETIF_S_UNKNOWN == (unsigned)HostNetworkInterfaceStatus_Unknown); m.status = (HostNetworkInterfaceStatus_T)info.enmStatus; m.speedMbits = info.uSpeedMbits; m.wireless = info.fWireless; return S_OK; } return rc == VERR_NOT_IMPLEMENTED ? E_NOTIMPL : E_FAIL; }
HRESULT HostNetworkInterface::updateConfig() { NETIFINFO info; int rc = NetIfGetConfig(this, &info); if (RT_SUCCESS(rc)) { m.realIPAddress = m.IPAddress = info.IPAddress.u; m.realNetworkMask = m.networkMask = info.IPNetMask.u; m.dhcpEnabled = info.bDhcpEnabled; m.realIPV6Address = m.IPV6Address = composeIPv6Address(&info.IPv6Address); m.realIPV6PrefixLength = m.IPV6NetworkMaskPrefixLength = composeIPv6PrefixLenghFromAddress(&info.IPv6NetMask); m.hardwareAddress = composeHardwareAddress(&info.MACAddress); #ifdef RT_OS_WINDOWS m.mediumType = (HostNetworkInterfaceMediumType)info.enmMediumType; m.status = (HostNetworkInterfaceStatus)info.enmStatus; #else /* !RT_OS_WINDOWS */ m.mediumType = info.enmMediumType; m.status = info.enmStatus; #endif /* !RT_OS_WINDOWS */ m.speedMbits = info.uSpeedMbits; return S_OK; } return rc == VERR_NOT_IMPLEMENTED ? E_NOTIMPL : E_FAIL; }