loader: Improve error handling.
authorCorey Farrell <git@cfware.com>
Fri, 28 Sep 2018 15:13:39 +0000 (11:13 -0400)
committerCorey Farrell <git@cfware.com>
Tue, 2 Oct 2018 17:18:12 +0000 (13:18 -0400)
commite4cf513f8116719173c1152ec559c9b713091b9e
tree4e50414523f7bd9224ffa5b5a99dc02f0372a736
parent252e4a8fd49a22369fdbda3b2ef5cfad458649f7
loader: Improve error handling.

* Display list of unavailable dependencies when they cause another
  module to fail loading.
* When a module declines to load find all modules which depend on it so
  they can be declined and listed together.
* Prevent retry of declined modules during startup.
* When a module fails to dlopen try loading it with RTLD_LAZY so we can
  attempt to display the list of missing dependencies.

These changes are meant to reduce logger spam that is caused when a
module has many dependencies and declines to load.  This also fixes some
error paths which failed to recognize required modules.

Module load/start errors are delayed until the end of loader startup.

Change-Id: I046052c71331c556c09d39f47a3b92975f3e1758
include/asterisk/logger.h
main/loader.c
main/logger.c