Compare commits
65 Commits
curl-7_15_
...
curl-7_15_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7e4193b538 | ||
|
|
a932803eac | ||
|
|
52560142bf | ||
|
|
874a4ef8c7 | ||
|
|
0bb3ac7c31 | ||
|
|
1e9f5845ab | ||
|
|
c41dfc2501 | ||
|
|
30ac7eced1 | ||
|
|
466d093a92 | ||
|
|
1e9be353c2 | ||
|
|
4f4277d9c7 | ||
|
|
6728bda5c5 | ||
|
|
dc9f154823 | ||
|
|
d7168a82e2 | ||
|
|
c9c8ee3796 | ||
|
|
c7aae10300 | ||
|
|
909941405f | ||
|
|
4031eb1d91 | ||
|
|
59cf6fd4f0 | ||
|
|
6de9732a88 | ||
|
|
1f7f500922 | ||
|
|
4b1462ec65 | ||
|
|
6ed47f0aad | ||
|
|
2d8c7ba9fc | ||
|
|
3b342d18bc | ||
|
|
f24ad3800c | ||
|
|
e2ff369eba | ||
|
|
9691a78f6b | ||
|
|
7ff6b6fafd | ||
|
|
7c621cfbdf | ||
|
|
5acadc9cd7 | ||
|
|
2ff609dd43 | ||
|
|
da48a6ba87 | ||
|
|
cd6c58216a | ||
|
|
bdbd0cf27a | ||
|
|
d792937686 | ||
|
|
bac66ec26b | ||
|
|
77516822f6 | ||
|
|
37d8c67530 | ||
|
|
cfdcae4bc7 | ||
|
|
74a6921bc4 | ||
|
|
490cccba3c | ||
|
|
839441e236 | ||
|
|
ba9ea943e2 | ||
|
|
455087faae | ||
|
|
31def9e217 | ||
|
|
ee3514ccdc | ||
|
|
cf606d7da0 | ||
|
|
eb26a581f9 | ||
|
|
b04cbebf86 | ||
|
|
4272af801f | ||
|
|
0b633027cb | ||
|
|
93943ef949 | ||
|
|
b184b87714 | ||
|
|
a11473f85d | ||
|
|
1eedad27a2 | ||
|
|
ac02d379ba | ||
|
|
a4ebf5b507 | ||
|
|
c410769588 | ||
|
|
997a987943 | ||
|
|
6201dc083a | ||
|
|
b33f47804d | ||
|
|
7ba5e098a3 | ||
|
|
824b78021c | ||
|
|
31657c85e5 |
78
CHANGES
78
CHANGES
@@ -6,6 +6,70 @@
|
||||
|
||||
Changelog
|
||||
|
||||
|
||||
Daniel (4 September 2006)
|
||||
- Dmitry Rechkin (http://curl.haxx.se/bug/view.cgi?id=1551412) provided a
|
||||
patch that while not fixing things very nicely, it does make the SOCKS5
|
||||
proxy connection slightly better as it now acknowledges the timeout for
|
||||
connection and it no longer segfaults in the case when SOCKS requires
|
||||
authentication and you did not specify username:password.
|
||||
|
||||
Daniel (31 August 2006)
|
||||
- Dmitriy Sergeyev found and fixed a multi interface flaw when using asynch
|
||||
name resolves. It could get stuck in the wrong state.
|
||||
|
||||
Gisle (29 August 2006)
|
||||
- Added support for other MS-DOS compilers (desides djgpp). All MS-DOS
|
||||
compiler now uses the same config.dos file (renamed to config.h by
|
||||
make). libcurl now builds fine using Watcom and Metaware's High-C
|
||||
using the Watt-32 tcp/ip-stack.
|
||||
|
||||
Daniel (29 August 2006)
|
||||
- David McCreedy added CURLOPT_SOCKOPTFUNCTION and CURLOPT_SOCKOPTDATA to
|
||||
allow applications to set their own socket options.
|
||||
|
||||
Daniel (25 August 2006)
|
||||
- Armel Asselin reported that the 'running_handles' counter wasn't updated
|
||||
properly if you removed a "live" handle from a multi handle with
|
||||
curl_multi_remove_handle().
|
||||
|
||||
Daniel (22 August 2006)
|
||||
- David McCreedy fixed a remaining mistake from the August 19 TYPE change.
|
||||
|
||||
- Peter Sylvester pointed out a flaw in the AllowServerConnect() in the FTP
|
||||
code when doing pure ipv6 EPRT connections.
|
||||
|
||||
Daniel (19 August 2006)
|
||||
- Based on a patch by Armel Asselin, the FTP code no longer re-issues the TYPE
|
||||
command on subsequent requests on a re-used connection unless it has to.
|
||||
|
||||
- Armel Asselin fixed a crash in the FTP code when using SINGLECWD mode and
|
||||
files in the root directory.
|
||||
|
||||
- Andrew Biggs pointed out a "Expect: 100-continue" flaw where libcurl didn't
|
||||
send the whole request at once, even though the Expect: header was disabled
|
||||
by the application. An effect of this change is also that small (< 1024
|
||||
bytes) POSTs are now always sent without Expect: header since we deem it
|
||||
more costly to bother about that than the risk that we send the data in
|
||||
vain.
|
||||
|
||||
Daniel (9 August 2006)
|
||||
- Armel Asselin made the CURLOPT_PREQUOTE option work fine even when
|
||||
CURLOPT_NOBODY is set true. PREQUOTE is then run roughly at the same place
|
||||
in the command sequence as it would have run if there would've been a
|
||||
transfer.
|
||||
|
||||
Daniel (8 August 2006)
|
||||
- Fixed a flaw in the "Expect: 100-continue" treatment. If you did two POSTs
|
||||
on a persistent connection and allowed the first to use that header, you
|
||||
could not disable it for the second request.
|
||||
|
||||
Daniel (7 August 2006)
|
||||
- Domenico Andreolfound a quick build error which happened because
|
||||
src/config.h.in was not a proper duplcate of lib/config.h.in which it
|
||||
should've been and this was due to the maketgz script not doing the cp
|
||||
properly.
|
||||
|
||||
Version 7.15.5 (7 August 2006)
|
||||
|
||||
Daniel (2 August 2006)
|
||||
@@ -99,7 +163,7 @@ Daniel (8 July 2006)
|
||||
Daniel (4 July 2006)
|
||||
- Toshiyuki Maezawa fixed a problem where you couldn't override the
|
||||
Proxy-Connection: header when using a proxy and not doing CONNECT.
|
||||
|
||||
|
||||
Daniel (24 June 2006)
|
||||
- Michael Wallner added curl_formget(), which allows an application to extract
|
||||
(serialise) a previously built formpost (as with curl_formadd()).
|
||||
@@ -270,11 +334,11 @@ Daniel (4 May 2006)
|
||||
already did this.
|
||||
|
||||
Daniel (2 May 2006)
|
||||
- Added a --checkfor option to curl-config to allow users to easier
|
||||
write for example shell scripts that test for the presence of a
|
||||
new-enough libcurl version. If --checkfor is given a version string
|
||||
newer than what is currently installed, curl-config will return a
|
||||
non-zero exit code and output a string about the unfulfilled
|
||||
- Added a --checkfor option to curl-config to allow users to easier
|
||||
write for example shell scripts that test for the presence of a
|
||||
new-enough libcurl version. If --checkfor is given a version string
|
||||
newer than what is currently installed, curl-config will return a
|
||||
non-zero exit code and output a string about the unfulfilled
|
||||
requirement.
|
||||
|
||||
Daniel (26 April 2006)
|
||||
@@ -330,7 +394,7 @@ Daniel (7 April 2006)
|
||||
|
||||
CONV_FROM_NETWORK_FUNCTION
|
||||
CONV_TO_NETWORK_FUNCTION
|
||||
CONV_FROM_UTF8_FUNCTION
|
||||
CONV_FROM_UTF8_FUNCTION
|
||||
|
||||
Daniel (5 April 2006)
|
||||
- Michele Bini modified the NTLM code to work for his "weird IIS case"
|
||||
|
||||
@@ -1,57 +1,48 @@
|
||||
Curl and libcurl 7.15.5
|
||||
Curl and libcurl 7.15.6
|
||||
|
||||
Public curl release number: 95
|
||||
Releases counted from the very beginning: 122
|
||||
Public curl release number: 96
|
||||
Releases counted from the very beginning: 123
|
||||
Available command line options: 114
|
||||
Available curl_easy_setopt() options: 133
|
||||
Available curl_easy_setopt() options: 135
|
||||
Number of public functions in libcurl: 54
|
||||
Amount of public web site mirrors: 33
|
||||
Number of known libcurl bindings: 32
|
||||
Number of contributors: 506
|
||||
Number of contributors: 515
|
||||
|
||||
This release includes the following changes:
|
||||
|
||||
o added --ftp-ssl-reqd
|
||||
o modified the prototype for the socket callback set with
|
||||
CURLMOPT_SOCKETFUNCTION
|
||||
o added curl_multi_assign()
|
||||
o added CURLOPT_FTP_ALTERNATIVE_TO_USER and --ftp-alternative-to-user
|
||||
o added a vcproj file for building libcurl
|
||||
o added curl_formget()
|
||||
o added CURLOPT_MAX_SEND_SPEED_LARGE and CURLOPT_MAX_RECV_SPEED_LARGE
|
||||
o added configure --enable-hidden-symbols
|
||||
o Made -K on a file that couldn't be read cause a warning to be displayed
|
||||
o Added support for other MS-DOS compilers (besides djgpp)
|
||||
o CURLOPT_SOCKOPTFUNCTION and CURLOPT_SOCKOPTDATA were added
|
||||
o (FTP) libcurl avoids sending TYPE if the desired type was already set
|
||||
o (FTP) CURLOPT_PREQUOTE works even when CURLOPT_NOBODY is set true
|
||||
|
||||
This release includes the following bugfixes:
|
||||
|
||||
o chunked encoding when custom header "Transfer-Encoding: chunked" is set
|
||||
o Curl_strerror() crash on unknown errors
|
||||
o changing Content-Type when doing formposts
|
||||
o added CURL_EXTERN to a few recent multi functions that lacked them
|
||||
o splay-tree related problems for internal expire time handling
|
||||
o FTP ASCII CRLF counter reset
|
||||
o cookie parser now compares paths case sensitive
|
||||
o an easy handle with shared DNS cache added to a multi handle caused a crash
|
||||
o couldn't override the Proxy-Connection: header for non-CONNECT requests
|
||||
o curl_multi_fdset() could wrongly return -1 as max_fd value
|
||||
o SOCKS5 proxy connects can now time-out
|
||||
o SOCKS5 connects that require auth no longer segfaults when auth not given
|
||||
o multi interface using asynch resolves could get stuck in wrong state
|
||||
o the 'running_handles' counter wasn't always updated properly when
|
||||
curl_multi_remove_handle() was used
|
||||
o (FTP) EPRT transfers with IPv6 didn't work properly
|
||||
o (FTP) SINGLECWD mode and using files in the root dir
|
||||
o (HTTP) Expect: header disabling work better
|
||||
o (HTTP) "Expect: 100-continue" disable on second POST on re-used connection
|
||||
o src/config.h.in is fixed
|
||||
|
||||
Other curl-related news:
|
||||
|
||||
o yassl 1.3.7 can now be used with libcurl as an optional TLS library for
|
||||
HTTPS/FTPS support: http://www.yassl.com/
|
||||
o cURLpp 0.6.0 was released: http://rrette.com/curlpp.html
|
||||
o pycurl-7.15.4 was released: http://pycurl.sf.net
|
||||
o pycurl-7.15.5 was released: http://pycurl.sf.net
|
||||
|
||||
New curl mirrors:
|
||||
|
||||
o
|
||||
o http://curl.geosdreams.info/ is a new Polish mirror
|
||||
o http://curl.gfiles.org/ is a new Russian mirror
|
||||
|
||||
This release would not have looked like this without help, code, reports and
|
||||
advice from friends like these:
|
||||
|
||||
Dan Fandrich, Peter Silva, Arve Knudsen, Michael Wallner, Toshiyuki Maezawa,
|
||||
Ingmar Runge, Ates Goral, David McCreedy, Jari Sundell, Georg Horn,
|
||||
Gisle Vanem, Yang Tse, Michael Jerris, Dan Nelson, Yves Lejeune,
|
||||
Maciej Karpiuk, Mark Lentczner
|
||||
Domenico Andreoli, Armel Asselin, Gisle Vanem, Yang Tse, Andrew Biggs,
|
||||
Peter Sylvester, David McCreedy, Dmitriy Sergeyev, Dmitry Rechkin,
|
||||
Jari Sundell
|
||||
|
||||
Thanks! (and sorry if I forgot to mention someone)
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
Changelog for the c-ares project
|
||||
|
||||
* August 29 2006
|
||||
|
||||
- Brad Spencer did
|
||||
|
||||
o made ares_version.h use extern "C" for c++ compilers
|
||||
o fixed compiler warnings in ares_getnameinfo.c
|
||||
o fixed a buffer position init for TCP reads
|
||||
|
||||
* August 3 2006
|
||||
|
||||
- Ravi Pratap fixed ares_getsock() to actually return the proper bitmap and
|
||||
|
||||
@@ -16,4 +16,6 @@ MANPAGES= ares_destroy.3 ares_expand_name.3 ares_expand_string.3 ares_fds.3 \
|
||||
ares_gethostbyname.3 ares_init.3 ares_init_options.3 ares_mkquery.3 \
|
||||
ares_parse_a_reply.3 ares_parse_ptr_reply.3 ares_process.3 \
|
||||
ares_query.3 ares_search.3 ares_send.3 ares_strerror.3 ares_timeout.3 \
|
||||
ares_version.3 ares_cancel.3 ares_parse_aaaa_reply.3 ares_getnameinfo.3
|
||||
ares_version.3 ares_cancel.3 ares_parse_aaaa_reply.3 ares_getnameinfo.3 \
|
||||
ares_getsock.3
|
||||
|
||||
|
||||
@@ -81,8 +81,8 @@ static char *ares_striendstr(const char *s1, const char *s2);
|
||||
void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa, socklen_t salen,
|
||||
int flags, ares_nameinfo_callback callback, void *arg)
|
||||
{
|
||||
struct sockaddr_in *addr = NULL;
|
||||
struct sockaddr_in6 *addr6 = NULL;
|
||||
struct sockaddr_in *addr;
|
||||
struct sockaddr_in6 *addr6;
|
||||
struct nameinfo_query *niquery;
|
||||
|
||||
/* Verify the buffer size */
|
||||
|
||||
@@ -297,6 +297,7 @@ static void read_tcp_data(ares_channel channel, fd_set *read_fds, time_t now)
|
||||
free(server->tcp_buffer);
|
||||
server->tcp_buffer = NULL;
|
||||
server->tcp_lenbuf_pos = 0;
|
||||
server->tcp_buffer_pos = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,15 @@
|
||||
(ARES_VERSION_PATCH))
|
||||
#define ARES_VERSION_STR "1.3.1"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
const char *ares_version(int *version);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -140,7 +140,7 @@ else
|
||||
libtoolize=`findtool $LIBTOOLIZE`
|
||||
fi
|
||||
|
||||
lt_pversion=`$libtool --version 2>/dev/null|head -n 1|sed -e 's/^[^0-9]*//g' -e 's/[- ].*//'`
|
||||
lt_pversion=`$libtool --version 2>/dev/null|head -n 2|sed -e 's/^[^0-9]*//g' -e 's/[- ].*//'`
|
||||
if test -z "$lt_pversion"; then
|
||||
echo "buildconf: libtool not found."
|
||||
echo " You need libtool version $LIBTOOL_WANTED_VERSION or newer installed"
|
||||
|
||||
110
docs/INSTALL
110
docs/INSTALL
@@ -16,7 +16,6 @@ Installing Binary Packages
|
||||
|
||||
UNIX
|
||||
====
|
||||
|
||||
A normal unix installation is made in three or four steps (after you've
|
||||
unpacked the source archive):
|
||||
|
||||
@@ -141,6 +140,7 @@ UNIX
|
||||
yassl with its OpenSSL emulation enabled and point to that directory root
|
||||
with configure --with-ssl.
|
||||
|
||||
|
||||
Win32
|
||||
=====
|
||||
|
||||
@@ -292,7 +292,6 @@ Win32
|
||||
|
||||
IBM OS/2
|
||||
========
|
||||
|
||||
Building under OS/2 is not much different from building under unix.
|
||||
You need:
|
||||
|
||||
@@ -320,6 +319,7 @@ IBM OS/2
|
||||
If you're getting huge binaries, probably your makefiles have the -g in
|
||||
CFLAGS.
|
||||
|
||||
|
||||
VMS
|
||||
===
|
||||
(The VMS section is in whole contributed by the friendly Nico Baggus)
|
||||
@@ -390,6 +390,7 @@ VMS
|
||||
13-jul-2001
|
||||
N. Baggus
|
||||
|
||||
|
||||
QNX
|
||||
===
|
||||
(This section was graciously brought to us by David Bentham)
|
||||
@@ -441,17 +442,16 @@ AmigaOS
|
||||
|
||||
NetWare
|
||||
=======
|
||||
|
||||
To compile curl.nlm / libcurl.nlm you need:
|
||||
- either any gcc / nlmconv, or CodeWarrior 7 PDK 4 or later.
|
||||
- gnu make and awk running on the platform you compile on;
|
||||
native Win32 versions can be downloaded from:
|
||||
http://www.gknw.com/development/prgtools/
|
||||
http://www.gknw.net/development/prgtools/
|
||||
- recent Novell LibC SDK available from:
|
||||
http://developer.novell.com/ndk/libc.htm
|
||||
- optional zlib sources (at the moment only dynamic linking with zlib.imp);
|
||||
sources with NetWare Makefile can be obtained from:
|
||||
http://www.gknw.com/mirror/zlib/
|
||||
http://www.gknw.net/mirror/zlib/
|
||||
- optional OpenSSL sources (version 0.9.8 or later which builds with BSD);
|
||||
|
||||
Set a search path to your compiler, linker and tools; on Linux make
|
||||
@@ -465,14 +465,101 @@ NetWare
|
||||
with 'OSTYPE=linux-rh9-gnu' and the detection in the Makefile worked...
|
||||
Any help in testing appreciated!
|
||||
Builds automatically created 8 times a day from current CVS are here:
|
||||
http://www.gknw.com/mirror/curl/autobuilds/
|
||||
http://www.gknw.net/mirror/curl/autobuilds/
|
||||
the status of these builds can be viewed at the autobuild table:
|
||||
http://curl.haxx.se/auto/
|
||||
|
||||
|
||||
eCos
|
||||
====
|
||||
curl does not use the eCos build system, so you must first build eCos
|
||||
separately, then link curl to the resulting eCos library. Here's a sample
|
||||
configure line to do so on an x86 Linux box targeting x86:
|
||||
|
||||
GCCLIB=`gcc -print-libgcc-file-name` && \
|
||||
CFLAGS="-D__ECOS=1 -nostdinc -I$ECOS_INSTALL/include \
|
||||
-I`dirname $GCCLIB`/include" \
|
||||
LDFLAGS="-nostdlib -Wl,--gc-sections -Wl,-static \
|
||||
-L$ECOS_INSTALL/lib -Ttarget.ld -ltarget" \
|
||||
./configure --host=i386 --disable-shared \
|
||||
--without-ssl --without-zlib --disable-manual --disable-ldap
|
||||
|
||||
In most cases, eCos users will be using libcurl from within a custom
|
||||
embedded application. Using the standard 'curl' executable from
|
||||
within eCos means facing the limitation of the standard eCos C
|
||||
startup code which does not allow passing arguments in main(). To
|
||||
run 'curl' from eCos and have it do something useful, you will need
|
||||
to either modify the eCos startup code to pass in some arguments, or
|
||||
modify the curl application itself to retrieve its arguments from
|
||||
some location set by the bootloader or hard-code them.
|
||||
|
||||
Something like the following patch could be used to hard-code some
|
||||
arguments. The MTAB_ENTRY line mounts a RAM disk as the root filesystem
|
||||
(without mounting some kind of filesystem, eCos errors out all file
|
||||
operations which curl does not take to well). The next section synthesizes
|
||||
some command-line arguments for curl to use, in this case to direct curl
|
||||
to read further arguments from a file. It then creates that file on the
|
||||
RAM disk and places within it a URL to download: a file: URL that
|
||||
just happens to point to the configuration file itself. The results
|
||||
of running curl in this way is the contents of the configuration file
|
||||
printed to the console.
|
||||
|
||||
--- src/main.c 19 Jul 2006 19:09:56 -0000 1.363
|
||||
+++ src/main.c 24 Jul 2006 21:37:23 -0000
|
||||
@@ -4286,11 +4286,31 @@
|
||||
}
|
||||
|
||||
|
||||
+#ifdef __ECOS
|
||||
+#include <cyg/fileio/fileio.h>
|
||||
+MTAB_ENTRY( testfs_mte1,
|
||||
+ "/",
|
||||
+ "ramfs",
|
||||
+ "",
|
||||
+ 0);
|
||||
+#endif
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int res;
|
||||
struct Configurable config;
|
||||
+#ifdef __ECOS
|
||||
+ char *args[] = {"ecos-curl", "-K", "curlconf.txt"};
|
||||
+ FILE *f;
|
||||
+ argc = sizeof(args)/sizeof(args[0]);
|
||||
+ argv = args;
|
||||
+
|
||||
+ f = fopen("curlconf.txt", "w");
|
||||
+ if (f) {
|
||||
+ fprintf(f, "--url file:curlconf.txt");
|
||||
+ fclose(f);
|
||||
+ }
|
||||
+#endif
|
||||
memset(&config, 0, sizeof(struct Configurable));
|
||||
|
||||
config.errors = stderr; /* default errors to stderr */
|
||||
|
||||
|
||||
Minix
|
||||
=====
|
||||
curl can be compiled on Minix 3 using gcc (ACK has a few problems due
|
||||
to mismatched headers and libraries as of ver. 3.1.2). The gcc and bash
|
||||
packages must be installed first. The default heap size allocated to
|
||||
bash is inadequate for running configure and will result in out of memory
|
||||
errors. Increase it with the command:
|
||||
|
||||
chmem =2048000 /usr/local/bin/bash
|
||||
|
||||
Make sure gcc and bash are in the PATH then configure curl with a
|
||||
command like this:
|
||||
|
||||
./configure GREP=/usr/bin/grep AR=/usr/gnu/bin/gar --disable-ldap
|
||||
|
||||
Then simply run 'make'.
|
||||
|
||||
|
||||
CROSS COMPILE
|
||||
=============
|
||||
|
||||
(This section was graciously brought to us by Jim Duey, with additions by
|
||||
Dan Fandrich)
|
||||
|
||||
@@ -518,9 +605,9 @@ CROSS COMPILE
|
||||
|
||||
./configure --host=ARCH-OS
|
||||
|
||||
|
||||
REDUCING SIZE
|
||||
=============
|
||||
|
||||
There are a number of configure options that can be used to reduce the
|
||||
size of libcurl for embedded applications where binary size is an
|
||||
important factor. First, be sure to set the CFLAGS variable when
|
||||
@@ -542,7 +629,7 @@ REDUCING SIZE
|
||||
--disable-crypto-auth (disables HTTP cryptographic authentication)
|
||||
--disable-ipv6 (disables support for IPv6)
|
||||
--disable-verbose (eliminates debugging strings and error code strings)
|
||||
--enable-hidden-symbols (eliminates unneeded symbols in library)
|
||||
--enable-hidden-symbols (eliminates unneeded symbols in the shared library)
|
||||
--without-libidn (disables support for the libidn DNS library)
|
||||
--without-ssl (disables support for SSL/TLS)
|
||||
--without-zlib (disables support for on-the-fly decompression)
|
||||
@@ -553,7 +640,7 @@ REDUCING SIZE
|
||||
Be sure also to strip debugging symbols from your binaries after
|
||||
compiling using 'strip' (or the appropriate variant if cross-compiling).
|
||||
If space is really tight, you may be able to remove some unneeded
|
||||
sections of the library using the -R option to objcopy (e.g. the
|
||||
sections of the shared library using the -R option to objcopy (e.g. the
|
||||
.comment section).
|
||||
|
||||
Using these techniques it is possible to create an HTTP-only shared
|
||||
@@ -597,12 +684,15 @@ PORTS
|
||||
- StrongARM/ARM7/ARM9 Linux 2.4, 2.6
|
||||
- StrongARM NetBSD 1.4.1
|
||||
- Ultrix 4.3a
|
||||
- UNICOS 9.0
|
||||
- i386 BeOS
|
||||
- i386 DOS
|
||||
- i386 eCos 1.3.1
|
||||
- i386 Esix 4.1
|
||||
- i386 FreeBSD
|
||||
- i386 HURD
|
||||
- i386 Linux 1.3, 2.0, 2.2, 2.3, 2.4, 2.6
|
||||
- i386 MINIX 3.1.2
|
||||
- i386 NetBSD
|
||||
- i386 Novell NetWare
|
||||
- i386 OS/2
|
||||
|
||||
@@ -3,7 +3,11 @@ join in and help us correct one or more of these! Also be sure to check the
|
||||
changelog of the current development status, as one or more of these problems
|
||||
may have been fixed since this was written!
|
||||
|
||||
34. The SOCKS connection codes don't properly acknowledge (connect) timeouts.
|
||||
35. Both SOCKS5 and SOCKS4 proxy connections are done blocking, which is very
|
||||
bad when used with the multi interface.
|
||||
|
||||
34. The SOCKS4 connection codes don't properly acknowledge (connect) timeouts.
|
||||
Also see #12.
|
||||
|
||||
33. Doing multi-pass HTTP authentication on a non-default port does not work.
|
||||
This happens because the multi-pass code abuses the redirect following code
|
||||
@@ -92,7 +96,7 @@ may have been fixed since this was written!
|
||||
|
||||
12. When connecting to a SOCKS proxy, the (connect) timeout is not properly
|
||||
acknowledged after the actual TCP connect (during the SOCKS "negotiate"
|
||||
phase). Pointed out by Lucas. Fix: need to select() and timeout properly.
|
||||
phase).
|
||||
|
||||
11. Using configure --disable-[protocol] may cause 'make test' to fail for
|
||||
tests using the disabled protocol(s).
|
||||
|
||||
31
docs/MANUAL
31
docs/MANUAL
@@ -31,6 +31,15 @@ SIMPLE USAGE
|
||||
|
||||
curl ftp://cool.haxx.se/ http://www.weirdserver.com:8000/
|
||||
|
||||
Get a file off an FTPS server:
|
||||
|
||||
curl ftps://files.are.secure.com/secrets.txt
|
||||
|
||||
or use the more appropriate FTPS way to get the same file:
|
||||
|
||||
curl --ftp-ssl ftp://files.are.secure.com/secrets.txt
|
||||
|
||||
|
||||
DOWNLOAD TO A FILE
|
||||
|
||||
Get a web page and store in a local file:
|
||||
@@ -64,6 +73,10 @@ USING PASSWORDS
|
||||
It is just like for FTP, but you may also want to specify and use
|
||||
SSL-specific options for certificates etc.
|
||||
|
||||
Note that using FTPS:// as prefix is the "implicit" way as described in the
|
||||
standards while the recommended "explicit" way is done by using FTP:// and
|
||||
the --ftp-ssl option.
|
||||
|
||||
HTTP
|
||||
|
||||
The HTTP URL doesn't support user and password in the URL string. Curl
|
||||
@@ -105,6 +118,8 @@ PROXY
|
||||
|
||||
curl -U user:passwd -x my-proxy:888 http://www.get.this/
|
||||
|
||||
curl also supports SOCKS4 and SOCKS5 proxies with --socks4 and --socks5.
|
||||
|
||||
See also the environment variables Curl support that offer further proxy
|
||||
control.
|
||||
|
||||
@@ -846,6 +861,22 @@ PERSISTENT CONNECTIONS
|
||||
transfers faster. If you use a http proxy for file transfers, practically
|
||||
all transfers will be persistent.
|
||||
|
||||
MULTIPLE TRANSFERS WITH A SINGLE COMMAND LINE
|
||||
|
||||
As is mentioned above, you can download multiple files with one command line
|
||||
by simply adding more URLs. If you want those to get saved to a local file
|
||||
instead of just printed to stdout, you need to add one save option for each
|
||||
URL you specify. Note that this also goes for the -O option.
|
||||
|
||||
For example: get two files and use -O for the first and a custom file
|
||||
name for the second:
|
||||
|
||||
curl -O http://url.com/file.txt ftp://ftp.com/moo.exe -o moo.jpg
|
||||
|
||||
You can also upload multiple files in a similar fashion:
|
||||
|
||||
curl -T local1 ftp://ftp.com/moo.exe -T local2 ftp://ftp.com/moo2.txt
|
||||
|
||||
MAILING LISTS
|
||||
|
||||
For your convenience, we have several open mailing lists to discuss curl,
|
||||
|
||||
@@ -36,6 +36,7 @@ Angus Mackay
|
||||
Antoine Calando
|
||||
Anton Kalmykov
|
||||
Arkadiusz Miskiewicz
|
||||
Arve Knudsen
|
||||
Ates Goral
|
||||
Augustus Saunders
|
||||
Avery Fay
|
||||
@@ -81,6 +82,7 @@ Damien Adant
|
||||
Dan Becker
|
||||
Dan C
|
||||
Dan Fandrich
|
||||
Dan Nelson
|
||||
Dan Torop
|
||||
Dan Zitter
|
||||
Daniel Stenberg
|
||||
@@ -194,6 +196,7 @@ Ignacio Vazquez-Abrams
|
||||
Igor Polyakov
|
||||
Ilguiz Latypov
|
||||
Ilja van Sprundel
|
||||
Ingmar Runge
|
||||
Ingo Ralf Blum
|
||||
Ingo Wilken
|
||||
Jacky Lam
|
||||
@@ -208,6 +211,7 @@ Jamie Lokier
|
||||
Jamie Newton
|
||||
Jamie Wilkinson
|
||||
Jan Kunder
|
||||
Jari Sundell
|
||||
Jason S. Priebe
|
||||
Jaz Fresh
|
||||
Jean Jacques Drouin
|
||||
@@ -292,6 +296,7 @@ Lucas Adamski
|
||||
Lukasz Czekierda
|
||||
Luke Call
|
||||
Luong Dinh Dung
|
||||
Maciej Karpiuk
|
||||
Maciej W. Rozycki
|
||||
Marc Boucher
|
||||
Marcelo Juchem
|
||||
@@ -301,6 +306,7 @@ Marcus Webster
|
||||
Mario Schroeder
|
||||
Mark Butler
|
||||
Mark Eichin
|
||||
Mark Lentczner
|
||||
Markus Koetter
|
||||
Markus Moeller
|
||||
Markus Oberhumer
|
||||
@@ -321,6 +327,7 @@ Mettgut Jamalla
|
||||
Michael Benedict
|
||||
Michael Curtis
|
||||
Michael Jahn
|
||||
Michael Jerris
|
||||
Michael Mealling
|
||||
Michael Wallner
|
||||
Michal Bonino
|
||||
@@ -371,6 +378,7 @@ Peter Bray
|
||||
Peter Forret
|
||||
Peter Heuchert
|
||||
Peter Pentchev
|
||||
Peter Silva
|
||||
Peter Su
|
||||
Peter Sylvester
|
||||
Peter Todd
|
||||
@@ -506,6 +514,7 @@ Wojciech Zwiefka
|
||||
Xavier Bouchoux
|
||||
Yang Tse
|
||||
Yarram Sunil
|
||||
Yves Lejeune
|
||||
Zvi Har'El
|
||||
nk
|
||||
swalkaus at yahoo.com
|
||||
|
||||
@@ -160,12 +160,28 @@ found in \fI<curl/curl.h>\fP. This function gets called by libcurl when
|
||||
something special I/O-related needs to be done that the library can't do by
|
||||
itself. For now, rewinding the read data stream is the only action it can
|
||||
request. The rewinding of the read data stream may be necessary when doing a
|
||||
HTTP PUT or POST with a multi-pass authentication method. (Opion added in
|
||||
HTTP PUT or POST with a multi-pass authentication method. (Option added in
|
||||
7.12.3)
|
||||
.IP CURLOPT_IOCTLDATA
|
||||
Pass a pointer that will be untouched by libcurl and passed as the 3rd
|
||||
argument in the ioctl callback set with \fICURLOPT_IOCTLFUNCTION\fP. (Option
|
||||
added in 7.12.3)
|
||||
.IP CURLOPT_SOCKOPTFUNCTION
|
||||
Function pointer that should match the \fIcurl_sockopt_callback\fP prototype
|
||||
found in \fI<curl/curl.h>\fP. This function gets called by libcurl after the
|
||||
socket() call but before the connect() call. The callback's \fIpurpose\fP
|
||||
argument identifies the exact purpose for this particular socket, and
|
||||
currently only one value is supported: \fICURLSOCKTYPE_IPCXN\fP for the
|
||||
primary connection (meaning the control connection in the FTP case). Future
|
||||
versions of libcurl may support more purposes. It passes the newly created
|
||||
socket descriptor so additional setsockopt() calls can be done at the user's
|
||||
discretion. A non-zero return code from the callback function will signal an
|
||||
unrecoverable error to the library and it will close the socket and return
|
||||
\fICURLE_COULDNT_CONNECT\fP. (Option added in 7.15.6.)
|
||||
.IP CURLOPT_SOCKOPTDATA
|
||||
Pass a pointer that will be untouched by libcurl and passed as the first
|
||||
argument in the sockopt callback set with \fICURLOPT_SOCKOPTFUNCTION\fP.
|
||||
(Option added in 7.15.6.)
|
||||
.IP CURLOPT_PROGRESSFUNCTION
|
||||
Function pointer that should match the \fIcurl_progress_callback\fP prototype
|
||||
found in \fI<curl/curl.h>\fP. This function gets called by libcurl instead of
|
||||
@@ -365,9 +381,10 @@ libcurl respects the environment variables \fBhttp_proxy\fP, \fBftp_proxy\fP,
|
||||
\fBall_proxy\fP etc, if any of those is set. The \fICURLOPT_PROXY\fP option
|
||||
does however override any possibly set environment variables.
|
||||
|
||||
Starting with 7.14.1, the proxy host string can be specified the exact same
|
||||
way as the proxy environment variables, include protocol prefix (http://) and
|
||||
embedded user + password.
|
||||
Starting with 7.14.1, the proxy host string given in environment variables can
|
||||
be specified the exact same way as the proxy can be set with
|
||||
\fICURLOPT_PROXY\fP, include protocol prefix (http://) and embedded user +
|
||||
password.
|
||||
.IP CURLOPT_PROXYPORT
|
||||
Pass a long with this option to set the proxy port to connect to unless it is
|
||||
specified in the proxy string \fICURLOPT_PROXY\fP.
|
||||
@@ -821,7 +838,8 @@ Pass a pointer to a linked list of FTP commands to pass to the server after
|
||||
the transfer type is set. The linked list should be a fully valid list of
|
||||
struct curl_slist structs properly filled in as described for
|
||||
\fICURLOPT_QUOTE\fP. Disable this operation again by setting a NULL to this
|
||||
option.
|
||||
option. Before version 7.15.6, if you also set \fICURLOPT_NOBODY\fP non-zero,
|
||||
this option didn't work.
|
||||
.IP CURLOPT_FTPLISTONLY
|
||||
A non-zero parameter tells the library to just list the names of an ftp
|
||||
directory, instead of doing a full directory listing that would include file
|
||||
@@ -998,9 +1016,9 @@ libcurl what the expected size of the infile is. This value should be passed
|
||||
as a curl_off_t. (Added in 7.11.0)
|
||||
.IP CURLOPT_UPLOAD
|
||||
A non-zero parameter tells the library to prepare for an upload. The
|
||||
\fICURLOPT_READDATA\fP and \fICURLOPT_INFILESIZEE\fP or
|
||||
\fICURLOPT_INFILESIZE_LARGE\fP are also interesting for uploads. If the
|
||||
protocol is HTTP, uploading means using the PUT request unless you tell
|
||||
\fICURLOPT_READDATA\fP and \fICURLOPT_INFILESIZE\fP or
|
||||
\fICURLOPT_INFILESIZE_LARGE\fP options are also interesting for uploads. If
|
||||
the protocol is HTTP, uploading means using the PUT request unless you tell
|
||||
libcurl otherwise.
|
||||
|
||||
Using PUT with HTTP 1.1 implies the use of a "Expect: 100-continue" header.
|
||||
|
||||
@@ -23,88 +23,96 @@ After the \fIlastitem\fP pointer follow the real arguments.
|
||||
|
||||
The pointers \fI*firstitem\fP and \fI*lastitem\fP should both be pointing to
|
||||
NULL in the first call to this function. All list-data will be allocated by
|
||||
the function itself. You must call \fIcurl_formfree\fP after the form post has
|
||||
been done to free the resources again.
|
||||
the function itself. You must call \fIcurl_formfree(3)\fP after the form post
|
||||
has been done to free the resources.
|
||||
|
||||
Using POST with HTTP 1.1 implies the use of a "Expect: 100-continue" header.
|
||||
You can disable this header with \fICURLOPT_HTTPHEADER\fP as usual.
|
||||
|
||||
First, there are some basics you need to understand about multipart/formdata
|
||||
posts. Each part consists of at least a NAME and a CONTENTS part. If the part
|
||||
is made for file upload, there are also a stored CONTENT-TYPE and a
|
||||
FILENAME. Below here, we'll discuss on what options you use to set these
|
||||
properties in the parts you want to add to your post.
|
||||
is made for file upload, there are also a stored CONTENT-TYPE and a FILENAME.
|
||||
Below, we'll discuss what options you use to set these properties in the
|
||||
parts you want to add to your post.
|
||||
|
||||
The options listed first are for making normal parts. The options from
|
||||
\fICURLFORM_FILE\fP through \fICURLFORM_BUFFERLENGTH\fP are for file upload
|
||||
parts.
|
||||
|
||||
.SH OPTIONS
|
||||
|
||||
.IP CURLFORM_COPYNAME
|
||||
followed by string is used to set the name of this part. libcurl copies the
|
||||
given data, so your application doesn't need to keep it around after this
|
||||
function call. If the name isn't zero terminated properly, or if you'd like it
|
||||
to contain zero bytes, you need to set the length of the name with
|
||||
\fBCURLFORM_NAMELENGTH\fP.
|
||||
followed by a string which provides the \fIname\fP of this part. libcurl
|
||||
copies the string so your application doesn't need to keep it around after
|
||||
this function call. If the name isn't null terminated, or if you'd
|
||||
like it to contain zero bytes, you must set its length with
|
||||
\fBCURLFORM_NAMELENGTH\fP. The copied data will be freed by
|
||||
\fIcurl_formfree(3)\fP.
|
||||
|
||||
.IP CURLFORM_PTRNAME
|
||||
followed by a string is used for the name of this part. libcurl will use the
|
||||
pointer and refer to the data in your application, you must make sure it
|
||||
remains until curl no longer needs it. If the name isn't zero terminated
|
||||
properly, or if you'd like it to contain zero bytes, you need to set the
|
||||
length of the name with \fBCURLFORM_NAMELENGTH\fP.
|
||||
followed by a string which provides the \fIname\fP of this part. libcurl
|
||||
will use the pointer and refer to the data in your application, so you
|
||||
must make sure it remains until curl no longer needs it. If the name
|
||||
isn't null terminated, or if you'd like it to contain zero
|
||||
bytes, you must set its length with \fBCURLFORM_NAMELENGTH\fP.
|
||||
|
||||
.IP CURLFORM_COPYCONTENTS
|
||||
followed by a string is used for the contents of this part, the actual data to
|
||||
send away. libcurl copies the given data, so your application doesn't need to
|
||||
keep it around after this function call. If the data isn't zero terminated
|
||||
properly, or if you'd like it to contain zero bytes, you need to set the
|
||||
length of the name with \fBCURLFORM_CONTENTSLENGTH\fP.
|
||||
followed by a pointer to the contents of this part, the actual data
|
||||
to send away. libcurl copies the provided data, so your application doesn't
|
||||
need to keep it around after this function call. If the data isn't null
|
||||
terminated, or if you'd like it to contain zero bytes, you must
|
||||
set the length of the name with \fBCURLFORM_CONTENTSLENGTH\fP. The copied
|
||||
data will be freed by \fIcurl_formfree(3)\fP.
|
||||
|
||||
.IP CURLFORM_PTRCONTENTS
|
||||
followed by a string is used for the contents of this part, the actual data to
|
||||
send away. libcurl will use the pointer and refer to the data in your
|
||||
application, you must make sure it remains until curl no longer needs it. If
|
||||
the data isn't zero terminated properly, or if you'd like it to contain zero
|
||||
bytes, you need to set the length of the name with
|
||||
\fBCURLFORM_CONTENTSLENGTH\fP.
|
||||
followed by a pointer to the contents of this part, the actual data
|
||||
to send away. libcurl will use the pointer and refer to the data in your
|
||||
application, so you must make sure it remains until curl no longer needs it.
|
||||
If the data isn't null terminated, or if you'd like it to contain zero bytes,
|
||||
you must set its length with \fBCURLFORM_CONTENTSLENGTH\fP.
|
||||
|
||||
.IP CURLFORM_CONTENTSLENGTH
|
||||
followed by a long setting the length of the contents.
|
||||
followed by a long giving the length of the contents.
|
||||
|
||||
.IP CURLFORM_FILECONTENT
|
||||
followed by a file name, makes that file read and the contents will be used in
|
||||
as data in this part.
|
||||
followed by a filename, causes that file to be read and its contents used
|
||||
as data in this part. This part does \fInot\fP automatically become a file
|
||||
upload part simply because its data was read from a file.
|
||||
|
||||
.IP CURLFORM_FILE
|
||||
followed by a file name, makes this part a file upload part. It sets the file
|
||||
name field to the actual file name used here, it gets the contents of the file
|
||||
and passes as data and sets the content-type if the given file match one of
|
||||
the new internally known file extension. For \fBCURLFORM_FILE\fP the user may
|
||||
send one or more files in one part by providing multiple \fBCURLFORM_FILE\fP
|
||||
arguments each followed by the filename (and each CURLFORM_FILE is allowed to
|
||||
have a CURLFORM_CONTENTTYPE).
|
||||
followed by a filename, makes this part a file upload part. It sets the
|
||||
\fIfilename\fP field to the basename of the provided filename, it reads the
|
||||
contents of the file and passes them as data and sets the content-type if the
|
||||
given file match one of the internally known file extensions. For
|
||||
\fBCURLFORM_FILE\fP the user may send one or more files in one part by
|
||||
providing multiple \fBCURLFORM_FILE\fP arguments each followed by the
|
||||
filename (and each CURLFORM_FILE is allowed to have a CURLFORM_CONTENTTYPE).
|
||||
|
||||
.IP CURLFORM_CONTENTTYPE
|
||||
followed by a pointer to a string with a content-type will make curl use this
|
||||
given content-type for this file upload part, possibly instead of an
|
||||
is used in combination with \fICURLFORM_FILE\fP. Followed by a pointer to a
|
||||
string which provides the content-type for this part, possibly instead of an
|
||||
internally chosen one.
|
||||
|
||||
.IP CURLFORM_FILENAME
|
||||
followed by a pointer to a string to a name, will make libcurl use the given
|
||||
name in the file upload part, instead of the actual file name given to
|
||||
\fICURLFORM_FILE\fP.
|
||||
is used in combination with \fICURLFORM_FILE\fP. Followed by a pointer to a
|
||||
string, it tells libcurl to use the given string as the \fIfilename\fP in the
|
||||
file upload part instead of the actual file name.
|
||||
|
||||
.IP CURLFORM_BUFFER
|
||||
followed by a string, tells libcurl that a buffer is to be used to upload data
|
||||
instead of using a file. The given string is used as the value of the file
|
||||
name field in the content header.
|
||||
is used for custom file upload parts without use of \fICURLFORM_FILE\fP. It
|
||||
tells libcurl that the file contents are already present in a buffer. The
|
||||
parameter is a string which provides the \fIfilename\fP field in the content
|
||||
header.
|
||||
|
||||
.IP CURLFORM_BUFFERPTR
|
||||
followed by a pointer to a data area, tells libcurl the address of the buffer
|
||||
containing data to upload (as indicated with \fICURLFORM_BUFFER\fP). The
|
||||
buffer containing this data must not be freed until after
|
||||
is used in combination with \fICURLFORM_BUFFER\fP. The parameter is a pointer
|
||||
to the buffer to be uploaded. This buffer must not be freed until after
|
||||
\fIcurl_easy_cleanup(3)\fP is called. You must also use
|
||||
\fICURLFORM_BUFFERLENGTH\fP to set the length of the given buffer area.
|
||||
\fICURLFORM_BUFFERLENGTH\fP to set the number of bytes in the buffer.
|
||||
|
||||
.IP CURLFORM_BUFFERLENGTH
|
||||
followed by a long with the size of the \fICURLFORM_BUFFERPTR\fP data area,
|
||||
tells libcurl the length of the buffer to upload.
|
||||
is used in combination with \fICURLFORM_BUFFER\fP. The parameter is a
|
||||
long which gives the length of the buffer.
|
||||
|
||||
.IP CURLFORM_ARRAY
|
||||
Another possibility to send options to curl_formadd() is the
|
||||
|
||||
@@ -74,7 +74,7 @@ struct fdinfo {
|
||||
long timeout; /* as set by libcurl */
|
||||
struct event ev; /* */
|
||||
int evset; /* true if the 'ev' struct has been used in a event_set() call */
|
||||
CURLMcode *multi; /* pointer to the multi handle */
|
||||
CURLM *multi; /* pointer to the multi handle */
|
||||
int *running_handles; /* pointer to the running_handles counter */
|
||||
};
|
||||
|
||||
@@ -86,6 +86,8 @@ static int running_handles;
|
||||
done, we can remove the timerevent as well */
|
||||
static struct event timerevent;
|
||||
|
||||
static void update_timeout(CURLM *multi_handle);
|
||||
|
||||
/* called from libevent on action on a particular socket ("event") */
|
||||
static void eventcallback(int fd, short type, void *userp)
|
||||
{
|
||||
@@ -110,6 +112,8 @@ static void eventcallback(int fd, short type, void *userp)
|
||||
if(evtimer_pending(&timerevent, NULL))
|
||||
evtimer_del(&timerevent);
|
||||
}
|
||||
else
|
||||
update_timeout(fdp->multi);
|
||||
}
|
||||
|
||||
/* called from libevent when our timer event expires */
|
||||
@@ -118,8 +122,6 @@ static void timercallback(int fd, short type, void *userp)
|
||||
(void)fd; /* not used for this */
|
||||
(void)type; /* ignored in here */
|
||||
CURLM *multi_handle = (CURLM *)userp;
|
||||
long timeout_ms;
|
||||
struct timeval timeout;
|
||||
int running_handles;
|
||||
CURLMcode rc;
|
||||
|
||||
@@ -131,15 +133,9 @@ static void timercallback(int fd, short type, void *userp)
|
||||
&running_handles);
|
||||
} while (rc == CURLM_CALL_MULTI_PERFORM);
|
||||
|
||||
if(running_handles) {
|
||||
if(running_handles)
|
||||
/* Get the current timeout value from libcurl and set a new timeout */
|
||||
curl_multi_timeout(multi_handle, &timeout_ms);
|
||||
|
||||
/* convert ms to timeval */
|
||||
timeout.tv_sec = timeout_ms/1000;
|
||||
timeout.tv_usec = (timeout_ms%1000)*1000;
|
||||
evtimer_add(&timerevent, &timeout);
|
||||
}
|
||||
update_timeout(multi_handle);
|
||||
}
|
||||
|
||||
static void remsock(struct fdinfo *f)
|
||||
@@ -266,6 +262,7 @@ writecallback(void *ptr, size_t size, size_t nmemb, void *data)
|
||||
{
|
||||
size_t realsize = size * nmemb;
|
||||
struct connection *c = (struct connection *)data;
|
||||
(void)ptr;
|
||||
|
||||
c->dlcounter += realsize;
|
||||
c->global->dlcounter += realsize;
|
||||
@@ -283,19 +280,28 @@ int num_total;
|
||||
int num_idle;
|
||||
int num_active;
|
||||
|
||||
static void update_timeout(CURLM *multi_handle)
|
||||
{
|
||||
long timeout_ms;
|
||||
struct timeval timeout;
|
||||
|
||||
/* Since we need a global timeout to occur after a given time of inactivity,
|
||||
we use a single timeout-event. Get the timeout value from libcurl, and
|
||||
update it after every call to libcurl. */
|
||||
curl_multi_timeout(multi_handle, &timeout_ms);
|
||||
|
||||
/* convert ms to timeval */
|
||||
timeout.tv_sec = timeout_ms/1000;
|
||||
timeout.tv_usec = (timeout_ms%1000)*1000;
|
||||
evtimer_add(&timerevent, &timeout);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
CURLM *multi_handle;
|
||||
CURLMsg *msg;
|
||||
CURLcode code = CURLE_OK;
|
||||
CURLMcode mcode = CURLM_OK;
|
||||
int rc;
|
||||
int i;
|
||||
int selectmaxamount;
|
||||
struct fdinfo *fdp;
|
||||
char act;
|
||||
long timeout_ms;
|
||||
struct timeval timeout;
|
||||
|
||||
memset(&info, 0, sizeof(struct globalinfo));
|
||||
|
||||
@@ -327,9 +333,11 @@ int main(int argc, char **argv)
|
||||
/* init the multi stack */
|
||||
multi_handle = curl_multi_init();
|
||||
|
||||
/* initialize the timeout event */
|
||||
evtimer_set(&timerevent, timercallback, multi_handle);
|
||||
|
||||
for(i=0; i< num_total; i++) {
|
||||
CURL *e;
|
||||
char *nl;
|
||||
|
||||
memset(&conns[i], 0, sizeof(struct connection));
|
||||
|
||||
@@ -370,14 +378,8 @@ int main(int argc, char **argv)
|
||||
while(CURLM_CALL_MULTI_PERFORM == curl_multi_socket_all(multi_handle,
|
||||
&running_handles));
|
||||
|
||||
/* Since we need a global timeout to occur after a given time of inactivity,
|
||||
we add a single timeout-event. Get the timeout value from libcurl */
|
||||
curl_multi_timeout(multi_handle, &timeout_ms);
|
||||
/* convert ms to timeval */
|
||||
timeout.tv_sec = timeout_ms/1000;
|
||||
timeout.tv_usec = (timeout_ms%1000)*1000;
|
||||
evtimer_set(&timerevent, timercallback, multi_handle);
|
||||
evtimer_add(&timerevent, &timeout);
|
||||
/* update timeout */
|
||||
update_timeout(multi_handle);
|
||||
|
||||
/* event_dispatch() runs the event main loop. It ends when no events are
|
||||
left to wait for. */
|
||||
|
||||
@@ -133,6 +133,49 @@ extern "C" {
|
||||
#undef FILESIZEBITS
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(WIN32)
|
||||
/* Chris Lewis mentioned that he doesn't get WIN32 defined, only _WIN32 so we
|
||||
make this adjustment to catch this. */
|
||||
#define WIN32 1
|
||||
#endif
|
||||
|
||||
#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__GNUC__) && \
|
||||
!defined(__CYGWIN__) || defined(__MINGW32__)
|
||||
#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H))
|
||||
/* The check above prevents the winsock2 inclusion if winsock.h already was
|
||||
included, since they can't co-exist without problems */
|
||||
#include <winsock2.h>
|
||||
#endif
|
||||
#else
|
||||
|
||||
/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish
|
||||
libc5-based Linux systems. Only include it on system that are known to
|
||||
require it! */
|
||||
#if defined(_AIX) || defined(NETWARE) || defined(__NetBSD__) || defined(__minix)
|
||||
#include <sys/select.h>
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
#ifndef __WATCOMC__
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
#ifndef curl_socket_typedef
|
||||
/* socket typedef */
|
||||
#ifdef WIN32
|
||||
typedef SOCKET curl_socket_t;
|
||||
#define CURL_SOCKET_BAD INVALID_SOCKET
|
||||
#else
|
||||
typedef int curl_socket_t;
|
||||
#define CURL_SOCKET_BAD -1
|
||||
#endif
|
||||
#define curl_socket_typedef
|
||||
#endif /* curl_socket_typedef */
|
||||
|
||||
struct curl_httppost {
|
||||
struct curl_httppost *next; /* next entry in the list */
|
||||
char *name; /* pointer to allocated name */
|
||||
@@ -184,6 +227,14 @@ typedef size_t (*curl_read_callback)(char *buffer,
|
||||
size_t nitems,
|
||||
void *instream);
|
||||
|
||||
typedef enum {
|
||||
CURLSOCKTYPE_IPCXN, /* socket created for a specific IP connection */
|
||||
CURLSOCKTYPE_LAST /* never use */
|
||||
} curlsocktype;
|
||||
|
||||
typedef int (*curl_sockopt_callback)(void *clientp,
|
||||
curl_socket_t curlfd,
|
||||
curlsocktype purpose);
|
||||
|
||||
#ifndef CURL_NO_OLDIES
|
||||
/* not used since 7.10.8, will be removed in a future release */
|
||||
@@ -436,7 +487,7 @@ typedef enum {
|
||||
*/
|
||||
#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \
|
||||
defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \
|
||||
defined(__POCC__) || defined(__SALFORDC__)
|
||||
defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__)
|
||||
/* This compiler is believed to have an ISO compatible preprocessor */
|
||||
#define CURL_ISOCPP
|
||||
#else
|
||||
@@ -982,6 +1033,10 @@ typedef enum {
|
||||
/* Pointer to command string to send if USER/PASS fails. */
|
||||
CINIT(FTP_ALTERNATIVE_TO_USER, OBJECTPOINT, 147),
|
||||
|
||||
/* callback function for setting socket options */
|
||||
CINIT(SOCKOPTFUNCTION, FUNCTIONPOINT, 148),
|
||||
CINIT(SOCKOPTDATA, OBJECTPOINT, 149),
|
||||
|
||||
CURLOPT_LASTENTRY /* the last unused */
|
||||
} CURLoption;
|
||||
|
||||
|
||||
@@ -28,13 +28,13 @@
|
||||
|
||||
/* This is the version number of the libcurl package from which this header
|
||||
file origins: */
|
||||
#define LIBCURL_VERSION "7.15.5-CVS"
|
||||
#define LIBCURL_VERSION "7.15.6-CVS"
|
||||
|
||||
/* The numeric version number is also available "in parts" by using these
|
||||
defines: */
|
||||
#define LIBCURL_VERSION_MAJOR 7
|
||||
#define LIBCURL_VERSION_MINOR 15
|
||||
#define LIBCURL_VERSION_PATCH 5
|
||||
#define LIBCURL_VERSION_PATCH 6
|
||||
|
||||
/* This is the numeric version of the libcurl version number, meant for easier
|
||||
parsing and comparions by programs. The LIBCURL_VERSION_NUM define will
|
||||
@@ -51,6 +51,6 @@
|
||||
and it is always a greater number in a more recent release. It makes
|
||||
comparisons with greater than and less than work.
|
||||
*/
|
||||
#define LIBCURL_VERSION_NUM 0x070f05
|
||||
#define LIBCURL_VERSION_NUM 0x070f06
|
||||
|
||||
#endif /* __CURL_CURLVER_H */
|
||||
|
||||
@@ -37,34 +37,6 @@
|
||||
file descriptors simultaneous easily.
|
||||
|
||||
*/
|
||||
#if defined(_WIN32) && !defined(WIN32)
|
||||
/* Chris Lewis mentioned that he doesn't get WIN32 defined, only _WIN32 so we
|
||||
make this adjustment to catch this. */
|
||||
#define WIN32 1
|
||||
#endif
|
||||
|
||||
#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__GNUC__) && \
|
||||
!defined(__CYGWIN__) || defined(__MINGW32__)
|
||||
#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H))
|
||||
/* The check above prevents the winsock2 inclusion if winsock.h already was
|
||||
included, since they can't co-exist without problems */
|
||||
#include <winsock2.h>
|
||||
#endif
|
||||
#else
|
||||
|
||||
/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish
|
||||
libc5-based Linux systems. Only include it on system that are known to
|
||||
require it! */
|
||||
#if defined(_AIX) || defined(NETWARE) || defined(__NetBSD__) || defined(_MINIX)
|
||||
#include <sys/select.h>
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This header file should not really need to include "curl.h" since curl.h
|
||||
@@ -83,18 +55,6 @@ extern "C" {
|
||||
|
||||
typedef void CURLM;
|
||||
|
||||
#ifndef curl_socket_typedef
|
||||
/* Public socket typedef */
|
||||
#ifdef WIN32
|
||||
typedef SOCKET curl_socket_t;
|
||||
#define CURL_SOCKET_BAD INVALID_SOCKET
|
||||
#else
|
||||
typedef int curl_socket_t;
|
||||
#define CURL_SOCKET_BAD -1
|
||||
#endif
|
||||
#define curl_socket_typedef
|
||||
#endif /* curl_socket_typedef */
|
||||
|
||||
typedef enum {
|
||||
CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or
|
||||
curl_multi_socket*() soon */
|
||||
|
||||
@@ -93,282 +93,257 @@ $(LINK_ARG): $(__MAKEFILES__)
|
||||
#
|
||||
# Dependencies based on "gcc -MM .."
|
||||
#
|
||||
$(OBJ_DIR)\file.obj: file.c setup.h config-win32.h urldata.h cookie.h &
|
||||
$(OBJ_DIR)\file.obj: file.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h progress.h sendf.h escape.h file.h &
|
||||
speedcheck.h getinfo.h transfer.h url.h memory.h ..\include\curl\mprintf.h &
|
||||
memdebug.h
|
||||
|
||||
$(OBJ_DIR)\timeval.obj: timeval.c timeval.h setup.h config-win32.h
|
||||
|
||||
$(OBJ_DIR)\base64.obj: base64.c setup.h config-win32.h ..\include\curl\mprintf.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h progress.h sendf.h &
|
||||
escape.h file.h speedcheck.h getinfo.h transfer.h url.h memory.h &
|
||||
parsedate.h ..\include\curl\mprintf.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\timeval.obj: timeval.c timeval.h setup.h config-win32.h setup_once.h
|
||||
$(OBJ_DIR)\base64.obj: base64.c setup.h config-win32.h setup_once.h &
|
||||
..\include\curl\mprintf.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h base64.h memory.h ..\include\curl\curl.h &
|
||||
memdebug.h
|
||||
|
||||
$(OBJ_DIR)\hostip.obj: hostip.c setup.h config-win32.h urldata.h cookie.h &
|
||||
memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\hostip.obj: hostip.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h share.h strerror.h url.h &
|
||||
inet_ntop.h ..\include\curl\mprintf.h memory.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\progress.obj: progress.c setup.h config-win32.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h ..\include\curl\multi.h &
|
||||
..\include\curl\curl.h urldata.h cookie.h formdata.h timeval.h http_chunks.h &
|
||||
hostip.h hash.h llist.h sendf.h progress.h ..\include\curl\mprintf.h
|
||||
|
||||
$(OBJ_DIR)\formdata.obj: formdata.c setup.h config-win32.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h share.h &
|
||||
strerror.h url.h inet_ntop.h ..\include\curl\mprintf.h memory.h &
|
||||
memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\progress.obj: progress.c setup.h config-win32.h setup_once.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h urldata.h cookie.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h &
|
||||
sendf.h progress.h ..\include\curl\mprintf.h
|
||||
$(OBJ_DIR)\formdata.obj: formdata.c setup.h config-win32.h setup_once.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h strequal.h &
|
||||
memory.h ..\include\curl\mprintf.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\cookie.obj: cookie.c setup.h config-win32.h urldata.h cookie.h &
|
||||
memory.h ..\include\curl\mprintf.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\cookie.obj: cookie.c setup.h config-win32.h setup_once.h &
|
||||
..\include\curl\mprintf.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h urldata.h cookie.h ..\include\curl\curl.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h &
|
||||
strequal.h strtok.h sendf.h memory.h share.h strtoofft.h memdebug.h &
|
||||
.\memory.h
|
||||
$(OBJ_DIR)\http.obj: http.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h strequal.h strtok.h sendf.h &
|
||||
memory.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\http.obj: http.c setup.h config-win32.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h transfer.h sendf.h progress.h &
|
||||
base64.h strequal.h ssluse.h http_digest.h http_ntlm.h http_negotiate.h &
|
||||
url.h share.h http.h memory.h select.h ..\include\curl\mprintf.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\sendf.obj: sendf.c setup.h config-win32.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h ..\include\curl\multi.h &
|
||||
..\include\curl\curl.h urldata.h cookie.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h connect.h &
|
||||
..\include\curl\mprintf.h memory.h strerror.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\ftp.obj: ftp.c setup.h config-win32.h ..\include\curl\curl.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h transfer.h sendf.h &
|
||||
progress.h base64.h strequal.h sslgen.h http_digest.h http_ntlm.h &
|
||||
http_negotiate.h url.h share.h http.h memory.h select.h parsedate.h &
|
||||
strtoofft.h multiif.h ..\include\curl\mprintf.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\sendf.obj: sendf.c setup.h config-win32.h setup_once.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h urldata.h cookie.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h sendf.h &
|
||||
if2ip.h progress.h transfer.h escape.h http.h ftp.h strtoofft.h &
|
||||
strequal.h ssluse.h connect.h strerror.h memory.h inet_ntop.h select.h &
|
||||
..\include\curl\mprintf.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\url.obj: url.c setup.h config-win32.h urldata.h cookie.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h &
|
||||
sendf.h connect.h sslgen.h ..\include\curl\mprintf.h memory.h &
|
||||
strerror.h easyif.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\ftp.obj: ftp.c setup.h config-win32.h setup_once.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h urldata.h cookie.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h &
|
||||
sendf.h easyif.h if2ip.h progress.h transfer.h escape.h http.h ftp.h &
|
||||
strtoofft.h strequal.h sslgen.h connect.h strerror.h memory.h &
|
||||
inet_ntop.h select.h parsedate.h sockaddr.h multiif.h &
|
||||
..\include\curl\mprintf.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\url.obj: url.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h netrc.h base64.h ssluse.h if2ip.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h netrc.h base64.h sslgen.h &
|
||||
transfer.h sendf.h progress.h strequal.h strerror.h escape.h strtok.h &
|
||||
share.h content_encoding.h http_digest.h http_negotiate.h select.h multiif.h &
|
||||
ftp.h dict.h telnet.h http.h file.h ldap.h url.h connect.h inet_ntop.h &
|
||||
./ca-bundle.h ..\include\curl\mprintf.h memory.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\dict.obj: dict.c setup.h config-win32.h urldata.h cookie.h &
|
||||
share.h content_encoding.h http_digest.h http_negotiate.h select.h &
|
||||
multiif.h ftp.h dict.h telnet.h tftp.h http.h file.h ldap.h url.h &
|
||||
connect.h inet_ntop.h http_ntlm.h .\ca-bundle.h &
|
||||
..\include\curl\mprintf.h memory.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\dict.obj: dict.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h transfer.h sendf.h progress.h &
|
||||
strequal.h dict.h ..\include\curl\mprintf.h
|
||||
|
||||
$(OBJ_DIR)\if2ip.obj: if2ip.c setup.h config-win32.h
|
||||
|
||||
$(OBJ_DIR)\speedcheck.obj: speedcheck.c setup.h config-win32.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h transfer.h sendf.h &
|
||||
progress.h strequal.h dict.h ..\include\curl\mprintf.h memdebug.h &
|
||||
.\memory.h
|
||||
$(OBJ_DIR)\if2ip.obj: if2ip.c setup.h config-win32.h setup_once.h if2ip.h inet_ntop.h &
|
||||
memory.h ..\include\curl\curl.h ..\include\curl\curlver.h &
|
||||
..\include\curl\easy.h ..\include\curl\multi.h ..\include\curl\curl.h &
|
||||
memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\speedcheck.obj: speedcheck.c setup.h config-win32.h setup_once.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h urldata.h cookie.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h sendf.h &
|
||||
speedcheck.h
|
||||
|
||||
$(OBJ_DIR)\ldap.obj: ldap.c setup.h config-win32.h urldata.h cookie.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h &
|
||||
sendf.h multiif.h speedcheck.h
|
||||
$(OBJ_DIR)\ldap.obj: ldap.c setup.h config-win32.h setup_once.h
|
||||
$(OBJ_DIR)\ssluse.obj: ssluse.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h escape.h transfer.h &
|
||||
strequal.h strtok.h ldap.h memory.h ..\include\curl\mprintf.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\ssluse.obj: ssluse.c setup.h config-win32.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h url.h inet_pton.h &
|
||||
ssluse.h connect.h strequal.h select.h ..\include\curl\mprintf.h
|
||||
|
||||
$(OBJ_DIR)\version.obj: version.c setup.h config-win32.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h ..\include\curl\multi.h &
|
||||
..\include\curl\curl.h urldata.h cookie.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h ..\include\curl\mprintf.h
|
||||
|
||||
$(OBJ_DIR)\getenv.obj: getenv.c setup.h config-win32.h ..\include\curl\curl.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h url.h inet_pton.h &
|
||||
ssluse.h connect.h strequal.h select.h sslgen.h &
|
||||
..\include\curl\mprintf.h
|
||||
$(OBJ_DIR)\version.obj: version.c setup.h config-win32.h setup_once.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h memory.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\escape.obj: escape.c setup.h config-win32.h ..\include\curl\curl.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h urldata.h cookie.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h &
|
||||
sslgen.h ..\include\curl\mprintf.h
|
||||
$(OBJ_DIR)\getenv.obj: getenv.c setup.h config-win32.h setup_once.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h memory.h &
|
||||
..\include\curl\mprintf.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\mprintf.obj: mprintf.c setup.h config-win32.h ..\include\curl\mprintf.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h memory.h ..\include\curl\curl.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\telnet.obj: telnet.c setup.h config-win32.h urldata.h cookie.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h memory.h memdebug.h &
|
||||
.\memory.h
|
||||
$(OBJ_DIR)\escape.obj: escape.c setup.h config-win32.h setup_once.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h memory.h urldata.h &
|
||||
cookie.h formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h &
|
||||
splay.h easyif.h ..\include\curl\mprintf.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\mprintf.obj: mprintf.c setup.h config-win32.h setup_once.h &
|
||||
..\include\curl\mprintf.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h memory.h ..\include\curl\curl.h memdebug.h &
|
||||
.\memory.h
|
||||
$(OBJ_DIR)\telnet.obj: telnet.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h transfer.h sendf.h telnet.h &
|
||||
..\include\curl\mprintf.h arpa_telnet.h memory.h select.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\netrc.obj: netrc.c setup.h config-win32.h ..\include\curl\curl.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h transfer.h sendf.h &
|
||||
telnet.h connect.h ..\include\curl\mprintf.h arpa_telnet.h memory.h &
|
||||
select.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\netrc.obj: netrc.c setup.h config-win32.h setup_once.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h netrc.h strequal.h &
|
||||
strtok.h memory.h ..\include\curl\mprintf.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\getinfo.obj: getinfo.c setup.h config-win32.h ..\include\curl\curl.h &
|
||||
strtok.h memory.h ..\include\curl\mprintf.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\getinfo.obj: getinfo.c setup.h config-win32.h setup_once.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h urldata.h cookie.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h &
|
||||
getinfo.h memory.h ssluse.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\transfer.obj: transfer.c setup.h config-win32.h strtoofft.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h &
|
||||
getinfo.h memory.h sslgen.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\transfer.obj: transfer.c setup.h config-win32.h setup_once.h strtoofft.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h strequal.h urldata.h &
|
||||
cookie.h formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h &
|
||||
netrc.h content_encoding.h transfer.h sendf.h speedcheck.h progress.h &
|
||||
http.h url.h getinfo.h ssluse.h http_digest.h http_ntlm.h &
|
||||
http_negotiate.h share.h memory.h select.h ..\include\curl\mprintf.h &
|
||||
memdebug.h
|
||||
|
||||
$(OBJ_DIR)\strequal.obj: strequal.c setup.h config-win32.h strequal.h &
|
||||
splay.h netrc.h content_encoding.h transfer.h sendf.h speedcheck.h &
|
||||
progress.h http.h url.h getinfo.h sslgen.h http_digest.h http_ntlm.h &
|
||||
http_negotiate.h share.h memory.h select.h multiif.h easyif.h &
|
||||
..\include\curl\mprintf.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\strequal.obj: strequal.c setup.h config-win32.h setup_once.h strequal.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h
|
||||
|
||||
$(OBJ_DIR)\easy.obj: easy.c setup.h config-win32.h strequal.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
$(OBJ_DIR)\easy.obj: easy.c setup.h config-win32.h setup_once.h strequal.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h urldata.h cookie.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h &
|
||||
transfer.h ssluse.h url.h getinfo.h share.h memory.h progress.h &
|
||||
easyif.h ..\include\curl\mprintf.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\security.obj: security.c setup.h config-win32.h
|
||||
|
||||
$(OBJ_DIR)\krb4.obj: krb4.c setup.h config-win32.h
|
||||
|
||||
$(OBJ_DIR)\memdebug.obj: memdebug.c setup.h config-win32.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h ..\include\curl\multi.h &
|
||||
..\include\curl\curl.h ..\include\curl\mprintf.h urldata.h cookie.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h memory.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\http_chunks.obj: http_chunks.c setup.h config-win32.h urldata.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h &
|
||||
transfer.h sslgen.h url.h getinfo.h share.h strdup.h memory.h &
|
||||
progress.h easyif.h sendf.h ..\include\curl\mprintf.h memdebug.h &
|
||||
.\memory.h
|
||||
$(OBJ_DIR)\security.obj: security.c setup.h config-win32.h setup_once.h
|
||||
$(OBJ_DIR)\krb4.obj: krb4.c setup.h config-win32.h setup_once.h
|
||||
$(OBJ_DIR)\memdebug.obj: memdebug.c setup.h config-win32.h setup_once.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h &
|
||||
..\include\curl\mprintf.h urldata.h cookie.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h memory.h memdebug.h &
|
||||
.\memory.h
|
||||
$(OBJ_DIR)\http_chunks.obj: http_chunks.c setup.h config-win32.h setup_once.h urldata.h &
|
||||
cookie.h ..\include\curl\curl.h ..\include\curl\curlver.h &
|
||||
..\include\curl\easy.h ..\include\curl\multi.h ..\include\curl\curl.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h sendf.h &
|
||||
content_encoding.h http.h memory.h ..\include\curl\mprintf.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\strtok.obj: strtok.c setup.h config-win32.h strtok.h
|
||||
|
||||
$(OBJ_DIR)\connect.obj: connect.c setup.h config-win32.h urldata.h cookie.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h &
|
||||
sendf.h content_encoding.h http.h memory.h ..\include\curl\mprintf.h &
|
||||
memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\strtok.obj: strtok.c setup.h config-win32.h setup_once.h strtok.h
|
||||
$(OBJ_DIR)\connect.obj: connect.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h if2ip.h strerror.h connect.h &
|
||||
memory.h select.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\llist.obj: llist.c setup.h config-win32.h llist.h memory.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h if2ip.h &
|
||||
strerror.h connect.h memory.h select.h url.h multiif.h sockaddr.h &
|
||||
inet_ntop.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\llist.obj: llist.c setup.h config-win32.h setup_once.h llist.h memory.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\hash.obj: hash.c setup.h config-win32.h hash.h llist.h memory.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\hash.obj: hash.c setup.h config-win32.h setup_once.h hash.h llist.h memory.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\multi.obj: multi.c setup.h config-win32.h ..\include\curl\curl.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\multi.obj: multi.c setup.h config-win32.h setup_once.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h urldata.h cookie.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h &
|
||||
transfer.h url.h connect.h progress.h memory.h easyif.h multiif.h &
|
||||
memdebug.h
|
||||
|
||||
$(OBJ_DIR)\content_encoding.obj: content_encoding.c setup.h config-win32.h urldata.h &
|
||||
sendf.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\content_encoding.obj: content_encoding.c setup.h config-win32.h setup_once.h
|
||||
$(OBJ_DIR)\share.obj: share.c setup.h config-win32.h setup_once.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h urldata.h cookie.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h &
|
||||
share.h memory.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\http_digest.obj: http_digest.c setup.h config-win32.h setup_once.h urldata.h &
|
||||
cookie.h ..\include\curl\curl.h ..\include\curl\curlver.h &
|
||||
..\include\curl\easy.h ..\include\curl\multi.h ..\include\curl\curl.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h sendf.h &
|
||||
content_encoding.h memory.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\share.obj: share.c setup.h config-win32.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h ..\include\curl\multi.h &
|
||||
..\include\curl\curl.h urldata.h cookie.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h share.h memory.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\http_digest.obj: http_digest.c setup.h config-win32.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h strequal.h base64.h md5.h &
|
||||
http_digest.h strtok.h url.h memory.h ..\include\curl\mprintf.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\md5.obj: md5.c setup.h config-win32.h md5.h
|
||||
|
||||
$(OBJ_DIR)\http_negotiate.obj: http_negotiate.c setup.h config-win32.h
|
||||
|
||||
$(OBJ_DIR)\http_ntlm.obj: http_ntlm.c setup.h config-win32.h
|
||||
|
||||
$(OBJ_DIR)\inet_pton.obj: inet_pton.c setup.h config-win32.h inet_pton.h
|
||||
|
||||
$(OBJ_DIR)\strtoofft.obj: strtoofft.c setup.h config-win32.h strtoofft.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h &
|
||||
sendf.h strequal.h base64.h md5.h http_digest.h strtok.h url.h memory.h &
|
||||
..\include\curl\mprintf.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\md5.obj: md5.c setup.h config-win32.h setup_once.h md5.h
|
||||
$(OBJ_DIR)\http_negotiate.obj: http_negotiate.c setup.h config-win32.h setup_once.h
|
||||
$(OBJ_DIR)\http_ntlm.obj: http_ntlm.c setup.h config-win32.h setup_once.h
|
||||
$(OBJ_DIR)\inet_pton.obj: inet_pton.c setup.h config-win32.h setup_once.h
|
||||
$(OBJ_DIR)\strtoofft.obj: strtoofft.c setup.h config-win32.h setup_once.h strtoofft.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h
|
||||
|
||||
$(OBJ_DIR)\strerror.obj: strerror.c setup.h config-win32.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
$(OBJ_DIR)\strerror.obj: strerror.c setup.h config-win32.h setup_once.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h strerror.h urldata.h &
|
||||
cookie.h formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h &
|
||||
..\include\curl\mprintf.h
|
||||
|
||||
$(OBJ_DIR)\hostares.obj: hostares.c setup.h config-win32.h urldata.h cookie.h &
|
||||
splay.h ..\include\curl\mprintf.h
|
||||
$(OBJ_DIR)\hostares.obj: hostares.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h share.h strerror.h url.h &
|
||||
..\include\curl\mprintf.h memory.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\hostasyn.obj: hostasyn.c setup.h config-win32.h urldata.h cookie.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h share.h &
|
||||
strerror.h url.h connect.h ..\include\curl\mprintf.h memory.h &
|
||||
memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\hostasyn.obj: hostasyn.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h share.h strerror.h url.h &
|
||||
..\include\curl\mprintf.h memory.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\hostip4.obj: hostip4.c setup.h config-win32.h urldata.h cookie.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h share.h &
|
||||
strerror.h url.h ..\include\curl\mprintf.h memory.h memdebug.h &
|
||||
.\memory.h
|
||||
$(OBJ_DIR)\hostip4.obj: hostip4.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h share.h strerror.h url.h &
|
||||
..\include\curl\mprintf.h memory.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\hostip6.obj: hostip6.c setup.h config-win32.h urldata.h cookie.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h share.h &
|
||||
strerror.h url.h inet_pton.h ..\include\curl\mprintf.h memory.h &
|
||||
memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\hostip6.obj: hostip6.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h share.h strerror.h url.h &
|
||||
..\include\curl\mprintf.h memory.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\hostsyn.obj: hostsyn.c setup.h config-win32.h urldata.h cookie.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h share.h &
|
||||
strerror.h url.h inet_pton.h connect.h ..\include\curl\mprintf.h &
|
||||
memory.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\hostsyn.obj: hostsyn.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h share.h strerror.h url.h &
|
||||
..\include\curl\mprintf.h memory.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\hostthre.obj: hostthre.c setup.h config-win32.h urldata.h cookie.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h share.h &
|
||||
strerror.h url.h ..\include\curl\mprintf.h memory.h memdebug.h &
|
||||
.\memory.h
|
||||
$(OBJ_DIR)\hostthre.obj: hostthre.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h share.h strerror.h url.h &
|
||||
..\include\curl\mprintf.h inet_ntop.h memory.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\inet_ntop.obj: inet_ntop.c setup.h config-win32.h ..\include\curl\mprintf.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h share.h &
|
||||
strerror.h url.h multiif.h ..\include\curl\mprintf.h inet_ntop.h &
|
||||
memory.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\inet_ntop.obj: inet_ntop.c setup.h config-win32.h setup_once.h
|
||||
$(OBJ_DIR)\parsedate.obj: parsedate.c setup.h config-win32.h setup_once.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h inet_ntop.h
|
||||
|
||||
$(OBJ_DIR)\parsedate.obj: parsedate.c setup.h config-win32.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h
|
||||
|
||||
$(OBJ_DIR)\select.obj: select.c setup.h config-win32.h select.h
|
||||
|
||||
$(OBJ_DIR)\gtls.obj: gtls.c setup.h config-win32.h
|
||||
|
||||
$(OBJ_DIR)\sslgen.obj: sslgen.c setup.h config-win32.h urldata.h cookie.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h sslgen.h &
|
||||
ssluse.h gtls.h sendf.h strequal.h url.h memory.h memdebug.h
|
||||
|
||||
$(OBJ_DIR)\tftp.obj: tftp.c setup.h config-win32.h urldata.h cookie.h &
|
||||
$(OBJ_DIR)\select.obj: select.c setup.h config-win32.h setup_once.h ..\include\curl\curl.h &
|
||||
..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h urldata.h cookie.h &
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h &
|
||||
connect.h select.h
|
||||
$(OBJ_DIR)\gtls.obj: gtls.c setup.h config-win32.h setup_once.h
|
||||
$(OBJ_DIR)\sslgen.obj: sslgen.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h formdata.h http_chunks.h hostip.h hash.h llist.h &
|
||||
transfer.h sendf.h tftp.h progress.h ..\include\curl\mprintf.h memory.h &
|
||||
select.h memdebug.h
|
||||
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sslgen.h ssluse.h gtls.h &
|
||||
sendf.h strequal.h url.h memory.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\tftp.obj: tftp.c setup.h config-win32.h setup_once.h urldata.h cookie.h &
|
||||
..\include\curl\curl.h ..\include\curl\curlver.h ..\include\curl\easy.h &
|
||||
..\include\curl\multi.h ..\include\curl\curl.h formdata.h timeval.h &
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h transfer.h sendf.h tftp.h &
|
||||
progress.h connect.h strerror.h sockaddr.h ..\include\curl\mprintf.h &
|
||||
memory.h select.h memdebug.h .\memory.h
|
||||
$(OBJ_DIR)\splay.obj: splay.c splay.h
|
||||
$(OBJ_DIR)\strdup.obj: strdup.c setup.h config-win32.h setup_once.h strdup.h
|
||||
|
||||
@@ -30,7 +30,7 @@ DOCS = README.encoding README.memoryleak README.ares README.curlx \
|
||||
|
||||
EXTRA_DIST = Makefile.b32 Makefile.m32 Makefile.vc6 Makefile.riscos \
|
||||
$(DSP) curllib.dsw config-win32.h config-win32ce.h config-riscos.h \
|
||||
config-mac.h config.h.in ca-bundle.crt makefile.dj config.dj \
|
||||
config-mac.h config.h.in ca-bundle.crt makefile.dj config.dos \
|
||||
libcurl.framework.make libcurl.plist libcurl.rc config-amigaos.h \
|
||||
amigaos.c amigaos.h makefile.amiga Makefile.netware nwlib.c \
|
||||
libcurl.imp msvcproj.head msvcproj.foot config-win32ce.h \
|
||||
@@ -43,7 +43,10 @@ lib_LTLIBRARIES = libcurl.la
|
||||
# we use srcdir/include for the static global include files
|
||||
# we use builddir/lib for the generated lib/config.h file to get found
|
||||
# we use srcdir/lib for the lib-private header files
|
||||
INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/lib -I$(top_srcdir)/lib
|
||||
|
||||
INCLUDES = -I$(top_srcdir)/include \
|
||||
-I$(top_builddir)/lib \
|
||||
-I$(top_srcdir)/lib
|
||||
|
||||
VERSION=-version-info 3:0:0
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
## Makefile for building libcurl.nlm (NetWare version - gnu make)
|
||||
## Use: make -f Makefile.netware
|
||||
##
|
||||
## Comments to: Guenter Knauf <eflash@gmx.net>
|
||||
## Comments to: Guenter Knauf http://www.gknw.de/phpbb
|
||||
#
|
||||
#################################################################
|
||||
|
||||
@@ -19,7 +19,7 @@ endif
|
||||
|
||||
# Edit the path below to point to the base of your OpenSSL package.
|
||||
ifndef OPENSSL_PATH
|
||||
OPENSSL_PATH = ../../openssl-0.9.8a
|
||||
OPENSSL_PATH = ../../openssl-0.9.8b
|
||||
endif
|
||||
|
||||
ifndef INSTDIR
|
||||
@@ -68,7 +68,7 @@ CP = cp -afv
|
||||
# RM = rm -f
|
||||
# if you want to mark the target as MTSAFE you will need a tool for
|
||||
# generating the xdc data for the linker; here's a minimal tool:
|
||||
# http://www.gknw.com/development/prgtools/mkxdc.zip
|
||||
# http://www.gknw.net/development/prgtools/mkxdc.zip
|
||||
MPKXDC = mkxdc
|
||||
|
||||
# Global flags for all compilers
|
||||
@@ -414,6 +414,31 @@ ca-bundle.h: Makefile.netware
|
||||
|
||||
url.c: ca-bundle.h
|
||||
|
||||
info: $(OBJDIR)/version.inc
|
||||
@echo Configured to build $(TARGET) with these options:
|
||||
@echo curl version: $(LIBCURL_VERSION_STR)
|
||||
@echo compiler/linker: $(CC) / $(LD)
|
||||
ifdef WITH_SSL
|
||||
@echo SSL support: enabled (OpenSSL)
|
||||
else
|
||||
@echo SSL support: no
|
||||
endif
|
||||
ifdef WITH_ZLIB
|
||||
@echo zlib support: enabled
|
||||
else
|
||||
@echo zlib support: no
|
||||
endif
|
||||
ifdef WITH_ARES
|
||||
@echo c-ares support: enabled
|
||||
else
|
||||
@echo c-ares support: no
|
||||
endif
|
||||
ifdef ENABLE_IPV6
|
||||
@echo ipv6 support: enabled
|
||||
else
|
||||
@echo ipv6 support: no
|
||||
endif
|
||||
|
||||
$(LIBCARES):
|
||||
$(MAKE) -C ../ares -f Makefile.netware lib
|
||||
|
||||
|
||||
@@ -1,22 +1,24 @@
|
||||
#ifndef _CURL_CONFIG_DJGPP_H
|
||||
#define _CURL_CONFIG_DJGPP_H
|
||||
#ifndef _CURL_CONFIG_DOS_H
|
||||
#define _CURL_CONFIG_DOS_H
|
||||
|
||||
/* lib/config.dj - Hand crafted config file for DJGPP.
|
||||
/* lib/config.dos - Hand crafted config file for MSDOS.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
#define OS "MSDOS/djgpp"
|
||||
#define PACKAGE "curl"
|
||||
|
||||
#define CURL_CA_BUNDLE "/dev/env/CURL_CA_BUNDLE"
|
||||
|
||||
#if (DJGPP_MINOR >= 4)
|
||||
/* #define HAVE_DLOPEN 1 maybe not (DXE3) */
|
||||
#if defined(DJGPP)
|
||||
#define OS "MSDOS/djgpp"
|
||||
#elif defined(__HIGHC__)
|
||||
#define OS "MSDOS/HighC"
|
||||
#elif defined(__WATCOMC__)
|
||||
#define OS "MSDOS/Watcom"
|
||||
#else
|
||||
#define OS "MSDOS/?"
|
||||
#endif
|
||||
|
||||
#define PACKAGE "curl"
|
||||
|
||||
#define HAVE_ASSERT_T 1
|
||||
#define HAVE_ARPA_INET_H 1
|
||||
#define HAVE_BASENAME 1
|
||||
#define HAVE_CLOSESOCKET 1
|
||||
#define HAVE_FCNTL_H 1
|
||||
#define HAVE_FIONBIO 1
|
||||
@@ -47,11 +49,8 @@
|
||||
#define HAVE_SETLOCALE 1
|
||||
#define HAVE_SETVBUF 1
|
||||
#define HAVE_SIGNAL 1
|
||||
#define HAVE_SIGACTION 1
|
||||
#define HAVE_SIGSETJMP 1
|
||||
#define HAVE_SOCKET 1
|
||||
#define HAVE_SPNEGO 1
|
||||
#define HAVE_STRCASECMP 1
|
||||
#define HAVE_STRDUP 1
|
||||
#define HAVE_STRFTIME 1
|
||||
#define HAVE_STRICMP 1
|
||||
@@ -69,10 +68,6 @@
|
||||
|
||||
#define NEED_MALLOC_H 1
|
||||
|
||||
#if (DJGPP_MINOR >= 4)
|
||||
#define HAVE_STRLCAT 1
|
||||
#endif
|
||||
|
||||
#define RETSIGTYPE void
|
||||
#define SIZEOF_LONG_DOUBLE 16
|
||||
#define SIZEOF_CURL_OFF_T 4 /* no huge file support */
|
||||
@@ -105,19 +100,44 @@
|
||||
/* to disable LDAP */
|
||||
#define CURL_DISABLE_LDAP 1
|
||||
|
||||
/* Because djgpp <= 2.03 doesn't have snprintf() etc.
|
||||
*/
|
||||
#if (DJGPP_MINOR < 4)
|
||||
#define _MPRINTF_REPLACE
|
||||
#endif
|
||||
|
||||
#define in_addr_t u_long
|
||||
#define socklen_t int
|
||||
|
||||
#if __GNUC__ < 4 /* gcc 4.x built-in ? */
|
||||
#if defined(__HIGHC__) || \
|
||||
(defined(__GNUC__) && __GNUC__ < 4) /* gcc 4.x built-in ? */
|
||||
#define ssize_t int
|
||||
#endif
|
||||
|
||||
/* Target HAVE_x section
|
||||
*/
|
||||
#if defined(DJGPP)
|
||||
#define CURL_CA_BUNDLE "/dev/env/CURL_CA_BUNDLE"
|
||||
#define HAVE_BASENAME 1
|
||||
#define HAVE_STRCASECMP 1
|
||||
#define HAVE_SIGACTION 1
|
||||
#define HAVE_SIGSETJMP 1
|
||||
#define HAVE_SYS_TIME_H 1
|
||||
|
||||
#if (DJGPP_MINOR >= 4)
|
||||
#define HAVE_STRLCAT 1
|
||||
#endif
|
||||
|
||||
/* Because djgpp <= 2.03 doesn't have snprintf() etc. */
|
||||
#if (DJGPP_MINOR < 4)
|
||||
#define _MPRINTF_REPLACE
|
||||
#endif
|
||||
#else
|
||||
#define CURL_CA_BUNDLE getenv("CURL_CA_BUNDLE")
|
||||
#endif
|
||||
|
||||
#if defined(__WATCOMC__)
|
||||
#define HAVE_STRCASECMP 1
|
||||
#endif
|
||||
|
||||
#if defined(__HIGHC__)
|
||||
#define HAVE_SYS_TIME_H 1
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <tcp.h> /* Watt-32 API */
|
||||
@@ -125,5 +145,5 @@
|
||||
#undef word
|
||||
#undef byte
|
||||
|
||||
#endif /* _CURL_CONFIG_DJGPP_H */
|
||||
#endif /* _CURL_CONFIG_DOS_H */
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
|
||||
#ifndef WIN32
|
||||
/* headers for non-win32 */
|
||||
#ifdef HAVE_SYS_TIME_H
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_TYPES_H
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
@@ -702,6 +704,17 @@ singleipconnect(struct connectdata *conn,
|
||||
|
||||
nosigpipe(conn, sockfd);
|
||||
|
||||
if(data->set.fsockopt) {
|
||||
/* activate callback for setting socket options */
|
||||
error = data->set.fsockopt(data->set.sockopt_client,
|
||||
sockfd,
|
||||
CURLSOCKTYPE_IPCXN);
|
||||
if (error) {
|
||||
sclose(sockfd); /* close the socket and bail out */
|
||||
return CURL_SOCKET_BAD;
|
||||
}
|
||||
}
|
||||
|
||||
/* possibly bind the local end to an IP, interface or port */
|
||||
res = bindlocal(conn, sockfd);
|
||||
if(res) {
|
||||
|
||||
@@ -62,9 +62,9 @@ enum zlibState {
|
||||
};
|
||||
|
||||
static CURLcode
|
||||
process_zlib_error(struct SessionHandle *data,
|
||||
z_stream *z)
|
||||
process_zlib_error(struct connectdata *conn, z_stream *z)
|
||||
{
|
||||
struct SessionHandle *data = conn->data;
|
||||
if (z->msg)
|
||||
failf (data, "Error while processing content unencoding: %s",
|
||||
z->msg);
|
||||
@@ -84,7 +84,7 @@ exit_zlib(z_stream *z, bool *zlib_init, CURLcode result)
|
||||
}
|
||||
|
||||
static CURLcode
|
||||
inflate_stream(struct SessionHandle *data,
|
||||
inflate_stream(struct connectdata *conn,
|
||||
struct Curl_transfer_keeper *k)
|
||||
{
|
||||
int allow_restart = 1;
|
||||
@@ -113,7 +113,7 @@ inflate_stream(struct SessionHandle *data,
|
||||
if (status == Z_OK || status == Z_STREAM_END) {
|
||||
allow_restart = 0;
|
||||
if(DSIZ - z->avail_out) {
|
||||
result = Curl_client_write(data, CLIENTWRITE_BODY, decomp,
|
||||
result = Curl_client_write(conn, CLIENTWRITE_BODY, decomp,
|
||||
DSIZ - z->avail_out);
|
||||
/* if !CURLE_OK, clean up, return */
|
||||
if (result) {
|
||||
@@ -128,7 +128,7 @@ inflate_stream(struct SessionHandle *data,
|
||||
if (inflateEnd(z) == Z_OK)
|
||||
return exit_zlib(z, &k->zlib_init, result);
|
||||
else
|
||||
return exit_zlib(z, &k->zlib_init, process_zlib_error(data, z));
|
||||
return exit_zlib(z, &k->zlib_init, process_zlib_error(conn, z));
|
||||
}
|
||||
|
||||
/* Done with these bytes, exit */
|
||||
@@ -143,7 +143,7 @@ inflate_stream(struct SessionHandle *data,
|
||||
|
||||
inflateReset(z);
|
||||
if (inflateInit2(z, -MAX_WBITS) != Z_OK) {
|
||||
return process_zlib_error(data, z);
|
||||
return process_zlib_error(conn, z);
|
||||
}
|
||||
z->next_in = orig_in;
|
||||
z->avail_in = nread;
|
||||
@@ -152,14 +152,14 @@ inflate_stream(struct SessionHandle *data,
|
||||
}
|
||||
else { /* Error; exit loop, handle below */
|
||||
free(decomp);
|
||||
return exit_zlib(z, &k->zlib_init, process_zlib_error(data, z));
|
||||
return exit_zlib(z, &k->zlib_init, process_zlib_error(conn, z));
|
||||
}
|
||||
}
|
||||
/* Will never get here */
|
||||
}
|
||||
|
||||
CURLcode
|
||||
Curl_unencode_deflate_write(struct SessionHandle *data,
|
||||
Curl_unencode_deflate_write(struct connectdata *conn,
|
||||
struct Curl_transfer_keeper *k,
|
||||
ssize_t nread)
|
||||
{
|
||||
@@ -173,7 +173,7 @@ Curl_unencode_deflate_write(struct SessionHandle *data,
|
||||
z->next_in = NULL;
|
||||
z->avail_in = 0;
|
||||
if (inflateInit(z) != Z_OK)
|
||||
return process_zlib_error(data, z);
|
||||
return process_zlib_error(conn, z);
|
||||
k->zlib_init = ZLIB_INIT;
|
||||
}
|
||||
|
||||
@@ -182,7 +182,7 @@ Curl_unencode_deflate_write(struct SessionHandle *data,
|
||||
z->avail_in = (uInt)nread;
|
||||
|
||||
/* Now uncompress the data */
|
||||
return inflate_stream(data, k);
|
||||
return inflate_stream(conn, k);
|
||||
}
|
||||
|
||||
#ifdef OLD_ZLIB_SUPPORT
|
||||
@@ -272,7 +272,7 @@ static enum {
|
||||
#endif
|
||||
|
||||
CURLcode
|
||||
Curl_unencode_gzip_write(struct SessionHandle *data,
|
||||
Curl_unencode_gzip_write(struct connectdata *conn,
|
||||
struct Curl_transfer_keeper *k,
|
||||
ssize_t nread)
|
||||
{
|
||||
@@ -289,14 +289,14 @@ Curl_unencode_gzip_write(struct SessionHandle *data,
|
||||
if (strcmp(zlibVersion(), "1.2.0.4") >= 0) {
|
||||
/* zlib ver. >= 1.2.0.4 supports transparent gzip decompressing */
|
||||
if (inflateInit2(z, MAX_WBITS+32) != Z_OK) {
|
||||
return process_zlib_error(data, z);
|
||||
return process_zlib_error(conn, z);
|
||||
}
|
||||
k->zlib_init = ZLIB_INIT_GZIP; /* Transparent gzip decompress state */
|
||||
|
||||
} else {
|
||||
/* we must parse the gzip header ourselves */
|
||||
if (inflateInit2(z, -MAX_WBITS) != Z_OK) {
|
||||
return process_zlib_error(data, z);
|
||||
return process_zlib_error(conn, z);
|
||||
}
|
||||
k->zlib_init = ZLIB_INIT; /* Initial call state */
|
||||
}
|
||||
@@ -307,7 +307,7 @@ Curl_unencode_gzip_write(struct SessionHandle *data,
|
||||
z->next_in = (Bytef *)k->str;
|
||||
z->avail_in = (uInt)nread;
|
||||
/* Now uncompress the data */
|
||||
return inflate_stream(data, k);
|
||||
return inflate_stream(conn, k);
|
||||
}
|
||||
|
||||
#ifndef OLD_ZLIB_SUPPORT
|
||||
@@ -360,7 +360,7 @@ Curl_unencode_gzip_write(struct SessionHandle *data,
|
||||
|
||||
case GZIP_BAD:
|
||||
default:
|
||||
return exit_zlib(z, &k->zlib_init, process_zlib_error(data, z));
|
||||
return exit_zlib(z, &k->zlib_init, process_zlib_error(conn, z));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -398,7 +398,7 @@ Curl_unencode_gzip_write(struct SessionHandle *data,
|
||||
case GZIP_BAD:
|
||||
default:
|
||||
free(z->next_in);
|
||||
return exit_zlib(z, &k->zlib_init, process_zlib_error(data, z));
|
||||
return exit_zlib(z, &k->zlib_init, process_zlib_error(conn, z));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -418,7 +418,7 @@ Curl_unencode_gzip_write(struct SessionHandle *data,
|
||||
}
|
||||
|
||||
/* We've parsed the header, now uncompress the data */
|
||||
return inflate_stream(data, k);
|
||||
return inflate_stream(conn, k);
|
||||
#endif
|
||||
}
|
||||
#endif /* HAVE_LIBZ */
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2004, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 1998 - 2006, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
@@ -31,11 +31,11 @@
|
||||
#define ALL_CONTENT_ENCODINGS "identity"
|
||||
#endif
|
||||
|
||||
CURLcode Curl_unencode_deflate_write(struct SessionHandle *data,
|
||||
CURLcode Curl_unencode_deflate_write(struct connectdata *conn,
|
||||
struct Curl_transfer_keeper *k,
|
||||
ssize_t nread);
|
||||
|
||||
CURLcode
|
||||
Curl_unencode_gzip_write(struct SessionHandle *data,
|
||||
Curl_unencode_gzip_write(struct connectdata *conn,
|
||||
struct Curl_transfer_keeper *k,
|
||||
ssize_t nread);
|
||||
|
||||
@@ -24,11 +24,13 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#ifdef WIN32
|
||||
#if defined(WIN32)
|
||||
#include <time.h>
|
||||
#else
|
||||
#ifdef HAVE_SYS_TIME_H
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <curl/curl.h>
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#include <sys/stat.h>
|
||||
#endif
|
||||
|
||||
#if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__)
|
||||
#if defined(WIN32) && !defined(__CYGWIN__)
|
||||
#include <time.h>
|
||||
#include <io.h>
|
||||
#else
|
||||
@@ -46,7 +46,9 @@
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
#include <netinet/in.h>
|
||||
#ifdef HAVE_SYS_TIME_H
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
@@ -104,7 +106,7 @@ static char *unescape_word(struct SessionHandle *data, char *inp)
|
||||
/* According to RFC2229 section 2.2, these letters need to be escaped with
|
||||
\[letter] */
|
||||
for(ptr = newp;
|
||||
(byte = (unsigned char)*ptr);
|
||||
(byte = (unsigned char)*ptr) != 0;
|
||||
ptr++) {
|
||||
if ((byte <= 32) || (byte == 127) ||
|
||||
(byte == '\'') || (byte == '\"') || (byte == '\\')) {
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
#include "strequal.h"
|
||||
|
||||
#if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__)
|
||||
#if defined(WIN32) && !defined(__CYGWIN__)
|
||||
#include <time.h>
|
||||
#include <io.h>
|
||||
#else
|
||||
@@ -48,7 +48,9 @@
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
#include <netinet/in.h>
|
||||
#ifdef HAVE_SYS_TIME_H
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
12
lib/file.c
12
lib/file.c
@@ -37,7 +37,7 @@
|
||||
#include <sys/stat.h>
|
||||
#endif
|
||||
|
||||
#if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__)
|
||||
#if defined(WIN32) && !defined(__CYGWIN__)
|
||||
#include <time.h>
|
||||
#include <io.h>
|
||||
#include <fcntl.h>
|
||||
@@ -48,7 +48,9 @@
|
||||
#ifdef HAVE_NETINET_IN_H
|
||||
#include <netinet/in.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_TIME_H
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
@@ -311,11 +313,11 @@ CURLcode Curl_file(struct connectdata *conn, bool *done)
|
||||
CURLcode result;
|
||||
snprintf(buf, sizeof(data->state.buffer),
|
||||
"Content-Length: %" FORMAT_OFF_T "\r\n", expected_size);
|
||||
result = Curl_client_write(data, CLIENTWRITE_BOTH, buf, 0);
|
||||
result = Curl_client_write(conn, CLIENTWRITE_BOTH, buf, 0);
|
||||
if(result)
|
||||
return result;
|
||||
|
||||
result = Curl_client_write(data, CLIENTWRITE_BOTH,
|
||||
result = Curl_client_write(conn, CLIENTWRITE_BOTH,
|
||||
(char *)"Accept-ranges: bytes\r\n", 0);
|
||||
if(result)
|
||||
return result;
|
||||
@@ -339,7 +341,7 @@ CURLcode Curl_file(struct connectdata *conn, bool *done)
|
||||
tm->tm_hour,
|
||||
tm->tm_min,
|
||||
tm->tm_sec);
|
||||
result = Curl_client_write(data, CLIENTWRITE_BOTH, buf, 0);
|
||||
result = Curl_client_write(conn, CLIENTWRITE_BOTH, buf, 0);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -377,7 +379,7 @@ CURLcode Curl_file(struct connectdata *conn, bool *done)
|
||||
|
||||
bytecount += nread;
|
||||
|
||||
res = Curl_client_write(data, CLIENTWRITE_BODY, buf, nread);
|
||||
res = Curl_client_write(conn, CLIENTWRITE_BODY, buf, nread);
|
||||
if(res)
|
||||
return res;
|
||||
|
||||
|
||||
@@ -528,8 +528,8 @@ CURLFORMcode FormAdd(struct curl_httppost **httppost,
|
||||
if (current_form->value) {
|
||||
if (current_form->flags & HTTPPOST_FILENAME) {
|
||||
if (filename) {
|
||||
if (!(current_form = AddFormInfo(strdup(filename),
|
||||
NULL, current_form)))
|
||||
if ((current_form = AddFormInfo(strdup(filename),
|
||||
NULL, current_form)) == NULL)
|
||||
return_value = CURL_FORMADD_MEMORY;
|
||||
}
|
||||
else
|
||||
@@ -562,8 +562,8 @@ CURLFORMcode FormAdd(struct curl_httppost **httppost,
|
||||
if (current_form->value) {
|
||||
if (current_form->flags & HTTPPOST_BUFFER) {
|
||||
if (filename) {
|
||||
if (!(current_form = AddFormInfo(strdup(filename),
|
||||
NULL, current_form)))
|
||||
if ((current_form = AddFormInfo(strdup(filename),
|
||||
NULL, current_form)) == NULL)
|
||||
return_value = CURL_FORMADD_MEMORY;
|
||||
}
|
||||
else
|
||||
@@ -614,9 +614,9 @@ CURLFORMcode FormAdd(struct curl_httppost **httppost,
|
||||
if (current_form->contenttype) {
|
||||
if (current_form->flags & HTTPPOST_FILENAME) {
|
||||
if (contenttype) {
|
||||
if (!(current_form = AddFormInfo(NULL,
|
||||
strdup(contenttype),
|
||||
current_form)))
|
||||
if ((current_form = AddFormInfo(NULL,
|
||||
strdup(contenttype),
|
||||
current_form)) == NULL)
|
||||
return_value = CURL_FORMADD_MEMORY;
|
||||
}
|
||||
else
|
||||
@@ -884,7 +884,7 @@ void Curl_formclean(struct FormData *form)
|
||||
free(form->line); /* free the line */
|
||||
free(form); /* free the struct */
|
||||
|
||||
} while((form=next)); /* continue */
|
||||
} while ((form = next) != NULL); /* continue */
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -961,7 +961,7 @@ void curl_formfree(struct curl_httppost *form)
|
||||
free(form->showfilename); /* free the faked file name */
|
||||
free(form); /* free the struct */
|
||||
|
||||
} while((form=next)); /* continue */
|
||||
} while ((form = next) != NULL); /* continue */
|
||||
}
|
||||
|
||||
#ifndef HAVE_BASENAME
|
||||
@@ -1231,7 +1231,7 @@ CURLcode Curl_getFormData(struct FormData **finalform,
|
||||
*/
|
||||
size_t nread;
|
||||
char buffer[512];
|
||||
while((nread = fread(buffer, 1, sizeof(buffer), fileread))) {
|
||||
while ((nread = fread(buffer, 1, sizeof(buffer), fileread)) != 0) {
|
||||
result = AddFormData(&form, FORM_DATA, buffer, nread, &size);
|
||||
if (result)
|
||||
break;
|
||||
@@ -1268,7 +1268,7 @@ CURLcode Curl_getFormData(struct FormData **finalform,
|
||||
if (result)
|
||||
break;
|
||||
}
|
||||
} while((file = file->more)); /* for each specified file for this field */
|
||||
} while ((file = file->more) != NULL); /* for each specified file for this field */
|
||||
if (result) {
|
||||
Curl_formclean(firstform);
|
||||
free(boundary);
|
||||
@@ -1286,7 +1286,7 @@ CURLcode Curl_getFormData(struct FormData **finalform,
|
||||
break;
|
||||
}
|
||||
|
||||
} while((post=post->next)); /* for each field */
|
||||
} while ((post = post->next) != NULL); /* for each field */
|
||||
if (result) {
|
||||
Curl_formclean(firstform);
|
||||
free(boundary);
|
||||
|
||||
138
lib/ftp.c
138
lib/ftp.c
@@ -34,7 +34,7 @@
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__)
|
||||
#if defined(WIN32) && !defined(__CYGWIN__)
|
||||
|
||||
#else /* probably some kind of unix */
|
||||
#ifdef HAVE_SYS_SOCKET_H
|
||||
@@ -132,10 +132,16 @@ static CURLcode ftp_state_post_rest(struct connectdata *conn);
|
||||
static CURLcode ftp_state_post_cwd(struct connectdata *conn);
|
||||
static CURLcode ftp_state_quote(struct connectdata *conn,
|
||||
bool init, ftpstate instate);
|
||||
static CURLcode ftp_nb_type(struct connectdata *conn,
|
||||
bool ascii, ftpstate state);
|
||||
static int ftp_need_type(struct connectdata *conn,
|
||||
bool ascii);
|
||||
|
||||
/* easy-to-use macro: */
|
||||
#define FTPSENDF(x,y,z) if((result = Curl_ftpsendf(x,y,z))) return result
|
||||
#define NBFTPSENDF(x,y,z) if((result = Curl_nbftpsendf(x,y,z))) return result
|
||||
#define FTPSENDF(x,y,z) if ((result = Curl_ftpsendf(x,y,z)) != CURLE_OK) \
|
||||
return result
|
||||
#define NBFTPSENDF(x,y,z) if ((result = Curl_nbftpsendf(x,y,z)) != CURLE_OK) \
|
||||
return result
|
||||
|
||||
static void freedirs(struct FTP *ftp)
|
||||
{
|
||||
@@ -211,8 +217,12 @@ static CURLcode AllowServerConnect(struct connectdata *conn)
|
||||
/* we have received data here */
|
||||
{
|
||||
curl_socket_t s = CURL_SOCKET_BAD;
|
||||
socklen_t size = (socklen_t) sizeof(struct sockaddr_in);
|
||||
#ifdef ENABLE_IPV6
|
||||
struct Curl_sockaddr_storage add;
|
||||
#else
|
||||
struct sockaddr_in add;
|
||||
#endif
|
||||
socklen_t size = (socklen_t) sizeof(add);
|
||||
|
||||
if(0 == getsockname(sock, (struct sockaddr *) &add, &size))
|
||||
s=accept(sock, (struct sockaddr *) &add, &size);
|
||||
@@ -339,7 +349,7 @@ static CURLcode ftp_readresp(curl_socket_t sockfd,
|
||||
* for "headers". The response lines can be seen as a kind of
|
||||
* headers.
|
||||
*/
|
||||
result = Curl_client_write(data, CLIENTWRITE_HEADER,
|
||||
result = Curl_client_write(conn, CLIENTWRITE_HEADER,
|
||||
ftp->linestart_resp, perline);
|
||||
if(result)
|
||||
return result;
|
||||
@@ -570,7 +580,7 @@ CURLcode Curl_GetFTPResponse(ssize_t *nreadp, /* return number of bytes read */
|
||||
* for "headers". The response lines can be seen as a kind of
|
||||
* headers.
|
||||
*/
|
||||
result = Curl_client_write(data, CLIENTWRITE_HEADER,
|
||||
result = Curl_client_write(conn, CLIENTWRITE_HEADER,
|
||||
line_start, perline);
|
||||
if(result)
|
||||
return result;
|
||||
@@ -1206,11 +1216,12 @@ static CURLcode ftp_state_post_rest(struct connectdata *conn)
|
||||
struct SessionHandle *data = conn->data;
|
||||
|
||||
if(ftp->no_transfer || conn->bits.no_body) {
|
||||
/* then we're done with a "head"-like request, goto STOP */
|
||||
state(conn, FTP_STOP);
|
||||
|
||||
/* doesn't transfer any data */
|
||||
ftp->no_transfer = TRUE;
|
||||
|
||||
/* still possibly do PRE QUOTE jobs */
|
||||
state(conn, FTP_RETR_PREQUOTE);
|
||||
result = ftp_state_quote(conn, TRUE, FTP_RETR_PREQUOTE);
|
||||
}
|
||||
else if(data->set.ftp_use_port) {
|
||||
/* We have chosen to use the PORT (or similar) command */
|
||||
@@ -1312,7 +1323,8 @@ static CURLcode ftp_state_post_mdtm(struct connectdata *conn)
|
||||
/* If we have selected NOBODY and HEADER, it means that we only want file
|
||||
information. Which in FTP can't be much more than the file size and
|
||||
date. */
|
||||
if(conn->bits.no_body && data->set.include_header && ftp->file) {
|
||||
if(conn->bits.no_body && data->set.include_header && ftp->file &&
|
||||
ftp_need_type(conn, data->set.prefer_ascii)) {
|
||||
/* The SIZE command is _not_ RFC 959 specified, and therefor many servers
|
||||
may not support it! It is however the only way we have to get a file's
|
||||
size! */
|
||||
@@ -1321,11 +1333,9 @@ static CURLcode ftp_state_post_mdtm(struct connectdata *conn)
|
||||
|
||||
/* Some servers return different sizes for different modes, and thus we
|
||||
must set the proper type before we check the size */
|
||||
NBFTPSENDF(conn, "TYPE %c",
|
||||
data->set.ftp_ascii?'A':'I');
|
||||
state(conn, FTP_TYPE);
|
||||
/* keep track of our current transfer type */
|
||||
data->ftp_in_ascii_mode = data->set.ftp_ascii;
|
||||
result = ftp_nb_type(conn, data->set.prefer_ascii, FTP_TYPE);
|
||||
if (result)
|
||||
return result;
|
||||
}
|
||||
else
|
||||
result = ftp_state_post_type(conn);
|
||||
@@ -1497,8 +1507,12 @@ static CURLcode ftp_state_quote(struct connectdata *conn,
|
||||
result = ftp_state_cwd(conn);
|
||||
break;
|
||||
case FTP_RETR_PREQUOTE:
|
||||
NBFTPSENDF(conn, "SIZE %s", ftp->file);
|
||||
state(conn, FTP_RETR_SIZE);
|
||||
if (ftp->no_transfer)
|
||||
state(conn, FTP_STOP);
|
||||
else {
|
||||
NBFTPSENDF(conn, "SIZE %s", ftp->file);
|
||||
state(conn, FTP_RETR_SIZE);
|
||||
}
|
||||
break;
|
||||
case FTP_STOR_PREQUOTE:
|
||||
result = ftp_state_ul_setup(conn, FALSE);
|
||||
@@ -1823,7 +1837,7 @@ static CURLcode ftp_state_mdtm_resp(struct connectdata *conn,
|
||||
tm->tm_hour,
|
||||
tm->tm_min,
|
||||
tm->tm_sec);
|
||||
result = Curl_client_write(data, CLIENTWRITE_BOTH, buf, 0);
|
||||
result = Curl_client_write(conn, CLIENTWRITE_BOTH, buf, 0);
|
||||
if(result)
|
||||
return result;
|
||||
} /* end of a ridiculous amount of conditionals */
|
||||
@@ -1998,7 +2012,7 @@ static CURLcode ftp_state_size_resp(struct connectdata *conn,
|
||||
if(-1 != filesize) {
|
||||
snprintf(buf, sizeof(data->state.buffer),
|
||||
"Content-Length: %" FORMAT_OFF_T "\r\n", filesize);
|
||||
result = Curl_client_write(data, CLIENTWRITE_BOTH, buf, 0);
|
||||
result = Curl_client_write(conn, CLIENTWRITE_BOTH, buf, 0);
|
||||
if(result)
|
||||
return result;
|
||||
}
|
||||
@@ -2025,7 +2039,7 @@ static CURLcode ftp_state_rest_resp(struct connectdata *conn,
|
||||
case FTP_REST:
|
||||
default:
|
||||
if (ftpcode == 350) {
|
||||
result = Curl_client_write(conn->data, CLIENTWRITE_BOTH,
|
||||
result = Curl_client_write(conn, CLIENTWRITE_BOTH,
|
||||
(char *)"Accept-ranges: bytes\r\n", 0);
|
||||
if(result)
|
||||
return result;
|
||||
@@ -2136,7 +2150,7 @@ static CURLcode ftp_state_get_resp(struct connectdata *conn,
|
||||
*/
|
||||
|
||||
if((instate != FTP_LIST) &&
|
||||
!data->set.ftp_ascii &&
|
||||
!data->set.prefer_ascii &&
|
||||
(ftp->downloadsize < 1)) {
|
||||
/*
|
||||
* It seems directory listings either don't show the size or very
|
||||
@@ -3090,7 +3104,7 @@ static CURLcode ftp_transfertype(struct connectdata *conn,
|
||||
ssize_t nread;
|
||||
CURLcode result;
|
||||
|
||||
FTPSENDF(conn, "TYPE %s", ascii?"A":"I");
|
||||
FTPSENDF(conn, "TYPE %c", ascii?'A':'I');
|
||||
|
||||
result = Curl_GetFTPResponse(&nread, conn, &ftpcode);
|
||||
if(result)
|
||||
@@ -3102,11 +3116,52 @@ static CURLcode ftp_transfertype(struct connectdata *conn,
|
||||
return ascii? CURLE_FTP_COULDNT_SET_ASCII:CURLE_FTP_COULDNT_SET_BINARY;
|
||||
}
|
||||
/* keep track of our current transfer type */
|
||||
data->ftp_in_ascii_mode = ascii;
|
||||
conn->proto.ftp->transfertype = ascii?'A':'I';
|
||||
|
||||
return CURLE_OK;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
* ftp_need_type()
|
||||
*
|
||||
* Returns TRUE if we in the current situation should send TYPE
|
||||
*/
|
||||
static int ftp_need_type(struct connectdata *conn,
|
||||
bool ascii_wanted)
|
||||
{
|
||||
return conn->proto.ftp->transfertype != (ascii_wanted?'A':'I');
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
* ftp_nb_type()
|
||||
*
|
||||
* Set TYPE. We only deal with ASCII or BINARY so this function
|
||||
* sets one of them.
|
||||
* If the transfer type is not sent, simulate on OK response in newstate
|
||||
*/
|
||||
static CURLcode ftp_nb_type(struct connectdata *conn,
|
||||
bool ascii, ftpstate newstate)
|
||||
{
|
||||
struct FTP *ftp = conn->proto.ftp;
|
||||
CURLcode result;
|
||||
int want = ascii?'A':'I';
|
||||
|
||||
if (ftp->transfertype == want) {
|
||||
state(conn, newstate);
|
||||
return ftp_state_type_resp(conn, 200, newstate);
|
||||
}
|
||||
|
||||
NBFTPSENDF(conn, "TYPE %c", want);
|
||||
state(conn, newstate);
|
||||
|
||||
/* keep track of our current transfer type */
|
||||
ftp->transfertype = want;
|
||||
return CURLE_OK;
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* ftp_pasv_verbose()
|
||||
@@ -3202,10 +3257,10 @@ CURLcode Curl_ftp_nextconnect(struct connectdata *conn)
|
||||
/* a transfer is about to take place */
|
||||
|
||||
if(data->set.upload) {
|
||||
NBFTPSENDF(conn, "TYPE %c", data->set.ftp_ascii?'A':'I');
|
||||
state(conn, FTP_STOR_TYPE);
|
||||
/* keep track of our current transfer type */
|
||||
data->ftp_in_ascii_mode = data->set.ftp_ascii;
|
||||
result = ftp_nb_type(conn, data->set.prefer_ascii,
|
||||
FTP_STOR_TYPE);
|
||||
if (result)
|
||||
return result;
|
||||
}
|
||||
else {
|
||||
/* download */
|
||||
@@ -3218,16 +3273,14 @@ CURLcode Curl_ftp_nextconnect(struct connectdata *conn)
|
||||
/* The specified path ends with a slash, and therefore we think this
|
||||
is a directory that is requested, use LIST. But before that we
|
||||
need to set ASCII transfer mode. */
|
||||
NBFTPSENDF(conn, "TYPE A", NULL);
|
||||
state(conn, FTP_LIST_TYPE);
|
||||
/* keep track of our current transfer type */
|
||||
data->ftp_in_ascii_mode = 1;
|
||||
result = ftp_nb_type(conn, 1, FTP_LIST_TYPE);
|
||||
if (result)
|
||||
return result;
|
||||
}
|
||||
else {
|
||||
NBFTPSENDF(conn, "TYPE %c", data->set.ftp_ascii?'A':'I');
|
||||
state(conn, FTP_RETR_TYPE);
|
||||
/* keep track of our current transfer type */
|
||||
data->ftp_in_ascii_mode = data->set.ftp_ascii;
|
||||
result = ftp_nb_type(conn, data->set.prefer_ascii, FTP_RETR_TYPE);
|
||||
if (result)
|
||||
return result;
|
||||
}
|
||||
}
|
||||
result = ftp_easy_statemach(conn);
|
||||
@@ -3616,11 +3669,11 @@ static CURLcode ftp_3rdparty_pretransfer(struct connectdata *conn)
|
||||
sec_conn->xfertype = SOURCE3RD;
|
||||
|
||||
/* sets transfer type */
|
||||
result = ftp_transfertype(conn, data->set.ftp_ascii);
|
||||
result = ftp_transfertype(conn, data->set.prefer_ascii);
|
||||
if (result)
|
||||
return result;
|
||||
|
||||
result = ftp_transfertype(sec_conn, data->set.ftp_ascii);
|
||||
result = ftp_transfertype(sec_conn, data->set.prefer_ascii);
|
||||
if (result)
|
||||
return result;
|
||||
|
||||
@@ -3799,19 +3852,20 @@ CURLcode ftp_parse_url_path(struct connectdata *conn)
|
||||
case FTPFILE_SINGLECWD:
|
||||
/* get the last slash */
|
||||
slash_pos=strrchr(cur_pos, '/');
|
||||
if(slash_pos) {
|
||||
if(slash_pos || !cur_pos || !*cur_pos) {
|
||||
ftp->dirdepth = 1; /* we consider it to be a single dir */
|
||||
ftp->dirs = (char **)calloc(1, sizeof(ftp->dirs[0]));
|
||||
if(!ftp->dirs)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
|
||||
ftp->dirs[0] = curl_easy_unescape(conn->data, cur_pos,
|
||||
(int)(slash_pos-cur_pos), NULL);
|
||||
ftp->dirs[0] = curl_easy_unescape(conn->data, slash_pos ? cur_pos : "/",
|
||||
slash_pos?(int)(slash_pos-cur_pos):1,
|
||||
NULL);
|
||||
if(!ftp->dirs[0]) {
|
||||
free(ftp->dirs);
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
}
|
||||
ftp->file = slash_pos+1; /* the rest is the file name */
|
||||
ftp->file = slash_pos ? slash_pos+1 : cur_pos; /* rest is file name */
|
||||
}
|
||||
else
|
||||
ftp->file = cur_pos; /* this is a file name only */
|
||||
@@ -3826,7 +3880,7 @@ CURLcode ftp_parse_url_path(struct connectdata *conn)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
|
||||
/* parse the URL path into separate path components */
|
||||
while((slash_pos=strchr(cur_pos, '/'))) {
|
||||
while ((slash_pos = strchr(cur_pos, '/')) != NULL) {
|
||||
/* 1 or 0 to indicate absolute directory */
|
||||
bool absolute_dir = (cur_pos - conn->path > 0) && (ftp->dirdepth == 0);
|
||||
|
||||
|
||||
@@ -209,12 +209,15 @@ CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...)
|
||||
if (!Curl_ssl_check_cxn(data->state.connects[data->state.lastconnect]))
|
||||
*param_longp = -1; /* FIN received */
|
||||
}
|
||||
/* Minix 3.1 doesn't support any flags on recv; just assume socket is OK */
|
||||
#ifdef MSG_PEEK
|
||||
else {
|
||||
/* use the socket */
|
||||
if(recv((int)data->state.connects[data->state.lastconnect]->
|
||||
sock[FIRSTSOCKET], (void*)&buf, 1, MSG_PEEK) == 0)
|
||||
*param_longp = -1; /* FIN received */
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else
|
||||
*param_longp = -1;
|
||||
|
||||
@@ -168,8 +168,7 @@ static CURLcode handshake(struct connectdata *conn,
|
||||
} while(1);
|
||||
|
||||
if (rc < 0) {
|
||||
failf(data, "gnutls_handshake() failed: %d", rc);
|
||||
/* gnutls_perror(ret); */
|
||||
failf(data, "gnutls_handshake() failed: %s", gnutls_strerror(rc));
|
||||
return CURLE_SSL_CONNECT_ERROR;
|
||||
}
|
||||
|
||||
|
||||
17
lib/hostip.c
17
lib/hostip.c
@@ -409,10 +409,12 @@ int Curl_resolv(struct connectdata *conn,
|
||||
#ifdef HAVE_SIGSETJMP
|
||||
/* this allows us to time-out from the name resolver, as the timeout
|
||||
will generate a signal and we will siglongjmp() from that here */
|
||||
if(!data->set.no_signal && sigsetjmp(curl_jmpenv, 1)) {
|
||||
/* this is coming from a siglongjmp() */
|
||||
failf(data, "name lookup timed out");
|
||||
return CURLRESOLV_ERROR;
|
||||
if(!data->set.no_signal) {
|
||||
if (sigsetjmp(curl_jmpenv, 1)) {
|
||||
/* this is coming from a siglongjmp() */
|
||||
failf(data, "name lookup timed out");
|
||||
return CURLRESOLV_ERROR;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -607,7 +609,14 @@ Curl_addrinfo *Curl_ip2addr(in_addr_t num, const char *hostname, int port)
|
||||
h = &buf->hostentry;
|
||||
h->h_addr_list = &buf->h_addr_list[0];
|
||||
addrentry = &buf->addrentry;
|
||||
#ifdef _CRAYC
|
||||
/* On UNICOS, s_addr is a bit field and for some reason assigning to it
|
||||
* doesn't work. There must be a better fix than this ugly hack.
|
||||
*/
|
||||
memcpy(addrentry, &num, SIZEOF_in_addr);
|
||||
#else
|
||||
addrentry->s_addr = num;
|
||||
#endif
|
||||
h->h_addr_list[0] = (char*)addrentry;
|
||||
h->h_addr_list[1] = NULL;
|
||||
h->h_addrtype = AF_INET;
|
||||
|
||||
@@ -26,6 +26,11 @@
|
||||
#include "setup.h"
|
||||
#include "hash.h"
|
||||
|
||||
#if (defined(NETWARE) && defined(__NOVELL_LIBC__))
|
||||
#undef in_addr_t
|
||||
#define in_addr_t uint32_t
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Setup comfortable CURLRES_* defines to use in the host*.c sources.
|
||||
*/
|
||||
|
||||
@@ -64,11 +64,6 @@
|
||||
#include <process.h>
|
||||
#endif
|
||||
|
||||
#if (defined(NETWARE) && defined(__NOVELL_LIBC__))
|
||||
#undef in_addr_t
|
||||
#define in_addr_t unsigned long
|
||||
#endif
|
||||
|
||||
#include "urldata.h"
|
||||
#include "sendf.h"
|
||||
#include "hostip.h"
|
||||
@@ -353,7 +348,7 @@ Curl_addrinfo *Curl_he2ai(const struct hostent *he, int port)
|
||||
/* no input == no output! */
|
||||
return NULL;
|
||||
|
||||
for(i=0; (curr = (struct in_addr *)he->h_addr_list[i]); i++) {
|
||||
for(i=0; (curr = (struct in_addr *)he->h_addr_list[i]) != NULL; i++) {
|
||||
|
||||
ai = calloc(1, sizeof(Curl_addrinfo) + sizeof(struct sockaddr_in));
|
||||
|
||||
|
||||
44
lib/http.c
44
lib/http.c
@@ -37,7 +37,7 @@
|
||||
#include <sys/stat.h>
|
||||
#endif
|
||||
|
||||
#if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__)
|
||||
#if defined(WIN32) && !defined(__CYGWIN__)
|
||||
#include <time.h>
|
||||
#include <io.h>
|
||||
#else
|
||||
@@ -47,7 +47,9 @@
|
||||
#ifdef HAVE_NETINET_IN_H
|
||||
#include <netinet/in.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_TIME_H
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_TIME_H
|
||||
#ifdef TIME_WITH_SYS_TIME
|
||||
@@ -1251,7 +1253,7 @@ CURLcode Curl_proxyCONNECT(struct connectdata *conn,
|
||||
if(data->set.include_header)
|
||||
writetype |= CLIENTWRITE_BODY;
|
||||
|
||||
result = Curl_client_write(data, writetype, line_start, perline);
|
||||
result = Curl_client_write(conn, writetype, line_start, perline);
|
||||
if(result)
|
||||
return result;
|
||||
|
||||
@@ -1516,6 +1518,8 @@ static CURLcode expect100(struct SessionHandle *data,
|
||||
send_buffer *req_buffer)
|
||||
{
|
||||
CURLcode result = CURLE_OK;
|
||||
data->state.expect100header = FALSE; /* default to false unless it is set
|
||||
to TRUE below */
|
||||
if((data->set.httpversion != CURL_HTTP_VERSION_1_0) &&
|
||||
!checkheaders(data, "Expect:")) {
|
||||
/* if not doing HTTP 1.0 or disabled explicitly, we add a Expect:
|
||||
@@ -1525,7 +1529,7 @@ static CURLcode expect100(struct SessionHandle *data,
|
||||
result = add_bufferf(req_buffer,
|
||||
"Expect: 100-continue\r\n");
|
||||
if(result == CURLE_OK)
|
||||
data->set.expect100header = TRUE;
|
||||
data->state.expect100header = TRUE;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -2247,16 +2251,24 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
|
||||
|
||||
if(data->set.postfields) {
|
||||
|
||||
if((data->state.authhost.done || data->state.authproxy.done )
|
||||
&& (postsize < MAX_INITIAL_POST_SIZE)) {
|
||||
/* If we're not done with the authentication phase, we don't expect
|
||||
to actually send off any data yet. Hence, we delay the sending of
|
||||
the body until we receive that friendly 100-continue response */
|
||||
/* for really small posts we don't use Expect: headers at all, and for
|
||||
the somewhat bigger ones we allow the app to disable it */
|
||||
if(postsize > TINY_INITIAL_POST_SIZE) {
|
||||
result = expect100(data, req_buffer);
|
||||
if(result)
|
||||
return result;
|
||||
}
|
||||
else
|
||||
data->state.expect100header = FALSE;
|
||||
|
||||
/* The post data is less than MAX_INITIAL_PORT_SIZE, then append it
|
||||
to the header. This limit is no magic limit but only set to
|
||||
prevent really huge POSTs to get the data duplicated with
|
||||
malloc() and family. */
|
||||
if(!data->state.expect100header &&
|
||||
(postsize < MAX_INITIAL_POST_SIZE)) {
|
||||
/* if we don't use expect:-100 AND
|
||||
postsize is less than MAX_INITIAL_POST_SIZE
|
||||
|
||||
then append the post data to the HTTP request header. This limit
|
||||
is no magic limit but only set to prevent really huge POSTs to
|
||||
get the data duplicated with malloc() and family. */
|
||||
|
||||
result = add_buffer(req_buffer, "\r\n", 2); /* end of headers! */
|
||||
if(result)
|
||||
@@ -2295,18 +2307,10 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
|
||||
/* set the upload size to the progress meter */
|
||||
Curl_pgrsSetUploadSize(data, http->postsize);
|
||||
|
||||
result = expect100(data, req_buffer);
|
||||
if(result)
|
||||
return result;
|
||||
|
||||
add_buffer(req_buffer, "\r\n", 2); /* end of headers! */
|
||||
}
|
||||
}
|
||||
else {
|
||||
result = expect100(data, req_buffer);
|
||||
if(result)
|
||||
return result;
|
||||
|
||||
add_buffer(req_buffer, "\r\n", 2); /* end of headers! */
|
||||
|
||||
if(data->set.postfieldsize) {
|
||||
|
||||
@@ -74,7 +74,11 @@ int Curl_http_should_fail(struct connectdata *conn);
|
||||
It must not be greater than 64K to work on VMS.
|
||||
*/
|
||||
#ifndef MAX_INITIAL_POST_SIZE
|
||||
#define MAX_INITIAL_POST_SIZE 1024
|
||||
#define MAX_INITIAL_POST_SIZE (64*1024)
|
||||
#endif
|
||||
|
||||
#ifndef TINY_INITIAL_POST_SIZE
|
||||
#define TINY_INITIAL_POST_SIZE 1024
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2005, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 1998 - 2006, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
@@ -190,7 +190,7 @@ CHUNKcode Curl_httpchunk_read(struct connectdata *conn,
|
||||
case IDENTITY:
|
||||
#endif
|
||||
if(!k->ignorebody)
|
||||
result = Curl_client_write(conn->data, CLIENTWRITE_BODY, datap,
|
||||
result = Curl_client_write(conn, CLIENTWRITE_BODY, datap,
|
||||
piece);
|
||||
#ifdef HAVE_LIBZ
|
||||
break;
|
||||
@@ -198,14 +198,14 @@ CHUNKcode Curl_httpchunk_read(struct connectdata *conn,
|
||||
case DEFLATE:
|
||||
/* update conn->keep.str to point to the chunk data. */
|
||||
conn->keep.str = datap;
|
||||
result = Curl_unencode_deflate_write(conn->data, &conn->keep,
|
||||
result = Curl_unencode_deflate_write(conn, &conn->keep,
|
||||
(ssize_t)piece);
|
||||
break;
|
||||
|
||||
case GZIP:
|
||||
/* update conn->keep.str to point to the chunk data. */
|
||||
conn->keep.str = datap;
|
||||
result = Curl_unencode_gzip_write(conn->data, &conn->keep,
|
||||
result = Curl_unencode_gzip_write(conn, &conn->keep,
|
||||
(ssize_t)piece);
|
||||
break;
|
||||
|
||||
@@ -303,7 +303,7 @@ CHUNKcode Curl_httpchunk_read(struct connectdata *conn,
|
||||
return CHUNKE_STOP;
|
||||
}
|
||||
else {
|
||||
Curl_client_write(conn->data, CLIENTWRITE_HEADER,
|
||||
Curl_client_write(conn, CLIENTWRITE_HEADER,
|
||||
conn->trailer, conn->trlPos);
|
||||
}
|
||||
ch->state = CHUNK_TRAILER;
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
*/
|
||||
#if !defined(WIN32) && !defined(__BEOS__) && !defined(__CYGWIN__) && \
|
||||
!defined(__riscos__) && !defined(__INTERIX) && !defined(NETWARE) && \
|
||||
!defined(_AMIGASF) && !defined(_MINIX)
|
||||
!defined(_AMIGASF) && !defined(__minix)
|
||||
|
||||
#ifdef HAVE_SYS_SOCKET_H
|
||||
#include <sys/socket.h>
|
||||
@@ -114,7 +114,7 @@ char *Curl_if2ip(const char *interface, char *buf, int buf_size)
|
||||
struct in_addr in;
|
||||
|
||||
struct sockaddr_in *s = (struct sockaddr_in *)&req.ifr_dstaddr;
|
||||
memcpy(&in, &(s->sin_addr.s_addr), sizeof(in));
|
||||
memcpy(&in, &s->sin_addr, sizeof(in));
|
||||
ip = (char *) Curl_inet_ntop(s->sin_family, &in, buf, buf_size);
|
||||
}
|
||||
sclose(dummy);
|
||||
|
||||
20
lib/ldap.c
20
lib/ldap.c
@@ -372,9 +372,9 @@ CURLcode Curl_ldap(struct connectdata *conn, bool *done)
|
||||
char *dn = (*ldap_get_dn)(server, entryIterator);
|
||||
int i;
|
||||
|
||||
Curl_client_write(data, CLIENTWRITE_BODY, (char *)"DN: ", 4);
|
||||
Curl_client_write(data, CLIENTWRITE_BODY, (char *)dn, 0);
|
||||
Curl_client_write(data, CLIENTWRITE_BODY, (char *)"\n", 1);
|
||||
Curl_client_write(conn, CLIENTWRITE_BODY, (char *)"DN: ", 4);
|
||||
Curl_client_write(conn, CLIENTWRITE_BODY, (char *)dn, 0);
|
||||
Curl_client_write(conn, CLIENTWRITE_BODY, (char *)"\n", 1);
|
||||
|
||||
for (attribute = (*ldap_first_attribute)(server, entryIterator, &ber);
|
||||
attribute;
|
||||
@@ -387,9 +387,9 @@ CURLcode Curl_ldap(struct connectdata *conn, bool *done)
|
||||
{
|
||||
for (i = 0; (vals[i] != NULL); i++)
|
||||
{
|
||||
Curl_client_write(data, CLIENTWRITE_BODY, (char *)"\t", 1);
|
||||
Curl_client_write(data, CLIENTWRITE_BODY, (char *) attribute, 0);
|
||||
Curl_client_write(data, CLIENTWRITE_BODY, (char *)": ", 2);
|
||||
Curl_client_write(conn, CLIENTWRITE_BODY, (char *)"\t", 1);
|
||||
Curl_client_write(conn, CLIENTWRITE_BODY, (char *) attribute, 0);
|
||||
Curl_client_write(conn, CLIENTWRITE_BODY, (char *)": ", 2);
|
||||
if ((strlen(attribute) > 7) &&
|
||||
(strcmp(";binary",
|
||||
(char *)attribute +
|
||||
@@ -398,19 +398,19 @@ CURLcode Curl_ldap(struct connectdata *conn, bool *done)
|
||||
val_b64_sz = Curl_base64_encode(vals[i]->bv_val, vals[i]->bv_len,
|
||||
&val_b64);
|
||||
if (val_b64_sz > 0) {
|
||||
Curl_client_write(data, CLIENTWRITE_BODY, val_b64, val_b64_sz);
|
||||
Curl_client_write(conn, CLIENTWRITE_BODY, val_b64, val_b64_sz);
|
||||
free(val_b64);
|
||||
}
|
||||
} else
|
||||
Curl_client_write(data, CLIENTWRITE_BODY, vals[i]->bv_val,
|
||||
Curl_client_write(conn, CLIENTWRITE_BODY, vals[i]->bv_val,
|
||||
vals[i]->bv_len);
|
||||
Curl_client_write(data, CLIENTWRITE_BODY, (char *)"\n", 0);
|
||||
Curl_client_write(conn, CLIENTWRITE_BODY, (char *)"\n", 0);
|
||||
}
|
||||
|
||||
/* Free memory used to store values */
|
||||
(*ldap_value_free_len)((void **)vals);
|
||||
}
|
||||
Curl_client_write(data, CLIENTWRITE_BODY, (char *)"\n", 1);
|
||||
Curl_client_write(conn, CLIENTWRITE_BODY, (char *)"\n", 1);
|
||||
|
||||
(*ldap_memfree)(attribute);
|
||||
}
|
||||
|
||||
386
lib/makefile.dj
386
lib/makefile.dj
@@ -2,6 +2,7 @@
|
||||
# Adapted for djgpp2 / Watt-32 / DOS by
|
||||
# Gisle Vanem <giva@bgnett.no>
|
||||
#
|
||||
# $Id$
|
||||
|
||||
DEPEND_PREREQ = config.h
|
||||
|
||||
@@ -19,7 +20,7 @@ all: $(OBJ_DIR) config.h $(CURL_LIB)
|
||||
$(CURL_LIB): $(OBJECTS)
|
||||
ar rs $@ $?
|
||||
|
||||
config.h: config.dj
|
||||
config.h: config.dos
|
||||
cp $^ $@
|
||||
|
||||
clean:
|
||||
@@ -30,266 +31,257 @@ realclean vclean: clean
|
||||
|
||||
|
||||
# DO NOT DELETE THIS LINE
|
||||
$(OBJ_DIR)/file.o: file.c setup.h config.h urldata.h cookie.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h progress.h sendf.h escape.h \
|
||||
file.h speedcheck.h getinfo.h transfer.h url.h memory.h parsedate.h \
|
||||
../include/curl/mprintf.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/timeval.o: timeval.c timeval.h setup.h config.h
|
||||
$(OBJ_DIR)/base64.o: base64.c setup.h config.h ../include/curl/mprintf.h \
|
||||
$(OBJ_DIR)/file.o: file.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h progress.h sendf.h \
|
||||
escape.h file.h speedcheck.h getinfo.h transfer.h url.h memory.h \
|
||||
parsedate.h ../include/curl/mprintf.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/timeval.o: timeval.c timeval.h setup.h config.h setup_once.h
|
||||
$(OBJ_DIR)/base64.o: base64.c setup.h config.h setup_once.h \
|
||||
../include/curl/mprintf.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h base64.h memory.h ../include/curl/curl.h \
|
||||
memdebug.h memory.h
|
||||
$(OBJ_DIR)/hostip.o: hostip.c setup.h config.h urldata.h cookie.h \
|
||||
memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/hostip.o: hostip.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h share.h strerror.h url.h \
|
||||
inet_ntop.h ../include/curl/mprintf.h memory.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/progress.o: progress.c setup.h config.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h share.h \
|
||||
strerror.h url.h inet_ntop.h ../include/curl/mprintf.h memory.h \
|
||||
memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/progress.o: progress.c setup.h config.h setup_once.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h urldata.h cookie.h \
|
||||
formdata.h timeval.h e:/djgpp/contrib/zlib/zlib.h \
|
||||
e:/djgpp/contrib/zlib/zconf.h http_chunks.h hostip.h hash.h llist.h \
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h \
|
||||
sendf.h progress.h ../include/curl/mprintf.h
|
||||
$(OBJ_DIR)/formdata.o: formdata.c setup.h config.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
$(OBJ_DIR)/formdata.o: formdata.c setup.h config.h setup_once.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h strequal.h \
|
||||
memory.h ../include/curl/mprintf.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/cookie.o: cookie.c setup.h config.h urldata.h cookie.h \
|
||||
memory.h ../include/curl/mprintf.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/cookie.o: cookie.c setup.h config.h setup_once.h \
|
||||
../include/curl/mprintf.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h urldata.h cookie.h ../include/curl/curl.h \
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h \
|
||||
strequal.h strtok.h sendf.h memory.h share.h strtoofft.h memdebug.h \
|
||||
./memory.h
|
||||
$(OBJ_DIR)/http.o: http.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h strequal.h strtok.h sendf.h \
|
||||
memory.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/http.o: http.c setup.h config.h urldata.h cookie.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h transfer.h sendf.h progress.h \
|
||||
base64.h strequal.h sslgen.h http_digest.h http_ntlm.h http_negotiate.h \
|
||||
url.h share.h http.h memory.h select.h parsedate.h \
|
||||
../include/curl/mprintf.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/sendf.o: sendf.c setup.h config.h ../include/curl/curl.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h transfer.h sendf.h \
|
||||
progress.h base64.h strequal.h sslgen.h http_digest.h http_ntlm.h \
|
||||
http_negotiate.h url.h share.h http.h memory.h select.h parsedate.h \
|
||||
strtoofft.h multiif.h ../include/curl/mprintf.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/sendf.o: sendf.c setup.h config.h setup_once.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h urldata.h cookie.h \
|
||||
formdata.h timeval.h e:/djgpp/contrib/zlib/zlib.h \
|
||||
e:/djgpp/contrib/zlib/zconf.h http_chunks.h hostip.h hash.h llist.h \
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h \
|
||||
sendf.h connect.h sslgen.h ../include/curl/mprintf.h memory.h \
|
||||
strerror.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/ftp.o: ftp.c setup.h config.h ../include/curl/curl.h \
|
||||
strerror.h easyif.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/ftp.o: ftp.c setup.h config.h setup_once.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h urldata.h cookie.h \
|
||||
formdata.h timeval.h e:/djgpp/contrib/zlib/zlib.h \
|
||||
e:/djgpp/contrib/zlib/zconf.h http_chunks.h hostip.h hash.h llist.h \
|
||||
sendf.h if2ip.h progress.h transfer.h escape.h http.h ftp.h strtoofft.h \
|
||||
strequal.h sslgen.h connect.h strerror.h memory.h inet_ntop.h select.h \
|
||||
parsedate.h ../include/curl/mprintf.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/url.o: url.c setup.h config.h urldata.h cookie.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h \
|
||||
sendf.h easyif.h if2ip.h progress.h transfer.h escape.h http.h ftp.h \
|
||||
strtoofft.h strequal.h sslgen.h connect.h strerror.h memory.h \
|
||||
inet_ntop.h select.h parsedate.h sockaddr.h multiif.h \
|
||||
../include/curl/mprintf.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/url.o: url.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h netrc.h base64.h sslgen.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h netrc.h base64.h sslgen.h \
|
||||
transfer.h sendf.h progress.h strequal.h strerror.h escape.h strtok.h \
|
||||
share.h content_encoding.h http_digest.h http_negotiate.h select.h \
|
||||
multiif.h ftp.h dict.h telnet.h http.h file.h ldap.h url.h connect.h \
|
||||
inet_ntop.h http_ntlm.h ca-bundle.h ../include/curl/mprintf.h memory.h \
|
||||
memdebug.h memory.h
|
||||
$(OBJ_DIR)/dict.o: dict.c setup.h config.h urldata.h cookie.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h transfer.h sendf.h progress.h \
|
||||
strequal.h dict.h ../include/curl/mprintf.h
|
||||
$(OBJ_DIR)/if2ip.o: if2ip.c setup.h config.h if2ip.h inet_ntop.h memory.h \
|
||||
multiif.h ftp.h dict.h telnet.h tftp.h http.h file.h ldap.h url.h \
|
||||
connect.h inet_ntop.h http_ntlm.h ./ca-bundle.h \
|
||||
../include/curl/mprintf.h memory.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/dict.o: dict.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h transfer.h sendf.h \
|
||||
progress.h strequal.h dict.h ../include/curl/mprintf.h memdebug.h \
|
||||
./memory.h
|
||||
$(OBJ_DIR)/if2ip.o: if2ip.c setup.h config.h setup_once.h if2ip.h inet_ntop.h \
|
||||
memory.h ../include/curl/curl.h ../include/curl/curlver.h \
|
||||
../include/curl/easy.h ../include/curl/multi.h ../include/curl/curl.h \
|
||||
memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/speedcheck.o: speedcheck.c setup.h config.h setup_once.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/speedcheck.o: speedcheck.c setup.h config.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h urldata.h cookie.h \
|
||||
formdata.h timeval.h e:/djgpp/contrib/zlib/zlib.h \
|
||||
e:/djgpp/contrib/zlib/zconf.h http_chunks.h hostip.h hash.h llist.h \
|
||||
sendf.h speedcheck.h
|
||||
$(OBJ_DIR)/ldap.o: ldap.c setup.h config.h
|
||||
$(OBJ_DIR)/ssluse.o: ssluse.c setup.h config.h urldata.h cookie.h \
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h \
|
||||
sendf.h multiif.h speedcheck.h
|
||||
$(OBJ_DIR)/ldap.o: ldap.c setup.h config.h setup_once.h
|
||||
$(OBJ_DIR)/ssluse.o: ssluse.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h url.h inet_pton.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h url.h inet_pton.h \
|
||||
ssluse.h connect.h strequal.h select.h sslgen.h \
|
||||
../include/curl/mprintf.h
|
||||
$(OBJ_DIR)/version.o: version.c setup.h config.h ../include/curl/curl.h \
|
||||
$(OBJ_DIR)/version.o: version.c setup.h config.h setup_once.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h urldata.h cookie.h \
|
||||
formdata.h timeval.h e:/djgpp/contrib/zlib/zlib.h \
|
||||
e:/djgpp/contrib/zlib/zconf.h http_chunks.h hostip.h hash.h llist.h \
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h \
|
||||
sslgen.h ../include/curl/mprintf.h
|
||||
$(OBJ_DIR)/getenv.o: getenv.c setup.h config.h ../include/curl/curl.h \
|
||||
$(OBJ_DIR)/getenv.o: getenv.c setup.h config.h setup_once.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h memory.h memdebug.h \
|
||||
memory.h
|
||||
$(OBJ_DIR)/escape.o: escape.c setup.h config.h ../include/curl/curl.h \
|
||||
./memory.h
|
||||
$(OBJ_DIR)/escape.o: escape.c setup.h config.h setup_once.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h memory.h urldata.h \
|
||||
cookie.h formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h \
|
||||
splay.h easyif.h ../include/curl/mprintf.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/mprintf.o: mprintf.c setup.h config.h setup_once.h \
|
||||
../include/curl/mprintf.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h memory.h \
|
||||
../include/curl/mprintf.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/mprintf.o: mprintf.c setup.h config.h ../include/curl/mprintf.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h memory.h ../include/curl/curl.h memdebug.h \
|
||||
memory.h
|
||||
$(OBJ_DIR)/telnet.o: telnet.c setup.h config.h urldata.h cookie.h \
|
||||
./memory.h
|
||||
$(OBJ_DIR)/telnet.o: telnet.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h transfer.h sendf.h telnet.h \
|
||||
../include/curl/mprintf.h arpa_telnet.h memory.h select.h memdebug.h \
|
||||
memory.h
|
||||
$(OBJ_DIR)/netrc.o: netrc.c setup.h config.h ../include/curl/curl.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h transfer.h sendf.h \
|
||||
telnet.h connect.h ../include/curl/mprintf.h arpa_telnet.h memory.h \
|
||||
select.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/netrc.o: netrc.c setup.h config.h setup_once.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h netrc.h strequal.h \
|
||||
strtok.h memory.h ../include/curl/mprintf.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/getinfo.o: getinfo.c setup.h config.h ../include/curl/curl.h \
|
||||
strtok.h memory.h ../include/curl/mprintf.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/getinfo.o: getinfo.c setup.h config.h setup_once.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h urldata.h cookie.h \
|
||||
formdata.h timeval.h e:/djgpp/contrib/zlib/zlib.h \
|
||||
e:/djgpp/contrib/zlib/zconf.h http_chunks.h hostip.h hash.h llist.h \
|
||||
getinfo.h memory.h sslgen.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/transfer.o: transfer.c setup.h config.h strtoofft.h \
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h \
|
||||
getinfo.h memory.h sslgen.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/transfer.o: transfer.c setup.h config.h setup_once.h strtoofft.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h strequal.h urldata.h \
|
||||
cookie.h formdata.h timeval.h e:/djgpp/contrib/zlib/zlib.h \
|
||||
e:/djgpp/contrib/zlib/zconf.h http_chunks.h hostip.h hash.h llist.h \
|
||||
netrc.h content_encoding.h transfer.h sendf.h speedcheck.h progress.h \
|
||||
http.h url.h getinfo.h sslgen.h http_digest.h http_ntlm.h \
|
||||
http_negotiate.h share.h memory.h select.h ../include/curl/mprintf.h \
|
||||
memdebug.h memory.h
|
||||
$(OBJ_DIR)/strequal.o: strequal.c setup.h config.h strequal.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
cookie.h formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h \
|
||||
splay.h netrc.h content_encoding.h transfer.h sendf.h speedcheck.h \
|
||||
progress.h http.h url.h getinfo.h sslgen.h http_digest.h http_ntlm.h \
|
||||
http_negotiate.h share.h memory.h select.h multiif.h easyif.h \
|
||||
../include/curl/mprintf.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/strequal.o: strequal.c setup.h config.h setup_once.h strequal.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h
|
||||
$(OBJ_DIR)/easy.o: easy.c setup.h config.h strequal.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
$(OBJ_DIR)/easy.o: easy.c setup.h config.h setup_once.h strequal.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h urldata.h cookie.h \
|
||||
formdata.h timeval.h e:/djgpp/contrib/zlib/zlib.h \
|
||||
e:/djgpp/contrib/zlib/zconf.h http_chunks.h hostip.h hash.h llist.h \
|
||||
transfer.h sslgen.h url.h getinfo.h share.h memory.h progress.h \
|
||||
easyif.h ../include/curl/mprintf.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/security.o: security.c setup.h config.h
|
||||
$(OBJ_DIR)/krb4.o: krb4.c setup.h config.h
|
||||
$(OBJ_DIR)/memdebug.o: memdebug.c setup.h config.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h \
|
||||
transfer.h sslgen.h url.h getinfo.h share.h strdup.h memory.h \
|
||||
progress.h easyif.h sendf.h ../include/curl/mprintf.h memdebug.h \
|
||||
./memory.h
|
||||
$(OBJ_DIR)/security.o: security.c setup.h config.h setup_once.h
|
||||
$(OBJ_DIR)/krb4.o: krb4.c setup.h config.h setup_once.h
|
||||
$(OBJ_DIR)/memdebug.o: memdebug.c setup.h config.h setup_once.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h \
|
||||
../include/curl/mprintf.h urldata.h cookie.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h memory.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/http_chunks.o: http_chunks.c setup.h config.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h content_encoding.h http.h \
|
||||
memory.h ../include/curl/mprintf.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/strtok.o: strtok.c setup.h config.h strtok.h
|
||||
$(OBJ_DIR)/connect.o: connect.c setup.h config.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h if2ip.h strerror.h \
|
||||
connect.h memory.h select.h url.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/llist.o: llist.c setup.h config.h llist.h memory.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/hash.o: hash.c setup.h config.h hash.h llist.h memory.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/multi.o: multi.c setup.h config.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h urldata.h cookie.h \
|
||||
formdata.h timeval.h e:/djgpp/contrib/zlib/zlib.h \
|
||||
e:/djgpp/contrib/zlib/zconf.h http_chunks.h hostip.h hash.h llist.h \
|
||||
transfer.h url.h connect.h progress.h memory.h easyif.h multiif.h \
|
||||
sendf.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/content_encoding.o: content_encoding.c setup.h config.h urldata.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h memory.h memdebug.h \
|
||||
./memory.h
|
||||
$(OBJ_DIR)/http_chunks.o: http_chunks.c setup.h config.h setup_once.h urldata.h \
|
||||
cookie.h ../include/curl/curl.h ../include/curl/curlver.h \
|
||||
../include/curl/easy.h ../include/curl/multi.h ../include/curl/curl.h \
|
||||
formdata.h timeval.h e:/djgpp/contrib/zlib/zlib.h \
|
||||
e:/djgpp/contrib/zlib/zconf.h http_chunks.h hostip.h hash.h llist.h \
|
||||
sendf.h content_encoding.h memory.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/share.o: share.c setup.h config.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h urldata.h cookie.h \
|
||||
formdata.h timeval.h e:/djgpp/contrib/zlib/zlib.h \
|
||||
e:/djgpp/contrib/zlib/zconf.h http_chunks.h hostip.h hash.h llist.h \
|
||||
share.h memory.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/http_digest.o: http_digest.c setup.h config.h urldata.h cookie.h \
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h \
|
||||
sendf.h content_encoding.h http.h memory.h ../include/curl/mprintf.h \
|
||||
memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/strtok.o: strtok.c setup.h config.h setup_once.h strtok.h
|
||||
$(OBJ_DIR)/connect.o: connect.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h strequal.h base64.h md5.h \
|
||||
http_digest.h strtok.h url.h memory.h ../include/curl/mprintf.h \
|
||||
memdebug.h memory.h
|
||||
$(OBJ_DIR)/md5.o: md5.c setup.h config.h md5.h
|
||||
$(OBJ_DIR)/http_negotiate.o: http_negotiate.c setup.h config.h
|
||||
$(OBJ_DIR)/http_ntlm.o: http_ntlm.c setup.h config.h
|
||||
$(OBJ_DIR)/inet_pton.o: inet_pton.c setup.h config.h
|
||||
$(OBJ_DIR)/strtoofft.o: strtoofft.c setup.h config.h strtoofft.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h if2ip.h \
|
||||
strerror.h connect.h memory.h select.h url.h multiif.h sockaddr.h \
|
||||
inet_ntop.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/llist.o: llist.c setup.h config.h setup_once.h llist.h memory.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/hash.o: hash.c setup.h config.h setup_once.h hash.h llist.h memory.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/multi.o: multi.c setup.h config.h setup_once.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h urldata.h cookie.h \
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h \
|
||||
transfer.h url.h connect.h progress.h memory.h easyif.h multiif.h \
|
||||
sendf.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/content_encoding.o: content_encoding.c setup.h config.h setup_once.h
|
||||
$(OBJ_DIR)/share.o: share.c setup.h config.h setup_once.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h urldata.h cookie.h \
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h \
|
||||
share.h memory.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/http_digest.o: http_digest.c setup.h config.h setup_once.h urldata.h \
|
||||
cookie.h ../include/curl/curl.h ../include/curl/curlver.h \
|
||||
../include/curl/easy.h ../include/curl/multi.h ../include/curl/curl.h \
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h \
|
||||
sendf.h strequal.h base64.h md5.h http_digest.h strtok.h url.h memory.h \
|
||||
../include/curl/mprintf.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/md5.o: md5.c setup.h config.h setup_once.h md5.h
|
||||
$(OBJ_DIR)/http_negotiate.o: http_negotiate.c setup.h config.h setup_once.h
|
||||
$(OBJ_DIR)/http_ntlm.o: http_ntlm.c setup.h config.h setup_once.h
|
||||
$(OBJ_DIR)/inet_pton.o: inet_pton.c setup.h config.h setup_once.h
|
||||
$(OBJ_DIR)/strtoofft.o: strtoofft.c setup.h config.h setup_once.h strtoofft.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h
|
||||
$(OBJ_DIR)/strerror.o: strerror.c setup.h config.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
$(OBJ_DIR)/strerror.o: strerror.c setup.h config.h setup_once.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h strerror.h urldata.h \
|
||||
cookie.h formdata.h timeval.h e:/djgpp/contrib/zlib/zlib.h \
|
||||
e:/djgpp/contrib/zlib/zconf.h http_chunks.h hostip.h hash.h llist.h \
|
||||
../include/curl/mprintf.h
|
||||
$(OBJ_DIR)/hostares.o: hostares.c setup.h config.h urldata.h cookie.h \
|
||||
cookie.h formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h \
|
||||
splay.h ../include/curl/mprintf.h
|
||||
$(OBJ_DIR)/hostares.o: hostares.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h share.h strerror.h url.h \
|
||||
../include/curl/mprintf.h memory.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/hostasyn.o: hostasyn.c setup.h config.h urldata.h cookie.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h share.h \
|
||||
strerror.h url.h connect.h ../include/curl/mprintf.h memory.h \
|
||||
memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/hostasyn.o: hostasyn.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h share.h strerror.h url.h \
|
||||
../include/curl/mprintf.h memory.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/hostip4.o: hostip4.c setup.h config.h urldata.h cookie.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h share.h \
|
||||
strerror.h url.h ../include/curl/mprintf.h memory.h memdebug.h \
|
||||
./memory.h
|
||||
$(OBJ_DIR)/hostip4.o: hostip4.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h share.h strerror.h url.h \
|
||||
inet_pton.h ../include/curl/mprintf.h memory.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/hostip6.o: hostip6.c setup.h config.h urldata.h cookie.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h share.h \
|
||||
strerror.h url.h inet_pton.h ../include/curl/mprintf.h memory.h \
|
||||
memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/hostip6.o: hostip6.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h share.h strerror.h url.h \
|
||||
inet_pton.h ../include/curl/mprintf.h memory.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/hostsyn.o: hostsyn.c setup.h config.h urldata.h cookie.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h share.h \
|
||||
strerror.h url.h inet_pton.h connect.h ../include/curl/mprintf.h \
|
||||
memory.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/hostsyn.o: hostsyn.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h share.h strerror.h url.h \
|
||||
../include/curl/mprintf.h memory.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/hostthre.o: hostthre.c setup.h config.h urldata.h cookie.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h share.h \
|
||||
strerror.h url.h ../include/curl/mprintf.h memory.h memdebug.h \
|
||||
./memory.h
|
||||
$(OBJ_DIR)/hostthre.o: hostthre.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h sendf.h share.h strerror.h url.h \
|
||||
../include/curl/mprintf.h inet_ntop.h memory.h memdebug.h memory.h
|
||||
$(OBJ_DIR)/inet_ntop.o: inet_ntop.c setup.h config.h
|
||||
$(OBJ_DIR)/parsedate.o: parsedate.c setup.h config.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sendf.h share.h \
|
||||
strerror.h url.h multiif.h ../include/curl/mprintf.h inet_ntop.h \
|
||||
memory.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/inet_ntop.o: inet_ntop.c setup.h config.h setup_once.h
|
||||
$(OBJ_DIR)/parsedate.o: parsedate.c setup.h config.h setup_once.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h
|
||||
$(OBJ_DIR)/select.o: select.c setup.h config.h ../include/curl/curl.h \
|
||||
$(OBJ_DIR)/select.o: select.c setup.h config.h setup_once.h ../include/curl/curl.h \
|
||||
../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h urldata.h cookie.h \
|
||||
formdata.h timeval.h e:/djgpp/contrib/zlib/zlib.h \
|
||||
e:/djgpp/contrib/zlib/zconf.h http_chunks.h hostip.h hash.h llist.h \
|
||||
formdata.h timeval.h http_chunks.h hostip.h hash.h llist.h splay.h \
|
||||
connect.h select.h
|
||||
$(OBJ_DIR)/gtls.o: gtls.c setup.h config.h
|
||||
$(OBJ_DIR)/sslgen.o: sslgen.c setup.h config.h urldata.h cookie.h \
|
||||
$(OBJ_DIR)/gtls.o: gtls.c setup.h config.h setup_once.h
|
||||
$(OBJ_DIR)/sslgen.o: sslgen.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
e:/djgpp/contrib/zlib/zlib.h e:/djgpp/contrib/zlib/zconf.h \
|
||||
http_chunks.h hostip.h hash.h llist.h sslgen.h ssluse.h gtls.h sendf.h \
|
||||
strequal.h url.h memory.h memdebug.h memory.h
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h sslgen.h ssluse.h gtls.h \
|
||||
sendf.h strequal.h url.h memory.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/tftp.o: tftp.c setup.h config.h setup_once.h urldata.h cookie.h \
|
||||
../include/curl/curl.h ../include/curl/curlver.h ../include/curl/easy.h \
|
||||
../include/curl/multi.h ../include/curl/curl.h formdata.h timeval.h \
|
||||
http_chunks.h hostip.h hash.h llist.h splay.h transfer.h sendf.h tftp.h \
|
||||
progress.h connect.h strerror.h sockaddr.h ../include/curl/mprintf.h \
|
||||
memory.h select.h memdebug.h ./memory.h
|
||||
$(OBJ_DIR)/splay.o: splay.c splay.h
|
||||
$(OBJ_DIR)/strdup.o: strdup.c setup.h config.h setup_once.h strdup.h
|
||||
|
||||
12
lib/multi.c
12
lib/multi.c
@@ -386,6 +386,10 @@ CURLMcode curl_multi_remove_handle(CURLM *multi_handle,
|
||||
if(easy) {
|
||||
/* If the 'state' is not INIT or COMPLETED, we might need to do something
|
||||
nice to put the easy_handle in a good known state when this returns. */
|
||||
if(easy->state != CURLM_STATE_COMPLETED)
|
||||
/* this handle is "alive" so we need to count down the total number of
|
||||
alive connections when this is removed */
|
||||
multi->num_alive--;
|
||||
|
||||
/* The timer must be shut down before easy->multi is set to NULL,
|
||||
else the timenode will remain in the splay tree after
|
||||
@@ -635,8 +639,12 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
|
||||
is already freed and gone */
|
||||
easy->easy_conn = NULL; /* no more connection */
|
||||
else {
|
||||
/* FIX: what if protocol_connect is TRUE here?! */
|
||||
multistate(easy, CURLM_STATE_WAITCONNECT);
|
||||
/* call again please so that we get the next socket setup */
|
||||
result = CURLM_CALL_MULTI_PERFORM;
|
||||
if(protocol_connect)
|
||||
multistate(easy, CURLM_STATE_DO);
|
||||
else
|
||||
multistate(easy, CURLM_STATE_WAITCONNECT);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -367,18 +367,19 @@ CURLcode Curl_write(struct connectdata *conn,
|
||||
The bit pattern defines to what "streams" to write to. Body and/or header.
|
||||
The defines are in sendf.h of course.
|
||||
*/
|
||||
CURLcode Curl_client_write(struct SessionHandle *data,
|
||||
CURLcode Curl_client_write(struct connectdata *conn,
|
||||
int type,
|
||||
char *ptr,
|
||||
size_t len)
|
||||
{
|
||||
struct SessionHandle *data = conn->data;
|
||||
size_t wrote;
|
||||
|
||||
if(0 == len)
|
||||
len = strlen(ptr);
|
||||
|
||||
if(type & CLIENTWRITE_BODY) {
|
||||
if(data->ftp_in_ascii_mode) {
|
||||
if((conn->protocol&PROT_FTP) && conn->proto.ftp->transfertype == 'A') {
|
||||
#ifdef CURL_DOES_CONVERSIONS
|
||||
/* convert from the network encoding */
|
||||
size_t rc;
|
||||
|
||||
@@ -47,7 +47,7 @@ void Curl_failf(struct SessionHandle *, const char *fmt, ...);
|
||||
#define CLIENTWRITE_HEADER 2
|
||||
#define CLIENTWRITE_BOTH (CLIENTWRITE_BODY|CLIENTWRITE_HEADER)
|
||||
|
||||
CURLcode Curl_client_write(struct SessionHandle *data, int type, char *ptr,
|
||||
CURLcode Curl_client_write(struct connectdata *conn, int type, char *ptr,
|
||||
size_t len);
|
||||
|
||||
/* internal read-function, does plain socket, SSL and krb4 */
|
||||
|
||||
23
lib/setup.h
23
lib/setup.h
@@ -218,7 +218,7 @@ typedef unsigned char bool;
|
||||
|
||||
#ifdef WIN32
|
||||
|
||||
#if !defined(__GNUC__) || defined(__MINGW32__)
|
||||
#if !defined(__CYGWIN__)
|
||||
#define sclose(x) closesocket(x)
|
||||
|
||||
#undef HAVE_ALARM
|
||||
@@ -233,7 +233,7 @@ typedef unsigned char bool;
|
||||
|
||||
#else /* WIN32 */
|
||||
|
||||
#ifdef DJGPP
|
||||
#ifdef MSDOS /* Watt-32 */
|
||||
#include <sys/ioctl.h>
|
||||
#define sclose(x) close_s(x)
|
||||
#define select(n,r,w,x,t) select_s(n,r,w,x,t)
|
||||
@@ -244,7 +244,7 @@ typedef unsigned char bool;
|
||||
#undef word
|
||||
#endif
|
||||
|
||||
#else /* DJGPP */
|
||||
#else /* MSDOS */
|
||||
|
||||
#ifdef __BEOS__
|
||||
#define sclose(x) closesocket(x)
|
||||
@@ -254,7 +254,7 @@ typedef unsigned char bool;
|
||||
|
||||
#define HAVE_ALARM
|
||||
|
||||
#endif /* DJGPP */
|
||||
#endif /* MSDOS */
|
||||
|
||||
#ifdef _AMIGASF
|
||||
#undef HAVE_ALARM
|
||||
@@ -267,7 +267,7 @@ typedef unsigned char bool;
|
||||
#define DOT_CHAR "."
|
||||
#endif
|
||||
|
||||
#ifdef DJGPP
|
||||
#ifdef MSDOS
|
||||
#undef DOT_CHAR
|
||||
#define DOT_CHAR "_"
|
||||
#endif
|
||||
@@ -278,19 +278,6 @@ int fileno( FILE *stream);
|
||||
|
||||
#endif /* WIN32 */
|
||||
|
||||
#ifndef curl_socket_typedef
|
||||
/* now typedef our socket type */
|
||||
#ifdef WIN32
|
||||
typedef SOCKET curl_socket_t;
|
||||
#define CURL_SOCKET_BAD INVALID_SOCKET
|
||||
#else
|
||||
typedef int curl_socket_t;
|
||||
#define CURL_SOCKET_BAD -1
|
||||
#endif
|
||||
#define curl_socket_typedef
|
||||
#endif /* curl_socket_typedef */
|
||||
|
||||
|
||||
#if defined(WIN32) && !defined(__CYGWIN__) && !defined(USE_ARES) && \
|
||||
!defined(__LCC__) /* lcc-win32 doesn't have _beginthreadex() */
|
||||
#ifdef ENABLE_IPV6
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
#define SEND_4TH_ARG MSG_NOSIGNAL
|
||||
#else
|
||||
#define SEND_4TH_ARG 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
@@ -74,7 +74,7 @@
|
||||
(RECV_TYPE_ARG4)(SEND_4TH_ARG))
|
||||
#endif
|
||||
#else /* HAVE_RECV */
|
||||
#ifdef DJGPP
|
||||
#ifdef MSDOS
|
||||
#define sread(x,y,z) (ssize_t)read_s((int)(x), (char *)(y), (int)(z))
|
||||
#endif
|
||||
#ifndef sread
|
||||
@@ -101,7 +101,7 @@
|
||||
(SEND_TYPE_ARG4)(SEND_4TH_ARG))
|
||||
#endif
|
||||
#else /* HAVE_SEND */
|
||||
#ifdef DJGPP
|
||||
#ifdef MSDOS
|
||||
#define swrite(x,y,z) (ssize_t)write_s((int)(x), (char *)(y), (int)(z))
|
||||
#endif
|
||||
#ifndef swrite
|
||||
|
||||
21
lib/splay.c
21
lib/splay.c
@@ -80,7 +80,6 @@ struct Curl_tree *Curl_splay(int i, struct Curl_tree *t)
|
||||
else
|
||||
break;
|
||||
}
|
||||
l->larger = r->smaller = NULL;
|
||||
|
||||
l->larger = t->smaller; /* assemble */
|
||||
r->smaller = t->larger;
|
||||
@@ -114,6 +113,7 @@ struct Curl_tree *Curl_splayinsert(int i,
|
||||
t->smaller = node; /* in the sub node for this same key, we use the
|
||||
smaller pointer to point back to the master
|
||||
node */
|
||||
|
||||
t->key = KEY_NOTUSED; /* and we set the key in the sub node to NOTUSED
|
||||
to quickly identify this node as a subnode */
|
||||
|
||||
@@ -270,9 +270,16 @@ int Curl_splayremovebyaddr(struct Curl_tree *t,
|
||||
/* Key set to NOTUSED means it is a subnode within a 'same' linked list
|
||||
and thus we can unlink it easily. The 'smaller' link of a subnode
|
||||
links to the parent node. */
|
||||
if (remove->smaller == NULL)
|
||||
return 3;
|
||||
|
||||
remove->smaller->same = remove->same;
|
||||
if(remove->same)
|
||||
remove->same->smaller = remove->smaller;
|
||||
|
||||
/* Ensures that double-remove gets caught. */
|
||||
remove->smaller = NULL;
|
||||
|
||||
/* voila, we're done! */
|
||||
*newroot = t; /* return the same root */
|
||||
return 0;
|
||||
@@ -280,10 +287,14 @@ int Curl_splayremovebyaddr(struct Curl_tree *t,
|
||||
|
||||
t = Curl_splay(remove->key, t);
|
||||
|
||||
/* First make sure that we got a root node witht he same key as the one we
|
||||
want to remove, as otherwise we might be trying to remove a node that
|
||||
isn't actually in the tree. */
|
||||
if(t->key != remove->key)
|
||||
/* First make sure that we got the same root node as the one we want
|
||||
to remove, as otherwise we might be trying to remove a node that
|
||||
isn't actually in the tree.
|
||||
|
||||
We cannot just compare the keys here as a double remove in quick
|
||||
succession of a node with key != KEY_NOTUSED && same != NULL
|
||||
could return the same key but a different node. */
|
||||
if(t != remove)
|
||||
return 2;
|
||||
|
||||
/* Check if there is a list with identical sizes, as then we're trying to
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
#include "strequal.h"
|
||||
|
||||
#ifdef HAVE_STRCASECMP
|
||||
#if defined(HAVE_STRCASECMP) && defined(__STRICT_ANSI__)
|
||||
/* this is for "-ansi -Wall -pedantic" to stop complaining! */
|
||||
extern int (strcasecmp)(const char *s1, const char *s2);
|
||||
extern int (strncasecmp)(const char *s1, const char *s2, size_t n);
|
||||
|
||||
@@ -45,7 +45,9 @@
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
#include <netinet/in.h>
|
||||
#ifdef HAVE_SYS_TIME_H
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
@@ -940,7 +942,7 @@ void telrcv(struct connectdata *conn,
|
||||
break; /* Ignore \0 after CR */
|
||||
}
|
||||
|
||||
Curl_client_write(data, CLIENTWRITE_BODY, (char *)&c, 1);
|
||||
Curl_client_write(conn, CLIENTWRITE_BODY, (char *)&c, 1);
|
||||
continue;
|
||||
|
||||
case CURL_TS_DATA:
|
||||
@@ -954,7 +956,7 @@ void telrcv(struct connectdata *conn,
|
||||
tn->telrcv_state = CURL_TS_CR;
|
||||
}
|
||||
|
||||
Curl_client_write(data, CLIENTWRITE_BODY, (char *)&c, 1);
|
||||
Curl_client_write(conn, CLIENTWRITE_BODY, (char *)&c, 1);
|
||||
continue;
|
||||
|
||||
case CURL_TS_IAC:
|
||||
@@ -978,7 +980,7 @@ void telrcv(struct connectdata *conn,
|
||||
tn->telrcv_state = CURL_TS_SB;
|
||||
continue;
|
||||
case CURL_IAC:
|
||||
Curl_client_write(data, CLIENTWRITE_BODY, (char *)&c, 1);
|
||||
Curl_client_write(conn, CLIENTWRITE_BODY, (char *)&c, 1);
|
||||
break;
|
||||
case CURL_DM:
|
||||
case CURL_NOP:
|
||||
|
||||
@@ -45,7 +45,9 @@
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
#include <netinet/in.h>
|
||||
#ifdef HAVE_SYS_TIME_H
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
@@ -261,7 +263,7 @@ static CURLcode tftp_send_first(tftp_state_data_t *state, tftp_event_t event)
|
||||
CURLcode res = CURLE_OK;
|
||||
|
||||
/* Set ascii mode if -B flag was used */
|
||||
if(data->set.ftp_ascii)
|
||||
if(data->set.prefer_ascii)
|
||||
mode = "netascii";
|
||||
|
||||
switch(event) {
|
||||
@@ -699,7 +701,7 @@ CURLcode Curl_tftp(struct connectdata *conn, bool *done)
|
||||
/* Don't pass to the client empty or retransmitted packets */
|
||||
if (state->rbytes > 4 &&
|
||||
((state->block+1) == getrpacketblock(&state->rpacket))) {
|
||||
code = Curl_client_write(data, CLIENTWRITE_BODY,
|
||||
code = Curl_client_write(conn, CLIENTWRITE_BODY,
|
||||
(char *)&state->rpacket.data[4],
|
||||
state->rbytes-4);
|
||||
if(code)
|
||||
|
||||
@@ -30,11 +30,13 @@
|
||||
|
||||
#include "setup.h"
|
||||
|
||||
#if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__)
|
||||
#if defined(WIN32) && !defined(__CYGWIN__)
|
||||
#include <time.h>
|
||||
#else
|
||||
#ifdef HAVE_SYS_TIME_H
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_GETTIMEOFDAY
|
||||
#if !defined(_WINSOCKAPI_) && !defined(__MINGW32__) && !defined(_AMIGASF) && \
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
#include "strtoofft.h"
|
||||
#include "strequal.h"
|
||||
|
||||
#if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__)
|
||||
#if defined(WIN32) && !defined(__CYGWIN__)
|
||||
#include <time.h>
|
||||
#include <io.h>
|
||||
#else
|
||||
@@ -51,7 +51,9 @@
|
||||
#ifdef HAVE_NETINET_IN_H
|
||||
#include <netinet/in.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_TIME_H
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
@@ -170,7 +172,7 @@ CURLcode Curl_fillreadbuffer(struct connectdata *conn, int bytes, int *nreadp)
|
||||
*nreadp = nread;
|
||||
|
||||
#ifdef CURL_DOES_CONVERSIONS
|
||||
if(data->ftp_in_ascii_mode) {
|
||||
if(data->set.prefer_ascii) {
|
||||
CURLcode res;
|
||||
res = Curl_convert_to_network(data, conn->upload_fromhere, nread);
|
||||
/* Curl_convert_to_network calls failf if unsuccessful */
|
||||
@@ -531,7 +533,7 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
||||
|
||||
headerlen = k->p - data->state.headerbuff;
|
||||
|
||||
result = Curl_client_write(data, writetype,
|
||||
result = Curl_client_write(conn, writetype,
|
||||
data->state.headerbuff,
|
||||
headerlen);
|
||||
if(result)
|
||||
@@ -990,7 +992,7 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
||||
Curl_debug(data, CURLINFO_HEADER_IN,
|
||||
k->p, k->hbuflen, conn);
|
||||
|
||||
result = Curl_client_write(data, writetype, k->p, k->hbuflen);
|
||||
result = Curl_client_write(conn, writetype, k->p, k->hbuflen);
|
||||
if(result)
|
||||
return result;
|
||||
|
||||
@@ -1144,7 +1146,7 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
||||
if(k->badheader && !k->ignorebody) {
|
||||
/* we parsed a piece of data wrongly assuming it was a header
|
||||
and now we output it as body instead */
|
||||
result = Curl_client_write(data, CLIENTWRITE_BODY,
|
||||
result = Curl_client_write(conn, CLIENTWRITE_BODY,
|
||||
data->state.headerbuff,
|
||||
k->hbuflen);
|
||||
if(result)
|
||||
@@ -1164,7 +1166,7 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
||||
Content-Encoding header. See Curl_readwrite_init; the
|
||||
memset() call initializes k->content_encoding to zero. */
|
||||
if(!k->ignorebody)
|
||||
result = Curl_client_write(data, CLIENTWRITE_BODY, k->str,
|
||||
result = Curl_client_write(conn, CLIENTWRITE_BODY, k->str,
|
||||
nread);
|
||||
#ifdef HAVE_LIBZ
|
||||
break;
|
||||
@@ -1172,13 +1174,13 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
||||
case DEFLATE:
|
||||
/* Assume CLIENTWRITE_BODY; headers are not encoded. */
|
||||
if(!k->ignorebody)
|
||||
result = Curl_unencode_deflate_write(data, k, nread);
|
||||
result = Curl_unencode_deflate_write(conn, k, nread);
|
||||
break;
|
||||
|
||||
case GZIP:
|
||||
/* Assume CLIENTWRITE_BODY; headers are not encoded. */
|
||||
if(!k->ignorebody)
|
||||
result = Curl_unencode_gzip_write(data, k, nread);
|
||||
result = Curl_unencode_gzip_write(conn, k, nread);
|
||||
break;
|
||||
|
||||
case COMPRESS:
|
||||
@@ -1283,7 +1285,7 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
||||
/* convert LF to CRLF if so asked */
|
||||
#ifdef CURL_DO_LINEEND_CONV
|
||||
/* always convert if we're FTPing in ASCII mode */
|
||||
if ((data->set.crlf) || (data->ftp_in_ascii_mode)) {
|
||||
if ((data->set.crlf) || (data->set.prefer_ascii)) {
|
||||
#else
|
||||
if (data->set.crlf) {
|
||||
#endif /* CURL_DO_LINEEND_CONV */
|
||||
@@ -1532,14 +1534,14 @@ CURLcode Curl_readwrite_init(struct connectdata *conn)
|
||||
Thus, we must check if the request has been sent before we set the
|
||||
state info where we wait for the 100-return code
|
||||
*/
|
||||
if (data->set.expect100header &&
|
||||
if (data->state.expect100header &&
|
||||
(conn->proto.http->sending == HTTPSEND_BODY)) {
|
||||
/* wait with write until we either got 100-continue or a timeout */
|
||||
k->write_after_100_header = TRUE;
|
||||
k->start100 = k->start;
|
||||
}
|
||||
else {
|
||||
if(data->set.expect100header)
|
||||
if(data->state.expect100header)
|
||||
/* when we've sent off the rest of the headers, we must await a
|
||||
100-continue */
|
||||
k->wait100_after_headers = TRUE;
|
||||
|
||||
106
lib/url.c
106
lib/url.c
@@ -38,7 +38,7 @@
|
||||
#endif
|
||||
#include <errno.h>
|
||||
|
||||
#if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__)
|
||||
#if defined(WIN32) && !defined(__CYGWIN__)
|
||||
#include <time.h>
|
||||
#include <io.h>
|
||||
#else
|
||||
@@ -46,7 +46,9 @@
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
#include <netinet/in.h>
|
||||
#ifdef HAVE_SYS_TIME_H
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
@@ -76,8 +78,8 @@
|
||||
#ifndef HAVE_SOCKET
|
||||
#error "We can't compile without socket() support!"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef USE_LIBIDN
|
||||
#include <idna.h>
|
||||
#include <tld.h>
|
||||
@@ -93,7 +95,7 @@ void idn_free (void *ptr); /* prototype from idn-free.h, not provided by
|
||||
instead */
|
||||
#define idn_free(x) (free)(x)
|
||||
#endif
|
||||
#endif
|
||||
#endif /* USE_LIBIDN */
|
||||
|
||||
#include "urldata.h"
|
||||
#include "netrc.h"
|
||||
@@ -612,7 +614,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
|
||||
*
|
||||
* Transfer using ASCII (instead of BINARY).
|
||||
*/
|
||||
data->set.ftp_ascii = va_arg(param, long)?TRUE:FALSE;
|
||||
data->set.prefer_ascii = va_arg(param, long)?TRUE:FALSE;
|
||||
break;
|
||||
case CURLOPT_TIMECONDITION:
|
||||
/*
|
||||
@@ -1551,6 +1553,20 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
|
||||
data->set.ftp_alternative_to_user = va_arg(param, char *);
|
||||
break;
|
||||
|
||||
case CURLOPT_SOCKOPTFUNCTION:
|
||||
/*
|
||||
* socket callback function: called after socket() but before connect()
|
||||
*/
|
||||
data->set.fsockopt = va_arg(param, curl_sockopt_callback);
|
||||
break;
|
||||
|
||||
case CURLOPT_SOCKOPTDATA:
|
||||
/*
|
||||
* socket callback data pointer. Might be NULL.
|
||||
*/
|
||||
data->set.sockopt_client = va_arg(param, void *);
|
||||
break;
|
||||
|
||||
default:
|
||||
/* unknown tag and its companion, just ignore: */
|
||||
result = CURLE_FAILED_INIT; /* correct this */
|
||||
@@ -2099,14 +2115,49 @@ static int handleSock5Proxy(const char *proxy_name,
|
||||
int result;
|
||||
CURLcode code;
|
||||
curl_socket_t sock = conn->sock[FIRSTSOCKET];
|
||||
struct SessionHandle *data = conn->data;
|
||||
long timeout;
|
||||
|
||||
Curl_nonblock(sock, FALSE);
|
||||
/* get timeout */
|
||||
if(data->set.timeout && data->set.connecttimeout) {
|
||||
if (data->set.timeout < data->set.connecttimeout)
|
||||
timeout = data->set.timeout*1000;
|
||||
else
|
||||
timeout = data->set.connecttimeout*1000;
|
||||
}
|
||||
else if(data->set.timeout)
|
||||
timeout = data->set.timeout*1000;
|
||||
else if(data->set.connecttimeout)
|
||||
timeout = data->set.connecttimeout*1000;
|
||||
else
|
||||
timeout = DEFAULT_CONNECT_TIMEOUT;
|
||||
|
||||
Curl_nonblock(sock, TRUE);
|
||||
|
||||
/* wait until socket gets connected */
|
||||
result = Curl_select(CURL_SOCKET_BAD, sock, (int)timeout);
|
||||
|
||||
if(-1 == result) {
|
||||
failf(conn->data, "SOCKS5: no connection here");
|
||||
return 1;
|
||||
}
|
||||
else if(0 == result) {
|
||||
failf(conn->data, "SOCKS5: connection timeout");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(result & CSELECT_ERR) {
|
||||
failf(conn->data, "SOCKS5: error occured during connection");
|
||||
return 1;
|
||||
}
|
||||
|
||||
socksreq[0] = 5; /* version */
|
||||
socksreq[1] = (char)(proxy_name ? 2 : 1); /* number of methods (below) */
|
||||
socksreq[2] = 0; /* no authentication */
|
||||
socksreq[3] = 2; /* username/password */
|
||||
|
||||
Curl_nonblock(sock, FALSE);
|
||||
|
||||
code = Curl_write(conn, sock, (char *)socksreq, (2 + (int)socksreq[1]),
|
||||
&written);
|
||||
if ((code != CURLE_OK) || (written != (2 + (int)socksreq[1]))) {
|
||||
@@ -2114,6 +2165,26 @@ static int handleSock5Proxy(const char *proxy_name,
|
||||
return 1;
|
||||
}
|
||||
|
||||
Curl_nonblock(sock, TRUE);
|
||||
|
||||
result = Curl_select(sock, CURL_SOCKET_BAD, (int)timeout);
|
||||
|
||||
if(-1 == result) {
|
||||
failf(conn->data, "SOCKS5 nothing to read");
|
||||
return 1;
|
||||
}
|
||||
else if(0 == result) {
|
||||
failf(conn->data, "SOCKS5 read timeout");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(result & CSELECT_ERR) {
|
||||
failf(conn->data, "SOCKS5 read error occured");
|
||||
return 1;
|
||||
}
|
||||
|
||||
Curl_nonblock(sock, FALSE);
|
||||
|
||||
result=Curl_read(conn, sock, (char *)socksreq, 2, &actualread);
|
||||
if ((result != CURLE_OK) || (actualread != 2)) {
|
||||
failf(conn->data, "Unable to receive initial SOCKS5 response.");
|
||||
@@ -2130,10 +2201,16 @@ static int handleSock5Proxy(const char *proxy_name,
|
||||
}
|
||||
else if (socksreq[1] == 2) {
|
||||
/* Needs user name and password */
|
||||
int userlen, pwlen, len;
|
||||
|
||||
userlen = (int)strlen(proxy_name);
|
||||
pwlen = proxy_password?(int)strlen(proxy_password):0;
|
||||
size_t userlen, pwlen;
|
||||
int len;
|
||||
if(proxy_name && proxy_password) {
|
||||
userlen = strlen(proxy_name);
|
||||
pwlen = proxy_password?strlen(proxy_password):0;
|
||||
}
|
||||
else {
|
||||
userlen = 0;
|
||||
pwlen = 0;
|
||||
}
|
||||
|
||||
/* username/password request looks like
|
||||
* +----+------+----------+------+----------+
|
||||
@@ -3125,15 +3202,15 @@ static CURLcode CreateConnection(struct SessionHandle *data,
|
||||
command = (char)toupper((int)type[6]);
|
||||
switch(command) {
|
||||
case 'A': /* ASCII mode */
|
||||
data->set.ftp_ascii = 1;
|
||||
data->set.prefer_ascii = TRUE;
|
||||
break;
|
||||
case 'D': /* directory mode */
|
||||
data->set.ftp_list_only = 1;
|
||||
data->set.ftp_list_only = TRUE;
|
||||
break;
|
||||
case 'I': /* binary mode */
|
||||
default:
|
||||
/* switch off ASCII */
|
||||
data->set.ftp_ascii = 0;
|
||||
data->set.prefer_ascii = FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -3228,13 +3305,13 @@ static CURLcode CreateConnection(struct SessionHandle *data,
|
||||
switch(command) {
|
||||
case 'A': /* ASCII mode */
|
||||
case 'N': /* NETASCII mode */
|
||||
data->set.ftp_ascii = 1;
|
||||
data->set.prefer_ascii = TRUE;
|
||||
break;
|
||||
case 'O': /* octet mode */
|
||||
case 'I': /* binary mode */
|
||||
default:
|
||||
/* switch off ASCII */
|
||||
data->set.ftp_ascii = 0;
|
||||
data->set.prefer_ascii = FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -4193,4 +4270,3 @@ CURLcode Curl_do_more(struct connectdata *conn)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -110,6 +110,7 @@
|
||||
#endif
|
||||
|
||||
/* Download buffer size, keep it fairly big for speed reasons */
|
||||
#undef BUFSIZE
|
||||
#define BUFSIZE CURL_MAX_WRITE_SIZE
|
||||
|
||||
/* Initial size of the buffer to store headers in, it'll be enlarged in case
|
||||
@@ -362,6 +363,8 @@ struct FTP {
|
||||
bool cwdfail; /* set TRUE if a CWD command fails, as then we must prevent
|
||||
caching the current directory */
|
||||
char *prevpath; /* conn->path from the previous transfer */
|
||||
char transfertype; /* set by ftp_transfertype for use by Curl_client_write()a
|
||||
and others (A/I or zero) */
|
||||
|
||||
size_t nread_resp; /* number of bytes currently read of a server response */
|
||||
char *linestart_resp; /* line start pointer for the FTP server response
|
||||
@@ -940,6 +943,8 @@ struct UrlState {
|
||||
/* set after initial USER failure, to prevent an authentication loop */
|
||||
bool ftp_trying_alternative;
|
||||
|
||||
bool expect100header; /* TRUE if we added Expect: 100-continue */
|
||||
|
||||
#ifndef WIN32
|
||||
/* do FTP line-end conversions on most platforms */
|
||||
#define CURL_DO_LINEEND_CONV
|
||||
@@ -1025,6 +1030,8 @@ struct UserDefined {
|
||||
curl_progress_callback fprogress; /* function for progress information */
|
||||
curl_debug_callback fdebug; /* function that write informational data */
|
||||
curl_ioctl_callback ioctl; /* function for I/O control */
|
||||
curl_sockopt_callback fsockopt; /* function for setting socket options */
|
||||
void *sockopt_client; /* pointer to pass to the socket options callback */
|
||||
|
||||
/* the 3 curl_conv_callback functions below are used on non-ASCII hosts */
|
||||
/* function to convert from the network encoding: */
|
||||
@@ -1112,8 +1119,8 @@ struct UserDefined {
|
||||
bool printhost; /* printing host name in debug info */
|
||||
bool get_filetime;
|
||||
bool tunnel_thru_httpproxy;
|
||||
bool prefer_ascii; /* ASCII rather than binary */
|
||||
bool ftp_append;
|
||||
bool ftp_ascii;
|
||||
bool ftp_list_only;
|
||||
bool ftp_create_missing_dirs;
|
||||
bool ftp_use_port;
|
||||
@@ -1135,7 +1142,6 @@ struct UserDefined {
|
||||
bool krb4; /* kerberos4 connection requested */
|
||||
bool reuse_forbid; /* forbidden to be reused, close after use */
|
||||
bool reuse_fresh; /* do not re-use an existing connection */
|
||||
bool expect100header; /* TRUE if we added Expect: 100-continue */
|
||||
bool ftp_use_epsv; /* if EPSV is to be attempted or not */
|
||||
bool ftp_use_eprt; /* if EPRT is to be attempted or not */
|
||||
curl_ftpssl ftp_ssl; /* if AUTH TLS is to be attempted etc */
|
||||
@@ -1183,8 +1189,6 @@ struct SessionHandle {
|
||||
struct UrlState state; /* struct for fields used for state info and
|
||||
other dynamic purposes */
|
||||
struct PureInfo info; /* stats, reports and info data */
|
||||
/* set by ftp_transfertype for use by Curl_client_write and others */
|
||||
bool ftp_in_ascii_mode;
|
||||
#if defined(CURL_DOES_CONVERSIONS) && defined(HAVE_ICONV)
|
||||
iconv_t outbound_cd; /* for translating to the network encoding */
|
||||
iconv_t inbound_cd; /* for translating from the network encoding */
|
||||
|
||||
@@ -78,8 +78,13 @@ char *curl_version(void)
|
||||
}
|
||||
#endif
|
||||
#if defined(HAVE_ICONV) && defined(CURL_DOES_CONVERSIONS)
|
||||
#ifdef _LIBICONV_VERSION
|
||||
len = snprintf(ptr, left, " iconv/%d.%d",
|
||||
_libiconv_version >> 8, _libiconv_version & 255);
|
||||
_LIBICONV_VERSION >> 8, _LIBICONV_VERSION & 255);
|
||||
#else
|
||||
/* version unknown */
|
||||
len = snprintf(ptr, left, " iconv");
|
||||
#endif /* _LIBICONV_VERSION */
|
||||
left -= len;
|
||||
ptr += len;
|
||||
#endif
|
||||
@@ -204,7 +209,12 @@ curl_version_info_data *curl_version_info(CURLversion stamp)
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_ICONV) && defined(CURL_DOES_CONVERSIONS)
|
||||
version_info.iconv_ver_num = _libiconv_version;
|
||||
#ifdef _LIBICONV_VERSION
|
||||
version_info.iconv_ver_num = _LIBICONV_VERSION;
|
||||
#else
|
||||
/* version unknown */
|
||||
version_info.iconv_ver_num = -1;
|
||||
#endif /* _LIBICONV_VERSION */
|
||||
#endif
|
||||
|
||||
(void)stamp; /* avoid compiler warnings, we don't use this */
|
||||
|
||||
3
maketgz
3
maketgz
@@ -57,6 +57,9 @@ findprog()
|
||||
return 0
|
||||
}
|
||||
|
||||
echo "maketgz: cp lib/config.h.in src/config.h.in"
|
||||
cp lib/config.h.in src/config.h.in
|
||||
|
||||
############################################################################
|
||||
#
|
||||
# Enforce a rerun of configure (updates the VERSION)
|
||||
|
||||
@@ -26,8 +26,12 @@ AUTOMAKE_OPTIONS = foreign nostdinc
|
||||
# we use srcdir/include for the static global include files
|
||||
# we use builddir/src for the generated include files to get found
|
||||
# we use srcdir/lib for the header files we "borrow" from the lib
|
||||
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/include -I$(top_builddir)/src \
|
||||
-I$(top_srcdir)/lib
|
||||
|
||||
INCLUDES = -I$(top_srcdir)/include \
|
||||
-I$(top_builddir)/lib \
|
||||
-I$(top_builddir)/src \
|
||||
-I$(top_srcdir)/lib \
|
||||
-I$(top_srcdir)/src
|
||||
|
||||
bin_PROGRAMS = curl
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
## Makefile for building curl.nlm (NetWare version - gnu make)
|
||||
## Use: make -f Makefile.netware
|
||||
##
|
||||
## Comments to: Guenter Knauf <eflash@gmx.net>
|
||||
## Comments to: Guenter Knauf http://www.gknw.de/phpbb
|
||||
#
|
||||
#################################################################
|
||||
|
||||
@@ -19,7 +19,7 @@ endif
|
||||
|
||||
# Edit the path below to point to the base of your OpenSSL package.
|
||||
ifndef OPENSSL_PATH
|
||||
OPENSSL_PATH = ../../openssl-0.9.8a
|
||||
OPENSSL_PATH = ../../openssl-0.9.8b
|
||||
endif
|
||||
|
||||
ifndef INSTDIR
|
||||
@@ -67,7 +67,7 @@ CP = cp -afv
|
||||
# RM = rm -f
|
||||
# if you want to mark the target as MTSAFE you will need a tool for
|
||||
# generating the xdc data for the linker; here's a minimal tool:
|
||||
# http://www.gknw.com/development/prgtools/mkxdc.zip
|
||||
# http://www.gknw.net/development/prgtools/mkxdc.zip
|
||||
MPKXDC = mkxdc
|
||||
|
||||
# Global flags for all compilers
|
||||
|
||||
@@ -1180,9 +1180,12 @@ static int str2offset(curl_off_t *val, char *str)
|
||||
* definitions for LLONG_{MIN,MAX} or LONG_LONG_{MIN,MAX}.
|
||||
*/
|
||||
#ifndef LLONG_MAX
|
||||
#ifdef _MSC_VER
|
||||
#if defined(_MSC_VER)
|
||||
#define LLONG_MAX (curl_off_t)0x7FFFFFFFFFFFFFFFi64
|
||||
#define LLONG_MIN (curl_off_t)0x8000000000000000i64
|
||||
#elif defined(_CRAYC)
|
||||
#define LLONG_MAX (curl_off_t)0x7FFFFFFFFFFFFFFF
|
||||
#define LLONG_MIN (curl_off_t)0x8000000000000000
|
||||
#else
|
||||
#define LLONG_MAX (curl_off_t)0x7FFFFFFFFFFFFFFFLL
|
||||
#define LLONG_MIN (curl_off_t)0x8000000000000000LL
|
||||
|
||||
@@ -34,5 +34,5 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \
|
||||
test250 test251 test252 test253 test254 test255 test521 test522 test523 \
|
||||
test256 test257 test258 test259 test260 test261 test262 test263 test264 \
|
||||
test265 test266 test267 test268 test269 test270 test271 test272 test273 \
|
||||
test274 test275 test524 test276 test277
|
||||
test274 test275 test524 test525 test276 test277
|
||||
|
||||
|
||||
@@ -39,7 +39,6 @@ SIZE 146
|
||||
RETR 146
|
||||
CWD /nowhere/anywhere
|
||||
EPSV
|
||||
TYPE I
|
||||
SIZE 146
|
||||
RETR 146
|
||||
QUIT
|
||||
|
||||
@@ -37,7 +37,6 @@ STOR 148
|
||||
CWD /nowhere/anywhere
|
||||
CWD dir2
|
||||
EPSV
|
||||
TYPE I
|
||||
STOR 148
|
||||
QUIT
|
||||
</protocol>
|
||||
|
||||
@@ -37,7 +37,6 @@ TYPE I
|
||||
SIZE 210
|
||||
RETR 210
|
||||
EPSV
|
||||
TYPE I
|
||||
SIZE 210
|
||||
RETR 210
|
||||
QUIT
|
||||
|
||||
@@ -39,7 +39,6 @@ TYPE I
|
||||
SIZE 211
|
||||
RETR 211
|
||||
PASV
|
||||
TYPE I
|
||||
SIZE 211
|
||||
RETR 211
|
||||
QUIT
|
||||
|
||||
@@ -47,7 +47,6 @@ TYPE I
|
||||
SIZE 212
|
||||
RETR 212
|
||||
PORT 127,0,0,1,
|
||||
TYPE I
|
||||
SIZE 212
|
||||
RETR 212
|
||||
QUIT
|
||||
|
||||
@@ -44,7 +44,6 @@ EPSV
|
||||
TYPE A
|
||||
LIST
|
||||
EPSV
|
||||
TYPE A
|
||||
LIST
|
||||
QUIT
|
||||
</protocol>
|
||||
|
||||
@@ -31,7 +31,6 @@ EPSV
|
||||
TYPE I
|
||||
STOR upload.216
|
||||
EPSV
|
||||
TYPE I
|
||||
STOR ..anotherup
|
||||
QUIT
|
||||
</protocol>
|
||||
|
||||
@@ -39,7 +39,6 @@ Host: 127.0.0.1:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 45
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
Expect: 100-continue
|
||||
|
||||
this is what we post to the silly web server
|
||||
</protocol>
|
||||
|
||||
@@ -39,7 +39,6 @@ Host: 127.0.0.1:%HTTPPORT
|
||||
Accept: */*
|
||||
Transfer-Encoding: chunked
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
Expect: 100-continue
|
||||
|
||||
3
|
||||
one
|
||||
|
||||
@@ -30,7 +30,6 @@ Host: 127.0.0.1:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 1
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
Expect: 100-continue
|
||||
|
||||
</protocol>
|
||||
# 42 - aborted by callback
|
||||
|
||||
@@ -40,7 +40,6 @@ Host: 127.0.0.1:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 0
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
Expect: 100-continue
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
|
||||
55
tests/data/test525
Normal file
55
tests/data/test525
Normal file
@@ -0,0 +1,55 @@
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PORT
|
||||
STOR
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<tool>
|
||||
lib525
|
||||
</tool>
|
||||
<name>
|
||||
FTP PORT upload using multi interface
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/path/525 log/upload525
|
||||
</command>
|
||||
<file name="log/upload525">
|
||||
Moooooooooooo
|
||||
upload this
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^PORT .*
|
||||
^EPRT .*
|
||||
^LPRT .*
|
||||
</strip>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS curl_by_daniel@haxx.se
|
||||
PWD
|
||||
CWD path
|
||||
PORT 127,0,0,1,5,109
|
||||
TYPE I
|
||||
STOR 525
|
||||
QUIT
|
||||
</protocol>
|
||||
<upload>
|
||||
Moooooooooooo
|
||||
upload this
|
||||
</upload>
|
||||
</verify>
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/perl
|
||||
#!/usr/bin/env perl
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/perl
|
||||
#!/usr/bin/env perl
|
||||
#
|
||||
# $Id$
|
||||
# This is the HTTPS server designed for the curl test suite.
|
||||
|
||||
@@ -28,9 +28,10 @@ AUTOMAKE_OPTIONS = foreign nostdinc
|
||||
# -I$(top_srcdir)/lib is for the setup.h file, included by test.h
|
||||
# -I$(top_builddir)/lib is for the config.h file, possibly included by the
|
||||
# setup.h file
|
||||
|
||||
INCLUDES = -I$(top_srcdir)/include/curl \
|
||||
-I$(top_srcdir)/lib \
|
||||
-I$(top_builddir)/lib
|
||||
-I$(top_builddir)/lib \
|
||||
-I$(top_srcdir)/lib
|
||||
|
||||
LIBDIR = $(top_builddir)/lib
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ my $libtool;
|
||||
my $memdump="$LOGDIR/memdump";
|
||||
|
||||
# the path to the script that analyzes the memory debug output file:
|
||||
my $memanalyze="./memanalyze.pl";
|
||||
my $memanalyze="$perl $srcdir/memanalyze.pl";
|
||||
|
||||
my $stunnel = checkcmd("stunnel4") || checkcmd("stunnel");
|
||||
my $valgrind = checkcmd("valgrind");
|
||||
@@ -990,7 +990,7 @@ sub checksystem {
|
||||
logmsg "$versnoexec \n";
|
||||
}
|
||||
elsif ($versretval & 127) {
|
||||
logmsg sprintf("command died with signal %d, and %s coredump. \n",
|
||||
logmsg sprintf("command died with signal %d, and %s coredump.\n",
|
||||
($versretval & 127), ($versretval & 128)?"a":"no");
|
||||
}
|
||||
else {
|
||||
@@ -1069,7 +1069,7 @@ sub checksystem {
|
||||
if($tftp_ipv6) {
|
||||
logmsg sprintf("* TFTP IPv6 port: %d\n", $TFTP6PORT);
|
||||
}
|
||||
|
||||
|
||||
if($ssl_version) {
|
||||
logmsg sprintf("* SSL library: %s\n",
|
||||
$has_gnutls?"GnuTLS":($has_openssl?"OpenSSL":"<unknown>"));
|
||||
@@ -1620,7 +1620,7 @@ sub singletest {
|
||||
|
||||
# what parts to cut off from the file
|
||||
my @stripfile = getpart("verify", "stripfile");
|
||||
|
||||
|
||||
my $filemode=$hash{'mode'};
|
||||
if(($filemode eq "text") && $has_textaware) {
|
||||
# text mode when running on windows means adding an extra
|
||||
@@ -1675,8 +1675,8 @@ sub singletest {
|
||||
chomp $serv;
|
||||
if($serv =~ /^ftp(\d*)(-ipv6|)/) {
|
||||
my ($id, $ext) = ($1, $2);
|
||||
print STDERR "SERV $serv $id $ext\n";
|
||||
ftpkillslave($id, $ext, 1);
|
||||
#print STDERR "SERV $serv $id $ext\n";
|
||||
ftpkillslave($id, $ext, $verbose);
|
||||
}
|
||||
if($run{$serv}) {
|
||||
stopserver($run{$serv}); # the pid file is in the hash table
|
||||
|
||||
@@ -21,9 +21,13 @@
|
||||
# $Id$
|
||||
###########################################################################
|
||||
|
||||
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
|
||||
INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/include
|
||||
INCLUDES = -I$(top_srcdir)/include \
|
||||
-I$(top_builddir)/lib \
|
||||
-I$(top_srcdir)/lib
|
||||
|
||||
noinst_PROGRAMS = sws getpart sockfilt resolve tftpd
|
||||
|
||||
|
||||
@@ -760,7 +760,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
if (CURL_SOCKET_BAD == sock) {
|
||||
logmsg("Error opening socket: %d", errno);
|
||||
exit(1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
flag = 1;
|
||||
@@ -768,7 +768,7 @@ int main(int argc, char *argv[])
|
||||
(void *) &flag, sizeof(flag))) {
|
||||
logmsg("setsockopt(SO_REUSEADDR) failed: %d", errno);
|
||||
sclose(sock);
|
||||
exit(1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
#ifdef ENABLE_IPV6
|
||||
@@ -792,7 +792,7 @@ int main(int argc, char *argv[])
|
||||
if(0 != rc) {
|
||||
logmsg("Error binding socket: %d", errno);
|
||||
sclose(sock);
|
||||
exit(1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
pidfile = fopen(pidname, "w");
|
||||
@@ -803,7 +803,7 @@ int main(int argc, char *argv[])
|
||||
else {
|
||||
fprintf(stderr, "Couldn't write pid file\n");
|
||||
sclose(sock);
|
||||
exit(1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
logmsg("Running IPv%d version on port %d",
|
||||
@@ -819,7 +819,7 @@ int main(int argc, char *argv[])
|
||||
if(0 != rc) {
|
||||
logmsg("listen() failed with error: %d", errno);
|
||||
sclose(sock);
|
||||
exit(1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
while (1) {
|
||||
|
||||
@@ -475,7 +475,7 @@ int main(int argc, char **argv)
|
||||
if (sock < 0) {
|
||||
perror("opening stream socket");
|
||||
logmsg("Error opening socket");
|
||||
exit(1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
flag = 1;
|
||||
@@ -505,7 +505,7 @@ int main(int argc, char **argv)
|
||||
if(rc < 0) {
|
||||
perror("binding stream socket");
|
||||
logmsg("Error binding socket");
|
||||
exit(1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
pidfile = fopen(pidname, "w");
|
||||
|
||||
Reference in New Issue
Block a user