global gsm_network: move allocation further up

Now that bsc_network_alloc() is separate, move it to before the VTY init (a
subsequent patch will pass the gsm_network instance as a parameter to
vty_init()).

bsc_hack.c: drop the comment that says about the VTY init: "This needs to
precede handle_options()" -- it is not accurate. Actually move the
handle_options() above both vty_init() and the bsc_network_alloc() calls, to be
able to decide which mncc callback to pass to bsc_network_alloc. It would make
sense to set this later on, but that would require further refactoring of the
bsc_network_init() and gsm_network_init() signatures, so not in this patch.

Change-Id: Ie6a7037e703b5a2d08ceeb20d35f197aaddc9d1b
This commit is contained in:
Neels Hofmeyr 2016-10-24 01:53:38 +02:00 committed by Harald Welte
parent e235441f73
commit 2c05f75bbf
2 changed files with 25 additions and 23 deletions

View File

@ -194,6 +194,13 @@ int main(int argc, char **argv)
tall_bsc_ctx = talloc_named_const(NULL, 1, "openbsc");
msgb_talloc_ctx_init(tall_bsc_ctx, 0);
/* Allocate global gsm_network struct */
rc = bsc_network_alloc(NULL);
if (rc) {
fprintf(stderr, "Allocation failed. exiting.\n");
exit(1);
}
osmo_init_logging(&log_info);
osmo_stats_init(tall_bsc_ctx);
@ -220,11 +227,7 @@ int main(int argc, char **argv)
/* initialize SCCP */
sccp_set_log_area(DSCCP);
rc = bsc_network_alloc(NULL);
if (rc) {
fprintf(stderr, "Allocation failed. exiting.\n");
exit(1);
}
/* Read the config */
rc = bsc_network_configure(config_file);
if (rc < 0) {
fprintf(stderr, "Bootstrapping the network failed. exiting.\n");

View File

@ -270,7 +270,18 @@ int main(int argc, char **argv)
osmo_stats_init(tall_bsc_ctx);
bts_init();
/* This needs to precede handle_options() */
/* Parse options */
handle_options(argc, argv);
/* Allocate global gsm_network struct; choose socket/internal MNCC */
rc = bsc_network_alloc(mncc_sock_path?
mncc_sock_from_cc : int_mncc_recv);
if (rc) {
fprintf(stderr, "Allocation failed. Exiting.\n");
exit(1);
}
/* Initialize VTY */
vty_init(&vty_info);
bsc_vty_init(&log_info, bsc_gsmnet);
ctrl_vty_init(tall_bsc_ctx);
@ -280,25 +291,13 @@ int main(int argc, char **argv)
return -1;
#endif
/* parse options */
handle_options(argc, argv);
/* internal MNCC handler or MNCC socket? */
if (mncc_sock_path) {
rc = bsc_network_alloc(mncc_sock_from_cc);
if (rc) {
fprintf(stderr, "Allocation failed. Exiting.\n");
exit(1);
}
/* Initialize MNCC socket if appropriate */
if (mncc_sock_path)
mncc_sock_init(bsc_gsmnet, mncc_sock_path);
} else {
else
DEBUGP(DMNCC, "Using internal MNCC handler.\n");
rc = bsc_network_alloc(int_mncc_recv);
if (rc) {
fprintf(stderr, "Allocation failed. Exiting.\n");
exit(1);
}
}
/* Read the config */
rc = bsc_network_configure(config_file);
if (rc < 0) {
fprintf(stderr, "Reading config failed. Exiting.\n");