tool_help: Added login options to --user description
FTP: make the data connection work when going through proxy

This is a regression since the switch to always-multi internally
c43127414d89c.

Test 1316 was modified since we now clearly call the Curl_client_write()
function when doing the LIST transfer part and then the
handler->protocol says FTP and ftpc.transfertype is 'A' which implies
text converting even though that the response is initially a HTTP
CONNECT response in this case.
ftp: Fixed compiler warning

warning: 'result' may be used uninitialized in this function
email: Moved authentication message parsing into a separate function

...in preparation for upcoming modifications.
email: Added initial support for cancelling authentication

Should a client application fail to decode an authentication message
received from a server, or not support any of the parameters given by
the server in the message, then the authentication phrase should be
cancelled gracefully by the client rather than simply terminating the
connection.

The authentication phrase should be cancelled by simply sending a '*'
to the server, in response to erroneous data being received, as per
RFC-3501, RFC-4954 and RFC-5034.

This patch adds the necessary state machine constants and appropriate
response handlers in order to add this functionality for the CRAM-MD5,
DIGEST-MD5 and NTLM authentication mechanisms.
Add "Happy Eyeballs" for IPv4/IPv6.

This patch invokes two socket connect()s nearly simultaneously, and
the socket that is first connected "wins" and is subsequently used for
the connection. The other is terminated.

There is a very slight IPv4 preference, in that if both sockets connect
simultaneously IPv4 is checked first and thus will win.
TODO: remove "Happy Eyeball dual stack connect"

... as it was just merged in commit 7d7df
Typo fix in trynextip().
email: Added support for canceling CRAM-MD5 authentication
docs/examples/httpput.c: fix build for MSVC

"Dan Fandrich" <dan@coneharvesters.com> wrote:

>> But I'm not sure <unistd.h> is needed at all.
>
> It's needed for close(2). But the only reason that's needed is because fstat
> is used instead of stat(2); if you fix that, then you could remove that
> include altogether.

Okay. I've tested the following with MSVC and MingW. htttput.c now
simply uses stat():
email: Corrected a couple of typos from 1e39b95682781f
email: Added support for cancelling DIGEST-MD5 authentication
sasl: Removed unused variables from commit b87ba2c94217c0
email: Added support for cancelling NTLM authentication
OS400: coding style standards
SECURITY: "curl security for developers"

Describes our security process from a project and curl developer's
perspective.
sasl: Updated create_digest_md5_message() to use a dynamic buffer
bugfix: Don't block waiting for socket1 connect.

This patch fixes a bug in Happy Eyeballs where curl would wait for a
connect response from socket1 before checking socket2.

Also, it updates error messages for failed connections, showing the ip
addresses that failed rather than just the host name repeatedly.

Bug: http://curl.haxx.se/mail/lib-2013-10/0236.html
Reported-by: Paul Marks
RELEASE-NOTES: synced with 255826c40f9316
base64: Added basic validation to base64 input string when decoding

A base64 string should be a multiple of 4 characters in length, not
contain any more than 2 padding characters and only contain padding
characters at the end of string. For example: Y3VybA==

Strings such as the following are considered invalid:

Y=   - Invalid length
Y==  - Invalid length
Y=== - More than two padding characters
Y=x= - Padding character contained within string