diff options
-rw-r--r-- | include/osmocom/msc/vty.h | 2 | ||||
-rw-r--r-- | src/libmsc/msc_vty.c | 6 | ||||
-rw-r--r-- | src/osmo-msc/msc_main.c | 5 |
3 files changed, 13 insertions, 0 deletions
diff --git a/include/osmocom/msc/vty.h b/include/osmocom/msc/vty.h index 6a55df776..60a36d7ae 100644 --- a/include/osmocom/msc/vty.h +++ b/include/osmocom/msc/vty.h @@ -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 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); |