We thought that we can use /dev/stdin for *NIX, but some variants,
like Android, does not have one or root permission is required. Just
like we do for Windows build, we just use stdin if /dev/stdin is used.
Use pkg-config to find cppunit, libxml2 and expat. All those libraries
provide pkg-config files, and in all of those cases the pkg-config macro
is superior to the custom macros used currently.
The advantages of pkg-config files include:
- Explicit static linking support via --static. Currently, e.g.
'xml2-config --libs' prints all libraries needed for static linking when
doing dynamic linking unnecessary, resulting in unnecessary direct deps.
- Better cross-build support. You don't have to build the additional
*-config tools for target.
- Better multilib support. Per-ABI pkgconfig directories are commonly
supported while packages usually fail to look for per-CHOST *-config
variants.
- Better override support. The current macros allow little to no
result overrides, the pkg-config macros let you pass FOO_CFLAGS
and FOO_LIBS manually.
- Cleaner version checks. The code used in libxml.m4 is really creepy.
We re-wrote WinTLSSession::writeData. The major points are:
* Buffer is now preallocated once handshake is finished. Previously,
they are allocated each time when we send one TLS record.
* Schannel uses header, body and trailer for each secBuffer. Now we
send them off at once using WSASend which is windows counterpart of
sendv. Previously, we do memmove if some of them are truncated.
* We don't try to send application data in
WinTLSSession::closeConnection, since semantically we need same
application data used to create TLS record before. Using 0 length
data to finish sending buffered data looks like a hack.
This option keeps unfinished download results even if doing so exceeds
--max-download-result. This is useful if all unfinished downloads must
be saved in session file (see --save-session option). Please keep in
mind that there is no upper bound to the number of unfinished download
result to keep. User should use this option only when they know the
total number of downloads in advance.