aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libbsc
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2011-05-21 00:05:09 +0200
committerDaniel Willmann <daniel@totalueberwachung.de>2011-11-04 12:27:13 +0100
commitf739d4ea39f0f970a76007e8a8159b88a7622ecd (patch)
tree61e99de3fed43e7d161ff51fb0205fac6d895d03 /openbsc/src/libbsc
parentdebc918dc41090a9fee1757b4c9b39cd1b791b4b (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.c19
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;