diff options
author | Andreas.Eversberg <jolly@eversberg.eu> | 2010-10-02 16:34:04 +0000 |
---|---|---|
committer | Andreas.Eversberg <jolly@eversberg.eu> | 2010-10-02 16:34:04 +0000 |
commit | fe353f1b9f047d23172f777510c28e035eb70d64 (patch) | |
tree | 776103a7e59e3c6ba45758196a5623a2bfcb19c7 | |
parent | 66ff1cb347ed5d7315aa0f8e2c9b7a53d99d5892 (diff) |
[layer23] Notify user when config change requires restart to take effect
-rw-r--r-- | src/host/layer23/src/mobile/app_mobile.c | 3 | ||||
-rw-r--r-- | src/host/layer23/src/mobile/vty_interface.c | 16 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/host/layer23/src/mobile/app_mobile.c b/src/host/layer23/src/mobile/app_mobile.c index 60055e9a..924b6c09 100644 --- a/src/host/layer23/src/mobile/app_mobile.c +++ b/src/host/layer23/src/mobile/app_mobile.c @@ -46,6 +46,7 @@ extern struct log_target *stderr_target; static const char *config_file = "/etc/osmocom/osmocom.cfg"; extern void *l23_ctx; extern unsigned short vty_port; +extern int vty_reading; int mobile_started = 0; @@ -188,6 +189,7 @@ int l23_app_init(struct osmocom_ms *ms) vty_init(&vty_info); ms_vty_init(); dummy_conn.priv = NULL; + vty_reading = 1; rc = vty_read_config_file(config_file, &dummy_conn); if (rc < 0) { fprintf(stderr, "Failed to parse the config file: '%s'\n", @@ -196,6 +198,7 @@ int l23_app_init(struct osmocom_ms *ms) "'touch %s'\n", config_file); return rc; } + vty_reading = 0; telnet_init(l23_ctx, NULL, vty_port); if (rc < 0) return rc; diff --git a/src/host/layer23/src/mobile/vty_interface.c b/src/host/layer23/src/mobile/vty_interface.c index 78488652..4eecb6ef 100644 --- a/src/host/layer23/src/mobile/vty_interface.c +++ b/src/host/layer23/src/mobile/vty_interface.c @@ -77,6 +77,15 @@ static void print_vty(void *priv, const char *fmt, ...) } } +int vty_reading = 0; + +static void vty_restart(struct vty *vty) +{ + if (vty_reading) + return; + vty_out(vty, "You must restart for change take effect!%s", VTY_NEWLINE); +} + static struct osmocom_ms *get_ms(const char *name, struct vty *vty) { struct osmocom_ms *ms; @@ -925,6 +934,7 @@ DEFUN(cfg_ms_sim, cfg_ms_sim_cmd, "sim (none|reader|test)", return CMD_WARNING; } + vty_restart(vty); return CMD_SUCCESS; } @@ -984,6 +994,7 @@ DEFUN(cfg_ms_imei_fixed, cfg_ms_imei_fixed_cmd, "imei-fixed", ms->settings.imei_random = 0; + vty_restart(vty); return CMD_SUCCESS; } @@ -995,6 +1006,7 @@ DEFUN(cfg_ms_imei_random, cfg_ms_imei_random_cmd, "imei-random <0-15>", ms->settings.imei_random = atoi(argv[0]); + vty_restart(vty); return CMD_SUCCESS; } @@ -1301,6 +1313,7 @@ DEFUN(cfg_test_imsi, cfg_test_imsi_cmd, "imsi IMSI", strcpy(ms->settings.test_imsi, argv[0]); + vty_restart(vty); return CMD_SUCCESS; } @@ -1389,6 +1402,7 @@ DEFUN(cfg_test_no_rplmn, cfg_test_no_rplmn_cmd, "no rplmn", ms->settings.test_rplmn_valid = 0; + vty_restart(vty); return CMD_SUCCESS; } @@ -1411,6 +1425,7 @@ DEFUN(cfg_test_rplmn, cfg_test_rplmn_cmd, "rplmn MCC MNC", ms->settings.test_rplmn_mcc = mcc; ms->settings.test_rplmn_mnc = mnc; + vty_restart(vty); return CMD_SUCCESS; } @@ -1430,6 +1445,7 @@ DEFUN(cfg_test_hplmn, cfg_test_hplmn_cmd, "hplmn-search (everywhere|foreign-coun break; } + vty_restart(vty); return CMD_SUCCESS; } |