diff options
Diffstat (limited to 'openbsc/src/osmo_msc.c')
-rw-r--r-- | openbsc/src/osmo_msc.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/openbsc/src/osmo_msc.c b/openbsc/src/osmo_msc.c index beb90e5b1..8c86dcc8e 100644 --- a/openbsc/src/osmo_msc.c +++ b/openbsc/src/osmo_msc.c @@ -38,6 +38,10 @@ static void msc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci) static int msc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause) { gsm0408_clear_request(conn, cause); + if (conn->put_channel) { + conn->put_channel = 0; + subscr_put_channel(conn->subscr); + } return 1; } @@ -92,5 +96,9 @@ void msc_release_connection(struct gsm_subscriber_connection *conn) /* no more connections, asking to release the channel */ conn->in_release = 1; gsm0808_clear(conn); + if (conn->put_channel) { + conn->put_channel = 0; + subscr_put_channel(conn->subscr); + } subscr_con_free(conn); } |