aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2017-04-25 14:37:06 +0200
committerDaniel Stenberg <daniel@haxx.se>2017-05-01 22:55:29 +0200
commit89cf6f38d2f525cbc8537a60061f5f37bb2f35f7 (patch)
treea2fdfc517d34c0c25dc75742b02b1d2787f8abb4
parent8ed81f67c2a3783c04e52b16d39bf998bd998c06 (diff)
upload: UPLOAD_BUFSIZE is now for the upload buffer
-rw-r--r--lib/file.c2
-rw-r--r--lib/smb.c2
-rw-r--r--lib/transfer.c2
-rw-r--r--lib/urldata.h6
4 files changed, 8 insertions, 4 deletions
diff --git a/lib/file.c b/lib/file.c
index 4b1017c6f..dc458db1f 100644
--- a/lib/file.c
+++ b/lib/file.c
@@ -360,7 +360,7 @@ static CURLcode file_upload(struct connectdata *conn)
while(!result) {
int readcount;
- result = Curl_fillreadbuffer(conn, BUFSIZE, &readcount);
+ result = Curl_fillreadbuffer(conn, (int)data->set.buffer_size, &readcount);
if(result)
break;
diff --git a/lib/smb.c b/lib/smb.c
index 51b3434cb..5b1ffa9b7 100644
--- a/lib/smb.c
+++ b/lib/smb.c
@@ -607,7 +607,7 @@ static CURLcode smb_send_and_recv(struct connectdata *conn, void **msg)
/* Check if there is data in the transfer buffer */
if(!smbc->send_size && smbc->upload_size) {
- int nread = smbc->upload_size > BUFSIZE ? BUFSIZE :
+ int nread = smbc->upload_size > UPLOAD_BUFSIZE ? UPLOAD_BUFSIZE :
(int) smbc->upload_size;
conn->data->req.upload_fromhere = conn->data->state.uploadbuffer;
result = Curl_fillreadbuffer(conn, nread, &nread);
diff --git a/lib/transfer.c b/lib/transfer.c
index d6aac675b..bafb6e9c8 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -904,7 +904,7 @@ static CURLcode readwrite_upload(struct Curl_easy *data,
sending_http_headers = FALSE;
}
- result = Curl_fillreadbuffer(conn, BUFSIZE, &fillcount);
+ result = Curl_fillreadbuffer(conn, UPLOAD_BUFSIZE, &fillcount);
if(result)
return result;
diff --git a/lib/urldata.h b/lib/urldata.h
index 6e87684bf..22b0f8195 100644
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@ -207,6 +207,10 @@
#define MAX_BUFSIZE CURL_MAX_READ_SIZE
#define MIN_BUFSIZE 1024
+/* The upload buffer size, should not be smaller than CURL_MAX_WRITE_SIZE, as
+ it needs to hold a full buffer as could be sent in a write callback */
+#define UPLOAD_BUFSIZE CURL_MAX_WRITE_SIZE
+
/* Initial size of the buffer to store headers in, it'll be enlarged in case
of need. */
#define HEADERSIZE 256
@@ -1333,7 +1337,7 @@ struct UrlState {
size_t headersize; /* size of the allocation */
char *buffer; /* download buffer */
- char uploadbuffer[BUFSIZE+1]; /* upload buffer */
+ char uploadbuffer[UPLOAD_BUFSIZE+1]; /* upload buffer */
curl_off_t current_speed; /* the ProgressShow() function sets this,
bytes / second */
bool this_is_a_follow; /* this is a followed Location: request */