win: drop code checking for Windows XP / Server 2k3
Our minimum requirements are Windows 8 now.
This commit is contained in:
parent
2b4b293ebb
commit
a7b16bfb33
@ -465,10 +465,6 @@ API
|
||||
The background story and some more details on these issues can be checked
|
||||
`here <https://github.com/nodejs/node/issues/7726>`_.
|
||||
|
||||
.. note::
|
||||
This function is not implemented on Windows XP and Windows Server 2003.
|
||||
On these systems, UV_ENOSYS is returned.
|
||||
|
||||
.. versionadded:: 1.8.0
|
||||
|
||||
.. c:function:: int uv_fs_chown(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_uid_t uid, uv_gid_t gid, uv_fs_cb cb)
|
||||
|
||||
@ -164,7 +164,7 @@ IPv6 stack only
|
||||
|
||||
IPv6 sockets can be used for both IPv4 and IPv6 communication. If you want to
|
||||
restrict the socket to IPv6 only, pass the ``UV_UDP_IPV6ONLY`` flag to
|
||||
``uv_udp_bind`` [#]_.
|
||||
``uv_udp_bind``.
|
||||
|
||||
Multicast
|
||||
~~~~~~~~~
|
||||
@ -250,7 +250,6 @@ times, with each address being reported once.
|
||||
----
|
||||
|
||||
.. [#] https://beej.us/guide/bgnet/html/#broadcast-packetshello-world
|
||||
.. [#] on Windows only supported on Windows Vista and later.
|
||||
.. [#] https://www.tldp.org/HOWTO/Multicast-HOWTO-6.html#ss6.1
|
||||
.. [#] libuv use the system ``getaddrinfo`` in the libuv threadpool. libuv
|
||||
v0.8.0 and earlier also included c-ares_ as an alternative, but this has been
|
||||
|
||||
@ -425,9 +425,8 @@ int uv_poll_init_socket(uv_loop_t* loop, uv_poll_t* handle,
|
||||
return uv_translate_sys_error(WSAGetLastError());
|
||||
|
||||
/* Try to obtain a base handle for the socket. This increases this chances that
|
||||
* we find an AFD handle and are able to use the fast poll mechanism. This will
|
||||
* always fail on windows XP/2k3, since they don't support the. SIO_BASE_HANDLE
|
||||
* ioctl. */
|
||||
* we find an AFD handle and are able to use the fast poll mechanism.
|
||||
*/
|
||||
#ifndef NDEBUG
|
||||
base_socket = INVALID_SOCKET;
|
||||
#endif
|
||||
|
||||
@ -1401,7 +1401,7 @@ static void uv__tcp_try_cancel_reqs(uv_tcp_t* tcp) {
|
||||
uv_tcp_non_ifs_lsp_ipv4;
|
||||
|
||||
/* If there are non-ifs LSPs then try to obtain a base handle for the socket.
|
||||
* This will always fail on Windows XP/3k. */
|
||||
*/
|
||||
if (non_ifs_lsp) {
|
||||
DWORD bytes;
|
||||
if (WSAIoctl(socket,
|
||||
|
||||
@ -686,37 +686,6 @@ int uv_cpu_info(uv_cpu_info_t** cpu_infos_ptr, int* cpu_count_ptr) {
|
||||
}
|
||||
|
||||
|
||||
static int is_windows_version_or_greater(DWORD os_major,
|
||||
DWORD os_minor,
|
||||
WORD service_pack_major,
|
||||
WORD service_pack_minor) {
|
||||
OSVERSIONINFOEX osvi;
|
||||
DWORDLONG condition_mask = 0;
|
||||
int op = VER_GREATER_EQUAL;
|
||||
|
||||
/* Initialize the OSVERSIONINFOEX structure. */
|
||||
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
|
||||
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
|
||||
osvi.dwMajorVersion = os_major;
|
||||
osvi.dwMinorVersion = os_minor;
|
||||
osvi.wServicePackMajor = service_pack_major;
|
||||
osvi.wServicePackMinor = service_pack_minor;
|
||||
|
||||
/* Initialize the condition mask. */
|
||||
VER_SET_CONDITION(condition_mask, VER_MAJORVERSION, op);
|
||||
VER_SET_CONDITION(condition_mask, VER_MINORVERSION, op);
|
||||
VER_SET_CONDITION(condition_mask, VER_SERVICEPACKMAJOR, op);
|
||||
VER_SET_CONDITION(condition_mask, VER_SERVICEPACKMINOR, op);
|
||||
|
||||
/* Perform the test. */
|
||||
return (int) VerifyVersionInfo(
|
||||
&osvi,
|
||||
VER_MAJORVERSION | VER_MINORVERSION |
|
||||
VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR,
|
||||
condition_mask);
|
||||
}
|
||||
|
||||
|
||||
static int address_prefix_match(int family,
|
||||
struct sockaddr* address,
|
||||
struct sockaddr* prefix_address,
|
||||
@ -763,26 +732,13 @@ int uv_interface_addresses(uv_interface_address_t** addresses_ptr,
|
||||
uv_interface_address_t* uv_address;
|
||||
|
||||
int count;
|
||||
|
||||
int is_vista_or_greater;
|
||||
ULONG flags;
|
||||
|
||||
*addresses_ptr = NULL;
|
||||
*count_ptr = 0;
|
||||
|
||||
is_vista_or_greater = is_windows_version_or_greater(6, 0, 0, 0);
|
||||
if (is_vista_or_greater) {
|
||||
flags = GAA_FLAG_SKIP_ANYCAST | GAA_FLAG_SKIP_MULTICAST |
|
||||
GAA_FLAG_SKIP_DNS_SERVER;
|
||||
} else {
|
||||
/* We need at least XP SP1. */
|
||||
if (!is_windows_version_or_greater(5, 1, 1, 0))
|
||||
return UV_ENOTSUP;
|
||||
|
||||
flags = GAA_FLAG_SKIP_ANYCAST | GAA_FLAG_SKIP_MULTICAST |
|
||||
GAA_FLAG_SKIP_DNS_SERVER | GAA_FLAG_INCLUDE_PREFIX;
|
||||
}
|
||||
|
||||
flags = GAA_FLAG_SKIP_ANYCAST | GAA_FLAG_SKIP_MULTICAST |
|
||||
GAA_FLAG_SKIP_DNS_SERVER;
|
||||
|
||||
/* Fetch the size of the adapters reported by windows, and then get the list
|
||||
* itself. */
|
||||
@ -946,37 +902,8 @@ int uv_interface_addresses(uv_interface_address_t** addresses_ptr,
|
||||
|
||||
sa = unicast_address->Address.lpSockaddr;
|
||||
|
||||
/* XP has no OnLinkPrefixLength field. */
|
||||
if (is_vista_or_greater) {
|
||||
prefix_len =
|
||||
((IP_ADAPTER_UNICAST_ADDRESS_LH*) unicast_address)->OnLinkPrefixLength;
|
||||
} else {
|
||||
/* Prior to Windows Vista the FirstPrefix pointed to the list with
|
||||
* single prefix for each IP address assigned to the adapter.
|
||||
* Order of FirstPrefix does not match order of FirstUnicastAddress,
|
||||
* so we need to find corresponding prefix.
|
||||
*/
|
||||
IP_ADAPTER_PREFIX* prefix;
|
||||
prefix_len = 0;
|
||||
|
||||
for (prefix = adapter->FirstPrefix; prefix; prefix = prefix->Next) {
|
||||
/* We want the longest matching prefix. */
|
||||
if (prefix->Address.lpSockaddr->sa_family != sa->sa_family ||
|
||||
prefix->PrefixLength <= prefix_len)
|
||||
continue;
|
||||
|
||||
if (address_prefix_match(sa->sa_family, sa,
|
||||
prefix->Address.lpSockaddr, prefix->PrefixLength)) {
|
||||
prefix_len = prefix->PrefixLength;
|
||||
}
|
||||
}
|
||||
|
||||
/* If there is no matching prefix information, return a single-host
|
||||
* subnet mask (e.g. 255.255.255.255 for IPv4).
|
||||
*/
|
||||
if (!prefix_len)
|
||||
prefix_len = (sa->sa_family == AF_INET6) ? 128 : 32;
|
||||
}
|
||||
prefix_len =
|
||||
((IP_ADAPTER_UNICAST_ADDRESS_LH*) unicast_address)->OnLinkPrefixLength;
|
||||
|
||||
memset(uv_address, 0, sizeof *uv_address);
|
||||
|
||||
|
||||
@ -219,16 +219,6 @@ static void realpath_cb(uv_fs_t* req) {
|
||||
char test_file_abs_buf[PATHMAX];
|
||||
size_t test_file_abs_size = sizeof(test_file_abs_buf);
|
||||
ASSERT(req->fs_type == UV_FS_REALPATH);
|
||||
#ifdef _WIN32
|
||||
/*
|
||||
* Windows XP and Server 2003 don't support GetFinalPathNameByHandleW()
|
||||
*/
|
||||
if (req->result == UV_ENOSYS) {
|
||||
realpath_cb_count++;
|
||||
uv_fs_req_cleanup(req);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
ASSERT(req->result == 0);
|
||||
|
||||
uv_cwd(test_file_abs_buf, &test_file_abs_size);
|
||||
@ -770,11 +760,10 @@ TEST_IMPL(fs_file_loop) {
|
||||
r = uv_fs_symlink(NULL, &req, "test_symlink", "test_symlink", 0, NULL);
|
||||
#ifdef _WIN32
|
||||
/*
|
||||
* Windows XP and Server 2003 don't support symlinks; we'll get UV_ENOTSUP.
|
||||
* Starting with vista they are supported, but only when elevated, otherwise
|
||||
* Symlinks are only suported but only when elevated, otherwise
|
||||
* we'll see UV_EPERM.
|
||||
*/
|
||||
if (r == UV_ENOTSUP || r == UV_EPERM)
|
||||
if (r == UV_EPERM)
|
||||
return 0;
|
||||
#elif defined(__MSYS__)
|
||||
/* MSYS2's approximation of symlinks with copies does not work for broken
|
||||
@ -2049,15 +2038,6 @@ TEST_IMPL(fs_realpath) {
|
||||
ASSERT(0 == uv_run(loop, UV_RUN_DEFAULT));
|
||||
ASSERT(dummy_cb_count == 1);
|
||||
ASSERT_NULL(req.ptr);
|
||||
#ifdef _WIN32
|
||||
/*
|
||||
* Windows XP and Server 2003 don't support GetFinalPathNameByHandleW()
|
||||
*/
|
||||
if (req.result == UV_ENOSYS) {
|
||||
uv_fs_req_cleanup(&req);
|
||||
RETURN_SKIP("realpath is not supported on Windows XP");
|
||||
}
|
||||
#endif
|
||||
ASSERT(req.result == UV_ENOENT);
|
||||
uv_fs_req_cleanup(&req);
|
||||
|
||||
@ -2168,15 +2148,6 @@ TEST_IMPL(fs_symlink) {
|
||||
uv_fs_req_cleanup(&req);
|
||||
|
||||
r = uv_fs_realpath(NULL, &req, "test_file_symlink_symlink", NULL);
|
||||
#ifdef _WIN32
|
||||
/*
|
||||
* Windows XP and Server 2003 don't support GetFinalPathNameByHandleW()
|
||||
*/
|
||||
if (r == UV_ENOSYS) {
|
||||
uv_fs_req_cleanup(&req);
|
||||
RETURN_SKIP("realpath is not supported on Windows XP");
|
||||
}
|
||||
#endif
|
||||
ASSERT(r == 0);
|
||||
#ifdef _WIN32
|
||||
ASSERT(stricmp(req.ptr, test_file_abs_buf) == 0);
|
||||
@ -2226,15 +2197,6 @@ TEST_IMPL(fs_symlink) {
|
||||
ASSERT(readlink_cb_count == 1);
|
||||
|
||||
r = uv_fs_realpath(loop, &req, "test_file", realpath_cb);
|
||||
#ifdef _WIN32
|
||||
/*
|
||||
* Windows XP and Server 2003 don't support GetFinalPathNameByHandleW()
|
||||
*/
|
||||
if (r == UV_ENOSYS) {
|
||||
uv_fs_req_cleanup(&req);
|
||||
RETURN_SKIP("realpath is not supported on Windows XP");
|
||||
}
|
||||
#endif
|
||||
ASSERT(r == 0);
|
||||
uv_run(loop, UV_RUN_DEFAULT);
|
||||
ASSERT(realpath_cb_count == 1);
|
||||
@ -2335,15 +2297,6 @@ int test_symlink_dir_impl(int type) {
|
||||
uv_fs_req_cleanup(&req);
|
||||
|
||||
r = uv_fs_realpath(NULL, &req, "test_dir_symlink", NULL);
|
||||
#ifdef _WIN32
|
||||
/*
|
||||
* Windows XP and Server 2003 don't support GetFinalPathNameByHandleW()
|
||||
*/
|
||||
if (r == UV_ENOSYS) {
|
||||
uv_fs_req_cleanup(&req);
|
||||
RETURN_SKIP("realpath is not supported on Windows XP");
|
||||
}
|
||||
#endif
|
||||
ASSERT(r == 0);
|
||||
#ifdef _WIN32
|
||||
ASSERT(strlen(req.ptr) == test_dir_abs_size - 5);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user