aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libmsc/msc_net_init.c2
-rw-r--r--src/libmsc/msc_vty.c12
-rw-r--r--src/osmo-msc/msc_main.c8
3 files changed, 19 insertions, 3 deletions
diff --git a/src/libmsc/msc_net_init.c b/src/libmsc/msc_net_init.c
index adb9ca74f..774c7678f 100644
--- a/src/libmsc/msc_net_init.c
+++ b/src/libmsc/msc_net_init.c
@@ -61,6 +61,8 @@ struct gsm_network *gsm_network_init(void *ctx, mncc_recv_cb_t mncc_recv)
if (!net)
return NULL;
+ net->sms_db_file_path = talloc_strdup(net, SMS_DEFAULT_DB_FILE_PATH);
+
net->plmn = (struct osmo_plmn_id){ .mcc=1, .mnc=1 };
/* Permit a compile-time default of A5/3 and A5/1 */
diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c
index 07a88c261..46d3cf9db 100644
--- a/src/libmsc/msc_vty.c
+++ b/src/libmsc/msc_vty.c
@@ -426,6 +426,15 @@ DEFUN(cfg_msc, cfg_msc_cmd,
#define MNCC_GUARD_TIMEOUT_STR "Set global guard timer for mncc interface activity\n"
#define MNCC_GUARD_TIMEOUT_VALUE_STR "guard timer value (sec.)\n"
+DEFUN(cfg_sms_database, cfg_sms_database_cmd,
+ "sms-database PATH",
+ "Set the path to the MSC-SMS database file\n"
+ "Relative or absolute file system path to the database file (default is '" SMS_DEFAULT_DB_FILE_PATH "')\n")
+{
+ osmo_talloc_replace_string(gsmnet, &gsmnet->sms_db_file_path, argv[0]);
+ return CMD_SUCCESS;
+}
+
DEFUN(cfg_msc_mncc_internal,
cfg_msc_mncc_internal_cmd,
"mncc internal",
@@ -731,6 +740,8 @@ DEFUN(show_nri, show_nri_cmd,
static int config_write_msc(struct vty *vty)
{
vty_out(vty, "msc%s", VTY_NEWLINE);
+ if (gsmnet->sms_db_file_path && strcmp(gsmnet->sms_db_file_path, SMS_DEFAULT_DB_FILE_PATH))
+ vty_out(vty, " sms-database %s%s", gsmnet->sms_db_file_path, VTY_NEWLINE);
if (gsmnet->mncc_sock_path)
vty_out(vty, " mncc external %s%s", gsmnet->mncc_sock_path, VTY_NEWLINE);
vty_out(vty, " mncc guard-timeout %i%s",
@@ -2059,6 +2070,7 @@ void msc_vty_init(struct gsm_network *msc_network)
install_element(CONFIG_NODE, &cfg_msc_cmd);
install_node(&msc_node, config_write_msc);
+ install_element(MSC_NODE, &cfg_sms_database_cmd);
install_element(MSC_NODE, &cfg_msc_assign_tmsi_cmd);
install_element(MSC_NODE, &cfg_msc_mncc_internal_cmd);
install_element(MSC_NODE, &cfg_msc_mncc_external_cmd);
diff --git a/src/osmo-msc/msc_main.c b/src/osmo-msc/msc_main.c
index 4cda39509..4f614dbd4 100644
--- a/src/osmo-msc/msc_main.c
+++ b/src/osmo-msc/msc_main.c
@@ -105,7 +105,7 @@ static struct {
int daemonize;
const char *mncc_sock_path;
} msc_cmdline_config = {
- .database_name = "sms.db",
+ .database_name = NULL,
.config_file = "osmo-msc.cfg",
};
@@ -647,9 +647,11 @@ TODO: we probably want some of the _net_ ctrl commands from bsc_base_ctrl_cmds_i
/* TODO: is this used for crypto?? Improve randomness, at least we
* should try to use the nanoseconds part of the current time. */
- if (db_init(msc_cmdline_config.database_name)) {
+ if (msc_cmdline_config.database_name)
+ osmo_talloc_replace_string(msc_network, &msc_network->sms_db_file_path, msc_cmdline_config.database_name);
+ if (db_init(msc_network->sms_db_file_path)) {
fprintf(stderr, "DB: Failed to init database: %s\n",
- msc_cmdline_config.database_name);
+ osmo_quote_str((char*)msc_network->sms_db_file_path, -1));
return 4;
}