diff options
author | Stefan Sperling <ssperling@sysmocom.de> | 2018-12-13 10:16:49 +0100 |
---|---|---|
committer | Stefan Sperling <ssperling@sysmocom.de> | 2018-12-13 10:16:49 +0100 |
commit | 1051c4208834c22d344dd92d25addfd8e5d95993 (patch) | |
tree | 9ca991e0edd65eb60031f3179ea40debd239ff39 /src | |
parent | 85cb2538f4cb4c6759824dae546564562ff3888e (diff) |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/libmsc/msc_vty.c | 6 | ||||
-rw-r--r-- | src/osmo-msc/msc_main.c | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index 06e11394a..87adc82de 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -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; } diff --git a/src/osmo-msc/msc_main.c b/src/osmo-msc/msc_main.c index 8500b9722..ce6ae380f 100644 --- a/src/osmo-msc/msc_main.c +++ b/src/osmo-msc/msc_main.c @@ -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); |