aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2017-07-20 14:41:20 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2017-08-27 03:52:44 +0200
commit66e5e3c328b59bfaac31b958ae1d48fe8bfa72c6 (patch)
tree3f693607ee3587ac3d5d8cc72c7cac27e6865b06
parentce4d88bd62bf0a1275b5b51dd7b14d16a7642172 (diff)
sgsn init: pass sgsn_config pointer to sgsn_vty_init(), not sgsn_parse_config
In an upcoming commit, sgsn_vty_init() will require access to the global sgsn config struct to initialize a generic VTY command with the proper config destination address, see Change-Id I5b5b6a9678b458affa86800afb1ec726e66eed88. Change-Id: Ie6b6e5422987586531a898e0c5b867623dbecb0f
-rw-r--r--include/openbsc/sgsn.h4
-rw-r--r--src/gprs/sgsn_main.c4
-rw-r--r--src/gprs/sgsn_vty.c9
3 files changed, 10 insertions, 7 deletions
diff --git a/include/openbsc/sgsn.h b/include/openbsc/sgsn.h
index 1ede2c930..1ed1583ed 100644
--- a/include/openbsc/sgsn.h
+++ b/include/openbsc/sgsn.h
@@ -140,8 +140,8 @@ extern struct sgsn_instance *sgsn;
/* sgsn_vty.c */
-int sgsn_vty_init(void);
-int sgsn_parse_config(const char *config_file, struct sgsn_config *cfg);
+int sgsn_vty_init(struct sgsn_config *cfg);
+int sgsn_parse_config(const char *config_file);
/* sgsn.c */
diff --git a/src/gprs/sgsn_main.c b/src/gprs/sgsn_main.c
index 41cebefb2..d871939e5 100644
--- a/src/gprs/sgsn_main.c
+++ b/src/gprs/sgsn_main.c
@@ -350,7 +350,7 @@ int main(int argc, char **argv)
vty_init(&vty_info);
logging_vty_add_cmds(NULL);
osmo_stats_vty_add_cmds(&gprs_log_info);
- sgsn_vty_init();
+ sgsn_vty_init(&sgsn_inst.cfg);
ctrl_vty_init(tall_bsc_ctx);
#ifdef BUILD_IU
iu_vty_init(&asn_debug);
@@ -382,7 +382,7 @@ int main(int argc, char **argv)
sgsn_cdr_init(&sgsn_inst);
/* FIXME: register signal handler for SS_L_NS */
- rc = sgsn_parse_config(sgsn_inst.config_file, &sgsn_inst.cfg);
+ rc = sgsn_parse_config(sgsn_inst.config_file);
if (rc < 0) {
LOGP(DGPRS, LOGL_FATAL, "Error in config file\n");
exit(2);
diff --git a/src/gprs/sgsn_vty.c b/src/gprs/sgsn_vty.c
index e09a0296b..1cefe37cf 100644
--- a/src/gprs/sgsn_vty.c
+++ b/src/gprs/sgsn_vty.c
@@ -1222,8 +1222,10 @@ DEFUN(cfg_comp_v42bisp, cfg_comp_v42bisp_cmd,
return CMD_SUCCESS;
}
-int sgsn_vty_init(void)
+int sgsn_vty_init(struct sgsn_config *cfg)
{
+ g_cfg = cfg;
+
install_element_ve(&show_sgsn_cmd);
//install_element_ve(&show_mmctx_tlli_cmd);
install_element_ve(&show_mmctx_imsi_cmd);
@@ -1285,11 +1287,12 @@ int sgsn_vty_init(void)
return 0;
}
-int sgsn_parse_config(const char *config_file, struct sgsn_config *cfg)
+int sgsn_parse_config(const char *config_file)
{
int rc;
- g_cfg = cfg;
+ /* make sure sgsn_vty_init() was called before this */
+ OSMO_ASSERT(g_cfg);
g_cfg->timers.T3312 = GSM0408_T3312_SECS;
g_cfg->timers.T3322 = GSM0408_T3322_SECS;