diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 133eb972..6c5d72c3 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -533,13 +533,8 @@ struct gprs_bssgp_pcu *gprs_bssgp_create_and_connect(struct gprs_rlcmac_bts *bts return &the_pcu; } -void gprs_bssgp_destroy_or_exit(void) +void gprs_bssgp_destroy(void) { - if (the_pcu.exit_on_destroy) { - LOGP(DBSSGP, LOGL_NOTICE, "Exiting on BSSGP destruction.\n"); - exit(0); - } - if (!bssgp_nsi) return; @@ -564,12 +559,6 @@ void gprs_bssgp_destroy_or_exit(void) bssgp_nsi = NULL; } -void gprs_bssgp_exit_on_destroy(void) -{ - LOGP(DBSSGP, LOGL_NOTICE, "Going to quit on BSSGP destruction\n"); - the_pcu.exit_on_destroy = 1; -} - struct bssgp_bvc_ctx *gprs_bssgp_pcu_current_bctx(void) { return the_pcu.bctx; diff --git a/src/gprs_bssgp_pcu.h b/src/gprs_bssgp_pcu.h index aedcfc00..32b6728d 100644 --- a/src/gprs_bssgp_pcu.h +++ b/src/gprs_bssgp_pcu.h @@ -57,7 +57,6 @@ struct gprs_bssgp_pcu { int bvc_sig_reset; int bvc_reset; int bvc_unblocked; - int exit_on_destroy; /** callbacks below */ @@ -75,8 +74,7 @@ struct gprs_bssgp_pcu *gprs_bssgp_create_and_connect(struct gprs_rlcmac_bts *bts uint16_t nsvci, uint16_t bvci, uint16_t mcc, uint16_t mnc, uint16_t lac, uint16_t rac, uint16_t cell_id); -void gprs_bssgp_exit_on_destroy(void); -void gprs_bssgp_destroy_or_exit(void); +void gprs_bssgp_destroy(void); struct bssgp_bvc_ctx *gprs_bssgp_pcu_current_bctx(void); diff --git a/src/openbts_sock.cpp b/src/openbts_sock.cpp index a09f834b..2d9cae41 100644 --- a/src/openbts_sock.cpp +++ b/src/openbts_sock.cpp @@ -179,8 +179,10 @@ int pcu_l1if_open() void pcu_l1if_close(void) { - gprs_bssgp_destroy_or_exit(); + gprs_bssgp_destroy(); /* FIXME: cleanup l1if */ talloc_free(l1fh->fl1h); + + exit(0); } diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index ce13b96f..0cb79eb6 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -324,8 +324,8 @@ bssgp_failed: for (ts = 0; ts < 8; ts++) bts->trx[trx].pdch[ts].free_resources(); } - gprs_bssgp_destroy_or_exit(); - return 0; + gprs_bssgp_destroy(); + exit(0); } LOGP(DL1IF, LOGL_INFO, "BTS available\n"); LOGP(DL1IF, LOGL_DEBUG, " mcc=%x\n", info_ind->mcc); diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp index c0dac142..8631ad33 100644 --- a/src/pcu_main.cpp +++ b/src/pcu_main.cpp @@ -56,7 +56,6 @@ static void print_help() "provided by BTS\n" " -r --realtime PRIO Use SCHED_RR with the specified " "priority\n" - " -e --exit Exit the application on disconnect\n" ); } @@ -105,7 +104,7 @@ static void handle_options(int argc, char **argv) rt_prio = atoi(optarg); break; case 'e': - gprs_bssgp_exit_on_destroy(); + fprintf(stderr, "Warning: Option '-e' is deprecated!\n"); break; default: fprintf(stderr, "Unknown option '%c'\n", c); diff --git a/src/sysmo_sock.cpp b/src/sysmo_sock.cpp index 2e2d9d39..951653e2 100644 --- a/src/sysmo_sock.cpp +++ b/src/sysmo_sock.cpp @@ -112,12 +112,8 @@ static void pcu_sock_close(struct pcu_sock_state *state, int lost) gprs_rlcmac_tbf::free_all(&bts->trx[trx]); } - gprs_bssgp_destroy_or_exit(); - - if (lost) { - state->timer.cb = pcu_sock_timeout; - osmo_timer_schedule(&state->timer, 5, 0); - } + gprs_bssgp_destroy(); + exit(0); } static int pcu_sock_read(struct osmo_fd *bfd)