Skip to content
Snippets Groups Projects
Commit 9c788a52 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

- Made the SO_SNDBUF setting for the data connection socket for ftp uploads as

  well. See change 28 Apr 2009.
parent 6159c356
No related branches found
No related tags found
No related merge requests found
......@@ -6,6 +6,10 @@
Changelog
Daniel Stenberg (7 May 2009)
- Made the SO_SNDBUF setting for the data connection socket for ftp uploads as
well. See change 28 Apr 2009.
Yang Tse (7 May 2009)
- Fixed an issue affecting FTP transfers, introduced with the transfer.c
patch committed May 4.
......
......@@ -714,15 +714,13 @@ static void nosigpipe(struct connectdata *conn,
Buffer Size
*/
static void sndbufset(struct connectdata *conn,
curl_socket_t sockfd)
void Curl_sndbufset(curl_socket_t sockfd)
{
int val = CURL_MAX_WRITE_SIZE + 32;
(void)conn;
setsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (const char *)&val, sizeof(val));
}
#else
#define sndbufset(x,y)
#define Curl_sndbufset(y)
#endif
......@@ -829,7 +827,7 @@ singleipconnect(struct connectdata *conn,
nosigpipe(conn, sockfd);
sndbufset(conn, sockfd);
Curl_sndbufset(sockfd);
if(data->set.fsockopt) {
/* activate callback for setting socket options */
......
......@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
......@@ -54,4 +54,20 @@ long Curl_timeleft(struct connectdata *conn,
CURLcode Curl_getconnectinfo(struct SessionHandle *data,
long *param_longp,
struct connectdata **connp);
#ifdef WIN32
/* When you run a program that uses the Windows Sockets API, you may
experience slow performance when you copy data to a TCP server.
http://support.microsoft.com/kb/823764
Work-around: Make the Socket Send Buffer Size Larger Than the Program Send
Buffer Size
*/
void Curl_sndbufset(curl_socket_t sockfd);
#else
#define Curl_sndbufset(y)
#endif
#endif
......@@ -2308,6 +2308,9 @@ static CURLcode ftp_state_stor_resp(struct connectdata *conn,
Curl_pgrsSetUploadSize(data, data->set.infilesize);
/* set the SO_SNDBUF for the secondary socket for those who need it */
Curl_sndbufset(conn->sock[SECONDARYSOCKET]);
result = Curl_setup_transfer(conn, -1, -1, FALSE, NULL, /* no download */
SECONDARYSOCKET, ftp->bytecountp);
state(conn, FTP_STOP);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment