1
0
mirror of https://github.com/moparisthebest/curl synced 2024-11-17 15:05:02 -05:00
Commit Graph

3325 Commits

Author SHA1 Message Date
Daniel Stenberg
7cfd7f3fb1 minor fix to make Curl_splayremove() return a NULL as "removed" in case
nothing matched fine
2006-05-24 16:11:31 +00:00
Daniel Stenberg
b81d41df22 David McCreedy's update 2006-05-23 21:19:36 +00:00
Daniel Stenberg
5d5f5e3be8 make sure the LASTSOCKET check only checks for SSL status if the socket
truly use SSL
2006-05-11 05:17:40 +00:00
Daniel Stenberg
d9e14408f0 silence warning 2006-05-11 05:16:38 +00:00
Daniel Stenberg
c9c5ce2365 David McCreedy provided a fix for CURLINFO_LASTSOCKET that does extended
checks on the to-be-returned socket to make sure it truly seems to be alive
and well. For SSL connection it (only) uses OpenSSL functions.
2006-05-10 22:17:42 +00:00
Daniel Stenberg
3c6d3b69c2 1 - allow DICT with properly URL-escaped words, like using %20 for spaces
2 - properly escape certain letters within a DICT word to comply to the RFC2229
2006-05-10 11:44:31 +00:00
Daniel Stenberg
c811e1ce70 oops, could return an uninitialized variable 2006-05-09 13:02:53 +00:00
Daniel Stenberg
1946058e7b Robson Braga Araujo fixed two problems in the recently added non-blocking SSL
connects. The state machine was not reset properly so that subsequent
connects using the same handle would fail, and there were two memory leaks.
2006-05-09 12:43:49 +00:00
Daniel Stenberg
73daf8ce33 Robson Braga Araujo fixed a memory leak when you added an easy handle to a
multi stack and that easy handle had already been used to do one or more
easy interface transfers, as then the code threw away the previously used
DNS cache without properly freeing it.
2006-05-09 11:33:00 +00:00
Daniel Stenberg
094ceeba14 check more return codes and skip the initial slash in given file names 2006-05-08 22:23:33 +00:00
Daniel Stenberg
3b7359a27a no longer uses errno but Curl_sockerrno() and now acknowledges return codes
from Curl_client_write
2006-05-08 21:00:44 +00:00
Dan Fandrich
df9108e19b Stop sending retransmitted received blocks up to client
Fixed handling of retransmitted blocks on transmit
Properly aligned data to transmit within packet
Replaced calls to strerror() with Curl_strerror()
2006-05-08 19:41:26 +00:00
Daniel Stenberg
6307e783d8 Fixed known bug #28. The TFTP code no longer assumes a packed struct and
thus works reliably on more platforms.
2006-05-08 15:09:50 +00:00
Daniel Stenberg
b9cd73c76d Fix GnuTLS compile warning. Risking breakage with some older version of GnuTLS? 2006-05-07 18:27:36 +00:00
Daniel Stenberg
b62c230ca2 Curl_https_getsock() was OpenSSL-specific and really should not be present
like this in this source file. The quickfix for now is to provide a simple
version for GnuTLS builds. The GnuTLS version of libcurl doesn't yet allow
fully non-blocking connects anyway so this function doesn't get used.
2006-05-05 22:14:40 +00:00
Daniel Stenberg
800193da9b get the Curl_sockerrno proto 2006-05-05 22:07:01 +00:00
Daniel Stenberg
9bece2b313 additional renames of Curl_ourerrno => Curl_sockerrno 2006-05-05 10:24:27 +00:00
Daniel Stenberg
e85e30546c Roland Blom filed bug report #1481217
(http://curl.haxx.se/bug/view.cgi?id=1481217), with follow-ups by Michele Bini
and David Byron. libcurl previously wrongly used GetLastError() on windows to
get error details after socket-related function calls, when it really should
use WSAGetLastError() instead.

When changing to this, the former function Curl_ourerrno() is now instead
called Curl_sockerrno() as it is necessary to only use it to get errno from
socket-related functions as otherwise it won't work as intended on Windows.
2006-05-04 22:39:47 +00:00
Daniel Stenberg
758f6eed51 Mark Eichin submitted bug report #1480821
(http://curl.haxx.se/bug/view.cgi?id=1480821) He found and identified a
problem with how libcurl dealt with GnuTLS and a case where gnutls returned
GNUTLS_E_AGAIN indicating it would block. It would then return an unexpected
return code, making Curl_ssl_send() confuse the upper layer - causing random
28 bytes trash data to get inserted in the transfered stream.

The proper fix was to make the Curl_gtls_send() function return the proper
return codes that the callers would expect. The Curl_ossl_send() function
already did this.
2006-05-04 06:00:40 +00:00
Gisle Vanem
06a7b0561b Added revision ID-tag. 2006-04-26 17:27:36 +00:00
Gisle Vanem
12db20be4e Fixed signed/unsigned convertion errors in Salford-C.
#ifdef around WSAEDISCON in strerror.c.
2006-04-26 17:26:22 +00:00
Gisle Vanem
3cbb1b2b64 Use the HAVE_MALLOC_H and HAVE_PROCESS_H defines
(more logical).
2006-04-26 17:23:28 +00:00
Gisle Vanem
d75e587613 djgpp has <process.h> too. 2006-04-26 17:15:57 +00:00
Gisle Vanem
414c57d138 Added support for Salford-C under Win32 (scc). HAVE_MALLOC_H and
HAVE_PROCESS_H added for all except scc.
2006-04-26 17:11:05 +00:00
Daniel Stenberg
def0db30e7 crlf_conversions needs to be a curl_off_t for ASCII transfers > 4GB on 32bit
systems
2006-04-26 13:08:12 +00:00
Daniel Stenberg
95152aec68 David McCreedy brought line end conversions when doing FTP ASCII
transfers. They are done on non-windows systems and translate CRLF to LF.
2006-04-26 07:40:37 +00:00
Daniel Stenberg
87c5ed8bec Paul Querna fixed libcurl to better deal with deflate content encoding when
the stream (wrongly) lacks a proper zlib header. This seems to be the case on
too many actual server implementations.
2006-04-25 20:49:40 +00:00
Daniel Stenberg
ecc6c1f501 prevent signed/unsigned warnings 2006-04-25 05:32:05 +00:00
Daniel Stenberg
db03d4bdd0 Ale Vesely fixed CURLOPT_INTERFACE when using a hostname 2006-04-21 13:46:19 +00:00
Daniel Stenberg
0ec96e4279 each socket is used by exactly one easy handle, but of course each easy handle
can and will use more than one socket
2006-04-21 13:40:07 +00:00
Gunter Knauf
1e8683d72d removed -fpack-struct because gcc4 seems to know its obsolete and warns... 2006-04-20 10:26:51 +00:00
Daniel Stenberg
f191b143e9 CURL_VERSION_CONV is returned by curl_version_info if libcurl has been built
to allow/support character conversions
2006-04-19 09:03:21 +00:00
Daniel Stenberg
e532b196cc Robson Braga Araujo provided a patch that makes libcurl less eager to close
the control connection when using FTP, for example when you remove an easy
handle from a multi stack.
2006-04-18 23:14:30 +00:00
Daniel Stenberg
38898ba4af corrected the SSL timeout, as Ates Goral's patch did it and that works (opposed
to my previous brain-damaged version)
2006-04-18 22:10:19 +00:00
Daniel Stenberg
48f56d9600 attempt to silence the MIPSPro compiler warning 2006-04-18 10:55:41 +00:00
Daniel Stenberg
17bf5ac2fc avoid a warning about declaring a variable that shadows an earlier declared
one
2006-04-18 10:51:07 +00:00
Daniel Stenberg
343b882d80 there's an curl_easy_unescape too now 2006-04-18 09:23:03 +00:00
Gunter Knauf
19240f08bb added missing symbol export. 2006-04-17 17:06:10 +00:00
Daniel Stenberg
d774730f83 added splay 2006-04-12 18:12:46 +00:00
Gisle Vanem
c2edf42567 Added splay.c. 2006-04-12 14:01:21 +00:00
Gisle Vanem
08f0e55b4f Add "multiif.h" for GETSOCK_WRITESOCK() macro. 2006-04-12 13:54:07 +00:00
Daniel Stenberg
0542002d7a adjusted to the new internal *_getsock() concept for providing info internally
about what sockets to wait for what action on
2006-04-11 07:23:30 +00:00
Daniel Stenberg
c1e307f585 added docs and removed proto 2006-04-11 07:22:55 +00:00
Daniel Stenberg
676597e961 Ates Goral found out that if you specified both CURLOPT_CONNECTTIMEOUT and
CURLOPT_TIMEOUT, the _longer_ time would wrongly be used for the SSL
connection time-out!
2006-04-10 21:49:55 +00:00
Daniel Stenberg
686d90745b First curl_multi_socket() commit. Should primarily be considered as an internal
code rearrange to fit the future better.
2006-04-10 15:00:53 +00:00
Daniel Stenberg
0598547b58 added README.multi_socket 2006-04-10 14:54:12 +00:00
Daniel Stenberg
67c7745f5d state of the multi_socket API works 2006-04-10 14:44:23 +00:00
Daniel Stenberg
e6efecd054 avoid duplicate typedefs, as this type is also defined in our public headers 2006-04-10 13:14:14 +00:00
Daniel Stenberg
a21a77d230 CURLE_FTP_USER_PASSWORD_INCORRECT is not returned by libcurl anymore! 2006-04-09 22:41:22 +00:00
Gisle Vanem
e4a4b562c4 readint_le() not needed in USE_WINDOWS_SSPI code. 2006-04-08 11:04:53 +00:00
Gisle Vanem
35b4a755f9 curl_easy_unescape() takes 4 arguments. 2006-04-08 11:01:40 +00:00
Daniel Stenberg
5a4b43848a First commit of David McCreedy's EBCDIC and TPF changes. 2006-04-07 21:50:47 +00:00
Daniel Stenberg
4d33cf739d added typedefed function pointers and typecast the NULL assignments in an
attempt to silence picky compilers when assigning data pointers to a function
pointer variable
2006-04-07 11:47:21 +00:00
Daniel Stenberg
34e7daf989 attempt to avoid warnings in picky environments by storing options as
unsigned chars
2006-04-07 11:46:16 +00:00
Daniel Stenberg
be285cde3f Michele Bini modified the NTLM code to work for his "weird IIS case"
(http://curl.haxx.se/mail/lib-2006-02/0154.html) by adding the NTLM hash
function in addition to the LM one and making some other adjustments in the
order the different parts of the data block are sent in the Type-2 reply.
Inspiration for this work was taken from the Firefox NTLM implementation.

I edited the existing 21(!) NTLM test cases to run fine with these news. Due
to the fact that we now properly include the host name in the Type-2 message
the test cases now only compare parts of that chunk.
2006-04-05 12:35:48 +00:00
Daniel Stenberg
bcc62cc9e3 #1451929 (http://curl.haxx.se/bug/view.cgi?id=1451929) detailed a bug that
occurred when asking libcurl to follow HTTP redirects and the original URL had
more than one question mark (?). Added test case 276 to verify.
2006-03-28 08:03:25 +00:00
Gunter Knauf
d74725ce67 minor Makefile fix - let's go 2006;
avoid kiling hugehelp.c when not built from CVS.
2006-03-27 14:34:19 +00:00
Daniel Stenberg
3dad55d7a8 Tor Arntsen figured out that TFTP was broken on a lot of systems since we
called bind() with a too big argument in the 3rd parameter and at least
Tru64, AIX and IRIX seem to be very picky about it.
2006-03-26 08:52:43 +00:00
Daniel Stenberg
598ffeea89 David McCreedy added CURLINFO_FTP_ENTRY_PATH to export the FTP entry path 2006-03-21 22:30:03 +00:00
Daniel Stenberg
83367f67de Xavier Bouchoux made the SSL connection non-blocking for the multi interface
(when using OpenSSL).
2006-03-21 21:54:44 +00:00
Daniel Stenberg
6421d69bff David McCreedy fixed libcurl to no longer ignore AUTH failures and now it
reacts properly according to the CURLOPT_FTP_SSL setting.
2006-03-20 22:51:08 +00:00
Dan Fandrich
a63f9887b9 Fixed a bug whereby a received file whose length was a multiple of
512 bytes could have random garbage appended.  Also, stop processing TFTP
packets which are too short to be legal.
2006-03-20 22:15:22 +00:00
Daniel Stenberg
5975229919 fixed tftp packet overflow risk 2006-03-20 07:32:50 +00:00
Daniel Stenberg
d494d62953 David McCreedy found a use of the wrong variable when display the error
text from OpenSSL.
2006-03-13 23:34:25 +00:00
Daniel Stenberg
7206181385 David McCreedy found a missing return code assignment 2006-03-13 23:33:46 +00:00
Daniel Stenberg
f70f11fc70 Peter Heuchert's correction for the clear control connection case 2006-03-08 15:46:21 +00:00
Daniel Stenberg
cffebd7fd6 Markus Koetter filed debian bug report #355715 which identified a problem
with the multi interface and multi-part formposts. The fix from February
22nd could make the Curl_done() function get called twice on the same
connection and it was not designed for that and thus tried to call free() on
an already freed memory area!
2006-03-07 23:11:41 +00:00
Daniel Stenberg
b8c8e7349f Peter Heuchert made sure the CURLFTPSSL_CONTROL setting for CURLOPT_FTP_SSL
is used properly.
2006-03-07 22:28:08 +00:00
Daniel Stenberg
8bba99ae56 Lots of users on Windows have reported getting the "SSL: couldn't set
callback" error message so I've now made the setting of that callback not be
as critical as before. The function is only used for additional loggging/
trace anyway so a failure just means slightly less data. It should still be
able to proceed and connect fine to the server.
2006-03-06 22:35:51 +00:00
Daniel Stenberg
b5c5f57613 build fix for Interix 2006-03-04 22:39:31 +00:00
Daniel Stenberg
7d68101f83 Prevent uploading to a URL that has no file name part. 2006-03-03 13:09:30 +00:00
Gisle Vanem
dc4fbd2e97 Small fix. 2006-02-26 18:20:43 +00:00
Gisle Vanem
60b029869f Use getprotobyname() to retrieve protocol number for TCP
(sorry, I don't know how to add this to the configure process).
2006-02-26 17:08:33 +00:00
Dan Fandrich
a39ac3d94a Added user ID support to SOCKS4. 2006-02-24 21:35:48 +00:00
Daniel Stenberg
4486d336a6 argh, forgot the check for a connection before we call Curl_done 2006-02-23 21:29:48 +00:00
Dan Fandrich
45e4b811b0 Fixed a few more comment typos. 2006-02-23 18:39:22 +00:00
Daniel Stenberg
0e6a1a4420 Peter Su's SOCKS4 fix 2006-02-23 14:42:47 +00:00
Daniel Stenberg
6fdbb01194 Lots of work and analysis by "xbx___" in bug #1431750
(http://curl.haxx.se/bug/view.cgi?id=1431750) helped me identify and fix two
different but related bugs:

1) Removing an easy handle from a multi handle before the transfer is done
   could leave a connection in the connection cache for that handle that is
   in a state that isn't suitable for re-use. A subsequent re-use could then
   read from a NULL pointer and segfault.

2) When an easy handle was removed from the multi handle, there could be an
   outstanding c-ares DNS name resolve request. When the response arrived,
   it caused havoc since the connection struct it "belonged" to could've
   been freed already.

Now Curl_done() is called when an easy handle is removed from a multi handle
pre-maturely (that is, before the transfer was complteted). Curl_done() also
makes sure to cancel all (if any) outstanding c-ares requests.
2006-02-23 12:20:48 +00:00
Dan Fandrich
75c9430559 Fixed some spelling errors in comments, and extraneous \n in failf logs. 2006-02-22 19:09:33 +00:00
Daniel Stenberg
a15d107dde Peter Su added support for SOCKS4 proxies. Enable this by setting the proxy
type to the already provided type CURLPROXY_SOCKS4.
I added a --socks4 option that works like the current --socks5 option but
instead use the socks4 protocol.
2006-02-21 07:46:41 +00:00
Daniel Stenberg
29e446e508 Shmulik Regev fixed an issue with multi-pass authentication and compressed
content when libcurl didn't honor the internal ignorebody flag.
2006-02-19 23:16:48 +00:00
Daniel Stenberg
10beb36b1c Ulf Hrnhammar fixed a format string (printf style) problem in the Negotiate
code. It should however not be the cause of any troubles. He also fixed a
few similar problems in the HTTP test server code.
2006-02-18 22:27:01 +00:00
Yang Tse
a65a888866 Fix spacing. 2006-02-17 15:58:21 +00:00
Daniel Stenberg
92009181af Shmulik Regev provided a fix for the DNS cache when using short life times,
as previously it could be holding on to old cached entries longer than
requested.
2006-02-16 23:42:32 +00:00
Daniel Stenberg
ad6511c313 Added some clarifying comments 2006-02-16 10:02:11 +00:00
Daniel Stenberg
87bcb6f377 Karl M added the CURLOPT_CONNECT_ONLY and CURLINFO_LASTSOCKET options that
an app can use to let libcurl only connect to a remote host and then extract
the socket from libcurl. libcurl will then not attempt to do any transfer at
all after the connect is done.
2006-02-11 22:35:16 +00:00
Daniel Stenberg
12f5c67bf5 Philippe Vaucher provided a brilliant piece of test code that show a problem
with re-used FTP connections. If the second request on the same connection was
set not to fetch a "body", libcurl could get confused and consider it an
attempt to use a dead connection and would go acting mighty strange.
2006-02-07 23:09:04 +00:00
Gisle Vanem
5994b62930 Squelch the "warning: 'port' might be used uninitialized in this function".
(occurs w/o ENABLE_IPV6).
2006-01-30 18:57:02 +00:00
Daniel Stenberg
2fbf94b0f3 Added CURLOPT_LOCALPORT and CURLOPT_LOCALPORTRANGE to libcurl. Set with the
curl tool with --local-port. Plain and simply set the range of ports to bind
the local end of connections to. Implemented on to popular demand.

Not extensively tested. Please let me know how it works.
2006-01-30 08:24:07 +00:00
Daniel Stenberg
32bc30e210 Based on an error report by Philippe Vaucher, we no longer count a retried
connection setup as a follow-redirect. It turns out 1) this fails when a FTP
connection is re-setup and 2) it does make the max-redirs counter behave
wrong. This fix was not verified since the reporter vanished, but I believe
this is the right fix nonetheless.
2006-01-30 08:20:52 +00:00
Daniel Stenberg
8d4eb2bc1f updated source header 2006-01-26 10:39:25 +00:00
Daniel Stenberg
67bf4f28ff Michal Marek provided a patch for FTP that makes libcurl continue to try PASV
even after EPSV returned a positive response code, if libcurl failed to
connect to the port number the EPSV response said. Obviously some people are
going through protocol-sensitive firewalls (or similar) that don't understand
EPSV and then they don't allow the second connection unless PASV was
used. This also called for a minor fix of test case 238.
2006-01-24 14:40:43 +00:00
Daniel Stenberg
fcfd6d9504 Duane Cathey was one of our friends who reported that curl -P [IP]
(CURLOPT_FTPPORT) didn't work for ipv6-enabed curls if the IP wasn't a
"native" IP while it works fine for ipv6-disabled builds!

In the process of fixing this, I removed the support for LPRT since I can't
think of many reasons to keep doing it and asking on the mailing list didn't
reveal anyone else that could either. The code that sends EPRT and PORT is
now also a lot simpler than before (IMHO).
2006-01-19 23:52:03 +00:00
Daniel Stenberg
c31451cf13 Jon Turner pointed out that doing -P [hostname] with curl (built ipv4-only)
didn't work.
2006-01-19 22:02:46 +00:00
Daniel Stenberg
67a83c1b34 David Shaw finally removed all traces of Gopher and we are now officially
not supporting it. It hasn't been functioning for years anyway, so this is
just finally stating what already was true. And a cleanup at the same time.
2006-01-16 22:14:37 +00:00
Daniel Stenberg
4c35a40858 Bryan Henderson turned the 'initialized' variable for curl_global_init()
into a counter, and thus you can now do multiple curl_global_init() and you
are then supposed to do the same amount of calls to curl_global_cleanup().
Bryan also updated the docs accordingly.
2006-01-15 23:55:53 +00:00
Daniel Stenberg
d9bd5de0b1 Fixed FTP_SKIP_PASV_IP and FTP_USE_EPSV to "do right" when used on FTP thru
HTTP proxy.
2006-01-12 22:18:38 +00:00
Daniel Stenberg
31c7aa0ba4 Michael Jahn fixed ftp over CONNECT 2006-01-12 12:40:04 +00:00
Daniel Stenberg
4431338691 When using a bad path over FTP, as in when libcurl couldn't CWD into all
given subdirs, libcurl would still "remember" the full path as if it is the
current directory libcurl is in so that the next curl_easy_perform() would
get really confused if it tried the same path again - as it would not issue
any CWD commands at all, assuming it is already in the "proper" dir.

Starting now, a failed CWD command sets a flag that prevents the path to be
"remembered" after returning.
2006-01-10 23:03:22 +00:00
Daniel Stenberg
bda1e9aeab Made the copyright year match the latest modification's year. 2006-01-09 13:17:14 +00:00
Daniel Stenberg
f4cc8153ae Mike Jean fixed so that the second CONNECT when doing FTP over a HTTP proxy
actually used a new connection and not sent the second request on the first
socket!
2006-01-07 22:24:16 +00:00
Gisle Vanem
4dcb930247 Include <sys/ioctl.h> before redefining ioctl(). 2006-01-02 18:35:58 +00:00
Marty Kuhrt
0040a60559 fix questionable compare 2005-12-30 00:35:21 +00:00
Marty Kuhrt
cc34342790 fix questionable compare compiler error (unsigned can't be < 0) 2005-12-30 00:20:46 +00:00
Marty Kuhrt
b11dec5dd5 putting back into dist 2005-12-30 00:07:25 +00:00
Daniel Stenberg
0e3ebd9841 Kirill Vasiliev fixed the 'release-ssl-dll' target to properly build a
static libcurl using openssl as dll.
2005-12-23 23:40:40 +00:00
Daniel Stenberg
7d1e3ebeed explain tld_check_name() 2005-12-20 22:46:12 +00:00
Gisle Vanem
7b51aafa86 Changes for PellesC compiler under Win32. A bit limited, but
we just love swedish products...
2005-12-20 22:20:04 +00:00
Dan Fandrich
178afd81a9 Fixed lcc compiler warnings. 2005-12-19 19:47:14 +00:00
Yang Tse
0ad3e046a4 Fix spacing. When defining, define to 1. 2005-12-18 16:50:33 +00:00
Yang Tse
d6c5d24af3 Cleanup windows header includes. Where aplicable, inclusion of
windows.h winsock.h winsock2.h ws2tcpip.h is done in setup.h
2005-12-18 15:36:14 +00:00
Yang Tse
23b34744d9 Cleanup 2005-12-17 21:20:35 +00:00
Yang Tse
bc8590aa12 Windows related cleanup 2005-12-17 20:37:53 +00:00
Yang Tse
336e3b8baf Change multiple header inclusion prevention definition to __LIB_CURL_SETUP_H 2005-12-17 06:04:35 +00:00
Yang Tse
e105d5c28f 'Fix' windows builds 2005-12-16 20:55:07 +00:00
Daniel Stenberg
6dbfce1031 Jean Jacques Drouin pointed out that you could only have a user name or
password of 127 bytes or less embedded in a URL, where actually the code
uses a 255 byte buffer for it! Modified now to use the full buffer size.
2005-12-16 14:52:16 +00:00
Dan Fandrich
e2df946eee Fixed some compiler warnings on lcc. 2005-12-13 18:54:31 +00:00
Yang Tse
d14588120f Undo last 'fix', since it was not the proper one. 2005-12-13 13:50:22 +00:00
Yang Tse
947f9deed5 Fix compiler warning 2005-12-12 18:40:18 +00:00
Yang Tse
b15f3bb969 Undo last changes 2005-12-11 23:37:58 +00:00
Daniel Stenberg
998e8cba19 Dov Murik made defining HTTP_ONLY also disable TFTP 2005-12-11 23:14:25 +00:00
Yang Tse
e3f523ab2a Avoid generation of additional warnings 2005-12-11 18:29:18 +00:00
Yang Tse
36485e56ed Fix compiler warning and compatibility issue with the type of the parameter used in getnameinfo() to receive the length of the sockaddr struct. 2005-12-11 12:03:01 +00:00
Yang Tse
1cc98ab50f Unset HAVE_STRUCT_SOCKADDR_STORAGE when using msvc 6.0 with no PSDK 2005-12-09 15:19:07 +00:00
Dan Fandrich
df03d5a8b2 Replaced nonstandard u_char and u_int types 2005-12-08 22:59:58 +00:00
Yang Tse
6a0ed81e67 Fix compiler warning 2005-12-08 20:38:04 +00:00
Yang Tse
c94f3e8188 Fix compiler warning 2005-12-08 19:47:33 +00:00
Dan Fandrich
1e5f6cc1dc Fixed a lingering omission of gzip support. 2005-12-08 18:59:19 +00:00
Daniel Stenberg
f49df54a36 7.15.1 with the now to be announced security flaw fixed 2005-12-06 23:05:51 +00:00
Dan Fandrich
8c6f654b26 Added a run-time check to warn if TFTP is going to fail due to portability
issues in the code.
2005-12-05 20:07:05 +00:00
Daniel Stenberg
083c5e17e1 Yang Tse fixed: Openssl 0.9.9 makes 'const' the SSL_METHOD parameter in
SSL_CTX_new and others, and also makes functions SSLv23_client_method,
TLSv1_client_method, etc return a 'const' SSL_METHOD pointer. Previous
versions do not use the 'const' qualifier.
2005-12-05 15:14:04 +00:00
Daniel Stenberg
272231fb09 Another Yang Tse warning cleanup raid! 2005-12-05 14:10:48 +00:00
Gisle Vanem
67b4d9b232 Recent OpenSSL returns a 'const' in '*_client_method()'. So avoid
'assignment discards qualifiers from pointer target type' warning.
2005-12-04 18:47:36 +00:00
Daniel Stenberg
9c312637d1 Yang Tse's fix to only provide the proto if there is such a function and
we didn't find any proto
2005-12-02 23:22:45 +00:00
Daniel Stenberg
feacad7f68 Yang Tse fixed the 4th argument in the sendto() calls 2005-12-02 23:22:00 +00:00
Daniel Stenberg
6513303498 Jamie Newton pointed out that libcurl's file:// code would close() a zero
file descriptor if given a non-existing file.
2005-12-01 23:42:03 +00:00
Daniel Stenberg
176d4e85e9 cast the va_arg() assignment to ftp_filemethod properly 2005-11-30 13:09:48 +00:00
Daniel Stenberg
0fd282b078 new experimental "ftp method" code 2005-11-28 23:06:00 +00:00
Daniel Stenberg
b222b2304e Yang Tse's changes to provide an inet_pton() proto for the platforms who
don't have one in order to fix a remaining warning on IRIX 6.2.
2005-11-28 20:21:35 +00:00
Daniel Stenberg
01cbf08064 Yang Tse: fixes the use of Curl_inet_ntop and Curl_inet_pton with no
prototypes on some platforms, ie IRIX 6.2 MIPS C 6.2
2005-11-25 22:20:02 +00:00
Daniel Stenberg
afc2aa2b3f Yang Tse: use static on file-private functions 2005-11-24 20:39:00 +00:00
Daniel Stenberg
d055b269ed Yang Tse: fix compilation errors when SSL is not disabled and HTTP is
disabled
2005-11-24 20:38:20 +00:00
Daniel Stenberg
8a246a4a9f Yang Tse: removes GOPHER protocol when HTTP is disabled 2005-11-24 20:37:13 +00:00
Gisle Vanem
2f684351bf Changes for OpenWatcom 1.4. 2005-11-24 20:33:38 +00:00
Daniel Stenberg
74e5beab9d Doug Kaufman's set of patches to make curl build fine on DJGPP again using
configure.
2005-11-24 10:22:46 +00:00
Daniel Stenberg
05a6013f42 Yang Tse's patch to silence MSVC warnings 2005-11-23 22:59:24 +00:00
Daniel Stenberg
cfff544d67 only enable NTLM if HTTP and NTLM is not disabled, and if NTLM is disabled
we define an empty macro for the ntlm cleanup function
2005-11-23 11:51:31 +00:00
Daniel Stenberg
599d9642ca Yang Tse fixed MSVC 6.0 warnings 2005-11-23 09:10:00 +00:00
Daniel Stenberg
0264faaa4e fix compiler warning 2005-11-18 07:23:50 +00:00
Daniel Stenberg
4022a60ea7 I extended a patch from David Shaw to make libcurl _always_ provide an error
string in the given error buffer to address the flaw mention on 21 sep 2005.
2005-11-17 14:29:54 +00:00
Daniel Stenberg
92c0de518e Quagmire reported that he needed to raise a NTLM buffer for SSPI to work
properly for a case, and so we did. We raised it even for non-SSPI builds
but it should not do any harm. http://curl.haxx.se/bug/view.cgi?id=1356715
2005-11-14 22:10:52 +00:00
Daniel Stenberg
fd870e4e8a Yang Tse: msvc7+ has deprecated the 'DESCRIPTION' section in
module-definition files. this section is not mandatory for msvc60 so it
could be completely removed from libcurl.def.
2005-11-14 07:48:05 +00:00
Daniel Stenberg
d52ed3fff2 Jan Kunder's debian bug report
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=338680 identified a weird
error message for when you try to upload a file and the requested directory
doesn't exist on the target server.
2005-11-14 00:18:12 +00:00
Daniel Stenberg
9ace303528 Yang Tse fixed compiler warnings 2005-11-13 23:53:14 +00:00
Daniel Stenberg
7e81c35cdc to build with old gnutls verions, don't use the *_t types 2005-11-13 23:04:28 +00:00
Gisle Vanem
d4714517c0 Add HAVE_STRUCT_SOCKADDR_STORAGE.
My mistake; WinCE has it's own config-file.
2005-11-13 13:32:19 +00:00
Gisle Vanem
280e4bf4c3 Fix for WIN32. WIN32 does have 'struct sockaddr_storage', but
that's in <winsock2.h>. Hence tftp.c wouldn't compile on WinCE.
2005-11-13 13:20:37 +00:00
Daniel Stenberg
c2862742ab Thanks to this nice summary of poll() implementations:
http://www.greenend.org.uk/rjk/2001/06/poll.html and further tests by Eugene
Kotlyarov, we now know that cygwin's poll returns only POLLHUP on remote
connection closure so we check for that case (too) and re-enable poll for
cygwin builds.
2005-11-13 09:24:06 +00:00
Daniel Stenberg
d58790af17 oops * 2 2005-11-12 22:13:20 +00:00
Daniel Stenberg
9ef7a13403 oops 2005-11-12 22:12:42 +00:00
Daniel Stenberg
a5da1219bb Reversed the logic for sockaddr_storage and made our own Curl_sockaddr_storage
struct instead to use.
2005-11-12 22:10:42 +00:00
Daniel Stenberg
5e3836055f Dima Barsky patched problem #1348930: the GnuTLS code completely ignored
client certificates! (http://curl.haxx.se/bug/view.cgi?id=1348930).
2005-11-11 23:20:07 +00:00
Daniel Stenberg
37a6a0bb3e Moved the sockaddr_storage definition to lib/sockaddr.h and only include that
in files that actually need the struct.
2005-11-11 22:04:11 +00:00
Daniel Stenberg
ae9fbe573e David Lang fixed IPv6 support for TFTP! 2005-11-10 22:25:07 +00:00
Daniel Stenberg
29676f473d David Lang: if there is no sockaddr_storage, make up our own and use that 2005-11-10 22:24:49 +00:00
Daniel Stenberg
cab59b4c32 Removed the use of AI_CANONNAME in the IPv6-enabled resolver functions since
we really have no use for reverse lookups of the address.

I truly hope these are the last reverse lookups we had lingering in the
code!
2005-11-08 14:45:58 +00:00
Daniel Stenberg
175335808b Dmitry Bartsevich discovered some issues in compatibilty of SSPI-enabled
version of libcurl with different Windows versions. Current version of
libcurl imports SSPI functions from secur32.dll. However, under Windows NT
4.0 these functions are located in security.dll, under Windows 9x - in
secur32.dll and Windows 2000 and XP contains both these DLLs (security.dll
just forwards calls to secur32.dll).

Dmitry's patch loads proper library dynamically depending on Windows
version. Function InitSecurityInterface() is used to obtain pointers to all
of SSPI function in one structure.
: ----------------------------------------------------------------------
2005-11-08 14:15:34 +00:00
Gisle Vanem
6b1e54da62 Use an empty '*mod_name'. 2005-11-01 16:27:27 +00:00
Daniel Stenberg
b91421b107 Vilmos Nebehaj improved libcurl's LDAP abilities:
The LDAP code in libcurl can't handle LDAP servers of LDAPv3 nor binary
attributes in LDAP objects. So, I made a quick patch to address these
problems.

The solution is simple: if we connect to an LDAP server, first try LDAPv3
(which is the preferred protocol as of now) and then fall back to LDAPv2.
In case of binary attributes, we first convert them to base64, just like the
openldap client does. It uses ldap_get_values_len() instead of
ldap_get_values() to be able to retrieve binary attributes correctly. I
defined the necessary LDAP macros in lib/ldap.c to be able to compile
libcurl without the presence of libldap
2005-10-31 08:55:01 +00:00
Daniel Stenberg
43b3954fa5 kill trailing whitespace 2005-10-31 08:47:54 +00:00
Daniel Stenberg
966fa848a0 Nis Jorgensen filed bug report #1338648
(http://curl.haxx.se/bug/view.cgi?id=1338648) which really is more of a
feature request, but anyway. It pointed out that --max-redirs did not allow
it to be set to 0, which then would return an error code on the first
Location: found. Based on Nis' patch, now libcurl supports CURLOPT_MAXREDIRS
set to 0, or -1 for infinity. Added test case 274 to verify.
2005-10-27 22:05:38 +00:00
Gisle Vanem
bd72c5eacf Added option '-zc' puts const data in code-segment.
Added CURL_DISABLE_TFTP; tftp.c doesn't compile as-is.
2005-10-27 12:45:31 +00:00
Daniel Stenberg
9e0882ba98 close the existing socket when trying next IP, as otherwise we leak one!
bug #1326306
2005-10-25 13:15:11 +00:00
Daniel Stenberg
c890149c8c Dima Barsky reported a problem with GnuTLS-enabled libcurl in bug report
#1334338 (http://curl.haxx.se/bug/view.cgi?id=1334338). When reading an SSL
  stream from a server and the server requests a "rehandshake", the current
  code simply returns this as an error. I have no good way to test this, but
  I've added a crude attempt of dealing with this situation slightly better -
  it makes a blocking handshake if this happens. Done like this because fixing
  this the "proper" way (that would handshake asynchronously) will require
  quite some work and I really need a good way to test this to do such a
  change.
2005-10-22 21:05:07 +00:00
Daniel Stenberg
1a1ab2e2e8 "Ofer" reported a problem when libcurl re-used a connection and failed to do
it, it could then accidentally actually crash. Presumably, this concerns FTP
connections.  http://curl.haxx.se/bug/view.cgi?id=1330310
2005-10-21 21:00:44 +00:00
Daniel Stenberg
715b706caa Temprimus improved the MSVC makefile so that the static debug SSL libs are
linked to the executable and not to the libcurld.lib
http://curl.haxx.se/bug/view.cgi?id=1326676
2005-10-21 19:32:12 +00:00
Daniel Stenberg
bfa9c42c25 Bradford Bruce made the windows resolver code properly return
CURLE_COULDNT_RESOLVE_PROXY and CURLE_COULDNT_RESOLVE_HOST on resolving
errors (as documented).
2005-10-21 19:21:19 +00:00
Daniel Stenberg
be9c873a6e Dave Dribin made libcurl understand and handle cases when the server
(wrongly) sends *two* WWW-Authenticate headers for Digest. While this should
never happen in a sane world, libcurl previously got into an infinite loop
when this occurred. Dave added test 273 to verify this.
2005-10-20 20:07:32 +00:00
Daniel Stenberg
021e786c71 Added a dump_addrinfo() function to ease debugging of resolved names. Define
DEBUG_ADDRINFO to enable.
2005-10-20 19:40:02 +00:00
Daniel Stenberg
0c6bb8cb66 Temprimus improved the MSVC makefile: "makes a build option available so if
you set rtlibcfg=static for the make, then it would build with /MT. The
default behaviour is /MD (the original)."
http://curl.haxx.se/bug/view.cgi?id=1326665
2005-10-20 19:07:33 +00:00
Daniel Stenberg
51369753bb Reported by 'TemPRImus' in bug 1326665: use the "Multi-Threaded" options even
when building the static library. http://curl.haxx.se/bug/view.cgi?id=1326665
2005-10-14 13:22:49 +00:00
Daniel Stenberg
943aea6267 Make sure that the user and domain strings fit in the target buffer before we
copy them there.
2005-10-13 07:57:51 +00:00
Daniel Stenberg
b2be6799f2 pass a NULL pointer in the service argument (the second) if the port number
was 0 as it seems at least some AIX versions don't like a "0" string there
2005-10-10 18:28:05 +00:00
Gisle Vanem
ea2618fc6f Added tftp.obj. 2005-10-06 18:47:05 +00:00
Daniel Stenberg
3beb2f6b5d CURL_TIMECOND_IFMODSINCE actually requires that the remote document has been
modded since the given time, so we should compare <= and not just <.
2005-10-05 06:09:20 +00:00
Daniel Stenberg
db83a0ebbc Michael Wallner reported that the date parser had wrong offset stored for
the MEST and CEST time zones.
2005-10-04 18:15:33 +00:00
Gisle Vanem
06c3bec65d Avoid gcc warning "dereferencing type-punned pointer
will break strict-aliasing rules".
2005-10-02 18:22:45 +00:00
Gisle Vanem
e8c3bb45ba Fix for building with MS Visual-C and single-threaded
runtime libs.
2005-10-02 16:52:07 +00:00
Daniel Stenberg
e43217e664 Starting now, the verbose text that goes like "About to connect() to" will
now contain the word "proxy" is the hostname is in fact a proxy. This will
help users detect situations when they mistakenly use a proxy.
2005-09-29 11:37:52 +00:00
Daniel Stenberg
b4c53e2cfd An anonymous submitter filed bug #1299181
(http://curl.haxx.se/bug/view.cgi?id=1299181) that identified a silly problem
with Content-Range: headers with the 'bytes' keyword written in a different
case than all lowercase! It would cause a segfault!
2005-09-27 09:13:39 +00:00
Daniel Stenberg
a2902de67c TJ Saunders of the proftpd project identified and pointed out problems with
the modified FTPS negotiation change of August 19 2005. Thus, we revert the
change back to pre-7.14.1 status.
2005-09-27 08:46:54 +00:00
Daniel Stenberg
bd5a622400 stricter type usage for time variables to avoid picky compiler warnings 2005-09-21 11:28:40 +00:00
Daniel Stenberg
b6f0aa4394 return an error string for the missing URL case 2005-09-21 06:38:33 +00:00
Daniel Stenberg
58d628c9f8 Uses __stdcall instead of SEC_ENTRY since it seems (at least) mingw doesn't
define SEC_ENTRY and thus fails unless this is done!
2005-09-20 08:29:56 +00:00
Daniel Stenberg
1cf798ad14 typecasts added in an attempt to please the picky compilers 2005-09-20 06:51:23 +00:00
Daniel Stenberg
3fe5311967 Dmitry Bartsevich made the SSPI support work on Windows 9x as well 2005-09-19 21:45:16 +00:00
Daniel Stenberg
e7093b3ca8 keep 'socktype' in the connectdata struct and make sure we use that for all
protocol sockets even if the resolved address may say otherwise
2005-09-16 21:30:08 +00:00
Daniel Stenberg
97a6d7b1a8 minor changes, the biggest one being using Curl_select() 2005-09-15 20:21:27 +00:00
Daniel Stenberg
0b8ccd0ae7 oops, return error if an error did occur! 2005-09-14 15:04:01 +00:00
Daniel Stenberg
0e7d93858d added tftp.c 2005-09-07 14:42:15 +00:00
Gisle Vanem
9889a811db Fix warning about missing initializers. 2005-09-06 15:58:09 +00:00
Gisle Vanem
9e38d882b9 Fix for bind() on Winsock; AF_UNSPEC (0) is illegal.
Should we do this for all targets?
2005-09-06 15:43:14 +00:00
Daniel Stenberg
e8b77477c7 sockets are curl_socket_t to build cleaner 2005-09-06 10:39:01 +00:00
Daniel Stenberg
64298e528d Use SOCK_DGRAM for TFTP. Consider setting this up at one central place, we
have this check done on far too many places by now...
2005-09-06 10:37:57 +00:00
Gunter Knauf
4f1465e7c7 minor Makefile fixes. 2005-09-06 00:39:41 +00:00
Daniel Stenberg
a3d776187a check that bind() returns success 2005-09-04 18:33:20 +00:00
Daniel Stenberg
7e845e7cfd Added FTP_SKIP_PASV_IP and --ftp-skip-pasv-ip 2005-09-04 05:16:06 +00:00
Daniel Stenberg
56d9624b56 John Kelly added TFTP support to libcurl. A bunch of new error codes was
added. TODO: add them to docs. add TFTP server to test suite. add TFTP to
list of protocols whereever those are mentioned.
2005-09-02 15:11:08 +00:00
Daniel Stenberg
2fe3c22108 use it as 'struct addrinfo' so perhaps it builds on mingw again 2005-08-31 06:04:48 +00:00
Daniel Stenberg
64414df27e Use the more correct BUILDING_LIBCURL define instead of CURLLIB_EXPORTS.
Kevin Lussier pointed this out!
2005-08-29 20:56:20 +00:00
Daniel Stenberg
87bbd13899 Igor Polyakov fixed a rather nasty problem with the threaded name resolver
for Windows, that could lead to an Access Violation when the multi interface
was used due to an issue with how the resolver thread was and was not
terminated.
2005-08-29 14:23:53 +00:00
Daniel Stenberg
5effe8f336 Simon Josefson brought GNU GSS support 2005-08-29 08:42:45 +00:00
Daniel Stenberg
9853acba66 Moved the GnuTLS related TODO items from lib/TODO.gnutls to the proper
docs/TODO
2005-08-29 06:59:44 +00:00
Daniel Stenberg
a4773fcbbb Toby Peterson added CURLOPT_IGNORE_CONTENT_LENGTH to the library, accessible
from the command line tool with --ignore-content-length. This will make it
easier to download files from Apache 1.x (and similar) servers that are
still having problems serving files larger than 2 or 4 GB. When this option
is enabled, curl will simply have to wait for the server to close the
connection to signal end of transfer. I wrote test case 269 that runs a
simple test that this works.
2005-08-24 10:57:28 +00:00
Daniel Stenberg
432dfe2b8f Fixed CA cert verification using GnuTLS with the default bundle, which
previously failed due to GnuTLS not allowing x509 v1 CA certs by default.
2005-08-24 07:40:13 +00:00
Gunter Knauf
f14195f786 enabled statically linked builds. 2005-08-22 02:39:05 +00:00
Daniel Stenberg
710ee3b0e0 Norbert Novotny had problems with FTPS and he helped me work out a patch
that made curl run fine in his end. The key was to make sure we do the
SSL/TLS negotiation immediately after the TCP connect is done and not after
a few other commands have been sent like we did previously. I don't consider
this change necessary to obey the standards, I think this server is pickier
than what the specs allow it to be, but I can't see how this modified
libcurl code can add any problems to those who are interpreting the
standards more liberally.
2005-08-19 14:41:09 +00:00
Gunter Knauf
2a94387fc3 minor Makefile fixes. 2005-08-18 16:39:29 +00:00
Daniel Stenberg
90e1a6905a remove the typecast to long from time_t, since we now store it as curl_off_t 2005-08-17 09:11:27 +00:00
Daniel Stenberg
a676c18502 - Jeff Pohlmeyer found out that if you ask libcurl to load a cookiefile (with
CURLOPT_COOKIEFILE), add a cookie (with CURLOPT_COOKIELIST), tell it to
  write the result to a given cookie jar and then never actually call
  curl_easy_perform() - the given file(s) to read was never read but the
  output file was written and thus it caused a "funny" result.

- While doing some tests for the bug above, I noticed that Firefox generates
  large numbers (for the expire time) in the cookies.txt file and libcurl
  didn't treat them properly. Now it does.
2005-08-17 08:55:43 +00:00
Gunter Knauf
362912ff83 added curl_mvsnprintf to the export list; I appened to the end cause of the numbering ... 2005-08-16 20:12:58 +00:00
Gunter Knauf
46ff13f243 added curl_mvsnprintf to the export list. 2005-08-16 20:11:25 +00:00
Daniel Stenberg
35110eca73 James Bursa identified a libcurl HTTP bug and a good way to repeat it. If a
site responds with bad HTTP response that doesn't contain any header at all,
only a response body, and the write callback returns 0 to abort the
transfer, it didn't have any real effect but the write callback would be
called once more anyway.
2005-08-13 21:28:46 +00:00
Daniel Stenberg
84c4d96e71 removed old debug left-over infof() call 2005-08-11 21:41:11 +00:00
Daniel Stenberg
6d14a80608 Added comment about strtoimax() 2005-08-11 20:42:02 +00:00
Daniel Stenberg
20b17d6b04 the debug callback was called with CURLINFO_TEXT with the data size one
too big
2005-08-10 22:57:14 +00:00
Gunter Knauf
0ae6ff9f72 some minor Makefile fixes for SSL. 2005-08-10 19:19:25 +00:00
Daniel Stenberg
6c157a404b Christopher R. Palmer fixed the offsets used for date parsings when the time
zone name of a daylight savings time was used. For example, PDT vs PDS. This
flaw was introduced with the new date parser (11 sep 2004 - 7.12.2).
Fortunately, no web server or cookie string etc should be using such time
zone names thus limiting the effect of this bug.
2005-08-09 21:59:31 +00:00
Daniel Stenberg
493d6033aa Jon Grubbs filed bug report #1249962 which identified a problem with NTLM on a
HTTP proxy if an FTP URL was given. libcurl now properly switches to pure HTTP
internally when an HTTP proxy is used, even for FTP URLs. The problem would
also occur with other multi-pass auth methods.
2005-08-07 22:59:06 +00:00
Daniel Stenberg
aeb04136f7 Don't prevent FTPS:// through a http proxy, as we cannot know if it works or
not!
2005-08-07 21:39:44 +00:00
Daniel Stenberg
e358a24a75 reset the numcookies counter too (I missed it in the previous commit) 2005-07-28 21:53:09 +00:00
Daniel Stenberg
ec3f269d1f now strdups the cookielist inpointer before passed on, as the cookie function
modifies it
2005-07-28 21:50:34 +00:00
Daniel Stenberg
1c388a52a5 curl standard indent/format 2005-07-28 21:49:58 +00:00
Daniel Stenberg
726b9e2240 If any of the options CURLOPT_HTTPGET, CURLOPT_POST and CURLOPT_HTTPPOST is
set to 1, CURLOPT_NOBODY will now automatically be set to 0.
2005-07-27 22:29:50 +00:00
Daniel Stenberg
2236ba0d20 Peteris Krumins added CURLOPT_COOKIELIST and CURLINFO_COOKIELIST, which is a
simple interface to extracting and setting cookies in libcurl's internal
"cookie jar". See the new cookie_interface.c example code.
2005-07-27 22:17:14 +00:00
Daniel Stenberg
463c0f7096 disabling HTTP should also nullify this function call 2005-07-27 21:44:43 +00:00
Dan Fandrich
6e87cf5b30 Fixed some typos in output messages. 2005-07-21 22:18:35 +00:00
Daniel Stenberg
4922904991 Simplified the code within curl_easy_perform() that calls Curl_perform().
Pointed out by Bjorn Reese.
2005-07-17 12:44:11 +00:00
Daniel Stenberg
16bbd13af7 Diego Casorran patches to make (lib)curl build fine on Amiga again 2005-07-13 18:06:40 +00:00
Daniel Stenberg
465e19dbe9 Adrian Schuur added trailer support in the chunked encoding stream. The
trailer is then sent to the normal header callback/stream.
2005-07-12 18:15:34 +00:00
Daniel Stenberg
c3a826fdce correction for the 407 with response-body case 2005-07-05 22:07:34 +00:00
Gisle Vanem
c5d6a42abf Update copyright. 2005-07-05 18:07:55 +00:00
Daniel Stenberg
d49c144297 Gisle Vanem came up with a nice little work-around for bug #1230118. It
seems the Windows (MSVC) libc time functions may return data one hour off if
TZ is not set and automatic DST adjustment is enabled. This made
curl_getdate() return wrong value, and it also concerned internal cookie
expirations etc.
2005-07-05 14:57:41 +00:00
Daniel Stenberg
20005a83d2 Andrew Bushnell provided enough info for me to tell that we badly needed to
fix the CONNECT authentication code with multi-pass auth methods (such as
NTLM) as it didn't previously properly ignore response-bodies - in fact it
stopped reading after all response headers had been received. This could
lead to libcurl sending the next request and reading the body from the first
request as response to the second request. (I also renamed the function,
which wasn't strictly necessary but...)

The best fix would to once and for all make the CONNECT code use the
ordinary request sending/receiving code, treating it as any ordinary request
instead of the special-purpose function we have now. It should make it
better for multi-interface too. And possibly lead to less code...

Added test case 265 for this. It doesn't work as a _really_ good test case
since the test proxy is too stupid, but the test case helps when running the
debugger to verify.
2005-07-03 22:25:15 +00:00
Daniel Stenberg
701de67b79 use %p to printf pointers since %x doesn't work properly on tru64 for this
(and besides, we should be using the same %-code for all pointers)
2005-06-30 13:30:23 +00:00
Daniel Stenberg
883479f01e enable memory debugging on tru64 with ipv6 support by doing a little different
defining, since the system headers themselves redefine getaddrinfo
2005-06-30 13:28:58 +00:00
Daniel Stenberg
3b60bb7259 David Shaw's fix that unifies proxy string treatment so that a proxy given
with CURLOPT_PROXY can use a http:// prefix and user + password. The user
and password fields are now also URL decoded properly.

Test case 264 added to verify.
2005-06-22 22:24:10 +00:00
Gisle Vanem
bb0aba34fa Ensure thread handle is closed too. 2005-06-14 14:47:21 +00:00
Daniel Stenberg
300b4a9158 Todd Kulesza reported a flaw in the proxy option, since a numerical IPv6
address was not possible to use. It is now, but requires it written
RFC2732-style, within brackets - which incidently is how you enter numerical
IPv6 addresses in URLs. Test case 263 added to verify.
2005-05-31 13:03:26 +00:00
Daniel Stenberg
a7846189cd Eric Cooper reported about a problem with HTTP servers that responds with
binary zeroes within the headers. They confused libcurl to do wrong so the
downloaded headers become incomplete. The fix is now verified with test case
262.
2005-05-29 22:30:48 +00:00
Daniel Stenberg
4762995d1f avoid the sensitive word as it looks bad in some people's eyes 2005-05-27 11:39:07 +00:00
Daniel Stenberg
d1235ff058 provide the proper copyright texts for these 2005-05-26 20:56:25 +00:00
Daniel Stenberg
e7012a515c Now allow TYPE responses to be any 2xx code, and log if it isn't 200. 2005-05-24 09:39:56 +00:00
Daniel Stenberg
eff36caea8 additional fix for the malformed URL fix of yday 2005-05-19 07:21:18 +00:00
Daniel Stenberg
4a091bbd8a Bug report #1204435 identified a problem with malformed URLs like
"http://somehost?data" as it added a slash too much in the request ("GET
/?data/"...). Added test case 260 to verify.
2005-05-18 20:01:01 +00:00
Daniel Stenberg
dd7b6aef39 The configure check for strerror_r() failed to detect the proper API at
times, like on my HP-UX 10.20 tests. And then lib/strerror.c badly assumed
the glibc version if the posix define wasn't set (since it _had_ found a
strerror_r).
2005-05-18 13:24:23 +00:00
Daniel Stenberg
ede9fb4fcc check if getsockname() returns failure before using the address it provides 2005-05-17 09:18:17 +00:00
Daniel Stenberg
723aef71e8 reduced typecasts, from two to one 2005-05-17 09:15:21 +00:00
Daniel Stenberg
944af98be6 fix warning about redefined symbol 2005-05-14 21:15:36 +00:00
Gisle Vanem
95fe8372e8 Updated generated dependencies. 2005-05-14 06:04:21 +00:00
Gisle Vanem
ecdcb0ef67 Some patches for (a stricter/smarter) gcc 4.0 and
warnings like:
  'x' may be used uninitialized in this function.
2005-05-14 06:00:40 +00:00
Gisle Vanem
6a04a03eb5 'ssize_t' seems to be a gcc 4.x built-in. 2005-05-14 05:59:26 +00:00
Gisle Vanem
0c96056a94 Change for systems with >1 ways of setting (non-)blocking
mode. (djgpp/Watt-32 has 3 ways). Should rewrite this using
"#elif ..", but maybe there is still broken cpp around?
2005-05-14 05:58:52 +00:00
Daniel Stenberg
3f23e8443e oops, found by bug reported in bug report #1200661 2005-05-12 13:44:25 +00:00
Daniel Stenberg
a00f9b093c spell 2005-05-12 12:53:02 +00:00
Daniel Stenberg
5f538ce3f8 typecast to fix warning on 64bit systems 2005-05-12 08:51:30 +00:00
Daniel Stenberg
5d9fc28fa7 Modified the default HTTP headers used by libcurl:
A) Normal non-proxy HTTP:

 - no more "Pragma: no-cache" (this only makes sense to proxies)

B) Non-CONNECT HTTP request over proxy:

 - "Pragma: no-cache" is used (like before)
 - "Proxy-Connection: Keep-alive" (for older style 1.0-proxies)

C) CONNECT HTTP request over proxy:

 - "Host: [name]:[port]"
 - "Proxy-Connection: Keep-alive"
2005-05-11 09:52:59 +00:00
Daniel Stenberg
a90e33ad71 Hm, this doesn't feel right. The error bits returned from Curl_select() can
be returned at times when we want to ignore them. Test case 160 fails on Linux,
so I modify the comparison to check for _only_ the error bit set...
2005-05-10 23:02:37 +00:00
Daniel Stenberg
62ab21ce7d me stupid, errno is not set for mere select()-exceptions 2005-05-10 22:48:26 +00:00
Daniel Stenberg
cc8e8db1e5 include protos to fix warnings 2005-05-10 22:46:24 +00:00
Daniel Stenberg
b19cba2016 If Curl_select() returns with the error bit set, bail out. 2005-05-10 22:44:08 +00:00
Daniel Stenberg
708ed6fded silence compiler warnings 2005-05-08 22:45:01 +00:00
Daniel Stenberg
5c30fa50d6 fix warnings about unused variables for non-debug builds 2005-05-07 20:41:16 +00:00
Daniel Stenberg
fc33c424d9 fix 2005-05-07 20:28:39 +00:00
Daniel Stenberg
9c5f79c56a DEBUGF() is a new conveniant macro to add infof() calls (or similar) for
debug builds only. Made the ftp code use it on several places.
2005-05-07 13:57:07 +00:00
Daniel Stenberg
274842ec41 use calloc instead of malloc to save a call to memset() 2005-05-05 06:04:00 +00:00
Daniel Stenberg
2179e6e797 prevent memory leak when built SSL disabled 2005-05-04 14:52:51 +00:00
Daniel Stenberg
44985e8884 improved failf() error messages 2005-05-02 22:53:55 +00:00
Daniel Stenberg
11bdba0007 corrected copyright year 2005-05-02 14:33:07 +00:00
Daniel Stenberg
a31ddd363b Now configure checks for struct sockaddr_storage and the ftp code tries
to survive without it if not found. AIX 4.3 targetted adjustment.
2005-05-02 11:56:15 +00:00
Daniel Stenberg
41e6292e7b there cannot be chunked problem when no_body (HEAD) is true since without
body there is nothing chunked-encoded!
2005-04-30 23:07:38 +00:00
Daniel Stenberg
ae1d6f29d9 singleipconnect() returns a socket descriptor, not a CURLcode (but perhaps
we should make it do that...)
2005-04-30 15:16:39 +00:00
Daniel Stenberg
6b1220b61d Cory Nelson's work on nuking compiler warnings when building on x64 with
VS2005.
2005-04-26 13:08:49 +00:00
Daniel Stenberg
9d7330d879 Since Windows doesn't have/use the POSIX prototype for send() and recv(), we
typecast the third argument in the macros to avoid compiler warnings.
2005-04-26 13:08:18 +00:00
Daniel Stenberg
26a5954fa0 adding a bunch of comments for each #endif 2005-04-26 10:55:52 +00:00
Daniel Stenberg
01165e08e0 Fred New reported a bug where we used Basic auth and user name and password in
.netrc, and when following a Location: the subsequent requests didn't properly
use the auth as found in the netrc file. Added test case 257 to verify my fix.
2005-04-25 21:39:48 +00:00
Daniel Stenberg
a8ff0a21bf Based on feedback from Cory Nelson, I added some preprocessor magic in
*/setup.h and */config-win32.h to build fine with VS2005 on x64.
2005-04-24 22:25:04 +00:00
Daniel Stenberg
200ac588cc Dave Dribin: set CURL_STATICLIB when it builds static library variants. 2005-04-22 21:16:22 +00:00
Daniel Stenberg
543fbe14ee Fixed the CN extraction 2005-04-22 20:56:26 +00:00
Daniel Stenberg
76c7c694c5 modified this year 2005-04-22 20:48:07 +00:00
Gunter Knauf
8f6c2f87c8 changes for building with IPV6 and LDAP. 2005-04-20 23:41:25 +00:00
Daniel Stenberg
f30e8b11eb prevent compiler warning 2005-04-19 23:38:57 +00:00
Daniel Stenberg
8bd6d6a4de added typecast when converting from long to unsigned short, to prevent compiler warning 2005-04-19 23:37:45 +00:00
Daniel Stenberg
5f0366c2cb only define _REENTRANT if not already defined, and only in setup.h 2005-04-19 23:19:23 +00:00
Daniel Stenberg
63d109f7be Olivier reported that even though he used CURLOPT_PORT, libcurl clearly still
used the default port. He was right. I fixed the problem and added the test
cases 521, 522 and 523 to verify the fix.
2005-04-18 19:41:04 +00:00
Daniel Stenberg
c904b6b5bf Toshiyuki Maezawa reported that when doing a POST with a read callback,
libcurl didn't properly send an Expect: 100-continue header. It does now.
2005-04-18 17:14:58 +00:00
Daniel Stenberg
e9d068b913 oops, only negative numbers are errors 2005-04-13 21:17:05 +00:00
Daniel Stenberg
316adac511 don't bail out just because the ca file has a problem, it might be OK 2005-04-13 12:38:01 +00:00
Daniel Stenberg
4e26b2a65b fix compiler warning 2005-04-13 06:52:03 +00:00
Daniel Stenberg
c13a3d7b84 Provides an unconditional strlcat() proto even if strlcat() was found by
configure. An attempt to fix warnings when we build and the strlcat() function
is provided by one if the libs (gss or krb4) since then we have no protos
for it in a system header.
2005-04-12 07:56:57 +00:00
Daniel Stenberg
f09e479fd6 Blah, revert my removal of the extra check since the problem is there for real.
Archived thread of the help-gnutls mailing list regarding this problem:

http://lists.gnu.org/archive/html/help-gnutls/2005-04/msg00000.html

(and I _am_ sorry for my confused behaviour on this problem.)
2005-04-09 22:33:14 +00:00
Daniel Stenberg
80fe93bc33 OK, I must've been halucinating or something because I no longer see the
bug I thought I saw before when I changed this...!
2005-04-09 21:38:14 +00:00
Daniel Stenberg
fb3c85ab2f fixed the 304 response-with-content-length problem reported by Cory Nelson 2005-04-08 16:59:13 +00:00
Daniel Stenberg
2fc70e2c5d re-arrange some code to prevent warnings on unreachable code 2005-04-08 09:25:48 +00:00
Marty Kuhrt
37a547842b cast the call to Curl_inet_ntop for DECC compiler squawk 2005-04-08 05:01:40 +00:00
Daniel Stenberg
b9f1d43921 Unfortunately, if a ca file name is set the function fails for whatever reason
(missing file, bad file, etc), gnutls will no longer handshake properly but it
just loops forever. Therefore, we must return error if we get an error when
setting the CA cert file name. This is not the same behaviour as with OpenSSL.

Question/report posted to the help-gnutls mailing list, April 8 2005.
2005-04-07 22:47:43 +00:00
Daniel Stenberg
bec6423c02 one down 2005-04-07 22:14:22 +00:00
Daniel Stenberg
14d9b56937 cut 'n paste error 2005-04-07 21:12:09 +00:00
Daniel Stenberg
1c3766eb46 GnuTLS updates 2005-04-07 21:10:31 +00:00
Daniel Stenberg
2085f133d6 added new files 2005-04-07 20:56:04 +00:00
Daniel Stenberg
2a045dfceb fixed to build after the GnuTLS fixes 2005-04-07 20:36:48 +00:00
Daniel Stenberg
6e61939382 GnuTLS support added. There's now a "generic" SSL layer that we use all over
internally, with code provided by sslgen.c. All SSL-layer-specific code is
then written in ssluse.c (for OpenSSL) and gtls.c (for GnuTLS).

As far as possible, internals should not need to know what SSL layer that is
in use. Building with GnuTLS currently makes two test cases fail.

TODO.gnutls contains a few known outstanding issues for the GnuTLS support.

GnuTLS support is enabled with configure --with-gnutls
2005-04-07 15:27:13 +00:00
Daniel Stenberg
758d9fe852 too late hacking error 2005-04-05 21:14:59 +00:00
Daniel Stenberg
ee44eec3e1 Christophe Legry's fix to grok time-conditoned uploads 2005-04-05 20:59:12 +00:00
Daniel Stenberg
9b3c2b6ae2 kill warnings 2005-04-04 21:23:04 +00:00
Daniel Stenberg
833b6df969 Marcelo Juchem's improvements 2005-04-04 13:21:03 +00:00
Gisle Vanem
0b45431139 hostthre.c: destroy_thread_data() made public. Called
from url.c: Curl_disconnect().
2005-04-04 12:30:03 +00:00
Daniel Stenberg
74816fed6c Hardeep Singh reported a problem doing HTTP POST with Digest. (It was actually
also affecting NTLM and Negotiate.) It turned out that if the server responded
with 100 Continue before the initial 401 response, libcurl didn't take care of
the response properly. Test case 245 and 246 added to verify this.
2005-04-03 22:46:25 +00:00
Daniel Stenberg
f96fadc074 fixed bad comment, pointed out by Marcelo Juchem 2005-03-31 20:34:24 +00:00
Daniel Stenberg
ab4086bc24 Updated the copyright year since changes have been this year. 2005-03-31 07:02:02 +00:00
Daniel Stenberg
158588640a Don't close the connection if we're in a known negotiation mode and we won't
send any data anyway. Probably the bug Tom Moers noticed.
2005-03-29 12:28:25 +00:00
Daniel Stenberg
371ef80dc3 When doing FTP-SSL, advance to the next state properly when the response to
AUTH has been received successfully.
2005-03-29 11:43:02 +00:00
Daniel Stenberg
84b4e9ff7c Fixed the FTP response reader function to properly deal with responses split
up in several chunks when read.
2005-03-29 11:35:25 +00:00
Daniel Stenberg
8a076d1dba Based on Augustus Saunders' comments and findings, the HTTP output auth
function was fixed to use the proper proxy authentication when multiple ones
were added as accepted. test 239 and test 243 were added to repeat the
problems and verify the fixes.
2005-03-28 22:19:31 +00:00
Dan Fandrich
6c6dda1b74 Fixed typo. 2005-03-22 01:24:27 +00:00
Daniel Stenberg
8817779f23 Modified the VALID_SOCK() macro to become VERIFY_SOCK() instead. It is slighly
more involved, but should hopefully not generate any compiler warnings on
win32 systems (that can't check the socket based on the numeric).
2005-03-21 22:34:07 +00:00
Daniel Stenberg
c85a77e0b1 removed a (fairly useless) debug output just to compile without warning 2005-03-20 12:46:11 +00:00
Daniel Stenberg
38f07ce0fb fix compiler warning 2005-03-19 00:44:55 +00:00
Daniel Stenberg
5840c8cb70 fix by Kyrre Kristiansen 2005-03-18 10:16:49 +00:00
Dan Fandrich
38f797ccd6 Use the proper macro to do uClibc detection. 2005-03-17 20:32:59 +00:00
Daniel Stenberg
553c5a7501 include inet_pton.h 2005-03-17 19:12:15 +00:00
Daniel Stenberg
8b80ac2877 use Curl_inet_pton(), not inet_pton(). 2005-03-17 07:40:15 +00:00
Dan Fandrich
f5cdac38bd Removed references to config-vms.h from the makefiles. 2005-03-16 23:09:39 +00:00
Dan Fandrich
760565dcad Removed old VMS config files (on behalf of Marty Kuhrt). The VMS build
scripts use the version in packages/vms/
2005-03-16 22:27:05 +00:00
Daniel Stenberg
61133545f6 - Tru64 and some IRIX boxes seem to not like test 237 as it is. Their
inet_addr() functions seems to use &255 on all numericals in a ipv4 dotted
  address which makes a different failure... Now I've modified the ipv4
  resolve code to use inet_pton() instead in an attempt to make these systems
  better detect this as a bad IP address rather than creating a toally bogus
  address that is then passed on and used.
2005-03-16 22:01:39 +00:00
Dan Fandrich
bf87d13f5b Fixed some compiler warnings I should have noticed before. 2005-03-16 02:25:12 +00:00
Dan Fandrich
efaf688650 Fixed ftp support with uClibc due to differing inet_ntoa_r() behaviour. 2005-03-15 21:00:46 +00:00
Daniel Stenberg
a357f77c4c nonsense change for(;;) => while(1) just to prevent gcc from warning on
never executed code when -Wunreachable-code is used
2005-03-15 07:48:45 +00:00
Daniel Stenberg
d5bdd2b2f9 prevent compiler warning 2005-03-15 07:47:59 +00:00
Daniel Stenberg
ec4e653c6f hushing up more warnings 2005-03-14 15:51:10 +00:00
Daniel Stenberg
3916d1e6cb silence compiler warnings for mingw win32 builds --enable-debug 2005-03-14 15:43:23 +00:00
Gisle Vanem
76c24a0d82 Avoid "unused variable" warnings. 2005-03-14 09:37:08 +00:00
Daniel Stenberg
de8947f92f security.h is removed 2005-03-14 07:46:42 +00:00
Daniel Stenberg
34865ffb4a include security.h with lowercase s to work on cross-compiled mingw 2005-03-14 00:01:30 +00:00
Daniel Stenberg
62970da675 Removed security.h since it shadows an include file mingw needs when building
for SSPI support. The contents of the file has been moved into the krb4.h file.
2005-03-14 00:00:45 +00:00
Gisle Vanem
88a4dc2795 Swap <security.h> and <sspi.h> (needed for MingW). 2005-03-12 17:31:15 +00:00
Daniel Stenberg
84bc23b92f curl_version_info() returns the feature bit CURL_VERSION_SSPI 2005-03-11 15:10:36 +00:00
Dan Fandrich
fb9ae9d0e2 Fixed some compiler warnings. 2005-03-11 05:49:04 +00:00
Dan Fandrich
205f8b266c Fixed LDAP library file name bug (KNOWN_BUGS #1). configure now auto-detects
the correct dynamic library names by default, and provides override switches
--with-ldap-lib, --with-lber-lib and --without-lber-lib.  Added
CURL_DISABLE_LDAP to platform-specific config files to disable LDAP
support on those platforms that probably don't have dynamic OpenLDAP
libraries available to avoid compile errors.
2005-03-11 05:28:07 +00:00
Daniel Stenberg
d1d35ba85f Christopher R. Palmer made it possible to build libcurl with the
USE_WINDOWS_SSPI on Windows, and then libcurl will be built to use the native
way to do NTLM. SSPI also allows libcurl to pass on the current user and its
password in the request.
2005-03-10 23:15:29 +00:00
Daniel Stenberg
0472629222 As reported by 'nodak sodak' we should check for a NULL pointer before
referencing the proxy name pointer.
2005-03-09 22:13:52 +00:00
Daniel Stenberg
b7ffc6bb45 remove old printf() debug leftover 2005-03-08 22:21:59 +00:00
Daniel Stenberg
8a96aec567 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)
2005-03-08 16:31:56 +00:00
Daniel Stenberg
702664e959 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)
2005-03-08 08:09:14 +00:00
Daniel Stenberg
aa47ac4c06 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.
2005-03-04 23:52:06 +00:00
Dan Fandrich
b01151e81c Reduced the length of data read from the random entropy file. 2005-03-04 22:36:56 +00:00
Dan Fandrich
67bd6f9ccd Don't try to read the whole of the random file because when /dev/urandom is
used, it slows initialization too much reading an infinitely long file!
2005-03-04 20:10:29 +00:00
Daniel Stenberg
6f752c64bc Dave Dribin made it possible to set CURLOPT_COOKIEFILE to "" to activate
the cookie "engine" without having to provide an empty or non-existing file.
2005-03-04 00:26:50 +00:00
Daniel Stenberg
ccb7950c4c killed trailing whitespace 2005-03-04 00:24:52 +00:00
Daniel Stenberg
750e771376 killed trailing whitespace 2005-03-04 00:14:45 +00:00
Dan Fandrich
0ddab51ad8 Fix for a base64 decode heap buffer overflow vulnerability. 2005-02-28 23:54:17 +00:00
Dan Fandrich
9798432f56 Fixed some compiler warnings. Fixed a low incidence memory leak in the test server. 2005-02-24 18:54:23 +00:00
Daniel Stenberg
f8b4ba80e0 krb4 fixed 2005-02-22 12:20:30 +00:00
Daniel Stenberg
527f70e540 Curl_base64_decode() now returns an allocated buffer 2005-02-22 12:10:30 +00:00
Daniel Stenberg
19f66c7575 Thanks for the notification iDEFENCE. We are the "initial vendor" and we sure
got no notification, no mail, no nothing.

You didn't even bother to mail us when you went public with this. Cool.

NTLM buffer overflow fix, as reported here:

http://www.securityfocus.com/archive/1/391042
2005-02-22 07:44:14 +00:00
Daniel Stenberg
5ba188ab2d 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.
2005-02-18 23:53:07 +00:00
Daniel Stenberg
176981b529 close the socket properly when returning error due to failing localbind
Bug report #1124588 by David
2005-02-17 14:45:03 +00:00
Daniel Stenberg
ac022b2e30 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.
2005-02-16 14:31:23 +00:00
Daniel Stenberg
0a3065a2f2 Rename Curl_pretransfersec() to *_second_connect() since it does not just
do pretransfer stuff like Curl_pretransfer().
2005-02-14 09:30:40 +00:00
Daniel Stenberg
b98faaa8c0 Fixed bad krb4 code. It always tried to use krb4 if built enabled. 2005-02-11 22:50:57 +00:00
Daniel Stenberg
e7cefd684b Removed all uses of strftime() since it uses the localised version of the
week day names and month names and servers don't like that.
2005-02-11 00:03:49 +00:00
Daniel Stenberg
17d61e4f29 typecast assign to ftpport from int to prevent warnings 2005-02-10 07:45:26 +00:00
Daniel Stenberg
446b9467da init fix for non-SSL builds 2005-02-10 07:45:08 +00:00
Daniel Stenberg
8c83422fe2 David Byron identified the lack of SSL_pending() use, and this is my take
at fixing this issue.
2005-02-09 23:09:12 +00:00
Daniel Stenberg
61a1e3cd01 better error checking and SSL init by David Byron 2005-02-09 23:04:51 +00:00
Daniel Stenberg
89cac6f25c prevent a compiler warning 2005-02-09 22:47:57 +00:00
Gisle Vanem
32d76a5b57 Set 'bits.close' in case of malloc fail.
Don't free 'lud_dn' twice in case curl_unescape()
fails.
2005-02-09 14:28:35 +00:00
Gisle Vanem
f5394cccb1 Use CURL_SOCKET_BAD. 2005-02-09 14:01:15 +00:00
Gisle Vanem
64dd9c7656 Handle CURLE_LOGIN_DENIED in strerror.c.
For ftp only?
2005-02-09 13:59:40 +00:00
Daniel Stenberg
16ae0c6466 FD_SET can be big macro, use braces 2005-02-09 13:47:35 +00:00
Daniel Stenberg
6a2e21ec8c 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.
2005-02-09 13:06:40 +00:00
Gisle Vanem
120f17ce04 Replace LF with CRLF. Ref RFC-2229, sec 2.3:
"Each command line must be terminated by a CRLF".
2005-02-09 11:50:41 +00:00
Daniel Stenberg
41def21f91 ares_gethostbyname wants a 'ares_host_callback' in the 4th argument 2005-02-08 19:03:27 +00:00
Gisle Vanem
d118312922 Curl_addrinfo?_callback() and addrinfo_callback() now returns
CURLE_OK or CURLE_OUT_OF_MEMORY.
Add typecast in hostares.c.
2005-02-08 12:36:13 +00:00
Gisle Vanem
82b93e4945 Don't free too much in freedirs() if realloc() fails. 2005-02-08 12:32:28 +00:00
Daniel Stenberg
e36fb1ecda 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.
2005-02-08 07:36:57 +00:00
Dan Fandrich
e4a1788614 Fix for a bug report that compressed files that are exactly 64 KiB long
produce a zlib error.
2005-02-07 19:12:37 +00:00
Gisle Vanem
7b23eff9cf Preserve previous status in Curl_http_done(). 2005-02-06 12:43:40 +00:00
Daniel Stenberg
29350b363b Eric Vergnaud found a use of an uninitialized variable 2005-02-04 23:43:44 +00:00
Daniel Stenberg
83c470a443 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...
2005-02-04 13:42:41 +00:00
Daniel Stenberg
686d767053 if the DO operation returns failure, bail out and close down nicely to
prevent memory leakage
2005-01-30 22:54:06 +00:00
Daniel Stenberg
e6034ea299 Use calloc() to save us the memset() call and terminate conn->host.name
properly, to avoid reading uninited variables when using file:// (valgrind)
2005-01-30 12:42:15 +00:00
Daniel Stenberg
9a820d7a98 include "url.h" for the Curl_safefree() proto 2005-01-29 22:38:45 +00:00
Daniel Stenberg
8dbaf534c8 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)
2005-01-29 22:31:06 +00:00
Daniel Stenberg
91f483c591 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().
2005-01-29 22:26:38 +00:00
Daniel Stenberg
c4ff5eb0ca conn->ip_addr MUST NOT be used on re-used connections 2005-01-29 13:07:16 +00:00
Daniel Stenberg
59b45a90cc multi interface: when a request is denied due to "Maximum redirects followed"
libcurl leaked the last Location: URL.
2005-01-29 12:01:20 +00:00
Daniel Stenberg
f661475962 Connect failures with the multi interface was often returned as "connect()
timed out" even though the reason was different. Fixed this problem by not
setting this timeout to zero when using multi.
2005-01-28 23:21:24 +00:00
Daniel Stenberg
4551e7ce49 KNOWN_BUGS #17 fixed. A DNS cache entry may not remain locked between two
curl_easy_perform() invokes. It was previously unlocked at disconnect, which
could mean that it remained locked between multiple transfers. The DNS cache
may not live as long as the connection cache does, as they are separate.

To deal with the lack of DNS (host address) data availability in re-used
connections, libcurl now keeps a copy of the IP adress as a string, to be able
to show it even on subsequent requests on the same connection.
2005-01-28 22:14:48 +00:00
Daniel Stenberg
064bc3ecbc Stephen More pointed out that CURLOPT_FTPPORT and the -P option didn't work
when built ipv6-enabled. I've now made a fix for it. Writing test cases for
custom port strings turned too tricky so unfortunately there's none.
2005-01-28 08:26:36 +00:00
Daniel Stenberg
177dbc7be0 Ian Ford asked about support for the FTP command ACCT, and I discovered it is
present in RFC959... so now (lib)curl supports it as well. --ftp-account and
CURLOPT_FTP_ACCOUNT set the account string. (The server may ask for an account
string after PASS have been sent away. The client responds with "ACCT [account
string]".) Added test case 228 and 229 to verify the functionality. Updated
the test FTP server to support ACCT somewhat.
2005-01-25 22:13:12 +00:00
Daniel Stenberg
043d70fcdf Use plain structs and not typedef'ed ones in the hash and linked-list code. 2005-01-25 00:06:29 +00:00
Daniel Stenberg
7e42cb61f7 FTP third transfer support overhaul. See CHANGES for details. 2005-01-21 09:32:32 +00:00
Daniel Stenberg
3050ae57c0 Stephan Bergmann made libcurl return CURLE_URL_MALFORMAT if an FTP URL
contains %0a or %0d in the user, password or CWD parts. (A future fix would
include doing it for %00 as well - see KNOWN_BUGS for details.) Test case 225
and 226 were added to verify this
2005-01-19 21:56:02 +00:00
Gisle Vanem
06ad5be3af Don't copy 'stderr' for Win-CE in IPv6 code. Don't call
GetCurrentProcess() twice; use a local variable.
2005-01-19 10:20:55 +00:00
Daniel Stenberg
a0c8b9bc68 Stephan Bergmann pointed out two flaws in libcurl built with HTTP disabled:
1) the proxy environment variables are still read and used to set HTTP proxy

2) you couldn't disable http proxy with CURLOPT_PROXY (since the option was
   disabled)
2005-01-19 09:36:44 +00:00
Daniel Stenberg
b1080f7c9a Cody Jones' enhanced version of Samuel Daz Garca's MSVC makefile patch. 2005-01-18 10:17:34 +00:00
Daniel Stenberg
e0bea7d541 Alex aka WindEagle pointed out that when doing "curl -v dictionary.com", curl
assumed this used the DICT protocol. While guessing protocols will remain
fuzzy, I've now made sure that the host names must start with "[protocol]."
for them to be a valid guessable name. I also removed "https" as a prefix that
indicates HTTPS, since we hardly ever see any host names using that.
2005-01-16 08:51:52 +00:00
Gisle Vanem
f5b8a26d9a errrno can by freak accident become EINTR on DOS or
Windows (unrelated to select). select() can never set errno
to EINTR on Windows.
2005-01-15 09:26:07 +00:00
Daniel Stenberg
4d1f3d3cd0 Added README.hostip 2005-01-14 13:43:29 +00:00
Daniel Stenberg
0e26355348 Inspired by Martijn Koster's patch and example source at
http://www.greenhills.co.uk/mak/gentoo/curl-eintr-bug.c, I now made the
select() and poll() calls properly loop if they return -1 and errno is
EINTR. glibc docs for this is found here:
http://www.gnu.org/software/libc/manual/html_node/Interrupted-Primitives.html

This last link says BSD doesn't have this "effect". Will there be a problem
if we do this unconditionally?
S: ----------------------------------------------------------------------
2005-01-13 21:51:48 +00:00
Gisle Vanem
7c1bba315b Added '-bd' option; target is a DLL.
Added dependencies.
2005-01-12 15:32:26 +00:00
Daniel Stenberg
c5b2e85b47 Dan Torop cleaned up a few no longer used variables from David Phillips'
select() overhaul fix.
2005-01-11 20:22:44 +00:00
Daniel Stenberg
e3fa7d021e Renamed easy.h and multi.h to easyif.h and multiif.h to make sure they don't
shadow our public headers with the former names.
2005-01-11 15:25:29 +00:00
Gisle Vanem
a1813e2b2d ".\lib\easy.h" shadows for <curl/easy.h> in Watcom.
Force including ../include/curl/easy.h.
2005-01-11 14:59:24 +00:00
Gisle Vanem
bb9e5565f2 ".\lib\multi.h" shadows for <curl/multi.h> in Watcom.
Force including ../include/curl/multi.h.
2005-01-11 14:32:09 +00:00
Daniel Stenberg
29102befa6 Cyrill Osterwalder posted a detailed analysis about a bug that occurs when
using a custom Host: header and curl fails to send a request on a re-used
persistent connection and thus creates a new connection and resends it. It
then sent two Host: headers. Cyrill's analysis was posted here:
http://curl.haxx.se/mail/archive-2005-01/0022.html
2005-01-11 14:00:45 +00:00
Daniel Stenberg
9d1145598a Bruce Mitchener identified (bug report #1099640) the never-ending SOCKS5
problem with the version byte and the check for bad versions. Bruce has lots
of clues on this, and based on his suggestion I've now removed the check of
that byte since it seems to be able to contain 1 or 5.
2005-01-10 23:32:14 +00:00
Daniel Stenberg
065e466f1a Use Curl_easy_addmulti() to clear associations from easy handles to multi
handles. Include multi.h to get proto.
2005-01-10 11:42:20 +00:00
Daniel Stenberg
21bb852750 Pavel Orehov reported memory problems with the multi interface in bug report
#1098843. In short, a shared DNS cache was setup for a multi handle and when
the shared cache was deleted before the individual easy handles, the latter
cleanups caused read/writes to already freed memory.
2005-01-10 10:07:07 +00:00
Daniel Stenberg
83bab78bda Hzhijun reported a memory leak in the SSL certificate code, that leaked the
remote certificate name when it didn't match the used host name.
2005-01-10 09:48:39 +00:00
Gisle Vanem
9fd33c0b96 New file. 2005-01-08 16:06:37 +00:00
Gisle Vanem
3c09f2d2bd Added Makefile.Watcom to EXTRA_DIST. 2005-01-08 16:03:45 +00:00
Gisle Vanem
316e74be74 Removed _WIN32_WINNT to support IPv6 under Win-2K. 2005-01-04 16:00:14 +00:00
Daniel Stenberg
ad9648a215 reverted the bad naming of the implib names 2005-01-02 21:15:29 +00:00
Daniel Stenberg
1576f3319e Alex Neblett's minor update 2005-01-02 19:19:32 +00:00
Daniel Stenberg
67abd4cd47 Rune Kleveland fixed a minor memory leak for received cookies with the (rare)
version attribute set.
2004-12-22 22:33:31 +00:00
Daniel Stenberg
58f4af7973 Marcin Konicki provided two configure fixes and a source fix to make curl
build out-of-the-box on BeOS.
2004-12-22 22:28:10 +00:00
Dan Fandrich
99befd3a15 C ensures that static variables are initialized to 0 2004-12-22 20:12:15 +00:00
Daniel Stenberg
444f6427b8 oops, variables first then code 2004-12-21 14:33:37 +00:00
Daniel Stenberg
a173e07eec Prevent failf() from using the va_list variable more than once.
See bug report #1088962 and  Single Unix Specification:
http://www.opengroup.org/onlinepubs/007908799/xsh/vfprintf.html
2004-12-21 14:22:10 +00:00
Daniel Stenberg
f4c5314890 include sys/types.h before sys/select.h 2004-12-21 10:11:07 +00:00
Dan Fandrich
80d301257c Make some more arrays of pointers const. 2004-12-20 18:23:43 +00:00
Gisle Vanem
13ee90bbd4 OpenSSL updates; get CA_BUNDLE from env. Assume no
Kerberos, have <pkcs12.h>, <engine.h> and built-in engines.
2004-12-19 11:52:31 +00:00
Gisle Vanem
754d6c3abd Remove 'data' initialiser. 2004-12-19 11:39:34 +00:00
Daniel Stenberg
3d647b9a98 if the pkcs12.h header exists, include it already in urldata.h to work around
a precedence problem with the zlib header. See CHANGES for details.
2004-12-19 09:37:32 +00:00
Daniel Stenberg
8ad47a13e5 Samuel Listopad added support for PKCS12 formatted certificates. 2004-12-18 10:42:48 +00:00
Dan Fandrich
a07dcfd850 Renamed a variable to avoid conflict with a C++ reserved word. 2004-12-17 20:18:53 +00:00
Gisle Vanem
321511a5be Watcom has strtoll(). 2004-12-17 19:57:50 +00:00
Gisle Vanem
c5297b9fd9 Watcom uses 'i64' suffix. 2004-12-17 18:33:09 +00:00
Gisle Vanem
7e00076586 <windows.h> required for Watcom. 2004-12-17 18:32:41 +00:00
Gisle Vanem
41e776f9db Fix calling convention of wlap32.dll function. Watcom
uses fastcall by default, so force cdecl.
2004-12-17 17:54:21 +00:00
Gisle Vanem
5c2d4a6bdd Watcom has 'struct timeval'. 2004-12-17 17:49:10 +00:00
Gisle Vanem
5e2e87cc8d getdate.c is gone. 2004-12-17 12:28:04 +00:00
Gisle Vanem
b1bdba7db5 Print true netrc name (.netrc/_netrc). 2004-12-17 12:26:18 +00:00
Daniel Stenberg
e3d342df96 avoid an extra malloc 2004-12-17 10:09:32 +00:00
Daniel Stenberg
ccf65be0a4 fixed minor memory leak when running out of memory 2004-12-17 09:00:19 +00:00
Daniel Stenberg
7dfef13224 oops, add missing return keyword 2004-12-17 08:58:48 +00:00
Daniel Stenberg
6e1e9caa32 Based on Gisle Vanem's patch: make sure the directory re-use works even when
a URL-encoded path is used.
2004-12-16 22:20:33 +00:00
Gisle Vanem
f71725de6e Must include <io.h> and <sys/stat.h> before redefining
stat(), fstat() and lseek().
2004-12-16 21:27:29 +00:00