core: Fix configuration of remote console socket path.
authorCorey Farrell <git@cfware.com>
Mon, 13 Nov 2017 22:20:27 +0000 (17:20 -0500)
committerCorey Farrell <git@cfware.com>
Mon, 13 Nov 2017 22:20:27 +0000 (17:20 -0500)
The remote console socket path is the combination of asterisk.conf
settings astrundir from [directories] and astctl from [files].
Unconditionally combine the two strings after processing all values
to ensure we end up with the correct socket path.

ASTERISK-27415

Change-Id: Ib1e2805d55d6b0955c6430a1a2a93acbf9b091e8

main/asterisk.c

index 40986a4..2126487 100644 (file)
@@ -3655,7 +3655,6 @@ static void ast_readconfig(void)
                        ast_copy_string(cfg_paths.agi_dir, v->value, sizeof(cfg_paths.agi_dir));
                } else if (!strcasecmp(v->name, "astrundir")) {
                        snprintf(cfg_paths.pid_path, sizeof(cfg_paths.pid_path), "%s/%s", v->value, "asterisk.pid");
-                       snprintf(cfg_paths.socket_path, sizeof(cfg_paths.socket_path), "%s/%s", v->value, ast_config_AST_CTL);
                        ast_copy_string(cfg_paths.run_dir, v->value, sizeof(cfg_paths.run_dir));
                } else if (!strcasecmp(v->name, "astmoddir")) {
                        ast_copy_string(cfg_paths.module_dir, v->value, sizeof(cfg_paths.module_dir));
@@ -3664,6 +3663,10 @@ static void ast_readconfig(void)
                }
        }
 
+       /* Combine astrundir and astctl settings. */
+       snprintf(cfg_paths.socket_path, sizeof(cfg_paths.socket_path), "%s/%s",
+               ast_config_AST_RUN_DIR, ast_config_AST_CTL);
+
        for (v = ast_variable_browse(cfg, "options"); v; v = v->next) {
                /* verbose level (-v at startup) */
                if (!strcasecmp(v->name, "verbose")) {