1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-21 23:58:49 -05:00

- Constantine Sapuntzakis: The current implementation will always set

SO_SNDBUF to CURL_WRITE_SIZE even if the SO_SNDBUF starts out larger.  The
  patch doesn't do a setsockopt if SO_SNDBUF is already greater than
  CURL_WRITE_SIZE. This should help folks who have set up their computer with
  large send buffers.
This commit is contained in:
Daniel Stenberg 2009-10-01 07:05:07 +00:00
parent 4271f44a9e
commit 5ed274d0b7
3 changed files with 17 additions and 1 deletions

View File

@ -6,6 +6,13 @@
Changelog
Daniel Stenberg (1 Oct 2009)
- Constantine Sapuntzakis: The current implementation will always set
SO_SNDBUF to CURL_WRITE_SIZE even if the SO_SNDBUF starts out larger. The
patch doesn't do a setsockopt if SO_SNDBUF is already greater than
CURL_WRITE_SIZE. This should help folks who have set up their computer with
large send buffers.
Daniel Stenberg (27 Sep 2009)
- I introduced a maximum limit for received HTTP headers. It is controlled by
the define CURL_MAX_HTTP_HEADER which is even exposed in the public header

View File

@ -33,6 +33,7 @@ This release includes the following bugfixes:
o libcurl-OpenSSL can load CRL files with more than one certificate inside
o received cookies without explicit path got saved wrong if the URL had a
query part
o don't shrink SO_SNDBUF on windows for those who have it set large already
This release includes the following known bugs:
@ -43,6 +44,7 @@ advice from friends like these:
Karl Moerder, Kamil Dudka, Krister Johansen, Andre Guibert de Bruet,
Michal Marek, Eric Wong, Guenter Knauf, Peter Sylvester, Daniel Johnson,
Claes Jakobsson, Sven Anders, Chris Mumford, John P. McCaskey
Claes Jakobsson, Sven Anders, Chris Mumford, John P. McCaskey,
Constantine Sapuntzakis
Thanks! (and sorry if I forgot to mention someone)

View File

@ -664,6 +664,13 @@ static void nosigpipe(struct connectdata *conn,
void Curl_sndbufset(curl_socket_t sockfd)
{
int val = CURL_MAX_WRITE_SIZE + 32;
int curval = 0;
int curlen = sizeof(curval);
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