diff options
author | Tilghman Lesher <tilghman@meg.abyt.es> | 2007-09-24 22:06:19 +0000 |
---|---|---|
committer | Tilghman Lesher <tilghman@meg.abyt.es> | 2007-09-24 22:06:19 +0000 |
commit | ddc6f8100e003dbeeb8de8c17fddbfcd9a08b27d (patch) | |
tree | e06a6f8f0f9c2b73c8c89d838216feb69d45b692 /main | |
parent | 463cda30cf1633ce6242c8a2989b57f9cf65ea98 (diff) |
Permit custom locations for astdb and the keys directory (though default to the current locations) (Closes issue #10267)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83726 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r-- | main/asterisk.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/main/asterisk.c b/main/asterisk.c index 413501656..fb12e5900 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -2301,6 +2301,10 @@ static void ast_readconfig(void) char *config = AST_CONFIG_FILE; char hostname[MAXHOSTNAMELEN] = ""; struct ast_flags config_flags = { 0 }; + struct { + unsigned int dbdir:1; + unsigned int keydir:1; + } found = { 0, 0 }; if (ast_opt_override_config) { cfg = ast_config_load(ast_config_AST_CONFIG_FILE, config_flags); @@ -2348,10 +2352,18 @@ static void ast_readconfig(void) snprintf(ast_config_AST_MONITOR_DIR, sizeof(ast_config_AST_MONITOR_DIR) - 1, "%s/monitor", v->value); } else if (!strcasecmp(v->name, "astvarlibdir")) { ast_copy_string(ast_config_AST_VAR_DIR, v->value, sizeof(ast_config_AST_VAR_DIR)); + if (!found.dbdir) + snprintf(ast_config_AST_DB, sizeof(ast_config_AST_DB), "%s/astdb", v->value); + } else if (!strcasecmp(v->name, "astdbdir")) { snprintf(ast_config_AST_DB, sizeof(ast_config_AST_DB), "%s/astdb", v->value); + found.dbdir = 1; } else if (!strcasecmp(v->name, "astdatadir")) { ast_copy_string(ast_config_AST_DATA_DIR, v->value, sizeof(ast_config_AST_DATA_DIR)); + if (!found.keydir) + snprintf(ast_config_AST_KEY_DIR, sizeof(ast_config_AST_KEY_DIR), "%s/keys", v->value); + } else if (!strcasecmp(v->name, "astkeydir")) { snprintf(ast_config_AST_KEY_DIR, sizeof(ast_config_AST_KEY_DIR), "%s/keys", v->value); + found.keydir = 1; } else if (!strcasecmp(v->name, "astlogdir")) { ast_copy_string(ast_config_AST_LOG_DIR, v->value, sizeof(ast_config_AST_LOG_DIR)); } else if (!strcasecmp(v->name, "astagidir")) { |