Release Notes - 0.4.0
The 0.4.0 release of liblacewing is now available, featuring many fixes and new features.
Streams
The Stream system introduced in 0.3.x provides a strong base for any library object capable of I/O, complete with filtering, intelligent splicing and automatic queueing.
0.4.0 has many improvements regarding the stability of the Stream system in general, resolving issues with graph corruption and erroneous queueing behaviour (which was the cause of HTTP requests often hanging in 0.3.x).
SPDY
The Webserver class now has support for the SPDY protocol. Outside of Google, SPDY has enjoyed a surge in adoption in recent months by high profile websites such as Twitter and Facebook, server software such as nginx, and browsers such as Firefox and Opera.
SPDY support is completely transparent, and will automatically be advertised to clients where TLS NPN is available server-side. (NPN is not currently available on Windows due to the native SChannel being used for TLS.)
Multipart Form Data
Prior to 0.4.0, the Webserver used a dated ad-hoc parser to handle multipart form data. This was not robust or efficient, and often choked on data produced by some user agents.
This has now been completely replaced with Igor Afanov's multipart-parser-c, which is far more maintainable and compliant with the multipart specification.
Other changes
- New option in
FDStream::SetFDto close the FD on destruction, which is now used byFile - If
Stream::WriteFilefailed to open a file, the stream would be permanently blocked Servernow supports TLS NPN where available- Fixed IPv4 in
Client(regression introduced by IPv6 support) File::OpenTempused incorrect filenames on Windows