platform/upstream/curl.git
12 years agocreate_hostcache_id: use the key lower cased
Daniel Stenberg [Fri, 30 Dec 2011 21:46:57 +0000 (22:46 +0100)]
create_hostcache_id: use the key lower cased

... to make sure the DNS cache is properly case insensitive

12 years agochanged case: use new host name for subsequent HTTP requests
Daniel Stenberg [Sat, 31 Dec 2011 09:39:54 +0000 (10:39 +0100)]
changed case: use new host name for subsequent HTTP requests

When a HTTP connection is re-used for a subsequent request without
proxy, it would always re-use the Host: header of the first request. As
host names are case insensitive it would make curl send another host
name case that what the particular request used.

Now it will instead always use the most recent host name to always use
the desired casing.

Added test case 1318 to verify.

Bug: http://curl.haxx.se/mail/lib-2011-12/0314.html
Reported by: Alex Vinnik

12 years agoCURLOPT_RESOLVE: avoid adding already present host names
Daniel Stenberg [Sat, 31 Dec 2011 09:28:10 +0000 (10:28 +0100)]
CURLOPT_RESOLVE: avoid adding already present host names

The load host names to DNS cache function was moved to hostip.c and it
now makes sure to not add host names that already are present in the
cache. It would previously lead to memory leaks when for example using
the --resolve and multiple URLs on the command line.

12 years agoruntests.pl: Use logmsg more consistently
Dan Fandrich [Sat, 31 Dec 2011 08:49:34 +0000 (00:49 -0800)]
runtests.pl: Use logmsg more consistently

12 years agoexamples: update README, Makefile.inc and gitignore with pop3s examples
Alessandro Ghedini [Wed, 28 Dec 2011 15:33:17 +0000 (16:33 +0100)]
examples: update README, Makefile.inc and gitignore with pop3s examples

12 years agoexamples: add a couple of simple pop3s examples
Alessandro Ghedini [Wed, 28 Dec 2011 14:01:05 +0000 (15:01 +0100)]
examples: add a couple of simple pop3s examples

These examples show how to fetch a single message (RETR command) and how to
list all the messages in a given mailbox (LIST command), with authentication
via SSL.

They were both based on the https.c example.

12 years agoremoved execute file permission
Yang Tse [Fri, 30 Dec 2011 02:53:25 +0000 (03:53 +0100)]
removed execute file permission

12 years agoremoved trailing whitespace
Yang Tse [Fri, 30 Dec 2011 02:36:18 +0000 (03:36 +0100)]
removed trailing whitespace

12 years agoftpserver.pl: arbitrary application data splitting among TCP packets [II]
Yang Tse [Thu, 29 Dec 2011 22:40:06 +0000 (23:40 +0100)]
ftpserver.pl: arbitrary application data splitting among TCP packets [II]

Take in account that 'pingpong' server commands may arrive splitted among
several sockfilt 'DATA' PDU's.

12 years agoftpserver.pl: arbitrary application data splitting among TCP packets [I]
Yang Tse [Wed, 28 Dec 2011 22:04:23 +0000 (23:04 +0100)]
ftpserver.pl: arbitrary application data splitting among TCP packets [I]

Initial step in order to allow our pingpong server to better support arbitrary
application data splitting among TCP packets. This first commit only addresses
reasembly of data that sockfilter processes reads from soockets and pingpong
server later reads from sockfilters stdout.

12 years agotestcurl.pl: 82c344a3 follow-up
Yang Tse [Tue, 27 Dec 2011 12:23:47 +0000 (13:23 +0100)]
testcurl.pl: 82c344a3 follow-up

12 years agotestcurl.pl: log ACLOCAL_FLAGS
Yang Tse [Mon, 26 Dec 2011 16:09:44 +0000 (17:09 +0100)]
testcurl.pl: log ACLOCAL_FLAGS

12 years agotestcurl.pl: third party m4 warnings filtering adjustment
Yang Tse [Mon, 26 Dec 2011 16:01:04 +0000 (17:01 +0100)]
testcurl.pl: third party m4 warnings filtering adjustment

Make testcurl.pl ignore messages pertaining to third party m4 files we don't
care nor use on a file basis policy while retaining all other warnings.

This closes temporary commit e71e226f

12 years agotransfer: avoid unnecessary timeout event when waiting for 100-continue
Kamil Dudka [Sun, 25 Dec 2011 21:37:24 +0000 (22:37 +0100)]
transfer: avoid unnecessary timeout event when waiting for 100-continue

The commit 9dd85bc unintentionally changed the way we compute the time
spent waiting for 100-continue.  In particular, when using a SSL client
certificate, the time spent by SSL handshake was included and could
cause the CURL_TIMEOUT_EXPECT_100 timeout to be mistakenly fired up.

Bug: https://bugzilla.redhat.com/767490
Reported by: Mamoru Tasaka

12 years agotransfer.c: move a logging statement placement
Yang Tse [Sun, 25 Dec 2011 11:11:51 +0000 (12:11 +0100)]
transfer.c: move a logging statement placement

12 years agohash.c: fix OOM triggered segfault
Yang Tse [Sun, 25 Dec 2011 10:35:45 +0000 (11:35 +0100)]
hash.c: fix OOM triggered segfault

12 years agoftp_do_more: don't return success until all is done
Daniel Stenberg [Fri, 23 Dec 2011 23:12:00 +0000 (00:12 +0100)]
ftp_do_more: don't return success until all is done

ftp_do_more() returns after accepting the server connect however it
needs to fall through and set "*complete" to TRUE before exit from the
function.

Bug: http://curl.haxx.se/mail/lib-2011-12/0250.html
Reported by: Gokhan Sengun

12 years agoCurl_do_more: fix typo logic
Daniel Stenberg [Fri, 23 Dec 2011 23:09:41 +0000 (00:09 +0100)]
Curl_do_more: fix typo logic

In the recent do_more fix the new logic was mistakenly checking the
pointer instead of what it points to.

Reported by: Gokhan Sengun
Bug: http://curl.haxx.se/mail/lib-2011-12/0250.html

12 years agoSFTP mkdir: use correct permission
Daniel Stenberg [Fri, 23 Dec 2011 22:54:13 +0000 (23:54 +0100)]
SFTP mkdir: use correct permission

When sending quote command to a SFTP server and 'mkdir' was used, it
would send fixed permissions and not use the CURLOPT_NEW_DIRECTORY_PERMS
as it should.

Reported by: Armel
Patch by: Armel
Bug: http://curl.haxx.se/mail/lib-2011-12/0249.html

12 years agobuildconf: minor tweaks commit 430527a1 follow-up
Yang Tse [Fri, 23 Dec 2011 16:45:42 +0000 (17:45 +0100)]
buildconf: minor tweaks commit 430527a1 follow-up

12 years agoRequire a less ancient version of perl
Colin Hogben [Fri, 23 Dec 2011 10:56:48 +0000 (10:56 +0000)]
Require a less ancient version of perl

The INTERNALS document suggested that compatibility should be
maintained with perl version 4, but this was untrue - scripts such as
chksource.pl and runtests.pl use perl5-isms.

12 years agoresolve: don't leak pre-populated dns entries
Daniel Stenberg [Fri, 23 Dec 2011 13:30:43 +0000 (14:30 +0100)]
resolve: don't leak pre-populated dns entries

CURLOPT_RESOLVE populates the DNS cache with entries that are marked as
eternally in use. Those entries need to be taken care of when the cache
is killed off.

Bug: http://curl.haxx.se/bug/view.cgi?id=3463121
Reported by: "tw84452852"

12 years agonew test: verify --resolve
Daniel Stenberg [Thu, 22 Dec 2011 07:32:34 +0000 (08:32 +0100)]
new test: verify --resolve

Test 1317 verifies --resolve (leaked memory)

Bug: http://curl.haxx.se/bug/view.cgi?id=3463121
Reported by: "tw84452852"

12 years agotestcurl.pl: temporary change
Yang Tse [Fri, 23 Dec 2011 10:08:06 +0000 (11:08 +0100)]
testcurl.pl: temporary change

Allow autobuilds to run a couple of days without filtering out aclocal
underquoted definition warnings.

12 years agooperate: removed a single trailing space
Daniel Stenberg [Wed, 21 Dec 2011 20:17:34 +0000 (21:17 +0100)]
operate: removed a single trailing space

12 years ago--retry: Retry transfers on timeout and DNS errors
Dan Fandrich [Wed, 21 Dec 2011 19:09:09 +0000 (11:09 -0800)]
--retry: Retry transfers on timeout and DNS errors

12 years agobuildconf: minor tweaks
Yang Tse [Wed, 21 Dec 2011 15:21:37 +0000 (16:21 +0100)]
buildconf: minor tweaks

12 years agoformdata.c: OOM handling fixes
Yang Tse [Wed, 21 Dec 2011 14:38:47 +0000 (15:38 +0100)]
formdata.c: OOM handling fixes

12 years agoTODO: 1.7 Happy Eyeball dual stack connect
Daniel Stenberg [Wed, 21 Dec 2011 08:53:05 +0000 (09:53 +0100)]
TODO: 1.7 Happy Eyeball dual stack connect

12 years agoruntests.pl: Fixed perl warning when using the -l option
Dan Fandrich [Wed, 21 Dec 2011 02:31:53 +0000 (18:31 -0800)]
runtests.pl: Fixed perl warning when using the -l option

12 years agoRELEASE-NOTES: added two references
Daniel Stenberg [Tue, 20 Dec 2011 22:57:39 +0000 (23:57 +0100)]
RELEASE-NOTES: added two references

12 years agoCurl_socket_check: enlarge poll struct array to 3
Daniel Stenberg [Tue, 20 Dec 2011 22:33:54 +0000 (23:33 +0100)]
Curl_socket_check: enlarge poll struct array to 3

This function was introduced in commit 5527417afae0 and as pointed out
by Gokhan Sengun, the array with poll structs must large enough to hold
3 sockets since that is what the function can accept. It could be noted
that he had this fixed in his patch as posted in
http://curl.haxx.se/mail/lib-2011-12/0179.html

Bug: http://curl.haxx.se/mail/lib-2011-12/0228.html
Reported by: Gokhan Sengun

12 years agoRELEASE-NOTES: synced with 380bade777
Daniel Stenberg [Tue, 20 Dec 2011 22:27:41 +0000 (23:27 +0100)]
RELEASE-NOTES: synced with 380bade777

5 new bugfixes, 2 new changes and 4 new contributors

12 years agoTODO: remove active FTP from section 2.1
Daniel Stenberg [Tue, 20 Dec 2011 22:26:47 +0000 (23:26 +0100)]
TODO: remove active FTP from section 2.1

It is no longer done blocking in the multi interface

12 years agolibcurl docs: add the new FTP accept option + errors
Daniel Stenberg [Tue, 20 Dec 2011 22:14:18 +0000 (23:14 +0100)]
libcurl docs: add the new FTP accept option + errors

12 years agotimeleft_accept: ack global timeout, moved to ftp.c
Daniel Stenberg [Tue, 20 Dec 2011 19:55:54 +0000 (20:55 +0100)]
timeleft_accept: ack global timeout, moved to ftp.c

First off the timeout for accepting a server connect back must of course
respect a global timeout. Then the timeleft function is only used by ftp
code so it was moved to ftp.c and made static.

12 years agolibcurl-tutorial.3: curl doesn't sent pragma no-cache
Daniel Stenberg [Tue, 20 Dec 2011 19:32:47 +0000 (20:32 +0100)]
libcurl-tutorial.3: curl doesn't sent pragma no-cache

It did a long time ago

12 years agolibcurl-multi.3: active FTP is no longer blocking!
Daniel Stenberg [Tue, 20 Dec 2011 19:32:31 +0000 (20:32 +0100)]
libcurl-multi.3: active FTP is no longer blocking!

12 years agoFTP: move FTP-specific struct field to ftpc_conn
Daniel Stenberg [Tue, 20 Dec 2011 12:06:26 +0000 (13:06 +0100)]
FTP: move FTP-specific struct field to ftpc_conn

"wait_data_conn" was added to the connectionbits in commit c834213ad5 for
handling active FTP connections but as it is purely FTP specific and now
only ever accessed by ftp.c I moved it into the FTP connection struct.

12 years agonon-blocking active FTP: cleanup multi state usage
Daniel Stenberg [Tue, 20 Dec 2011 11:52:24 +0000 (12:52 +0100)]
non-blocking active FTP: cleanup multi state usage

Backpedaled out the funny double-change of state in the multi state
machine by adding a new argument to the do_more() function to signal
completion. This way it can remain in the DO_MORE state properly until
done. Long term, the entire DO_MORE logic should be moved into the FTP
code and be hidden from the multi code as the logic is only used for
FTP.

12 years agoFTP: perform active connections non-blocking
Gokhan Sengun [Mon, 19 Dec 2011 13:35:20 +0000 (14:35 +0100)]
FTP: perform active connections non-blocking

1- Two new error codes are introduced.

CURLE_FTP_ACCEPT_FAILED to be set whenever ACCEPTing fails because of
FTP server connected.

CURLE_FTP_ACCEPT_TIMEOUT to be set whenever ACCEPTing timeouts.

Neither of these errors are considered fatal and control connection
remains OK because it could just be a firewall blocking server to
connect to the client.

2- One new setopt option was introduced.

CURLOPT_ACCEPTTIMEOUT_MS

It sets the maximum amount of time FTP client is going to wait for a
server to connect. Internal default accept timeout is 60 seconds.

12 years agosockets: new Curl_socket_check() can wait for 3 sockets
Daniel Stenberg [Thu, 8 Dec 2011 15:14:30 +0000 (16:14 +0100)]
sockets: new Curl_socket_check() can wait for 3 sockets

This offers an alternative to the existing Curl_socket_ready() API which
only checks one socket for read and one for write.

12 years agocurl.h: add __ANDROID__ macro check
Cédric Deltheil [Tue, 20 Dec 2011 11:23:11 +0000 (12:23 +0100)]
curl.h: add __ANDROID__ macro check

When working with the Android Standalone Toolchain the compiler defines
this macro:

  /path/to/arm-linux-androideabi-gcc -E -dM - < /dev/null \
  | grep -i android
  #define __ANDROID__ 1

We really need to check both ANDROID and __ANDROID__ since I've observed
that:

* if you use Android.mk file(s) and the 'ndk-build' script (aka vanilla
way), ANDROID is predefined (see -DANDROID extra C flag),

* if you use the Android Standalone Toolchain, then __ANDROID__ is
predefined as stated by the compiler

12 years agolib500: verify timers relative each other
Daniel Stenberg [Tue, 20 Dec 2011 14:41:43 +0000 (15:41 +0100)]
lib500: verify timers relative each other

As commit ce896875f8 fixed a timer that accidentally had been moved in
code and then returned a bad timer, the lib500.c code (used in test 500
and some others) now verifies 5 timers against each other to verify that
they have the correct relative values. We cannot compare against
absolute values as the timings will vary a lot.

12 years agoCurl_pgrsTime: store now in an auto variable
Daniel Stenberg [Tue, 20 Dec 2011 14:05:50 +0000 (15:05 +0100)]
Curl_pgrsTime: store now in an auto variable

It makes it easier to introduce debug outputs in this function, and
everything in the function is using the value anyway so it might even be
more efficient.

12 years agotimer: restore PRETRANSFER timing
Daniel Stenberg [Tue, 20 Dec 2011 13:59:46 +0000 (14:59 +0100)]
timer: restore PRETRANSFER timing

Regression introduced in 7.23.0 with commit 9dd85bce. The function in
which the PRETRANSFER time stamp was recorded was moved in time causing
it be stored very quickly after the start timestamp. On most systems
shorter than 1 millisecond and thus it wouldn't even show with -w
"%{time_pretransfer}" using the command line tool.

Bug: http://curl.haxx.se/mail/archive-2011-12/0022.html
Reported by: Toni Moreno

12 years agolibcurl.m4: Fix quoting arguments of AC_LANG_PROGRAM
Bernhard Reutner-Fischer [Tue, 20 Dec 2011 12:31:08 +0000 (13:31 +0100)]
libcurl.m4: Fix quoting arguments of AC_LANG_PROGRAM

Parameters were underquoted, resulting in
warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
12 years agogitignore: ignore the symbol versioning file
Daniel Stenberg [Tue, 20 Dec 2011 10:07:23 +0000 (11:07 +0100)]
gitignore: ignore the symbol versioning file

12 years agotutorial: remove CURLM_CALL_MULTI_PERFORM add sharing
Daniel Stenberg [Tue, 20 Dec 2011 08:48:32 +0000 (09:48 +0100)]
tutorial: remove CURLM_CALL_MULTI_PERFORM add sharing

The CURLM_CALL_MULTI_PERFORM reference is an old leftover I had to
remove.

I also added some blurb to the previously blank "sharing" section.

12 years agoconfigure: add symbols versioning option
Alessandro Ghedini [Fri, 16 Dec 2011 14:33:48 +0000 (15:33 +0100)]
configure: add symbols versioning option

Allow, at configure time, the production of versioned symbols. The
symbols will look like "CURL_<FLAVOUR>_<VERSION> <SYMBOL>", where
<FLAVOUR> represents the SSL flavour (e.g. OPENSSL, GNUTLS, NSS, ...),
<VERSION> is the major SONAME version and <SYMBOL> is the actual symbol
name. If no SSL library is enabled the symbols will be just
"CURL_<VERSION> <SYMBOL>".

12 years agoUse Curl_ssl_connect for non-blocking connect fallback
Sven Wegener [Fri, 27 May 2011 15:46:11 +0000 (17:46 +0200)]
Use Curl_ssl_connect for non-blocking connect fallback

This gets the appconnect time right for ssl backends, which don't
support non-blocking connects.

Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
12 years agoRELEASE-NOTES: synced with af9bc1604c1
Daniel Stenberg [Mon, 19 Dec 2011 19:08:59 +0000 (20:08 +0100)]
RELEASE-NOTES: synced with af9bc1604c1

One new feature, one bug fix. Introduced references in this file for
mentioned issues after this discussion:
http://curl.haxx.se/mail/lib-2011-12/0187.html

The plan is to let the references get moved over to the changes.html
file at release-time

12 years agocurl.1: minor white space cleanup
Daniel Stenberg [Mon, 19 Dec 2011 13:23:23 +0000 (14:23 +0100)]
curl.1: minor white space cleanup

12 years agodocs: improve description of the --capath option
Alessandro Ghedini [Sat, 17 Dec 2011 14:04:57 +0000 (15:04 +0100)]
docs: improve description of the --capath option

Document the possibility of providing multiple values using the ":"
separator, and the fact that the default value will be ignored if the
option is used.

12 years agoDOCS: Added SMTP information to CURLOPT_INFILESIZE
Steve Holme [Thu, 15 Dec 2011 22:24:25 +0000 (22:24 +0000)]
DOCS: Added SMTP information to CURLOPT_INFILESIZE

12 years agoCurl_proxyCONNECT: use newlines in debug output
Daniel Stenberg [Sat, 17 Dec 2011 22:47:01 +0000 (23:47 +0100)]
Curl_proxyCONNECT: use newlines in debug output

12 years agocurl -F: fix multiple file upload with custom type
Daniel Stenberg [Fri, 16 Dec 2011 10:43:25 +0000 (11:43 +0100)]
curl -F: fix multiple file upload with custom type

Test case 1315 was added to verify this functionality. When passing in
multiple files to a single -F, the parser would get all confused if one
of the specified files had a custom type= assigned.

Reported by: Colin Hogben

12 years agoNew test for multiple file upload
Colin Hogben [Tue, 13 Dec 2011 21:00:38 +0000 (21:00 +0000)]
New test for multiple file upload

test 1315 checks correct behaviour when uploading multiple files.
Buggy behaviour has been seen where only two attachments are sent.

12 years agoconfigure: libtool 1.5 tweaks
Yang Tse [Thu, 15 Dec 2011 17:01:00 +0000 (18:01 +0100)]
configure: libtool 1.5 tweaks

12 years agoCorrect substitution var names
Colin Hogben [Thu, 15 Dec 2011 09:08:42 +0000 (09:08 +0000)]
Correct substitution var names

Two variable names were wrong in the documentation.

12 years agoCorrect default upload mimetype in manual
Colin Hogben [Wed, 14 Dec 2011 13:30:54 +0000 (13:30 +0000)]
Correct default upload mimetype in manual

The default content-type for file uploads is application/octet-stream,
not text/plain as stated in the MANUAL.

12 years agodocs: fix typo in curl_easy_setopt manpage
Alessandro Ghedini [Wed, 14 Dec 2011 21:00:56 +0000 (22:00 +0100)]
docs: fix typo in curl_easy_setopt manpage

12 years agoif2ip.[ch]: fix compilation with MinGW
Yang Tse [Tue, 13 Dec 2011 17:37:33 +0000 (18:37 +0100)]
if2ip.[ch]: fix compilation with MinGW

Avoid 'interface' literal that some MinGW versions define as a macro

12 years agoconnect.c: fix compiler warning 'enumerated type is mixed with another type'
Yang Tse [Tue, 13 Dec 2011 15:18:08 +0000 (16:18 +0100)]
connect.c: fix compiler warning 'enumerated type is mixed with another type'

12 years agoif2ip.c: fix compiler warning 'unused parameter'
Yang Tse [Tue, 13 Dec 2011 15:08:42 +0000 (16:08 +0100)]
if2ip.c: fix compiler warning 'unused parameter'

12 years agopop3.c: fix compiler warning variable may be used uninitialized
Yang Tse [Tue, 13 Dec 2011 14:58:02 +0000 (15:58 +0100)]
pop3.c: fix compiler warning variable may be used uninitialized

12 years agoif2ip.c: fix compiler warning 'enumerated type is mixed with another type'
Yang Tse [Tue, 13 Dec 2011 14:47:26 +0000 (15:47 +0100)]
if2ip.c: fix compiler warning 'enumerated type is mixed with another type'

12 years agoCURLOPT_INTERFACE: avoid resolving interfaces names
Jason Glasgow [Fri, 4 Nov 2011 20:48:05 +0000 (16:48 -0400)]
CURLOPT_INTERFACE: avoid resolving interfaces names

Do not try to resolve interfaces names via DNS by recognizing interface
names in a few ways.  If the interface option argument has a prefix of
"if!" then treat the argument as only an interface.  Similarly, if the
interface argument is the name of an interface (even if it does not have
an IP address assigned), treat it as an interface name.  Finally, if the
interface argument is prefixed by "host!" treat it as a hostname that
must be resolved by /etc/hosts or DNS.

These changes allow a client using the multi interfaces to avoid
blocking on name resolution if the interface loses its IP address or
disappears.

12 years agoRELEASE-NOTES: synced with 1259ccf7474
Daniel Stenberg [Mon, 12 Dec 2011 19:06:50 +0000 (20:06 +0100)]
RELEASE-NOTES: synced with 1259ccf7474

5 more bugfixes, 5 more contributors

12 years agoConnectionExists: Fix reuse for TLS upgraded connections
Steve Holme [Sun, 11 Dec 2011 16:03:08 +0000 (16:03 +0000)]
ConnectionExists: Fix reuse for TLS upgraded connections

Fixed the connection reuse detection in ConnectionExists() when
comparing a new connection that is non-SSL based against that of a SSL
based connection that has become so by being upgraded via TLS.

12 years agocreate_conn: don't switch to HTTP protocol if tunneling is enabled
Daniel Stenberg [Fri, 9 Dec 2011 21:51:08 +0000 (22:51 +0100)]
create_conn: don't switch to HTTP protocol if tunneling is enabled

This is a regression since who knows when. When spotting that a HTTP
proxy is used we must not uncondititionally enable the HTTP protocol
since if we do tunneling through the proxy we're still using the target
protocol.

Reported by: Naveen Chandran

12 years agoFAQ: add --resolve details to question 3.19
Daniel Stenberg [Wed, 7 Dec 2011 22:08:15 +0000 (23:08 +0100)]
FAQ: add --resolve details to question 3.19

12 years agoCurl_closesocket: clear sock_accepted on close
Gokhan Sengun [Wed, 7 Dec 2011 15:00:20 +0000 (16:00 +0100)]
Curl_closesocket: clear sock_accepted on close

As a follow-up from commit d5b5f64bce3a8, clear the sock_accepted status
when such a socket is closed to avoid a re-used connection to retain the
state wrongly.

Bug: http://curl.haxx.se/mail/lib-2011-12/0079.html

12 years agostatic SSL windows builds: add more libs to the link
Daniel Stenberg [Wed, 7 Dec 2011 14:52:25 +0000 (15:52 +0100)]
static SSL windows builds: add more libs to the link

Starting with some recent OpenSSL versions (1.0.0e was mentioned)
linking with a static openssl requires a set of more libs to be linked
on Windows.

Thanks also to Steve Holme and Martin Storsjö for additional feedback.

Bug: http://curl.haxx.se/mail/lib-2011-12/0063.html
Reported by: Ward Willats

12 years agomulti interface: fix block when CONNECT_ONLY option is used
Gokhan Sengun [Tue, 6 Dec 2011 22:41:24 +0000 (23:41 +0100)]
multi interface: fix block when CONNECT_ONLY option is used

12 years agoAdded some include files in a couple of example programs
Dan Fandrich [Wed, 7 Dec 2011 03:54:48 +0000 (19:54 -0800)]
Added some include files in a couple of example programs

This improves portability of the examples.  This patch was
submitted to the OpenBSD ports collection by naddy.

12 years agoMakefileBuild: fix the static build
Daniel Stenberg [Tue, 6 Dec 2011 19:02:57 +0000 (20:02 +0100)]
MakefileBuild: fix the static build

This is a left-over fix from commit b7e242de0e that Tom Wright
suggested.

Reported by: Ward Willats

12 years agoOpenSSL: check for the SSLv2 function in configure
Daniel Stenberg [Tue, 6 Dec 2011 13:22:45 +0000 (14:22 +0100)]
OpenSSL: check for the SSLv2 function in configure

If no SSLv2 was detected in OpenSSL by configure, then we enforce the
OPENSSL_NO_SSL2 define as it seems some people report it not being
defined properly in the OpenSSL headers.

12 years agoCURLOPT_CONNECTTIMEOUT: default is 300 seconds
Daniel Stenberg [Mon, 5 Dec 2011 22:19:50 +0000 (23:19 +0100)]
CURLOPT_CONNECTTIMEOUT: default is 300 seconds

If the option is set to 0, the default timeout will be used - which in
modern libcurl versions equals 300 seconds (== 5 minutes).

Bug: http://curl.haxx.se/mail/lib-2011-12/0051.html
Reported by: Vladimir Grishchenko

12 years agoprogress function example: include timed interval
Rob Ward [Mon, 5 Dec 2011 22:07:38 +0000 (23:07 +0100)]
progress function example: include timed interval

Adds a timer based off of CURLINFO_TOTAL_TIME that is used to perform
certain actions after a minimum amount of time has passed using the
progress function. As a consequence the curl handle is now also passed
into the progress function. Progress example now also includes an
example of how to retreive the TOTAL_TIME and print it out.

12 years agoRELEASE-NOTES: synced with 347f951c390
Daniel Stenberg [Mon, 5 Dec 2011 21:58:30 +0000 (22:58 +0100)]
RELEASE-NOTES: synced with 347f951c390

8 more bugs, 5 more contributors

12 years agoSSH: fix CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
Daniel Stenberg [Mon, 5 Dec 2011 21:20:48 +0000 (22:20 +0100)]
SSH: fix CURLOPT_SSH_HOST_PUBLIC_KEY_MD5

When a 32 digit hex key is given as a hostkey md5 checksum, the code
would still run it against the knownhost check and not properly
acknowledge that the md5 should then be the sole guide for.

The verbose output now includes the evaluated MD5 hostkey checksum.

Some related source code comments were also updated.

Bug: http://curl.haxx.se/bug/view.cgi?id=3451592
Reported by: Reza Arbab

12 years agoCurl_resolver_is_resolved: differentiate between host/proxy errors
Daniel Stenberg [Mon, 5 Dec 2011 11:44:55 +0000 (12:44 +0100)]
Curl_resolver_is_resolved: differentiate between host/proxy errors

As there are different return codes for host vs proxy errors, this function
now properly returns the code properly depending on what was attempted to get
resolved.

Bug: http://curl.haxx.se/mail/archive-2011-12/0010.html
Reported by: Jason Liu

12 years agoc-ares: return proxy failure for all proxy types
Daniel Stenberg [Mon, 5 Dec 2011 11:41:38 +0000 (12:41 +0100)]
c-ares: return proxy failure for all proxy types

When making a distinction which return code to return, the code previously
only regarded HTTP proxies to be proxies and thus return host-related errors
for failures on other proxy types than HTTP. Now all proxy types will be
considered proxies...

12 years agoFTP: close callback fix
Daniel Stenberg [Mon, 5 Dec 2011 11:34:27 +0000 (12:34 +0100)]
FTP: close callback fix

Keep track of which sockets that are the result of accept() calls and
refuse to call the closesocket callback for those sockets. Test case 596
now verifies that the open socket callback is called the same number of
times as the closed socket callback for active FTP connections.

Bug: http://curl.haxx.se/mail/lib-2011-12/0018.html
Reported by: Gokhan Sengun

12 years agoFTP: call opensocket callback properly
Daniel Stenberg [Mon, 5 Dec 2011 10:42:10 +0000 (11:42 +0100)]
FTP: call opensocket callback properly

When the new socket is created for an active connection, it is now done
using the open socket callback.

Test case 596 was modified to run fine, although it hides the fact that
the close callback is still called too many times, as it also gets
called for closing sockets that were created with accept().

12 years agoCurl_socket: internal replacement for socket()
Daniel Stenberg [Mon, 5 Dec 2011 09:58:38 +0000 (10:58 +0100)]
Curl_socket: internal replacement for socket()

Moved out into a separate function to work as a "generic" socket()
replacement.

12 years agotest: verify the opensocket callback for FTP
Daniel Stenberg [Sun, 4 Dec 2011 22:10:12 +0000 (23:10 +0100)]
test: verify the opensocket callback for FTP

test 595: for passive FTP
test 596: for active FTP

12 years agoCURLOPT_DNS_SERVERS: set name servers if possible (fix)
Jason Glasgow [Thu, 1 Dec 2011 04:39:02 +0000 (23:39 -0500)]
CURLOPT_DNS_SERVERS: set name servers if possible (fix)

Ensure that CURLE_OK is returned if setting the name servers is successfull.

12 years agomulti interface: only use non-NULL function pointer!
Daniel Stenberg [Fri, 2 Dec 2011 20:10:28 +0000 (21:10 +0100)]
multi interface: only use non-NULL function pointer!

If the socket callback function pointer hasn't been set, we must not
attempt to use it. Commit adc88ca20 made it more likely to occur.

12 years agomulti: handle timeouts on DNS servers by checking for new sockets
Jason Glasgow [Wed, 30 Nov 2011 20:23:44 +0000 (15:23 -0500)]
multi: handle timeouts on DNS servers by checking for new sockets

If the first name server is not available, the multi interface does
not invoke the socket_cb when the DNS request to the first name server
timesout.  Ensure that the list of sockets are always updated after
calling Curl_resolver_is_resolved.

This bug can be reproduced if Curl is complied with --enable_ares and
your code uses the multi socket interfaces and the
CURLMOPT_SOCKETFUNCTION option.  To test try:
  iptables -I INPUT \
           -s $(sed -n -e '/name/{s/.* //p;q}' /etc/resolv.conf)/32 \
           -j REJECT
and then run a program which uses the multi-interface.

12 years agotest 815: verify POP3 dot-first-on-line unescaping
Daniel Stenberg [Thu, 1 Dec 2011 09:20:42 +0000 (10:20 +0100)]
test 815: verify POP3 dot-first-on-line unescaping

12 years agoPOP3: fixed escaped dot not being striped out
Steve Holme [Wed, 30 Nov 2011 18:23:09 +0000 (18:23 +0000)]
POP3: fixed escaped dot not being striped out

Changed the eob detection to work across the whole of the buffer so that
lines that begin with a dot (which the server will have escaped) are
passed to the client application correctly.

12 years agobuildconf: follow-up for commit 7e02f7fd
Yang Tse [Wed, 30 Nov 2011 20:53:21 +0000 (21:53 +0100)]
buildconf: follow-up for commit 7e02f7fd

12 years agobuildconf: fix libtool 1.5.x warnings triggered with autoconf 2.6x or later
Yang Tse [Wed, 30 Nov 2011 18:31:50 +0000 (19:31 +0100)]
buildconf: fix libtool 1.5.x warnings triggered with autoconf 2.6x or later

Using libtool 1.5.x (x < 26) with autoconf 2.6x or later generates warnings
due to some libtool variables not following naming convention for variables
that will be cached.

This is addressed renaming a couple of variables to make these follow expected
naming convention.

12 years agoRELEASE-NOTES: synced with 1038d0aa1
Daniel Stenberg [Wed, 30 Nov 2011 15:38:58 +0000 (16:38 +0100)]
RELEASE-NOTES: synced with 1038d0aa1

5 bugfixes and 1 new contributor

12 years agopop3.c: fix compiler warning
Yang Tse [Tue, 29 Nov 2011 19:28:49 +0000 (20:28 +0100)]
pop3.c: fix compiler warning

12 years agoconfigure: avoid usage of macro PKG_CHECK_MODULES
Yang Tse [Tue, 29 Nov 2011 18:11:34 +0000 (19:11 +0100)]
configure: avoid usage of macro PKG_CHECK_MODULES

libidn option adjusted in order to use pkg-config info when available
in a similar way as we already do for other libraries.

12 years agoPOP3: detect when LIST returns no mails
Daniel Stenberg [Tue, 29 Nov 2011 12:43:46 +0000 (13:43 +0100)]
POP3: detect when LIST returns no mails

By making sure the function can detect an "end of body" sequence
immediately on the first line, test 811 is now enabled.

12 years agoftpserver: output CRLF in logs
Daniel Stenberg [Tue, 29 Nov 2011 12:41:10 +0000 (13:41 +0100)]
ftpserver: output CRLF in logs

Previously the log function would just filter out all CR and LF
occurances from the log to make it more readable. This had the downside
that it made it very hard to see CR LFs when they actually matters.

Now, they're instead converted to "[CR]" and "[LR]" in the log to become
apparent to readers.