diff options
author | Keith Whyte <keith@rhizomatica.org> | 2020-08-28 13:36:58 +0200 |
---|---|---|
committer | Keith Whyte <keith@rhizomatica.org> | 2020-08-28 16:25:14 +0200 |
commit | 1587ffbc7b9fc8b7279c0069631cda030cefa8dd (patch) | |
tree | c06a45030cece6d13a0b4391a0384db19de79ee4 /src/libmsc | |
parent | c84702c571041dd523713e2b22178a1819517ea9 (diff) |
vty: allow configuring db path from cfg file
So far, the cmdline argument was the only way to set a database file.
Add a similar config to VTY as 'msc' / 'sms-database'. The cmdline arg is stronger
than the 'database' cfg item. DB is not reloaded from VTY command.
Change-Id: I18d954c30fcceb0b36a620b927fd3a93dcc79f49
Diffstat (limited to 'src/libmsc')
-rw-r--r-- | src/libmsc/msc_net_init.c | 2 | ||||
-rw-r--r-- | src/libmsc/msc_vty.c | 12 |
2 files changed, 14 insertions, 0 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); |