diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2017-07-21 18:49:12 +0200 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2017-07-22 16:28:42 +0200 |
commit | e0828ad50fe926ecb65310ac4fdbd040af1b64b8 (patch) | |
tree | d674889899974559bd56bbfe871aede1af55d625 /openbsc/src | |
parent | e4f357ee3eee75c060c0e3d75128794907bd8006 (diff) |
gsm04_08.c patches from neels (remove when committed properly)
0001-imsi-detach-improve-error-logging.patch
0002-imsi-detach-always-close-connection-explicitly.patch
Diffstat (limited to 'openbsc/src')
-rw-r--r-- | openbsc/src/libmsc/gsm_04_08.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c index c310453e4..aeb7c7b44 100644 --- a/openbsc/src/libmsc/gsm_04_08.c +++ b/openbsc/src/libmsc/gsm_04_08.c @@ -748,28 +748,28 @@ static int gsm48_rx_mm_imsi_detach_ind(struct gsm_subscriber_connection *conn, s struct vlr_subscr *vsub = NULL; gsm48_mi_to_string(mi_string, sizeof(mi_string), idi->mi, idi->mi_len); - DEBUGP(DMM, "IMSI DETACH INDICATION: MI(%s)=%s", - gsm48_mi_type_name(mi_type), mi_string); + DEBUGP(DMM, "IMSI DETACH INDICATION: MI(%s)=%s\n", + gsm48_mi_type_name(mi_type), mi_string); rate_ctr_inc(&network->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_DETACH]); switch (mi_type) { case GSM_MI_TYPE_TMSI: - DEBUGPC(DMM, "\n"); vsub = vlr_subscr_find_by_tmsi(network->vlr, tmsi_from_string(mi_string)); break; case GSM_MI_TYPE_IMSI: - DEBUGPC(DMM, "\n"); vsub = vlr_subscr_find_by_imsi(network->vlr, mi_string); break; case GSM_MI_TYPE_IMEI: case GSM_MI_TYPE_IMEISV: /* no sim card... FIXME: what to do ? */ - DEBUGPC(DMM, ": unimplemented mobile identity type\n"); + LOGP(DMM, LOGL_ERROR, "MI(%s)=%s: unimplemented mobile identity type\n", + gsm48_mi_type_name(mi_type), mi_string); break; default: - DEBUGPC(DMM, ": unknown mobile identity type\n"); + LOGP(DMM, LOGL_ERROR, "MI(%s)=%s: unknown mobile identity type\n", + gsm48_mi_type_name(mi_type), mi_string); break; } @@ -779,16 +779,16 @@ static int gsm48_rx_mm_imsi_detach_ind(struct gsm_subscriber_connection *conn, s conn->classmark.classmark1 = idi->classmark1; if (!vsub) { - DEBUGP(DMM, "Unknown Subscriber ?!?\n"); - return 0; + LOGP(DMM, LOGL_ERROR, "IMSI DETACH for unknown subscriber MI(%s)=%s\n", + gsm48_mi_type_name(mi_type), mi_string); + } else { + LOGP(DMM, LOGL_INFO, "Subscriber %s DETACHED\n", + vlr_subscr_name(vsub)); + vlr_subscr_rx_imsi_detach(vsub); + osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_DETACHED, vsub); + vlr_subscr_put(vsub); } - LOGP(DMM, LOGL_INFO, "Subscriber %s DETACHED\n", - vlr_subscr_name(vsub)); - vlr_subscr_rx_imsi_detach(vsub); - osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_DETACHED, vsub); - vlr_subscr_put(vsub); - msc_subscr_conn_close(conn, 0); return 0; } |