diff options
author | Daniel Stenberg <daniel@haxx.se> | 2009-10-01 07:05:07 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2009-10-01 07:05:07 +0000 |
commit | 5ed274d0b7483085d5d8642daddace93b41316e7 (patch) | |
tree | 60d07f1fb3d30d6218945f5b40e262931f6b5c14 | |
parent | 4271f44a9ec2d505bdf506e1959850c35ee756a6 (diff) |
- 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.
-rw-r--r-- | CHANGES | 7 | ||||
-rw-r--r-- | RELEASE-NOTES | 4 | ||||
-rw-r--r-- | lib/connect.c | 7 |
3 files changed, 17 insertions, 1 deletions
@@ -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 diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 2035a93bf..b3a1d013b 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -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) diff --git a/lib/connect.c b/lib/connect.c index 2a6b003e0..aaeee6762 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -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 |