]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
UDPTL: Fix a regression where UDPTL won't load default settings
authorJonathan Rose <jrose@digium.com>
Wed, 21 Aug 2013 23:02:35 +0000 (23:02 +0000)
committerJonathan Rose <jrose@digium.com>
Wed, 21 Aug 2013 23:02:35 +0000 (23:02 +0000)
If the file udptl.conf is unavailable at startup, UDPTL will fail to
initialize and while it makes some noise, it isn't immediately
obvious why consumers start to fail when using it. This patch makes
UDPTL load as though an empty config was provided  when udptl is
unavailable at startup.

(closes issue ASTERISK-22349)
Reported by: Jonathan Rose
Review: https://reviewboard.asterisk.org/r/2773/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@397365 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/udptl.c

index 52ddb92118e9d3a65366c4e6f58ba7d20759a280..7f4936de6a66f54e6dd3326a6fb09784c33e4860 100644 (file)
@@ -1419,8 +1419,15 @@ static int removed_options_handler(const struct aco_option *opt, struct ast_vari
 
 static void __ast_udptl_reload(int reload)
 {
+       RAII_VAR(struct udptl_config *, udptl_cfg, udptl_snapshot_alloc(), ao2_cleanup);
+
        if (aco_process_config(&cfg_info, reload) == ACO_PROCESS_ERROR) {
-               ast_log(LOG_WARNING, "Could not reload udptl config\n");
+               if (!reload) {
+                       if (!aco_set_defaults(&general_option, "general", udptl_cfg->general)) {
+                               ast_log(LOG_WARNING, "Could not load udptl config; using defaults\n");
+                               ao2_global_obj_replace(globals, udptl_cfg);
+                       }
+               }
        }
 }