From 6ad320a97c5bafa1dcf50c0b5dbd26a02f225896 Mon Sep 17 00:00:00 2001 From: mitmitmitm Date: Thu, 8 Dec 2022 17:34:16 +0100 Subject: [PATCH] [AMF] Fix deletion of auth data from AUSF --- src/amf/gmm-sm.c | 46 +++++++++++++--------------------------------- 1 file changed, 13 insertions(+), 33 deletions(-) diff --git a/src/amf/gmm-sm.c b/src/amf/gmm-sm.c index d9eda57bb..83a74bae4 100644 --- a/src/amf/gmm-sm.c +++ b/src/amf/gmm-sm.c @@ -130,7 +130,8 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) CASE(OGS_SBI_RESOURCE_NAME_UE_AUTHENTICATIONS) if (sbi_message->res_status != OGS_SBI_HTTP_STATUS_CREATED && - sbi_message->res_status != OGS_SBI_HTTP_STATUS_OK) { + sbi_message->res_status != OGS_SBI_HTTP_STATUS_OK && + sbi_message->res_status != OGS_SBI_HTTP_STATUS_NO_CONTENT) { if (sbi_message->res_status == OGS_SBI_HTTP_STATUS_NOT_FOUND) { ogs_warn("[%s] Cannot find SUCI [%d]", @@ -149,6 +150,11 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) CASE(OGS_SBI_HTTP_METHOD_PUT) ogs_warn("[%s] Ignore SBI message", amf_ue->suci); break; + CASE(OGS_SBI_HTTP_METHOD_DELETE) + if (amf_ue->confirmation_url_for_5g_aka) + ogs_free(amf_ue->confirmation_url_for_5g_aka); + amf_ue->confirmation_url_for_5g_aka = NULL; + break; DEFAULT ogs_error("[%s] Invalid HTTP method [%s]", amf_ue->suci, sbi_message->h.method); @@ -156,6 +162,12 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) END break; + CASE(OGS_SBI_RESOURCE_NAME_5G_AKA) + CASE(OGS_SBI_RESOURCE_NAME_5G_AKA_CONFIRMATION) + CASE(OGS_SBI_RESOURCE_NAME_EAP_SESSION) + ogs_warn("[%s] Ignore SBI message", amf_ue->supi); + break; + DEFAULT ogs_error("Invalid resource name [%s]", sbi_message->h.resource.component[0]); @@ -249,38 +261,6 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e) END break; - CASE(OGS_SBI_SERVICE_NAME_NAUSF_AUTH) - if (sbi_message->res_status != OGS_SBI_HTTP_STATUS_CREATED && - sbi_message->res_status != OGS_SBI_HTTP_STATUS_NO_CONTENT && - sbi_message->res_status != OGS_SBI_HTTP_STATUS_OK) { - ogs_error("[%s] HTTP response error [%d]", - amf_ue->supi, sbi_message->res_status); - break; - } - SWITCH(sbi_message->h.resource.component[0]) - CASE(OGS_SBI_RESOURCE_NAME_5G_AKA) - CASE(OGS_SBI_RESOURCE_NAME_5G_AKA_CONFIRMATION) - CASE(OGS_SBI_RESOURCE_NAME_EAP_SESSION) - ogs_warn("[%s] Ignore SBI message", amf_ue->supi); - break; - CASE(OGS_SBI_RESOURCE_NAME_UE_AUTHENTICATIONS) - SWITCH(sbi_message->h.method) - CASE(OGS_SBI_HTTP_METHOD_DELETE) - if (amf_ue->confirmation_url_for_5g_aka) - ogs_free(amf_ue->confirmation_url_for_5g_aka); - amf_ue->confirmation_url_for_5g_aka = NULL; - break; - DEFAULT - ogs_error("[%s] Invalid HTTP method [%s]", - amf_ue->suci, sbi_message->h.method); - END - break; - DEFAULT - ogs_error("Invalid resource name [%s]", - sbi_message->h.resource.component[1]); - END - break; - CASE(OGS_SBI_SERVICE_NAME_NPCF_AM_POLICY_CONTROL) SWITCH(sbi_message->h.resource.component[0]) CASE(OGS_SBI_RESOURCE_NAME_POLICIES)