Daniel Stenberg [Tue, 8 Mar 2005 16:31:56 +0000 (16:31 +0000)]
mktime() returns a time_t. time_t is often 32 bits, even on many architectures
that feature 64 bit 'long'.
Some systems have 64 bit time_t and deal with years beyond 2038. However, even
some of the systems with 64 bit time_t returns -1 for dates beyond 03:14:07
UTC, January 19, 2038. (Such as AIX 5100-06)
Daniel Stenberg [Tue, 8 Mar 2005 08:09:14 +0000 (08:09 +0000)]
Dominick Meglio reported that using CURLOPT_FILETIME when transferring a FTP
file got a Last-Modified: header written to the data stream, corrupting the
actual data. This was because some conditions from the previous FTP code was
not properly brought into the new FTP code. I fixed and I added test case 520
to verify. (This bug was introduced in 7.13.1)
Dan Fandrich [Tue, 8 Mar 2005 03:24:49 +0000 (03:24 +0000)]
Fixed the --with-zlib configure option so that it always adds the specified
path to the compiler flags. Before, a zlib installation in the default
path was always used in preference to the one in the desired location.
Dan Fandrich [Mon, 7 Mar 2005 18:59:04 +0000 (18:59 +0000)]
fseek() with SEEK_SET is broken on large file capable 32-bit systems, so
revert to the SEEK_END method of repositioning the stream after a ftruncate()
and only use SEEK_SET if ftruncate() isn't available.
Dan Fandrich [Sat, 5 Mar 2005 00:54:16 +0000 (00:54 +0000)]
Better cope with a failed or unavailable ftruncate().
Added HAVE_FTRUNCATE to all the static config-*.h files on the assumption
that all those systems provide it.
Daniel Stenberg [Fri, 4 Mar 2005 23:52:06 +0000 (23:52 +0000)]
Added test case 235 that makes a resumed upload of a file that isn't present
on the remote side. This then converts the operation to an ordinary STOR
upload. This was requested/pointed out by Ignacio Vazquez-Abrams.
It also proved (and I fixed) a bug in the newly rewritten ftp code (and
present in the 7.13.1 release) when trying to resume an upload and the servers
returns an error to the SIZE command. libcurl then loops and sends SIZE
commands infinitely.
Daniel Stenberg [Fri, 18 Feb 2005 23:53:07 +0000 (23:53 +0000)]
Ralph Mitchell reported a flaw when you used a proxy with auth, and you
requested data from a host and then followed a redirect to another
host. libcurl then didn't use the proxy-auth properly in the second request,
due to the host-only check for original host name wrongly being extended to
the proxy auth as well. Added test case 233 to verify the flaw and that the
fix removed the problem.
Daniel Stenberg [Wed, 16 Feb 2005 14:31:23 +0000 (14:31 +0000)]
Christopher R. Palmer reported a problem with HTTP-POSTing using "anyauth"
that picks NTLM. Thanks to David Byron letting me test NTLM against his
servers, I could quickly repeat and fix the problem. It turned out to be:
When libcurl POSTs without knowing/using an authentication and it gets back a
list of types from which it picks NTLM, it needs to either continue sending
its data if it keeps the connection alive, or not send the data but close the
connection. Then do the first step in the NTLM auth. libcurl didn't send the
data nor close the connection but simply read the response-body and then sent
the first negotiation step. Which then failed miserably of course. The fixed
version forces a connection if there is more than 2000 bytes left to send.
Daniel Stenberg [Fri, 11 Feb 2005 22:05:04 +0000 (22:05 +0000)]
Removed per Marty's request: The .h_* files aren't needed anymore, I
consolidated them into one file called config-vms.h. The curlmsg.h and .sdl
files are generated from the curlmsg.msg file and, thus, shouldn't be in the
dist.
Daniel Stenberg [Thu, 10 Feb 2005 08:50:33 +0000 (08:50 +0000)]
Moved out the valgrind report parser to valgrind.pm, to make it easier to
test it outside the test suite. Now we also disable valgrind usage if libcurl
was built shared, as then valgrind is only testing the wrapper-script running
shell which is pointless.
Daniel Stenberg [Wed, 9 Feb 2005 23:16:03 +0000 (23:16 +0000)]
David Byron fixed his SSL problems, initially mentioned here:
http://curl.haxx.se/mail/lib-2005-01/0240.html. It turned out we didn't use
SSL_pending() as we should.
Daniel Stenberg [Wed, 9 Feb 2005 13:06:40 +0000 (13:06 +0000)]
FTP code turned into state machine. Not completely yet, but a good start.
The tag 'before_ftp_statemachine' was set just before this commit in case
of future need.
Daniel Stenberg [Tue, 8 Feb 2005 07:36:57 +0000 (07:36 +0000)]
Curl_wait_for_resolv() no longer disconnects on failure, but leaves that
operation to the caller. Disconnecting has the disadvantage that the conn
pointer gets completely invalidated and this is not handled on lots of places
in the code.
Daniel Stenberg [Sat, 5 Feb 2005 10:25:20 +0000 (10:25 +0000)]
valgrind errors occur too often when 'make test' is used. It is because too
many third-party libs and tools have problems. When curl is built without
--disable-shared, the testing is done with a front-end script which makes the
valgrind testing include (ba)sh as well and that often causes valgrind
errors. Either we improve the valgrind error scanner a lot to better identify
(lib)curl errors only, or we disable valgrind checking by default
Daniel Stenberg [Fri, 4 Feb 2005 13:42:41 +0000 (13:42 +0000)]
David Byron pointed out that this -1 on the buffer size is pointless since
the buffer is already BUFSIZE +1 one big to fit the extra trailing zero. This
change is reported to fix David's weird SSL problem...
Daniel Stenberg [Sun, 30 Jan 2005 12:56:36 +0000 (12:56 +0000)]
Bugfixed the parser that scans the valgrind report outputs. I noticed that it
previously didn't detect and report the "Conditional jump or move depends on
uninitialised value(s)" error.
When I fixed this, I caught a few curl bugs with it. And then I had to spend
time to make the test suite IGNORE these errors when OpenSSL is used since it
produce massive amounts of valgrind warnings (but only of the "Conditional..."
kind it seems).
So, if a test that requires SSL is run, it ignores the "Conditional..."
errors, and you'll get a "valgrind PARTIAL" output instead of "valgrind OK".
Daniel Stenberg [Sat, 29 Jan 2005 22:31:06 +0000 (22:31 +0000)]
Using the multi interface, and doing a requsted a re-used connection that
gets closed just after the request has been sent failed and did not re-issue
a request on a fresh reconnect like the easy interface did. Now it does!
(define CURL_MULTIEASY, run test case 160)
Daniel Stenberg [Sat, 29 Jan 2005 22:26:38 +0000 (22:26 +0000)]
Define CURL_MULTIEASY when building this, to use my new curl_easy_perform()
that uses the multi interface to run the request. It is a great testbed for
the multi interface and I believe we shall do it this way for real in the
future when we have a successor to curl_multi_fdset().