diff options
Diffstat (limited to 'openbsc/src/bsc_api.c')
-rw-r--r-- | openbsc/src/bsc_api.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/openbsc/src/bsc_api.c b/openbsc/src/bsc_api.c index 576440f9d..ba6dd8852 100644 --- a/openbsc/src/bsc_api.c +++ b/openbsc/src/bsc_api.c @@ -189,20 +189,18 @@ int gsm0808_cipher_mode(struct gsm_subscriber_connection *conn, int cipher, */ int gsm0808_clear(struct gsm_subscriber_connection* conn) { - struct gsm_lchan *lchan; + if (conn->ho_lchan) + bsc_clear_handover(conn); + + if (conn->lchan) { + lchan_release(conn->lchan, 1, 0); + conn->lchan->conn = NULL; + } - lchan = conn->lchan; conn->lchan = NULL; conn->ho_lchan = NULL; conn->bts = NULL; - if (conn->ho_lchan) - bsc_clear_handover(conn); - if (conn->lchan) - lchan_release(lchan, 1, 0); - conn->lchan->conn = NULL; - conn->lchan = NULL; - return 0; } |