mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 09:43:18 +00:00
[vm/io] Fall back to IfIndex if Ipv6IfIndex is zero
Closes https://github.com/dart-lang/sdk/pull/52906 GitOrigin-RevId: 430673ca03df64c3d4bcdc2a0284be39c455ccb0 Change-Id: I35a7098d6f677b2fde4988d091211c27f1471561 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/313161 Reviewed-by: Brian Quinlan <bquinlan@google.com> Commit-Queue: Brian Quinlan <bquinlan@google.com>
This commit is contained in:
parent
425182ccf8
commit
f99af3ff88
|
@ -380,10 +380,16 @@ AddressList<InterfaceSocketAddress>* SocketBase::ListInterfaces(
|
|||
for (IP_ADAPTER_ADDRESSES* a = addrs; a != nullptr; a = a->Next) {
|
||||
for (IP_ADAPTER_UNICAST_ADDRESS* u = a->FirstUnicastAddress; u != nullptr;
|
||||
u = u->Next) {
|
||||
addresses->SetAt(
|
||||
i, new InterfaceSocketAddress(
|
||||
u->Address.lpSockaddr,
|
||||
StringUtilsWin::WideToUtf8(a->FriendlyName), a->Ipv6IfIndex));
|
||||
ASSERT(type != AF_INET || a->Flags & IP_ADAPTER_IPV4_ENABLED);
|
||||
ASSERT(type != AF_INET6 || a->Flags & IP_ADAPTER_IPV6_ENABLED);
|
||||
ASSERT(a->IfIndex == a->Ipv6IfIndex ||
|
||||
!(a->Flags & IP_ADAPTER_IPV4_ENABLED) ||
|
||||
!(a->Flags & IP_ADAPTER_IPV6_ENABLED));
|
||||
addresses->SetAt(i,
|
||||
new InterfaceSocketAddress(
|
||||
u->Address.lpSockaddr,
|
||||
StringUtilsWin::WideToUtf8(a->FriendlyName),
|
||||
a->Ipv6IfIndex != 0 ? a->Ipv6IfIndex : a->IfIndex));
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue