Make .o files in separate subdirectories for servald and library
Factor struct __sourceloc and __WHENCE__ from "log.h" into "whence.h"
Factor sid_t etc from "serval.h" into "serval_types.h"
Factor rhizome_bid_t etc from "rhizome.h" into "rhizome_types.h"
Do not include "serval.h" in library sources
Add log_stderr.c and logMessage.c for stand-alone executables
Move config-dependent code (recvwithttl) from net.c to mdp_net.c (new)
Move log-implementation-independent code from log.c to log_util.c (new)
Build config_test binary in Makefile
Remove stowSid() at last
Change API of tohex() and strbuf_tohex(), to pass string length instead of
binary byte count. This allows odd numbers of hex digits to be produced.
Remove alloca_tohex_sid(); replace with alloca_tohex_sid_t()
New alloca_tohex_sid_t_trunc() macro
Config Object Model parser now returns bitmask result of CFxxx flags and only
allocates root node if the config file is non-empty.
Added emalloc_zero().
Rework ARRAYs, replacing label string with typed key, declaring KEY and VALUE
independently.
Implement dna.helper.argv array using key of type unsigned short.
Implement mdp.iftype.<interfacetype>.tick_ms using key of type short for the
interface type code.
The dna.helper.argv validation function now sorts the array in numerical order
of labels using qsort(3).
Add LABELLEN argument to ARRAY schema macros, to control the size of the
label[] string (was fixed at 41 chars before).
Add optional validator functions for STRUCT and ARRAY parsing. Tighten up
logic for parsing STRUCTs and ARRAYs and the result flags. Improve
documentation in block comments. Add CFUNSUPPORTED result flag.
Refactor ARRAY_xxx() schema declaration macros to fix problem in ARRAY_STRING().
Add dna.helper.executable, dna.helper.argv and server.chdir to config schema.
Replace ARRAY() macro with ARRAY_ATOM(), ARRAY_STRING(), ARRAY_NODE() and
ARRAY_STRUCT().
Change parse function return value to flag bits, add CFEMPTY, rename CFMISSING
to CFINCOMPLETE, improve logic around mandatory struct items.
Renamed struct config_node to struct cf_om_node.
Refactor to make opt_parsing() functions simpler for ATOM -- no need to check
for missing text or unsupported child nodes, or log parse failures.
Introduce NODE option which passes whole config_node struct to parsing
function.