mirror of
https://github.com/pocoproject/poco.git
synced 2025-11-04 12:17:37 +01:00
Merge pull request #570 from micheleselea/develop
make NetworkInterface working under XP
This commit is contained in:
@@ -26,7 +26,7 @@ namespace Poco {
|
|||||||
|
|
||||||
|
|
||||||
const std::string URI::RESERVED_PATH = "?#";
|
const std::string URI::RESERVED_PATH = "?#";
|
||||||
const std::string URI::RESERVED_QUERY = "#";
|
const std::string URI::RESERVED_QUERY = "#/";
|
||||||
const std::string URI::RESERVED_FRAGMENT = "";
|
const std::string URI::RESERVED_FRAGMENT = "";
|
||||||
const std::string URI::ILLEGAL = "%<>{}|\\\"^`";
|
const std::string URI::ILLEGAL = "%<>{}|\\\"^`";
|
||||||
|
|
||||||
|
|||||||
@@ -1097,12 +1097,22 @@ NetworkInterface::Map NetworkInterface::map(bool ipOnly, bool upOnly)
|
|||||||
ifIndex = pAddress->Ipv6IfIndex;
|
ifIndex = pAddress->Ipv6IfIndex;
|
||||||
#elif (_WIN32_WINNT >= 0x0501) && (NTDDI_VERSION >= 0x05010100) // Win XP SP1
|
#elif (_WIN32_WINNT >= 0x0501) && (NTDDI_VERSION >= 0x05010100) // Win XP SP1
|
||||||
#if defined (IP_ADAPTER_IPV6_ENABLED) // Vista
|
#if defined (IP_ADAPTER_IPV6_ENABLED) // Vista
|
||||||
if ((pAddress->Flags & IP_ADAPTER_IPV6_ENABLED) &&
|
if(osvi.dwMajorVersion>=6)//vista
|
||||||
(osvi.dwMajorVersion >= 5) &&
|
|
||||||
(osvi.dwMinorVersion >= 1) &&
|
|
||||||
(osvi.dwBuildNumber >=1))
|
|
||||||
{
|
{
|
||||||
ifIndex = pAddress->Ipv6IfIndex;
|
if ((pAddress->Flags & IP_ADAPTER_IPV6_ENABLED) &&
|
||||||
|
(osvi.dwMajorVersion >= 5) &&
|
||||||
|
(osvi.dwMinorVersion >= 1) &&
|
||||||
|
(osvi.dwBuildNumber >=1))
|
||||||
|
{
|
||||||
|
ifIndex = pAddress->Ipv6IfIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ((osvi.dwMajorVersion >= 5) &&
|
||||||
|
(osvi.dwMinorVersion >= 1) &&
|
||||||
|
(osvi.dwBuildNumber >= 1))
|
||||||
|
{
|
||||||
|
ifIndex = pAddress->Ipv6IfIndex;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#else // !defined(IP_ADAPTER_IPV6_ENABLED)
|
#else // !defined(IP_ADAPTER_IPV6_ENABLED)
|
||||||
if ((osvi.dwMajorVersion >= 5) &&
|
if ((osvi.dwMajorVersion >= 5) &&
|
||||||
@@ -1116,7 +1126,14 @@ NetworkInterface::Map NetworkInterface::map(bool ipOnly, bool upOnly)
|
|||||||
#endif // POCO_HAVE_IPv6
|
#endif // POCO_HAVE_IPv6
|
||||||
|
|
||||||
#if defined (IP_ADAPTER_IPV4_ENABLED)
|
#if defined (IP_ADAPTER_IPV4_ENABLED)
|
||||||
if (pAddress->Flags & IP_ADAPTER_IPV4_ENABLED)
|
if(osvi.dwMajorVersion>=6)
|
||||||
|
{//vista
|
||||||
|
if (pAddress->Flags & IP_ADAPTER_IPV4_ENABLED)
|
||||||
|
{
|
||||||
|
ifIndex = pAddress->IfIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
ifIndex = pAddress->IfIndex;
|
ifIndex = pAddress->IfIndex;
|
||||||
}
|
}
|
||||||
@@ -1205,8 +1222,15 @@ NetworkInterface::Map NetworkInterface::map(bool ipOnly, bool upOnly)
|
|||||||
#elif (_WIN32_WINNT >= 0x0501) && (NTDDI_VERSION >= 0x05010100) // Win XP SP1
|
#elif (_WIN32_WINNT >= 0x0501) && (NTDDI_VERSION >= 0x05010100) // Win XP SP1
|
||||||
ULONG prefixLength = 0;
|
ULONG prefixLength = 0;
|
||||||
#if (_WIN32_WINNT >= 0x0600) // Vista and newer
|
#if (_WIN32_WINNT >= 0x0600) // Vista and newer
|
||||||
prefixLength = pUniAddr->OnLinkPrefixLength;
|
if (osvi.dwMajorVersion >= 6)
|
||||||
broadcastAddress = getBroadcastAddress(pAddress->FirstPrefix, address);
|
{
|
||||||
|
prefixLength = pUniAddr->OnLinkPrefixLength;
|
||||||
|
broadcastAddress = getBroadcastAddress(pAddress->FirstPrefix, address);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
broadcastAddress = getBroadcastAddress(pAddress->FirstPrefix, address, &prefixLength);
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
broadcastAddress = getBroadcastAddress(pAddress->FirstPrefix, address, &prefixLength);
|
broadcastAddress = getBroadcastAddress(pAddress->FirstPrefix, address, &prefixLength);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user