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:
parent
e235441f73
commit
2c05f75bbf
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
Loading…
Reference in New Issue