mirror of
https://github.com/curl/curl.git
synced 2026-08-25 15:03:32 +03:00
windows: bump minimum to Vista (from XP)
After this patch curl requires targeting Vista or newer, and a toolchain with Vista support. Supported MSVC compilers (VS2010+) all support Vista: - VS2012+ target Win8 (or later) by default. - VS2010 targets Win7 by default. Supported mingw-w64 versions (v3+) all support Vista: - mingw-w64 v9+ target Win10 by default. - mingw-w64 v8 and older target Server 2003 (~XP) by default. After this patch it may be necessary to override the default Windows target version to Vista (or newer) via: autotools: `CPPFLAGS=-D_WIN32_WINNT=0x0600` cmake: `-DCURL_TARGET_WINDOWS_VERSION=0x0600` - mingw-w64 v6+ allow changing the default at toolchain build-time. Notes: - For non-MSVC, non-mingw-w64 toolchains, `if_nametoindex` needs to be allowlisted in `curl_setup.h`, if they do support it. Fixes #17985 (discussion) Closes #18009
This commit is contained in:
parent
6c8956c1cb
commit
b17ef873ae
27 changed files with 136 additions and 611 deletions
|
|
@ -440,37 +440,6 @@ int Curl_socket_close(struct Curl_easy *data, struct connectdata *conn,
|
|||
return socket_close(data, conn, FALSE, sock);
|
||||
}
|
||||
|
||||
#ifdef USE_WINSOCK
|
||||
/* When you run a program that uses the Windows Sockets API, you may
|
||||
experience slow performance when you copy data to a TCP server.
|
||||
|
||||
https://learn.microsoft.com/troubleshoot/windows-server/networking/slow-performance-copy-data-tcp-server-sockets-api
|
||||
|
||||
Work-around: Make the Socket Send Buffer Size Larger Than the Program Send
|
||||
Buffer Size
|
||||
|
||||
The problem described in this knowledge-base is applied only to pre-Vista
|
||||
Windows. Following function trying to detect OS version and skips
|
||||
SO_SNDBUF adjustment for Windows Vista and above.
|
||||
*/
|
||||
|
||||
void Curl_sndbuf_init(curl_socket_t sockfd)
|
||||
{
|
||||
int val = CURL_MAX_WRITE_SIZE + 32;
|
||||
int curval = 0;
|
||||
int curlen = sizeof(curval);
|
||||
|
||||
if(Curl_isVistaOrGreater)
|
||||
return;
|
||||
|
||||
if(getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (char *)&curval, &curlen) == 0)
|
||||
if(curval > val)
|
||||
return;
|
||||
|
||||
setsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (const char *)&val, sizeof(val));
|
||||
}
|
||||
#endif /* USE_WINSOCK */
|
||||
|
||||
/*
|
||||
* Curl_parse_interface()
|
||||
*
|
||||
|
|
@ -1133,8 +1102,6 @@ static CURLcode cf_socket_open(struct Curl_cfilter *cf,
|
|||
|
||||
nosigpipe(cf, data, ctx->sock);
|
||||
|
||||
Curl_sndbuf_init(ctx->sock);
|
||||
|
||||
if(is_tcp && data->set.tcp_keepalive)
|
||||
tcpkeepalive(cf, data, ctx->sock);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue