aboutsummaryrefslogtreecommitdiffstats
path: root/src/libbsc/bsc_api.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libbsc/bsc_api.c')
-rw-r--r--src/libbsc/bsc_api.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/libbsc/bsc_api.c b/src/libbsc/bsc_api.c
index 3c812d183..c47654778 100644
--- a/src/libbsc/bsc_api.c
+++ b/src/libbsc/bsc_api.c
@@ -267,7 +267,7 @@ void ho_dtap_cache_flush(struct gsm_subscriber_connection *conn, int send)
struct msgb *msg;
unsigned int flushed_count = 0;
- if (conn->secondary_lchan || conn->ho_lchan) {
+ if (conn->secondary_lchan || conn->ho) {
LOGP(DHO, LOGL_ERROR, "%s: Cannot send cached DTAP messages, handover/assignment is still ongoing\n",
bsc_subscr_name(conn->bsub));
send = 0;
@@ -308,7 +308,7 @@ int gsm0808_submit_dtap(struct gsm_subscriber_connection *conn,
}
/* buffer message during assignment / handover */
- if (conn->secondary_lchan || conn->ho_lchan) {
+ if (conn->secondary_lchan || conn->ho) {
ho_dtap_cache_add(conn, msg, link_id, !! allow_sacch);
return 0;
}
@@ -427,7 +427,7 @@ static void handle_ass_compl(struct gsm_subscriber_connection *conn,
struct gsm48_hdr *gh;
struct bsc_api *api = conn->network->bsc_api;
- if (conn->ho_lchan) {
+ if (conn->ho) {
struct lchan_signal_data sig;
struct gsm48_hdr *gh = msgb_l3(msg);
@@ -483,7 +483,7 @@ static void handle_ass_fail(struct gsm_subscriber_connection *conn,
uint8_t *rr_failure;
struct gsm48_hdr *gh;
- if (conn->ho_lchan) {
+ if (conn->ho) {
struct lchan_signal_data sig;
struct gsm48_hdr *gh = msgb_l3(msg);
@@ -772,7 +772,7 @@ int gsm0808_cipher_mode(struct gsm_subscriber_connection *conn, int cipher,
*/
int gsm0808_clear(struct gsm_subscriber_connection *conn)
{
- if (conn->ho_lchan)
+ if (conn->ho)
bsc_clear_handover(conn, 1);
if (conn->secondary_lchan)
@@ -783,7 +783,6 @@ int gsm0808_clear(struct gsm_subscriber_connection *conn)
conn->lchan = NULL;
conn->secondary_lchan = NULL;
- conn->ho_lchan = NULL;
osmo_timer_del(&conn->T10);
@@ -885,10 +884,8 @@ static void handle_release(struct gsm_subscriber_connection *conn,
/* now give up all channels */
if (conn->lchan == lchan)
conn->lchan = NULL;
- if (conn->ho_lchan == lchan) {
+ if (conn->ho && conn->ho->new_lchan == lchan)
bsc_clear_handover(conn, 0);
- conn->ho_lchan = NULL;
- }
lchan->conn = NULL;
}