[#203] Fix the bug for maintaining single mme_ue context

This commit is contained in:
Sukchan Lee 2019-11-06 10:22:34 +09:00
parent 4b8e2a5c97
commit 3743ef98a2
1 changed files with 8 additions and 3 deletions

View File

@ -2461,11 +2461,16 @@ int mme_ue_set_imsi(mme_ue_t *mme_ue, char *imsi_bcd)
ogs_cpystrn(mme_ue->imsi_bcd, imsi_bcd, OGS_MAX_IMSI_BCD_LEN+1);
ogs_bcd_to_buffer(mme_ue->imsi_bcd, mme_ue->imsi, &mme_ue->imsi_len);
/* Check if OLD mme_ue_t is existed */
old_mme_ue = mme_ue_find_by_imsi(mme_ue->imsi, mme_ue->imsi_len);
if (old_mme_ue) {
if (old_mme_ue->enb_ue)
enb_ue_deassociate(old_mme_ue->enb_ue);
mme_ue_remove(old_mme_ue);
/* Check if OLD mme_ue_t is different with NEW mme_ue_t */
if (ogs_pool_index(&mme_ue_pool, mme_ue) !=
ogs_pool_index(&mme_ue_pool, old_mme_ue)) {
if (old_mme_ue->enb_ue)
enb_ue_deassociate(old_mme_ue->enb_ue);
mme_ue_remove(old_mme_ue);
}
}
ogs_hash_set(self.imsi_ue_hash, mme_ue->imsi, mme_ue->imsi_len, mme_ue);