summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTilghman Lesher <tilghman@meg.abyt.es>2007-09-24 22:06:19 +0000
committerTilghman Lesher <tilghman@meg.abyt.es>2007-09-24 22:06:19 +0000
commitddc6f8100e003dbeeb8de8c17fddbfcd9a08b27d (patch)
treee06a6f8f0f9c2b73c8c89d838216feb69d45b692
parent463cda30cf1633ce6242c8a2989b57f9cf65ea98 (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
-rw-r--r--Makefile7
-rw-r--r--main/asterisk.c12
2 files changed, 19 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index b9d31bfeb..943fbeb8c 100644
--- a/Makefile
+++ b/Makefile
@@ -108,6 +108,8 @@ ifeq ($(OSARCH),SunOS)
ASTETCDIR=/var/etc/asterisk
ASTLIBDIR=/opt/asterisk/lib
ASTVARLIBDIR=/var/opt/asterisk
+ ASTDBDIR=$(ASTVARLIBDIR)
+ ASTKEYDIR=$(ASTVARLIBDIR)
ASTSPOOLDIR=/var/spool/asterisk
ASTLOGDIR=/var/log/asterisk
ASTHEADERDIR=/opt/asterisk/include
@@ -128,9 +130,12 @@ else
ifneq ($(findstring BSD,$(OSARCH)),)
ASTVARLIBDIR=$(prefix)/share/asterisk
ASTVARRUNDIR=$(localstatedir)/run/asterisk
+ ASTDBDIR=$(localstatedir)/db/asterisk
else
ASTVARLIBDIR=$(localstatedir)/lib/asterisk
+ ASTDBDIR=$(ASTVARLIBDIR)
endif
+ ASTKEYDIR=$(ASTVARLIBDIR)
endif
ifeq ($(ASTDATADIR),)
ASTDATADIR:=$(ASTVARLIBDIR)
@@ -556,6 +561,8 @@ samples: adsi
echo "astetcdir => $(ASTETCDIR)" ; \
echo "astmoddir => $(MODULES_DIR)" ; \
echo "astvarlibdir => $(ASTVARLIBDIR)" ; \
+ echo "astdbdir => $(ASTDBDIR)" ; \
+ echo "astkeydir => $(ASTKEYDIR)" ; \
echo "astdatadir => $(ASTDATADIR)" ; \
echo "astagidir => $(AGI_DIR)" ; \
echo "astspooldir => $(ASTSPOOLDIR)" ; \
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")) {