require 'ipa-name' option to be set via config file

The 'ipa-name' option can now only be set via the configuration file
because changing the IPA name at run-time conflicts with active
GSUP connections and routes configured in the HLR. The osmo-msc
program must be restarted if its IPA name needs to change.

Change-Id: I6cff91793e646e0396e8f1bc87d0f52709e5f12a
Related: OS#3355
This commit is contained in:
Stefan Sperling 2018-12-13 10:16:49 +01:00
parent 85cb2538f4
commit 1051c42088
3 changed files with 13 additions and 0 deletions

View File

@ -31,4 +31,6 @@ void msc_vty_init(struct gsm_network *msc_network);
struct gsm_network *gsmnet_from_vty(struct vty *vty);
extern bool msc_parsing_config_file;
#endif

View File

@ -466,6 +466,12 @@ DEFUN(cfg_msc_ipa_name,
"This name is used for GSUP routing and must be set if more than one MSC is connected to the HLR. "
"The default is 'MSC-00-00-00-00-00-00'.\n")
{
if (!msc_parsing_config_file) {
vty_out(vty, "The IPA name cannot be changed at run-time; "
"It can only be set in the configuraton file.%s", VTY_NEWLINE);
return CMD_WARNING;
}
gsmnet->msc_ipa_name = talloc_strdup(gsmnet, argv[0]);
return CMD_SUCCESS;
}

View File

@ -24,6 +24,7 @@
*
*/
#include <stdbool.h>
#include <unistd.h>
#include <time.h>
#include <errno.h>
@ -514,6 +515,8 @@ extern void *tall_gsms_ctx;
extern void *tall_call_ctx;
extern void *tall_trans_ctx;
bool msc_parsing_config_file = false;
int main(int argc, char **argv)
{
int rc;
@ -566,7 +569,9 @@ int main(int argc, char **argv)
return -1;
#endif
msc_parsing_config_file = true;
rc = vty_read_config_file(msc_cmdline_config.config_file, NULL);
msc_parsing_config_file = false;
if (rc < 0) {
LOGP(DMSC, LOGL_FATAL, "Failed to parse the config file: '%s'\n",
msc_cmdline_config.config_file);