From 2cb893575d41c0878c9490d56ab2fefcf3e1b4c4 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 12 Sep 2001 12:02:12 +0000 Subject: moved a 100K buffer from the transfer loop to the urlstate struct, as it seriously decreases the amount of used stack space --- lib/transfer.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'lib/transfer.c') diff --git a/lib/transfer.c b/lib/transfer.c index e2685b552..499454681 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -797,13 +797,9 @@ Transfer(struct connectdata *c_conn) if((keepon & KEEP_WRITE) && FD_ISSET(conn->writesockfd, &writefd)) { /* write */ - char scratch[BUFSIZE * 2]; int i, si; size_t bytes_written; - if(data->set.crlf) - buf = data->state.buffer; /* put it back on the buffer */ - nread = data->set.fread(buf, 1, conn->upload_bufsize, data->set.in); /* the signed int typecase of nread of for systems that has @@ -821,15 +817,15 @@ Transfer(struct connectdata *c_conn) if (data->set.crlf) { for(i = 0, si = 0; i < (int)nread; i++, si++) { if (buf[i] == 0x0a) { - scratch[si++] = 0x0d; - scratch[si] = 0x0a; + data->state.scratch[si++] = 0x0d; + data->state.scratch[si] = 0x0a; } else { - scratch[si] = buf[i]; + data->state.scratch[si] = buf[i]; } } nread = si; - buf = scratch; /* point to the new buffer */ + buf = data->state.scratch; /* point to the new buffer */ } /* write to socket */ @@ -840,6 +836,8 @@ Transfer(struct connectdata *c_conn) failf(data, "Failed uploading data"); return CURLE_WRITE_ERROR; } + if(data->set.crlf) + buf = data->state.buffer; /* put it back on the buffer */ } -- cgit v1.2.3