Steve Holme [Sun, 8 Sep 2013 21:30:10 +0000 (22:30 +0100)]
ftpserver.pl: Added support for POP3 UIDL command
Daniel Stenberg [Mon, 9 Sep 2013 13:18:09 +0000 (15:18 +0200)]
http2: adjust to new nghttp2_pack_settings_payload proto
This function was modified in nghttp2 git commit
a1c3f89c72e51
Kamil Dudka [Mon, 9 Sep 2013 11:10:53 +0000 (13:10 +0200)]
url: handle abortion by read/write callbacks, too
Otherwise, the FTP protocol would unnecessarily hang 60 seconds if
aborted in the CURLOPT_HEADERFUNCTION callback.
Reported by: Tomas Mlcoch
Bug: https://bugzilla.redhat.com/1005686
Daniel Stenberg [Sun, 8 Sep 2013 22:01:52 +0000 (00:01 +0200)]
ldap: fix the build for systems with ldap_url_parse()
Make sure that the custom struct fields are only used by code that
doesn't use a struct defintion from the outside.
Attempts to fix the problem introduced in
3dc6fc42bfc61b
Jiri Hruska [Sun, 8 Sep 2013 23:05:14 +0000 (01:05 +0200)]
pingpong: Check SSL library buffers for already read data
Otherwise the connection can get stuck during various phases, waiting
for new data on the socket using select() etc., but it will never be
received as the data has already been read into SSL library.
Steve Holme [Sun, 8 Sep 2013 09:30:43 +0000 (10:30 +0100)]
imap: Fixed calculation of transfer when partial FETCH received
The transfer size would be calculated incorrectly if the email contained
within the FETCH response, had been partially received by the pingpong
layer. As such the following, example output, would be seen if the
amount remaining was smaller than the amount received:
* Excess found in a non pipelined read: excess = 1394, size = 262,
maxdownload = 262, bytecount = 1374
* transfer closed with -1112 bytes remaining to read
Bug: http://curl.haxx.se/mail/lib-2013-08/0170.html
Reported-by: John Dunn
Steve Holme [Sun, 8 Sep 2013 22:59:49 +0000 (23:59 +0100)]
ftpserver.pl: Fixed empty array checks
...from commits
28427b408326a1 and
e8313697b6554b.
Steve Holme [Sun, 8 Sep 2013 20:46:32 +0000 (21:46 +0100)]
ftpserver: Reworked AUTH support to allow for specifying the mechanisms
Renamed SUPPORTAUTH to AUTH and added support for specifying a list of
supported SASL mechanisms to return to the client.
Additionally added the directive to the FILEFORMAT document.
Steve Holme [Sun, 8 Sep 2013 20:17:47 +0000 (21:17 +0100)]
ftpserver: Reworked CAPA support to allow for specifying the capabilities
Renamed SUPPORTCAPA to CAPA and added support for specifying a list of
supported capabilities to return to the client.
Additionally added the directive to the FILEFORMAT document.
Steve Holme [Sun, 8 Sep 2013 19:16:49 +0000 (20:16 +0100)]
ftpserver.pl: Corrected POP3 LIST as message numbers should be contiguous
The message numbers given in the LIST response are an index into the
list, which are only valid for the current session, rather than being a
unique message identifier. An index would only be missing from the LIST
response if a DELE command had been issued within the same session and
had not been committed by the end of session QUIT command. Once
committed the POP3 server will regenerate the message numbers in the
next session to be contiguous again. As such our LIST response should
list message numbers contiguously until we support a DELE command in the
same session.
Should a POP3 user require the unique message ID for any or all
messages then they should use the extended UIDL command. This command
will be supported by the test ftpserver in an upcoming commit.
Clemens Gruber [Sun, 8 Sep 2013 17:01:26 +0000 (19:01 +0200)]
curl_easy_pause: suggest one way to unpause
Steve Holme [Sun, 8 Sep 2013 15:57:15 +0000 (16:57 +0100)]
tests: Updated descriptions to be more meaningful
Steve Holme [Sun, 8 Sep 2013 15:55:39 +0000 (16:55 +0100)]
tests: Added test for POP3 NOOP command
Steve Holme [Sun, 8 Sep 2013 15:41:12 +0000 (16:41 +0100)]
ftpserver.pl: Added support for POP3 NOOP command
Steve Holme [Sun, 8 Sep 2013 15:39:41 +0000 (16:39 +0100)]
ftpserver.pl: Fixed 'Use of uninitialized value $args in string ne'
Steve Holme [Sun, 8 Sep 2013 07:51:37 +0000 (08:51 +0100)]
tests: Added test for POP3 STAT command
Steve Holme [Sun, 8 Sep 2013 07:37:37 +0000 (08:37 +0100)]
ftpserver.pl: Added support for POP STAT command
Steve Holme [Sun, 8 Sep 2013 07:35:38 +0000 (08:35 +0100)]
ftpserver.pl: Moved POP3 QUIT handler into own function
Steve Holme [Sat, 7 Sep 2013 22:20:08 +0000 (23:20 +0100)]
ftpserver.pl: Reordered the POP3 handlers to be alphabetical
In preparation for additional POP3 tests, re-ordered the command
function defintions to be sorted alphabetically.
Steve Holme [Sat, 7 Sep 2013 22:14:54 +0000 (23:14 +0100)]
ftpserver.pl: Corrected misaligned indentation in POP3 handlers
Fixed incorrect indentation used in both the RETR_pop3 and LIST_pop3
functions which was 5 and 9 characters rather than 4 and 8.
Steve Holme [Sat, 7 Sep 2013 18:49:12 +0000 (19:49 +0100)]
tests: Added test for POP3 DELE command
Steve Holme [Sat, 7 Sep 2013 18:27:52 +0000 (19:27 +0100)]
ftpserver.pl: Added support for POP3 DELE command
Daniel Stenberg [Sat, 7 Sep 2013 17:47:26 +0000 (19:47 +0200)]
http2: include curl_memory.h
Detected by test 1132
Nick Zitzmann [Sat, 7 Sep 2013 15:00:11 +0000 (10:00 -0500)]
http: fix build warning under LLVM
When building the code using LLVM Clang without NGHTTP2, I was getting
this warning:
../lib/http.h:155:1: warning: empty struct is a GNU extension [-Wgnu]
Placing a dummy variable into the data structure silenced the warning.
Daniel Stenberg [Sat, 7 Sep 2013 11:01:43 +0000 (13:01 +0200)]
http2: actually init nghttp2 and send HTTP2-Settings properly
Daniel Stenberg [Sat, 7 Sep 2013 09:12:12 +0000 (11:12 +0200)]
README.http2: how to use it best with the multi API?
Daniel Stenberg [Sat, 7 Sep 2013 09:03:23 +0000 (11:03 +0200)]
http2: first embryo toward Upgrade:
Daniel Stenberg [Wed, 4 Sep 2013 21:24:15 +0000 (23:24 +0200)]
http: rename use_http_1_1 to use_http_1_1plus
Since it now actually says if 1.1 or a later version should be used.
Daniel Stenberg [Sat, 7 Sep 2013 09:12:36 +0000 (11:12 +0200)]
configure: improve CURL_CHECK_COMPILER_PROTOTYPE_MISMATCH
The compiler test used a variable before it was assigned when it tried
to see how it acts on a mismatching prototype, which could cause a false
positive.
Petr Písař [Tue, 20 Aug 2013 15:02:53 +0000 (17:02 +0200)]
Pass password to OpenSSL engine by user interface
Recent OpenSSL uses user interface abstraction to negotiate access to
private keys in the cryprographical engines. An OpenSSL application is
expected to implement the user interface. Otherwise a default one
provided by OpenSSL (interactive standard I/O) will be used and the
aplication will have no way how to pass a password to the engine.
Longer-desc: http://curl.haxx.se/mail/lib-2013-08/0265.html
Daniel Stenberg [Fri, 6 Sep 2013 21:27:47 +0000 (23:27 +0200)]
urlglob: improved error messages and column number on bad use
Introduce a convenience macro and keep of the column better so that it
can point out the offending column better.
Updated test 75 accordingly.
Daniel Stenberg [Fri, 6 Sep 2013 12:20:03 +0000 (14:20 +0200)]
urlglob: avoid error code translation
By using the correct values from the start we don't have to translate
them!
Daniel Stenberg [Fri, 6 Sep 2013 12:12:44 +0000 (14:12 +0200)]
urlglob: avoid NULL pointer dereference
Thanks to clang-analyzer
Gisle Vanem [Fri, 6 Sep 2013 11:56:35 +0000 (13:56 +0200)]
http2: use correct include for snprintf
Using the first little merge of nghttp2 into libcurl, I stumbeled on the
missing 'snprintf' in MSVCRT. Isn't this how we do it for other libcurl
files? I.e. use 'curl_msnprintf' and not 'snprintf' directly:
Daniel Stenberg [Fri, 6 Sep 2013 11:52:56 +0000 (13:52 +0200)]
--data: mention CRLF treatment when reading from file
Geoff Beier [Thu, 5 Sep 2013 21:51:53 +0000 (17:51 -0400)]
LDAP: fix bad free() when URL parsing failed
When an error occurs parsing an LDAP URL, The ludp->lud_attrs[i] entries
could be freed even though they sometimes point to data within an
allocated area.
This change introduces a lud_attrs_dup[] array for the duplicated string
pointers, and it removes the unused lud_exts array.
Bug: http://curl.haxx.se/mail/lib-2013-08/0209.html
Nick Zitzmann [Thu, 5 Sep 2013 23:57:06 +0000 (18:57 -0500)]
darwinssl: add support for PKCS#12 files for client authentication
I also documented the fact that the OpenSSL engine also supports them.
Daniel Stenberg [Thu, 5 Sep 2013 10:04:41 +0000 (12:04 +0200)]
symbols: added HTTP2 symbols and sorted list
CURL_HTTP_VERSION_2_0 and CURL_VERSION_HTTP2 are new
Daniel Stenberg [Thu, 5 Sep 2013 10:03:24 +0000 (12:03 +0200)]
configure: add HTTP2 as a curl-config --feature output
Fixes the test 1014 failure
Daniel Stenberg [Thu, 5 Sep 2013 07:56:05 +0000 (09:56 +0200)]
curl: unbreak --http1.0 again
I broke it in
2eabb7d590
Daniel Stenberg [Wed, 4 Sep 2013 20:32:57 +0000 (22:32 +0200)]
SASL: fix compiler warnings
comparison between signed and unsigned integer expressions
suggest parentheses around '&&' within '||' (twice)
Daniel Stenberg [Wed, 4 Sep 2013 20:28:16 +0000 (22:28 +0200)]
curl: add --http1.1 and --http2.0 options
Daniel Stenberg [Tue, 3 Sep 2013 21:32:08 +0000 (23:32 +0200)]
Curl_setopt: refuse CURL_HTTP_VERSION_2_0 if built without support
Daniel Stenberg [Tue, 3 Sep 2013 21:17:06 +0000 (23:17 +0200)]
http2: add http2.[ch] and add nghttp2 version output
Daniel Stenberg [Tue, 3 Sep 2013 21:14:51 +0000 (23:14 +0200)]
curl -V: output HTTP2 as a feature if present
Daniel Stenberg [Tue, 3 Sep 2013 21:11:07 +0000 (23:11 +0200)]
curl.h: add CURL_VERSION_HTTP2 as a feature
It isn't added as a separate protocol as HTTP2 will be done over HTTP://
URLs that can be upgraded to HTTP2 if the server supports it as well.
Steve Holme [Wed, 4 Sep 2013 20:27:01 +0000 (21:27 +0100)]
imap/smtp: Fixed incorrect SASL mechanism selection with XOAUTH2 servers
XOAUTH2 would be selected in preference to LOGIN and PLAIN if the IMAP
or SMTP server advertised support for it even though a user's password
was supplied but bearer token wasn't.
Modified the selection logic so that XOAUTH2 will only be selected if
the server supports it and A) The curl user/libcurl programmer has
specifically asked for XOAUTH via the ;AUTH=XOAUTH login option or 2)
The bearer token is specified. Obviously if XOAUTH is asked for via
the login option but no token is specified the user will receive a
authentication failure which makes more sense than no known
authentication mechanisms supported!
Daniel Stenberg [Mon, 2 Sep 2013 21:30:38 +0000 (23:30 +0200)]
curl.h: added CURL_HTTP_VERSION_2_0
Initial library considerations documented in lib/README.http2
Daniel Stenberg [Mon, 2 Sep 2013 21:14:23 +0000 (23:14 +0200)]
configure: added --with-nghttp2
Daniel Stenberg [Tue, 3 Sep 2013 22:01:03 +0000 (00:01 +0200)]
acinclude: fix --without-ca-path when cross-compiling
The commit
7b074a460b64811 to CURL_CHECK_CA_BUNDLE in 7.31 (don't check
for paths when cross-compiling) causes --without-ca-path to no longer
works when cross-compiling, since ca and capath only ever get set to
"no" when not cross-compiling, I attach a patch that works for me. Also
in the cross-compilation case, no ca-path seems to be a better default
(IMVHO) than empty ca-path.
Bug: http://curl.haxx.se/bug/view.cgi?id=1273
Patch-by: Stefan Neis
Steve Holme [Mon, 2 Sep 2013 19:39:53 +0000 (20:39 +0100)]
lib1512.c: Fixed compilation warning
An enumerated type is mixed with another type.
...as well as a small coding style error.
Guenter Knauf [Sun, 1 Sep 2013 21:08:29 +0000 (23:08 +0200)]
Killed warning 'res' might be used uninitialized.
Steve Holme [Sun, 1 Sep 2013 12:30:12 +0000 (13:30 +0100)]
url.c: Fixed compilation warning
An enumerated type is mixed with another type
Steve Holme [Sun, 1 Sep 2013 11:48:50 +0000 (12:48 +0100)]
easy.c: Fixed compilation warning
warning: `code' might be used uninitialized in this function
Daniel Stenberg [Sat, 31 Aug 2013 20:55:53 +0000 (22:55 +0200)]
-x: rephrased the --proxy section somewhat
Steve Holme [Sat, 31 Aug 2013 17:31:47 +0000 (18:31 +0100)]
tests: Added test for IMAP CHECK command
Steve Holme [Sat, 31 Aug 2013 17:29:15 +0000 (18:29 +0100)]
ftpserver.pl: Added support for the IMAP CHECK command
Guenter Knauf [Sat, 31 Aug 2013 17:12:35 +0000 (19:12 +0200)]
Removed reference to krb4.c.
Steve Holme [Sat, 31 Aug 2013 10:10:20 +0000 (11:10 +0100)]
ftpserver.pl: Corrected flawed logic in commit
1ca6ed7b75cad0
Steve Holme [Sat, 31 Aug 2013 09:49:49 +0000 (10:49 +0100)]
imap: Fixed response check for EXPUNGE command
Steve Holme [Sat, 31 Aug 2013 09:41:25 +0000 (10:41 +0100)]
ftpserver.pl: Added argument check to IMAP command handlers
Added BAD argument check to the following IMAP command handlers:
APPEND, STORE, LIST, EXAMINE, STATUS and SEARCH
Steve Holme [Sat, 31 Aug 2013 09:35:05 +0000 (10:35 +0100)]
ftpserver.pl: More whitespace corrections
LIST_imap() had a second level of indentation at 9 characters and not 8.
Steve Holme [Fri, 30 Aug 2013 21:11:17 +0000 (22:11 +0100)]
ftpserver.pl: Small correction tidy up
Corrected some IMAP variable names and whitespace issues.
Kyle L. Huff [Fri, 30 Aug 2013 12:50:13 +0000 (08:50 -0400)]
docs: Added documentation for CURLOPT_BEARER
Kyle L. Huff [Fri, 30 Aug 2013 12:47:04 +0000 (08:47 -0400)]
curl.1: Add usage of '--bearer' option
Steve Holme [Fri, 30 Aug 2013 17:56:56 +0000 (18:56 +0100)]
tests: Added tests for IMAP CREATE, DELETE and RENAME commands
Daniel Stenberg [Fri, 30 Aug 2013 13:21:39 +0000 (15:21 +0200)]
ftpserver: Bareword "to_mailbox" not allowed
Added missing $
Steve Holme [Fri, 30 Aug 2013 06:35:00 +0000 (07:35 +0100)]
ftpserver.pl: Added support for IMAP CREATE, DELETE and RENAME commands
Daniel Stenberg [Tue, 20 Aug 2013 20:45:47 +0000 (22:45 +0200)]
FTP: fix getsock during DO_MORE state
... when doing upload it would return the wrong values at times. This
commit attempts to cleanup the mess.
Bug: http://curl.haxx.se/mail/lib-2013-08/0109.html
Reported-by: Mike Mio
Daniel Stenberg [Thu, 29 Aug 2013 20:08:01 +0000 (22:08 +0200)]
curl_multi_remove_handle: allow multiple removes
When removing an already removed handle, avoid that to ruin the
internals and just return OK instead.
Steve Holme [Thu, 29 Aug 2013 19:08:27 +0000 (20:08 +0100)]
ftpserver.pl: Updated IMAP EXAMINE handler to use dynamic test data
Daniel Stenberg [Thu, 29 Aug 2013 10:50:15 +0000 (12:50 +0200)]
unit1304: include memdebug and free everything correctly
Daniel Stenberg [Thu, 29 Aug 2013 10:49:56 +0000 (12:49 +0200)]
Curl_parsenetrc: document that the arguments must be allocated
Daniel Stenberg [Thu, 29 Aug 2013 07:57:14 +0000 (09:57 +0200)]
easy: rename struct monitor to socketmonitor
'struct monitor', introduced in
6cf8413e, already exists in an IRIX
header file (sys/mon.h) which gets included via various standard headers
by lib/easy.c
cc-1101 cc: ERROR File = ../../curl/lib/easy.c, Line = 458
"monitor" has already been declared in the current scope.
Reported-by: Tor Arntsen
Steve Holme [Thu, 29 Aug 2013 06:20:03 +0000 (07:20 +0100)]
ftpserver.pl: Added SELECT check to IMAP FETCH and STORE handlers
Steve Holme [Wed, 28 Aug 2013 21:58:33 +0000 (22:58 +0100)]
ftpserver.pl: Corrected accidental move of logmsg() call
Corrected the call to logmsg() in the IMAP SEARCH handler from commit
4ae7b7ea691497 as it should have been outputting the what argument and
not the test number.
Daniel Stenberg [Wed, 28 Aug 2013 20:59:19 +0000 (22:59 +0200)]
ftpserver: add missing '}' from
4ae7b7ea69149
Steve Holme [Wed, 28 Aug 2013 17:56:19 +0000 (18:56 +0100)]
ftpserver.pl: Added SELECT check to IMAP SEARCH command
Steve Holme [Wed, 28 Aug 2013 17:51:59 +0000 (18:51 +0100)]
ftpserver.pl: Fixed IMAP SEARCH command
Daniel Stenberg [Wed, 28 Aug 2013 07:32:48 +0000 (09:32 +0200)]
bump: next release is 7.33.0 due to added features
Daniel Stenberg [Wed, 28 Aug 2013 07:31:37 +0000 (09:31 +0200)]
symbols-in-versions: add CURLOPT_XOAUTH2_BEARER
Steve Holme [Wed, 28 Aug 2013 06:27:10 +0000 (07:27 +0100)]
tests: Added test for IMAP SEARCH command
Daniel Stenberg [Tue, 27 Aug 2013 22:09:27 +0000 (00:09 +0200)]
valgrind.supp: fix for regular curl_easy_perform too
When we introduced curl_easy_perform_ev, this got a slightly modified
call trace. Without this, test 165 causes a false positive valgrind
error.
Daniel Stenberg [Tue, 27 Aug 2013 21:34:51 +0000 (23:34 +0200)]
valgrind.supp: add the event-based call stack-trace too
Without this, test 165 triggers a valgrind error when ran with
curl_easy_perform_ev
Daniel Stenberg [Tue, 27 Aug 2013 20:32:51 +0000 (22:32 +0200)]
multi_socket: improved 100-continue timeout handling
When waiting for a 100-continue response from the server, the
Curl_readwrite() will refuse to run if called until the timeout has been
reached.
We timeout code in multi_socket() allows code to run slightly before the
actual timeout time, so for test 154 it could lead to the function being
executed but refused in Curl_readwrite() and then the application would
just sit idling forever.
This was detected with runtests.pl -e on test 154.
Steve Holme [Tue, 27 Aug 2013 19:47:31 +0000 (20:47 +0100)]
ftpserver.pl: Added support for IMAP SEARCH command
Steve Holme [Tue, 27 Aug 2013 15:39:16 +0000 (16:39 +0100)]
tool_operate.c: Fixed compilation warning
warning: implicit declaration of function 'checkpasswd'
Steve Holme [Sun, 25 Aug 2013 21:32:34 +0000 (22:32 +0100)]
curl: Moved check for password out of get parameter loop
Moved the calls to checkpasswd() out of the getparameter() function
which allows for any related arguments to be specified on the command
line before or after --user (and --proxy-user).
For example: --bearer doesn't need to be specified before --user to
prevent curl from asking for an unnecessary password as is the case
with commit
e7dcc454c67a2f.
Steve Holme [Mon, 26 Aug 2013 22:27:07 +0000 (23:27 +0100)]
RELEASE-NOTES: synced with
acf59be7f09a7
Kyle L. Huff [Sun, 25 Aug 2013 17:19:46 +0000 (13:19 -0400)]
curl: added --bearer option to help
Added the --bearer option to the help output
Kyle L. Huff [Sun, 25 Aug 2013 17:18:59 +0000 (13:18 -0400)]
curl: added basic SASL XOAUTH2 support
Added the ability to specify an XOAUTH2 bearer token [RFC6750] via the
--bearer option.
Example usage:
curl --url "imaps://imap.gmail.com:993/INBOX/;UID=1" --ssl-reqd
--bearer ya29.AHES6Z...OMfsHYI --user username@example.com
Steve Holme [Mon, 26 Aug 2013 10:41:35 +0000 (11:41 +0100)]
tool_urlglob.c: Fixed compiler warnings
warning: 'variable' may be used uninitialized in this function
Daniel Stenberg [Mon, 26 Aug 2013 09:51:18 +0000 (11:51 +0200)]
security.h: rename to curl_sec.h to avoid name collision
I brought back security.h in commit
bb5529331334e. As we actually
already found out back in 2005 in commit
62970da675249, the file name
security.h causes problems so I renamed it curl_sec.h instead.
Daniel Stenberg [Mon, 26 Aug 2013 07:17:55 +0000 (09:17 +0200)]
runtests.pl: allow -vc point to a separate curl binary to verify with
The specified curl binary will then be used to verify the running
server(s) instead of the development version. This is very useful in
some cases when the development version fails to verify correctly as
then the test case may not run at all.
The actual test will still be run with the "normal" curl executable
(unless the test case specifies something differently).
Kyle L. Huff [Sun, 25 Aug 2013 17:17:58 +0000 (13:17 -0400)]
smtp: added basic SASL XOAUTH2 support
Added the ability to use an XOAUTH2 bearer token [RFC6750] with SMTP for
authentication using RFC6749 "OAuth 2.0 Authorization Framework".
The bearer token is expected to be valid for the user specified in
conn->user. If CURLOPT_XOAUTH2_BEARER is defined and the connection has
an advertised auth mechanism of "XOAUTH2", the user and access token are
formatted as a base64 encoded string and sent to the server as
"AUTH XOAUTH2 <bearer token>".
Kyle L. Huff [Sun, 25 Aug 2013 17:17:35 +0000 (13:17 -0400)]
imap: added basic SASL XOAUTH2 support
Added the ability to use an XOAUTH2 bearer token [RFC6750] with IMAP for
authentication using RFC6749 "OAuth 2.0 Authorization Framework".
The bearer token is expected to be valid for the user specified in
conn->user. If CURLOPT_XOAUTH2_BEARER is defined and the connection has
an advertised auth mechanism of "XOAUTH2", the user and access token are
formatted as a base64 encoded string and sent to the server as
"A001 AUTHENTICATE XOAUTH2 <bearer token>".
Steve Holme [Mon, 26 Aug 2013 09:14:16 +0000 (10:14 +0100)]
security.h: Fixed compilation warning
ISO C forbids forward references to 'enum' types
Daniel Stenberg [Sun, 25 Aug 2013 22:29:33 +0000 (00:29 +0200)]
KNOWN_BUGS: refer to bug numbers with the existing number series
The old numbers would still redirect but who knows for how long...
Kyle L. Huff [Sun, 25 Aug 2013 17:17:20 +0000 (13:17 -0400)]
options: added basic SASL XOAUTH2 support
Added the ability to specify an XOAUTH2 bearer token [RFC6750] via the
option CURLOPT_XOAUTH2_BEARER for authentication using RFC6749 "OAuth
2.0 Authorization Framework".
Kyle L. Huff [Sun, 25 Aug 2013 17:17:01 +0000 (13:17 -0400)]
sasl: added basic SASL XOAUTH2 support
Added the ability to generated a base64 encoded XOAUTH2 token
containing: "user=<username>^Aauth=Bearer <bearer token>^A^A"
as per RFC6749 "OAuth 2.0 Authorization Framework".