From fec22ba74f5733717ab92536aee8222e5c81fa1d Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Sat, 21 May 2011 00:05:09 +0200 Subject: 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 --- openbsc/src/libbsc/bsc_init.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'openbsc') 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; -- cgit v1.2.3