Jay Satiro [Tue, 22 Mar 2016 07:03:11 +0000 (03:03 -0400)]
build-wolfssl: Update VS properties for wolfSSL v3.9.0
- Do not use wolfSSL's sample user-setting files.
wolfSSL starting in v3.9.0 has added their own sample user settings that
are applied by default, but we don't use them because we have our own
settings.
- Do not use wolfSSL's Visual Studio Unicode character setting.
wolfSSL Visual Studio projects use the Unicode character set however our
settings and options imitate mingw build which does not use the Unicode
character set. This does not appear to have any effect at the moment but
better safe than sorry.
These changes are backwards compatible with earlier versions.
Steve Holme [Sat, 19 Mar 2016 17:57:43 +0000 (17:57 +0000)]
build: Added missing Visual Studio filter files for VC10 onwards
As these files don't need to contain references to the source files,
although typically do, added basic files which only include three
filters and don't require the project file generator to be modified.
These files allow the source code to be viewed in the Solution Explorer
in versions of Visual Studio from 2010 onwards in the same manner as
previous versions did rather than one large view of files.
Daniel Stenberg [Fri, 18 Mar 2016 15:26:05 +0000 (16:26 +0100)]
configure: use cpp -P when needed
Since gcc 5, the processor output can get split up on multiple lines
that made the configure script fail to figure out values from
definitions. The fix is to use cpp -P, and this fix now first checks if
cpp -P is necessary and then if cpp -P works before it uses that to
extract defined values.
Steve Holme [Fri, 18 Mar 2016 07:19:31 +0000 (07:19 +0000)]
formdata.c: Fixed compilation warning
formdata.c:390: warning: cast from pointer to integer of different size
Introduced in commit ca5f9341ef this happens because a char*, which is
32-bits wide in 32-bit land, is being cast to a curl_off_t which is
64-bits wide where 64-bit integers are supported by the compiler.
This doesn't happen in 64-bit land as a pointer is the same size as a
curl_off_t.
This fix doesn't address the fact that a 64-bit value cannot be used
for CURLFORM_CONTENTLEN when set in a form array and compiled on a
32-bit platforms, it does at least suppress the compilation warning.
Daniel Stenberg [Mon, 14 Mar 2016 08:18:01 +0000 (09:18 +0100)]
multi: introduce sh_getentry() for looking up sockets in the sockhash
Simplify the code by using a single entry that looks for a socket in the
socket hash. As indicated in #712, the code looked for CURL_SOCKET_BAD
at some point and that is ineffective/wrong and this makes it easier to
avoid that.
Daniel Stenberg [Thu, 10 Mar 2016 12:52:22 +0000 (13:52 +0100)]
ftp: remove a check for NULL(!)
... as it implies we need to check for that on all the other variable
references as well (as Coverity otherwise warns us for missing NULL
checks), and we're alredy making sure that the pointer is never NULL.
Daniel Stenberg [Thu, 10 Mar 2016 10:20:56 +0000 (11:20 +0100)]
cookies: first n/v pair in Set-Cookie: is the cookie, then parameters
RFC 6265 section 4.1.1 spells out that the first name/value pair in the
header is the actual cookie name and content, while the following are
the parameters.
libcurl previously had a more liberal approach which causes significant
problems when introducing new cookie parameters, like the suggested new
cookie priority draft.
The previous logic read all n/v pairs from left-to-right and the first
name used that wassn't a known parameter name would be used as the
cookie name, thus accepting "Set-Cookie: Max-Age=2; person=daniel" to be
a cookie named 'person' while an RFC 6265 compliant parser should
consider that to be a cookie named 'Max-Age' with an (unknown) parameter
'person'.
Daniel Stenberg [Wed, 9 Mar 2016 09:57:42 +0000 (10:57 +0100)]
curl_multi_wait: never return -1 in 'numfds'
Such a return value isn't documented but could still happen, and the
curl tool code checks for it. It would happen when the underlying
Curl_poll() function returns an error. Starting now we mask that error
as a user of curl_multi_wait() would have no way to handle it anyway.
Jay Satiro [Sun, 6 Mar 2016 02:35:16 +0000 (21:35 -0500)]
mbedtls: fix user-specified SSL protocol version
Prior to this change when a single protocol CURL_SSLVERSION_ was
specified by the user that version was set only as the minimum version
but not as the maximum version as well.
Viktor Szakats [Wed, 2 Mar 2016 02:00:37 +0000 (03:00 +0100)]
makefile.m32: fix to allow -ssh2-winssl combination
In makefile.m32, option -ssh2 (libssh2) automatically implied -ssl
(OpenSSL) option, with no way to override it with -winssl. Since both
libssh2 and curl support using Windows's built-in SSL backend, modify
the logic to allow that combination.
Viktor Szakats [Tue, 1 Mar 2016 19:50:13 +0000 (20:50 +0100)]
makefile.m32: allow to pass .dll/.exe-specific LDFLAGS
using envvars `CURL_LDFLAG_EXTRAS_DLL` and
`CURL_LDFLAG_EXTRAS_EXE` respectively. This
is useful f.e. to pass ASLR-related extra
options, that are required to make this
feature work when using the mingw toolchain.