Project "FreeSWITCH Source" received a push.

branch: master updated

       via: 500e9acd254e1e2b50d07aec2fe1241fe3e18aba (commit)
      from: 2e399b0baf871b82e8b1bd553fce16b54abe6d7b (commit)


= COMMIT LOG ===========================================================
committer: Marc Olivier Chouinard
comments: 
switch_core: Add capability to specify core-db-name in switch.conf.xml to have sqlite in a different location.  This is important for everyone with relatively 'high' sip registration since the addition of sip registration to the core require sqlite db to be moved to a faster location (Ramdisk for example). Useful for everyone who moved their sqlite db for sofia to ramdisk because of performance issue.

diff --git a/conf/autoload_configs/switch.conf.xml b/conf/autoload_configs/switch.conf.xml
index 44893b9..95c4333 100644
--- a/conf/autoload_configs/switch.conf.xml
+++ b/conf/autoload_configs/switch.conf.xml
@@ -94,6 +94,8 @@
     <!--<param name="rtp-end-port" value="32768"/>-->
     <param name="rtp-enable-zrtp" value="true"/>
     <!-- <param name="core-db-dsn" value="dsn:username:password" /> -->
+    <!-- Allow to specify the sqlite db at a different location (In this example, move it to ramdrive for better performance on most linux distro (note, you loose the data if you reboot)) -->
+    <!-- <param name="core-db-name" value="/dev/shm/core.db" /> -->
     <!-- The system will create all the db schemas automatically, set this to false to avoid this behaviour-->
     <!--<param name="auto-create-schemas" value="true"/>-->
 	 <!-- <param name="core-dbtype" value="MSSQL"/> -->
diff --git a/src/include/private/switch_core_pvt.h b/src/include/private/switch_core_pvt.h
index 05cd24d..f8c6a79 100644
--- a/src/include/private/switch_core_pvt.h
+++ b/src/include/private/switch_core_pvt.h
@@ -236,6 +236,7 @@ struct switch_runtime {
 	char *odbc_dsn;
 	char *odbc_user;
 	char *odbc_pass;
+	char *dbname;
 	uint32_t debug_level;
 	uint32_t runlevel;
 	uint32_t tipping_point;
diff --git a/src/switch_core.c b/src/switch_core.c
index 0eb51cc..66731b6 100644
--- a/src/switch_core.c
+++ b/src/switch_core.c
@@ -1298,6 +1298,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc
 	runtime.default_dtmf_duration = SWITCH_DEFAULT_DTMF_DURATION;
 	runtime.min_dtmf_duration = SWITCH_MIN_DTMF_DURATION;
 	runtime.odbc_dbtype = DBTYPE_DEFAULT;
+	runtime.dbname = NULL;
 
 	/* INIT APR and Create the pool context */
 	if (apr_initialize() != SWITCH_STATUS_SUCCESS) {
@@ -1641,6 +1642,8 @@ static void switch_load_core_config(const char *file)
 					switch_rtp_set_start_port((switch_port_t) atoi(val));
 				} else if (!strcasecmp(var, "rtp-end-port") && !zstr(val)) {
 					switch_rtp_set_end_port((switch_port_t) atoi(val));
+				} else if (!strcasecmp(var, "core-db-name") && !zstr(val)) {
+					runtime.dbname = switch_core_strdup(runtime.memory_pool, val);
 				} else if (!strcasecmp(var, "core-db-dsn") && !zstr(val)) {
 					if (switch_odbc_available()) {
 						runtime.odbc_dsn = switch_core_strdup(runtime.memory_pool, val);
diff --git a/src/switch_core_sqldb.c b/src/switch_core_sqldb.c
index f54bd65..120b256 100644
--- a/src/switch_core_sqldb.c
+++ b/src/switch_core_sqldb.c
@@ -74,7 +74,11 @@ SWITCH_DECLARE(switch_status_t) _switch_core_db_handle(switch_cache_db_handle_t
 
 		r = _switch_cache_db_get_db_handle(dbh, SCDB_TYPE_ODBC, &options, file, func, line);
 	} else {
-		options.core_db_options.db_path = SWITCH_CORE_DB;
+		if (runtime.dbname) {
+			options.core_db_options.db_path = runtime.dbname;
+		} else {
+			options.core_db_options.db_path = SWITCH_CORE_DB;
+		}
 		r = _switch_cache_db_get_db_handle(dbh, SCDB_TYPE_CORE_DB, &options, file, func, line);
 	}
 
========================================================================

Summary of changes:
 conf/autoload_configs/switch.conf.xml |    2 ++
 src/include/private/switch_core_pvt.h |    1 +
 src/switch_core.c                     |    3 +++
 src/switch_core_sqldb.c               |    6 +++++-
 4 files changed, 11 insertions(+), 1 deletions(-)

this email was generated because of /git/your-repo.git/hooks/post-receive by the file /git-core/contrib/hooks/post-receive-email
For more info, see http://blog.chomperstomp.com/?p=630 --
FreeSWITCH Source