From 45b575fd94c28f933f77c8e85685ba9894da4696 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Fri, 5 Nov 2010 10:37:17 +0100 Subject: [PATCH] bsc_api: The rr_cause is optional, pass it as a pointer --- openbsc/include/openbsc/bsc_api.h | 2 +- openbsc/src/bsc/osmo_bsc_api.c | 3 ++- openbsc/src/bsc_api.c | 9 +++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/openbsc/include/openbsc/bsc_api.h b/openbsc/include/openbsc/bsc_api.h index 844e2aa12..206275263 100644 --- a/openbsc/include/openbsc/bsc_api.h +++ b/openbsc/include/openbsc/bsc_api.h @@ -20,7 +20,7 @@ struct bsc_api { uint8_t rr_cause, uint8_t chosen_channel, uint8_t encr_alg_id, uint8_t speech_mode); void (*assign_fail)(struct gsm_subscriber_connection *conn, - uint16_t rr_cause); + uint8_t cause, uint8_t *rr_cause); int (*clear_request)(struct gsm_subscriber_connection *conn, uint32_t cause); }; diff --git a/openbsc/src/bsc/osmo_bsc_api.c b/openbsc/src/bsc/osmo_bsc_api.c index 537a9b432..f4b3148f8 100644 --- a/openbsc/src/bsc/osmo_bsc_api.c +++ b/openbsc/src/bsc/osmo_bsc_api.c @@ -45,7 +45,8 @@ static void bsc_assign_compl(struct gsm_subscriber_connection *conn, uint8_t rr_ { } -static void bsc_assign_fail(struct gsm_subscriber_connection *conn, uint32_t cause) +static void bsc_assign_fail(struct gsm_subscriber_connection *conn, + uint8_t cause, uint8_t *rr_cause) { } diff --git a/openbsc/src/bsc_api.c b/openbsc/src/bsc_api.c index 3abf4ba01..c8ef4f4e5 100644 --- a/openbsc/src/bsc_api.c +++ b/openbsc/src/bsc_api.c @@ -203,7 +203,7 @@ int gsm0808_assign_req(struct gsm_subscriber_connection *conn, int chan_type, in struct bsc_api *api; api = conn->bts->network->bsc_api; - api->assign_fail(conn, 0); + api->assign_fail(conn, 0, NULL); return 0; } @@ -263,10 +263,11 @@ static void dispatch_dtap(struct gsm_subscriber_connection *conn, break; case GSM48_MT_RR_CHAN_MODE_MODIF_ACK: rc = gsm48_rx_rr_modif_ack(msg); - if (rc < 0 && api->assign_fail) + if (rc < 0 && api->assign_fail) { api->assign_fail(conn, - GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE); - else if (rc >= 0 && api->assign_compl) + GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, + NULL); + } else if (rc >= 0 && api->assign_compl) api->assign_compl(conn, 0, lchan_to_chosen_channel(conn->lchan), conn->lchan->encr.alg_id,