aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2016-12-07 14:29:42 +0100
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2016-12-08 01:38:58 +0100
commit88d31197c8b899e8fa2e462f76663963f60dc935 (patch)
treee320138b1c1a2f79a19466fb9bc988f0c7e3e1ec
parent7695fdb4f41a455c1af2d9a2706f057bca9bd123 (diff)
fixes for tmsi reall compl path
vlr_sub_rx_tmsi_reall_compl(): have a return value; publish in vlr.h. gsm48_rx_mm_tmsi_reall_compl(): fix everything. Change-Id: Ieeccca85e7177e21af43db4de705ec13d7bc8c40
-rw-r--r--openbsc/include/openbsc/vlr.h1
-rw-r--r--openbsc/src/libmsc/gsm_04_08.c4
-rw-r--r--openbsc/src/libvlr/vlr.c11
3 files changed, 9 insertions, 7 deletions
diff --git a/openbsc/include/openbsc/vlr.h b/openbsc/include/openbsc/vlr.h
index d8b4f09b4..3aded6dc8 100644
--- a/openbsc/include/openbsc/vlr.h
+++ b/openbsc/include/openbsc/vlr.h
@@ -207,6 +207,7 @@ int vlr_sub_rx_auth_resp(struct vlr_subscriber *vsub, bool is_r99, bool is_utran
const uint8_t *res, uint8_t res_len);
int vlr_sub_rx_auth_fail(struct vlr_subscriber *vsub, const uint8_t *auts);
int vlr_sub_tx_auth_fail_rep(struct vlr_subscriber *vsub);
+int vlr_sub_rx_tmsi_reall_compl(struct vlr_subscriber *vsub);
struct vlr_instance *
vlr_init(void *ctx, const struct vlr_ops *ops, const char *addr_str, uint16_t port);
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c
index 91eecb00b..097127a6f 100644
--- a/openbsc/src/libmsc/gsm_04_08.c
+++ b/openbsc/src/libmsc/gsm_04_08.c
@@ -910,8 +910,8 @@ static int gsm48_rx_mm_auth_resp(struct gsm_subscriber_connection *conn, struct
static int gsm48_rx_mm_tmsi_reall_compl(struct gsm_subscriber_connection *conn)
{
DEBUGP(DMM, "TMSI Reallocation Completed. Subscriber: %s\n",
- subscr_name(conn->subscr));
- return vlr_sub_rx_tmsi_realloc_req(conn);
+ vlr_sub_name(conn->subscr));
+ return vlr_sub_rx_tmsi_reall_compl(conn->subscr);
}
/* Receive a GSM 04.08 Mobility Management (MM) message */
diff --git a/openbsc/src/libvlr/vlr.c b/openbsc/src/libvlr/vlr.c
index 0ed9fb538..e9e32f9c4 100644
--- a/openbsc/src/libvlr/vlr.c
+++ b/openbsc/src/libvlr/vlr.c
@@ -715,17 +715,18 @@ int vlr_sub_rx_id_resp(struct vlr_subscriber *vsub,
}
/* MSC->VLR: Subscriber has provided IDENTITY RESPONSE */
-void vlr_sub_rx_tmsi_reall_compl(struct vlr_subscriber *vsub)
+int vlr_sub_rx_tmsi_reall_compl(struct vlr_subscriber *vsub)
{
if (vsub->lu_fsm) {
- osmo_fsm_inst_dispatch(vsub->lu_fsm,
- VLR_ULA_E_NEW_TMSI_ACK, NULL);
+ return osmo_fsm_inst_dispatch(vsub->lu_fsm,
+ VLR_ULA_E_NEW_TMSI_ACK, NULL);
} else if (vsub->proc_arq_fsm) {
- osmo_fsm_inst_dispatch(vsub->proc_arq_fsm,
- PR_ARQ_E_TMSI_ACK, NULL);
+ return osmo_fsm_inst_dispatch(vsub->proc_arq_fsm,
+ PR_ARQ_E_TMSI_ACK, NULL);
} else {
LOGVSUBP(LOGL_NOTICE, vsub,
"gratuitous TMSI REALLOC COMPL");
+ return -EINVAL;
}
}