Start Hibernate pre invalidating space

Hibernate pre invalidating space

Introduce smtpd(8) stat_backend, an API for pluggable statistic backends.

Forcibly delete all existing ipv4 addresses from an interface as dhclient(8) binds new lease to that interface.

Fixes unexpectedly persistent addresses and failures of dhclient(8) when switching an interface repeatedly between different networks.

Restores ability to use privacy addresses for outgoing connections and static addresses for incoming connections (broken by r1.62).

Make make(1) wrong variable specs (unterminated) parse errors; add info to be able to pinpoint parse errors at runtime; let job runners abort when a parse error happens while expanding a variable during execution; fix an infinite loop when compiling without FEATURE_RECVARS.

dhclient(8) will now handle a non-existent tail(5) without issuing an error message and handle an empty tail(5) without exiting. Made fstat() failure on successfully opened tail(5) a fatal error.

Write out resolv.conf(5) only if the default route is under the control of the process binding the dhclient(8) lease.

Make sure gcc(1) no longer incorrectly optimises away "*volatile_ptr = *volatile_ptr;" constructs on platforms which can perform memory to memory transfers in a single instruction (i.e. 5.2 stability fix for interoperability problem with some newer Junipers: make sure that bgpd(8) ignores the "must be zero" flags correctly and ensure that they are always reset to zero when sending updates out.

Allow dhclient(8) "request", "require" and "ignore" as requests to create empty lists of options.

Re-check the default route when a routing message arrives that might mean default route has changed, and write out resolv.conf(5) if appropriate.

Reduces the chances that the name servers in resolv.conf(5) are unreachable.

Kudu Session is separate from Kudu Client because, in a multi-threaded application, different threads may need to concurrently execute transactions.