cURL / Mailing Lists / curl-library / Single Mail

curl-library

problem with large file upload using ssl

From: Daniel Lindemann [Steinberger IT] <daniel.lindemann_at_steinberger-it.de>
Date: Mon, 26 Jan 2009 16:03:58 +0100

Hello

I am trying to do an upload to a webserver, using Libcurl version
7.19.2, from a program written in c#.
The problem is, that I can't upload files over 2gb.
Anything smaller works fine, but with files larger than 2gb libcurl
hangs after a few calls to the read-function.
Strange thing is though, that the progress function still gets called,
but neither read- nor debug-function get called after the hang.

The webserver runs Tomcat, and is embedded in an App we are working with
and is exposing a webservice.

Any ideas what could be going wrong there?
Also, I tested the curl.exe and we have the same results with it.
It cant upload files larger than 2gb.

We are using ssl to transfer files, and the machine running the server
is a winxp.

These are the parameters i use:

CURLcode test = LibCurlWrapper.curl_easy_setopt_string(curlHandle,(int)
CURLoption.CURLOPT_URL, new
StringBuilder("https://testrechner/uploadfolder/meineDatei.iso"));
test = LibCurlWrapper.curl_easy_setopt(curlHandle,
(int)CURLoption.CURLOPT_VERBOSE, 1);
test = LibCurlWrapper.curl_easy_setopt_rf(curlHandle,
(int)CURLoption.CURLOPT_READFUNCTION, myReadFunction); // delegate
test = LibCurlWrapper.curl_easy_setopt_progress(curlHandle,
(int)CURLoption.CURLOPT_PROGRESSFUNCTION, myProgress); // delegate
test = LibCurlWrapper.curl_easy_setopt_debug(curlHandle,
(int)CURLoption.CURLOPT_DEBUGFUNCTION, myDebug); // delegate
test = LibCurlWrapper.curl_easy_setopt(curlHandle,
(int)CURLoption.CURLOPT_NOPROGRESS, 0); test =
LibCurlWrapper.curl_easy_setopt_string(curlHandle,
(int)CURLoption.CURLOPT_USERPWD, new
StringBuilder("Administrator:password"));
test = LibCurlWrapper.curl_easy_setopt(curlHandle,
(int)CURLoption.CURLOPT_UPLOAD, 1);
test = LibCurlWrapper.curl_easy_setopt(curlHandle,
(int)CURLoption.CURLOPT_INFILESIZE_LARGE, fs.Length); // filesize
test = LibCurlWrapper.curl_easy_setopt(curlHandle,
(int)CURLoption.CURLOPT_SSL_VERIFYPEER, 0); test =
LibCurlWrapper.curl_easy_setopt(curlHandle,
(int)CURLoption.CURLOPT_SSL_VERIFYHOST, 0);

thanks

Daniel
Received on 2009-01-26