summaryrefslogtreecommitdiff
path: root/main/stasis_config.c
diff options
context:
space:
mode:
authorMatthew Jordan <mjordan@digium.com>2013-07-03 21:14:03 +0000
committerMatthew Jordan <mjordan@digium.com>2013-07-03 21:14:03 +0000
commit569f5f2117ecd1c9e0f945d6a5c448ecd2bafb42 (patch)
treedab899353bc1a1a295501d734d2ed269d903d501 /main/stasis_config.c
parent0f725bd5d9646dc04db390b94e6c1a5ece9bf628 (diff)
Let Stasis load itself with default values
While a Stasis configuration file is nice, it shouldn't be mandatory. We can carry on with default values. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393589 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/stasis_config.c')
-rw-r--r--main/stasis_config.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/main/stasis_config.c b/main/stasis_config.c
index f20d61977..2c450ba9b 100644
--- a/main/stasis_config.c
+++ b/main/stasis_config.c
@@ -150,13 +150,20 @@ void stasis_config_get_threadpool_options(
/*! \brief Load (or reload) configuration. */
static int process_config(int reload)
{
- switch (aco_process_config(&cfg_info, reload)) {
- case ACO_PROCESS_ERROR:
- return -1;
- case ACO_PROCESS_OK:
- case ACO_PROCESS_UNCHANGED:
- break;
- }
+ RAII_VAR(struct stasis_conf *, conf, conf_alloc(), ao2_cleanup);
+
+ switch (aco_process_config(&cfg_info, reload)) {
+ case ACO_PROCESS_ERROR:
+ if (conf && !reload && !aco_set_defaults(&threadpool_option, "threadpool", conf->threadpool)) {
+ ast_log(AST_LOG_NOTICE, "Failed to process Stasis configuration; using defaults\n");
+ ao2_global_obj_replace(confs, conf);
+ return 0;
+ }
+ return -1;
+ case ACO_PROCESS_OK:
+ case ACO_PROCESS_UNCHANGED:
+ break;
+ }
return 0;
}