## 2.09 2019-01-30

Minor Improvements and Bug Fixes

Fix issue with multiple async status files causing a hard error.

The info command is implemented entirely in C.

Simplify info command text message when no stanzas are present.

Replace the repository path with the repository.

Add _DARWIN_C_SOURCE flag to Makefile for MacOS builds.

Update address lookup in C TLS client to use modern methods.

Include Posix-compliant header for `strcasecmp()` and `fd_set`.

Add remote storage objects.

Add `ProtocolClient` object and helper functions.

Add `Exec` object.

Add `IoHandleRead` and `IoHandleWrite` objects.

Add `cfgExecParam()` to generate parameters for executing commands.

Ignore SIGPIPE signals and check EPIPE result instead.

Function log macro improvements. Rename FUNCTION_DEBUG_* and consolidate ASSERT_* macros for consistency. Improve `CONST` and `P`/`PP` type macro handling. Move `MACRO_TO_STR()` to common/debug.h. Remove unused type parameter from `FUNCTION_TEST_RETURN()`.

Make the C version of the info command conform to the Perl version.

Improve accuracy of `strSizeFormat()`.

Add `ioReadBuf()` to easily read into a buffer.

JSON improvements. Allow empty arrays in JSON parser. Fix null output in JSON renderer. Fix escaping in JSON string parser/renderer.

Allocate extra space for concatenations in the `String` object.

Return `UnknownError` from `errorTypeFromCode()` for invalid error codes.

Update Perl repo rules to work when stanza is not specified.

Update `Storage::Local->list()` to accept an undefined path.

Null-terminate list returned by `strLstPtr()`.

Add `kvMove()` and `varLstMove()`.

Replace `FileOpenError` with `HostConnectError` in `TlsClient`.

Allow string `Variant` objects to contain `null`.

Rename `common/io/handle` module to `common/io/handleWrite`.

Add `const VariantList *` debug type.

Fix hard-coded repository path.

Clarify that encryption is always performed client-side.

Add examples for building a documentation host.

Allow `if` in manifest variables, lists, and list items.

Move C module include in test.c above headers included for testing.

Allow primary gid for the test user to be different from uid.

Increase timeout in storage/s3 module to improve reliability.