summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2016-10-12 03:30:48 +0200
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2016-11-12 16:06:46 +0100
commit22e0b7c35ebedde333b6fce0fc7f87ee34ff5368 (patch)
treeb548df5f53677c2a5b0ef421c5bd81888ff9e358
parent35ce91de93be39ff074616264af26a2c155fa97e (diff)
sgsn init: pass sgsn_config pointer to sgsn_vty_init(), not sgsn_parse_config
It makes sense semantically, and prepares for an upcoming commit that uses the internal global config pointer in sgsn_vty_init(), which would not be defined yet without this. Change-Id: Ie4cf1c0a1c9e6330a134ff4b7b2e6d5699c12bd7
-rw-r--r--openbsc/include/openbsc/sgsn.h4
-rw-r--r--openbsc/src/gprs/sgsn_main.c4
-rw-r--r--openbsc/src/gprs/sgsn_vty.c9
3 files changed, 10 insertions, 7 deletions
diff --git a/openbsc/include/openbsc/sgsn.h b/openbsc/include/openbsc/sgsn.h
index 786e2b2..6c558aa 100644
--- a/openbsc/include/openbsc/sgsn.h
+++ b/openbsc/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/openbsc/src/gprs/sgsn_main.c b/openbsc/src/gprs/sgsn_main.c
index 4cf4d22..e671250 100644
--- a/openbsc/src/gprs/sgsn_main.c
+++ b/openbsc/src/gprs/sgsn_main.c
@@ -336,7 +336,7 @@ int main(int argc, char **argv)
vty_init(&vty_info);
logging_vty_add_cmds(&gprs_log_info);
osmo_stats_vty_add_cmds(&gprs_log_info);
- sgsn_vty_init();
+ sgsn_vty_init(&sgsn_inst.cfg);
ctrl_vty_init(tall_bsc_ctx);
handle_options(argc, argv);
@@ -365,7 +365,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, "Cannot parse config file\n");
exit(2);
diff --git a/openbsc/src/gprs/sgsn_vty.c b/openbsc/src/gprs/sgsn_vty.c
index 5774d8c..421d17f 100644
--- a/openbsc/src/gprs/sgsn_vty.c
+++ b/openbsc/src/gprs/sgsn_vty.c
@@ -1190,8 +1190,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);
@@ -1257,11 +1259,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;