varnishd

Make Varnish more portable by pulling in fixes for Solaris and NetBSD.

Correct description of -a in the manual page.

Ensure we are compiling in C99 mode.

If error was called with a null reason, we would crash on Solaris. Make sure this no longer happens.

Varnish used to crash if you asked it to use a non-existent waiter. This has now been fixed.

Add documentation to the default VCL explaining that using `Connection: close` in `vcl_close` is generally a good idea.

Add minimal facility for dealing with TELNET option negotiation by returning WONT to DO and DONT requests.

If the backend is unhealthy, use a graced object if one is available.

Make `server.hostname` and `server.identity` available to VCL. The latter can be set with the `-i` parameter to `varnishd`.

Make `restart` available from `vcl_error`.

Previously, only the TTL of an object was considered in whether it would be marked as cacheable. This has been changed to take the grace into consideration as well.

Previously, if an included ESI fragment had a zero size, we would send out a zero-sized chunk which signifies end-of-transmission. We now ignore zero-sized chunks.

We accidentially slept for far too long when we reached the maximum number of open file descriptors. This has been corrected and `accept_fd_holdoff` now works correctly.

Previously, when ESI processing, we did not look at the full length, but stopped at the first NULL byte. We no longer do that, enabling ESI processing of binary data.

varnishtest

Make sure system "..." returns successfully to ensure test failures do not go unnoticed.

Make it possible to send NULL bytes through the testing framework.