diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2011-05-21 00:05:09 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2012-05-02 20:13:41 +0200 |
commit | fec22ba74f5733717ab92536aee8222e5c81fa1d (patch) | |
tree | 16ab7aeea7a14e694f7952d15807502fe45c747e /openbsc | |
parent | d9e063997127e101484cdf48c0c6426b97c93463 (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')
-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; |