diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2011-05-21 00:05:09 +0200 |
---|---|---|
committer | Daniel Willmann <daniel@totalueberwachung.de> | 2011-11-04 12:27:13 +0100 |
commit | f739d4ea39f0f970a76007e8a8159b88a7622ecd (patch) | |
tree | 61e99de3fed43e7d161ff51fb0205fac6d895d03 /openbsc/src/libbsc | |
parent | debc918dc41090a9fee1757b4c9b39cd1b791b4b (diff) |
bsc: Drop the BTS instead of exiting the application
When the BTS reboots it might not want to accept our BTS Attr,
do not leave the bsc_msc_ip/bsc_nitb but simply drop the BTS
connection.
Manually cherry-picked from: 54e6c8b3400b376ed36fe84f28f7930d2d9ff24b
Diffstat (limited to 'openbsc/src/libbsc')
-rw-r--r-- | openbsc/src/libbsc/bsc_init.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/openbsc/src/libbsc/bsc_init.c b/openbsc/src/libbsc/bsc_init.c index 02a3adfcc..9c74a54d4 100644 --- a/openbsc/src/libbsc/bsc_init.c +++ b/openbsc/src/libbsc/bsc_init.c @@ -45,16 +45,21 @@ static int oml_msg_nack(struct nm_nack_signal_data *nack) if (nack->mt == NM_MT_SET_BTS_ATTR_NACK) { - LOGP(DNM, LOGL_FATAL, "Failed to set BTS attributes. That is fatal. " + LOGP(DNM, LOGL_ERROR, "Failed to set BTS attributes. That is fatal. " "Was the bts type and frequency properly specified?\n"); - exit(-1); + goto drop_bts; } else { LOGP(DNM, LOGL_ERROR, "Got a NACK going to drop the OML links.\n"); - for (i = 0; i < bsc_gsmnet->num_bts; ++i) { - struct gsm_bts *bts = gsm_bts_num(bsc_gsmnet, i); - if (is_ipaccess_bts(bts)) - ipaccess_drop_oml(bts); - } + goto drop_bts; + } + + return 0; + +drop_bts: + for (i = 0; i < bsc_gsmnet->num_bts; ++i) { + struct gsm_bts *bts = gsm_bts_num(bsc_gsmnet, i); + if (is_ipaccess_bts(bts)) + ipaccess_drop_oml(bts); } return 0; |