forked from acouzens/open5gs
Fixed a crash on explicit network-initiated deregister with SUBSCRIPTION_WITHDRAWN
This commit is contained in:
parent
474b2d4134
commit
888e58a94e
|
@ -1252,29 +1252,41 @@ static int parse_json(ogs_sbi_message_t *message,
|
|||
|
||||
SWITCH(message->h.resource.component[0])
|
||||
CASE(OGS_SBI_RESOURCE_NAME_NF_INSTANCES)
|
||||
message->NFProfile =
|
||||
OpenAPI_nf_profile_parseFromJSON(item);
|
||||
if (!message->NFProfile) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->NFProfile =
|
||||
OpenAPI_nf_profile_parseFromJSON(item);
|
||||
if (!message->NFProfile) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d", message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
CASE(OGS_SBI_RESOURCE_NAME_SUBSCRIPTIONS)
|
||||
message->SubscriptionData =
|
||||
OpenAPI_subscription_data_parseFromJSON(item);
|
||||
if (!message->SubscriptionData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->SubscriptionData =
|
||||
OpenAPI_subscription_data_parseFromJSON(item);
|
||||
if (!message->SubscriptionData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d", message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
CASE(OGS_SBI_RESOURCE_NAME_NF_STATUS_NOTIFY)
|
||||
message->NotificationData =
|
||||
OpenAPI_notification_data_parseFromJSON(item);
|
||||
if (!message->NotificationData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->NotificationData =
|
||||
OpenAPI_notification_data_parseFromJSON(item);
|
||||
if (!message->NotificationData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d", message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1288,11 +1300,15 @@ static int parse_json(ogs_sbi_message_t *message,
|
|||
CASE(OGS_SBI_SERVICE_NAME_NNRF_DISC)
|
||||
SWITCH(message->h.resource.component[0])
|
||||
CASE(OGS_SBI_RESOURCE_NAME_NF_INSTANCES)
|
||||
message->SearchResult =
|
||||
OpenAPI_search_result_parseFromJSON(item);
|
||||
if (!message->SearchResult) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->SearchResult =
|
||||
OpenAPI_search_result_parseFromJSON(item);
|
||||
if (!message->SearchResult) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d", message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1389,10 +1405,14 @@ static int parse_json(ogs_sbi_message_t *message,
|
|||
break;
|
||||
|
||||
CASE(OGS_SBI_RESOURCE_NAME_AUTH_EVENTS)
|
||||
message->AuthEvent = OpenAPI_auth_event_parseFromJSON(item);
|
||||
if (!message->AuthEvent) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->AuthEvent = OpenAPI_auth_event_parseFromJSON(item);
|
||||
if (!message->AuthEvent) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d", message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1410,7 +1430,8 @@ static int parse_json(ogs_sbi_message_t *message,
|
|||
CASE(OGS_SBI_RESOURCE_NAME_AMF_3GPP_ACCESS)
|
||||
|
||||
SWITCH(message->h.method)
|
||||
CASE(OGS_SBI_HTTP_METHOD_PUT)
|
||||
CASE(OGS_SBI_HTTP_METHOD_PUT)
|
||||
if (message->res_status < 300) {
|
||||
message->Amf3GppAccessRegistration =
|
||||
OpenAPI_amf3_gpp_access_registration_parseFromJSON(
|
||||
item);
|
||||
|
@ -1418,8 +1439,13 @@ static int parse_json(ogs_sbi_message_t *message,
|
|||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
break;
|
||||
CASE(OGS_SBI_HTTP_METHOD_PATCH)
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d",
|
||||
message->res_status);
|
||||
}
|
||||
break;
|
||||
CASE(OGS_SBI_HTTP_METHOD_PATCH)
|
||||
if (message->res_status < 300) {
|
||||
message->Amf3GppAccessRegistrationModification =
|
||||
OpenAPI_amf3_gpp_access_registration_modification_parseFromJSON(
|
||||
item);
|
||||
|
@ -1427,11 +1453,15 @@ static int parse_json(ogs_sbi_message_t *message,
|
|||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
break;
|
||||
DEFAULT
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("Unknown method [%s]", message->h.method);
|
||||
END
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d",
|
||||
message->res_status);
|
||||
}
|
||||
break;
|
||||
DEFAULT
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("Unknown method [%s]", message->h.method);
|
||||
END
|
||||
break;
|
||||
DEFAULT
|
||||
rv = OGS_ERROR;
|
||||
|
@ -1450,57 +1480,80 @@ static int parse_json(ogs_sbi_message_t *message,
|
|||
CASE(OGS_SBI_SERVICE_NAME_NUDM_SDM)
|
||||
SWITCH(message->h.resource.component[1])
|
||||
CASE(OGS_SBI_RESOURCE_NAME_AM_DATA)
|
||||
message->AccessAndMobilitySubscriptionData =
|
||||
OpenAPI_access_and_mobility_subscription_data_parseFromJSON(
|
||||
item);
|
||||
if (!message->AccessAndMobilitySubscriptionData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->AccessAndMobilitySubscriptionData =
|
||||
OpenAPI_access_and_mobility_subscription_data_parseFromJSON(
|
||||
item);
|
||||
if (!message->AccessAndMobilitySubscriptionData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d", message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
CASE(OGS_SBI_RESOURCE_NAME_SMF_SELECT_DATA)
|
||||
message->SmfSelectionSubscriptionData =
|
||||
OpenAPI_smf_selection_subscription_data_parseFromJSON(item);
|
||||
if (!message->SmfSelectionSubscriptionData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->SmfSelectionSubscriptionData =
|
||||
OpenAPI_smf_selection_subscription_data_parseFromJSON(
|
||||
item);
|
||||
if (!message->SmfSelectionSubscriptionData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d", message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
CASE(OGS_SBI_RESOURCE_NAME_UE_CONTEXT_IN_SMF_DATA)
|
||||
message->UeContextInSmfData =
|
||||
OpenAPI_ue_context_in_smf_data_parseFromJSON(item);
|
||||
if (!message->UeContextInSmfData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->UeContextInSmfData =
|
||||
OpenAPI_ue_context_in_smf_data_parseFromJSON(item);
|
||||
if (!message->UeContextInSmfData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d", message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
CASE(OGS_SBI_RESOURCE_NAME_SM_DATA)
|
||||
if (item) {
|
||||
OpenAPI_session_management_subscription_data_t *smsub_item = NULL;
|
||||
cJSON *smsubJSON = NULL;
|
||||
message->SessionManagementSubscriptionDataList = OpenAPI_list_create();
|
||||
cJSON_ArrayForEach(smsubJSON, item) {
|
||||
if (!cJSON_IsObject(smsubJSON)) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("Unknown JSON");
|
||||
goto cleanup;
|
||||
}
|
||||
if (message->res_status < 300) {
|
||||
if (item) {
|
||||
OpenAPI_session_management_subscription_data_t
|
||||
*smsub_item = NULL;
|
||||
cJSON *smsubJSON = NULL;
|
||||
message->SessionManagementSubscriptionDataList =
|
||||
OpenAPI_list_create();
|
||||
cJSON_ArrayForEach(smsubJSON, item) {
|
||||
if (!cJSON_IsObject(smsubJSON)) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("Unknown JSON");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
smsub_item = OpenAPI_session_management_subscription_data_parseFromJSON(smsubJSON);
|
||||
OpenAPI_list_add(message->SessionManagementSubscriptionDataList, smsub_item);
|
||||
smsub_item = OpenAPI_session_management_subscription_data_parseFromJSON(smsubJSON);
|
||||
OpenAPI_list_add(message->SessionManagementSubscriptionDataList, smsub_item);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d", message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
CASE(OGS_SBI_RESOURCE_NAME_SDM_SUBSCRIPTIONS)
|
||||
message->SDMSubscription =
|
||||
OpenAPI_sdm_subscription_parseFromJSON(item);
|
||||
if (!message->SDMSubscription) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->SDMSubscription =
|
||||
OpenAPI_sdm_subscription_parseFromJSON(item);
|
||||
if (!message->SDMSubscription) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d", message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1528,11 +1581,16 @@ static int parse_json(ogs_sbi_message_t *message,
|
|||
}
|
||||
break;
|
||||
CASE(OGS_SBI_RESOURCE_NAME_AUTHENTICATION_STATUS)
|
||||
message->AuthEvent =
|
||||
OpenAPI_auth_event_parseFromJSON(item);
|
||||
if (!message->AuthEvent) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->AuthEvent =
|
||||
OpenAPI_auth_event_parseFromJSON(item);
|
||||
if (!message->AuthEvent) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d",
|
||||
message->res_status);
|
||||
}
|
||||
break;
|
||||
DEFAULT
|
||||
|
@ -1543,12 +1601,17 @@ static int parse_json(ogs_sbi_message_t *message,
|
|||
break;
|
||||
|
||||
CASE(OGS_SBI_RESOURCE_NAME_CONTEXT_DATA)
|
||||
message->Amf3GppAccessRegistration =
|
||||
OpenAPI_amf3_gpp_access_registration_parseFromJSON(
|
||||
item);
|
||||
if (!message->Amf3GppAccessRegistration) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->Amf3GppAccessRegistration =
|
||||
OpenAPI_amf3_gpp_access_registration_parseFromJSON(
|
||||
item);
|
||||
if (!message->Amf3GppAccessRegistration) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d",
|
||||
message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1557,48 +1620,69 @@ static int parse_json(ogs_sbi_message_t *message,
|
|||
CASE(OGS_SBI_RESOURCE_NAME_PROVISIONED_DATA)
|
||||
SWITCH(message->h.resource.component[4])
|
||||
CASE(OGS_SBI_RESOURCE_NAME_AM_DATA)
|
||||
message->AccessAndMobilitySubscriptionData =
|
||||
OpenAPI_access_and_mobility_subscription_data_parseFromJSON(item);
|
||||
if (!message->AccessAndMobilitySubscriptionData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->AccessAndMobilitySubscriptionData =
|
||||
OpenAPI_access_and_mobility_subscription_data_parseFromJSON(item);
|
||||
if (!message->
|
||||
AccessAndMobilitySubscriptionData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d",
|
||||
message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
CASE(OGS_SBI_RESOURCE_NAME_SMF_SELECTION_SUBSCRIPTION_DATA)
|
||||
message->SmfSelectionSubscriptionData =
|
||||
OpenAPI_smf_selection_subscription_data_parseFromJSON(item);
|
||||
if (!message->SmfSelectionSubscriptionData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->SmfSelectionSubscriptionData =
|
||||
OpenAPI_smf_selection_subscription_data_parseFromJSON(item);
|
||||
if (!message->SmfSelectionSubscriptionData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d",
|
||||
message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
CASE(OGS_SBI_RESOURCE_NAME_UE_CONTEXT_IN_SMF_DATA)
|
||||
message->UeContextInSmfData =
|
||||
OpenAPI_ue_context_in_smf_data_parseFromJSON(
|
||||
item);
|
||||
if (!message->UeContextInSmfData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->UeContextInSmfData =
|
||||
OpenAPI_ue_context_in_smf_data_parseFromJSON(
|
||||
item);
|
||||
if (!message->UeContextInSmfData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d",
|
||||
message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
CASE(OGS_SBI_RESOURCE_NAME_SM_DATA)
|
||||
if (item) {
|
||||
OpenAPI_session_management_subscription_data_t *smsub_item = NULL;
|
||||
cJSON *smsubJSON = NULL;
|
||||
message->SessionManagementSubscriptionDataList = OpenAPI_list_create();
|
||||
cJSON_ArrayForEach(smsubJSON, item) {
|
||||
if (!cJSON_IsObject(smsubJSON)) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("Unknown JSON");
|
||||
goto cleanup;
|
||||
}
|
||||
if (message->res_status < 300) {
|
||||
if (item) {
|
||||
OpenAPI_session_management_subscription_data_t *smsub_item = NULL;
|
||||
cJSON *smsubJSON = NULL;
|
||||
message->SessionManagementSubscriptionDataList = OpenAPI_list_create();
|
||||
cJSON_ArrayForEach(smsubJSON, item) {
|
||||
if (!cJSON_IsObject(smsubJSON)) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("Unknown JSON");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
smsub_item = OpenAPI_session_management_subscription_data_parseFromJSON(smsubJSON);
|
||||
OpenAPI_list_add(message->SessionManagementSubscriptionDataList, smsub_item);
|
||||
smsub_item = OpenAPI_session_management_subscription_data_parseFromJSON(smsubJSON);
|
||||
OpenAPI_list_add(message->SessionManagementSubscriptionDataList, smsub_item);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d",
|
||||
message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1622,22 +1706,30 @@ static int parse_json(ogs_sbi_message_t *message,
|
|||
CASE(OGS_SBI_RESOURCE_NAME_UES)
|
||||
SWITCH(message->h.resource.component[3])
|
||||
CASE(OGS_SBI_RESOURCE_NAME_AM_DATA)
|
||||
|
||||
message->AmPolicyData =
|
||||
OpenAPI_am_policy_data_parseFromJSON(item);
|
||||
if (!message->AmPolicyData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->AmPolicyData =
|
||||
OpenAPI_am_policy_data_parseFromJSON(item);
|
||||
if (!message->AmPolicyData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d",
|
||||
message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
CASE(OGS_SBI_RESOURCE_NAME_SM_DATA)
|
||||
|
||||
message->SmPolicyData =
|
||||
OpenAPI_sm_policy_data_parseFromJSON(item);
|
||||
if (!message->SmPolicyData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->SmPolicyData =
|
||||
OpenAPI_sm_policy_data_parseFromJSON(item);
|
||||
if (!message->SmPolicyData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d",
|
||||
message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1988,11 +2080,16 @@ static int parse_json(ogs_sbi_message_t *message,
|
|||
} else {
|
||||
SWITCH(message->h.method)
|
||||
CASE(OGS_SBI_HTTP_METHOD_PATCH)
|
||||
message->AppSessionContextUpdateDataPatch =
|
||||
OpenAPI_app_session_context_update_data_patch_parseFromJSON(item);
|
||||
if (!message->AppSessionContextUpdateDataPatch) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->AppSessionContextUpdateDataPatch =
|
||||
OpenAPI_app_session_context_update_data_patch_parseFromJSON(item);
|
||||
if (!message->AppSessionContextUpdateDataPatch) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d",
|
||||
message->res_status);
|
||||
}
|
||||
break;
|
||||
DEFAULT
|
||||
|
@ -2030,29 +2127,42 @@ static int parse_json(ogs_sbi_message_t *message,
|
|||
CASE(OGS_SBI_SERVICE_NAME_NAMF_CALLBACK)
|
||||
SWITCH(message->h.resource.component[1])
|
||||
CASE(OGS_SBI_RESOURCE_NAME_SM_CONTEXT_STATUS)
|
||||
message->SmContextStatusNotification =
|
||||
OpenAPI_sm_context_status_notification_parseFromJSON(item);
|
||||
if (!message->SmContextStatusNotification) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->SmContextStatusNotification =
|
||||
OpenAPI_sm_context_status_notification_parseFromJSON(
|
||||
item);
|
||||
if (!message->SmContextStatusNotification) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d", message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
CASE(OGS_SBI_RESOURCE_NAME_DEREG_NOTIFY)
|
||||
message->DeregistrationData =
|
||||
OpenAPI_deregistration_data_parseFromJSON(item);
|
||||
if (!message->DeregistrationData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->DeregistrationData =
|
||||
OpenAPI_deregistration_data_parseFromJSON(item);
|
||||
if (!message->DeregistrationData) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d", message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
CASE(OGS_SBI_RESOURCE_NAME_SDMSUBSCRIPTION_NOTIFY)
|
||||
message->ModificationNotification =
|
||||
OpenAPI_modification_notification_parseFromJSON(item);
|
||||
if (!message->ModificationNotification) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->ModificationNotification =
|
||||
OpenAPI_modification_notification_parseFromJSON(item);
|
||||
if (!message->ModificationNotification) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d", message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -2066,31 +2176,45 @@ static int parse_json(ogs_sbi_message_t *message,
|
|||
CASE(OGS_SBI_SERVICE_NAME_NSMF_CALLBACK)
|
||||
SWITCH(message->h.resource.component[0])
|
||||
CASE(OGS_SBI_RESOURCE_NAME_N1_N2_FAILURE_NOTIFY)
|
||||
message->N1N2MsgTxfrFailureNotification =
|
||||
OpenAPI_n1_n2_msg_txfr_failure_notification_parseFromJSON(
|
||||
item);
|
||||
if (!message->N1N2MsgTxfrFailureNotification) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->N1N2MsgTxfrFailureNotification =
|
||||
OpenAPI_n1_n2_msg_txfr_failure_notification_parseFromJSON(
|
||||
item);
|
||||
if (!message->N1N2MsgTxfrFailureNotification) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d", message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
CASE(OGS_SBI_RESOURCE_NAME_SM_POLICY_NOTIFY)
|
||||
SWITCH(message->h.resource.component[2])
|
||||
CASE(OGS_SBI_RESOURCE_NAME_UPDATE)
|
||||
message->SmPolicyNotification =
|
||||
OpenAPI_sm_policy_notification_parseFromJSON(item);
|
||||
if (!message->SmPolicyNotification) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->SmPolicyNotification =
|
||||
OpenAPI_sm_policy_notification_parseFromJSON(item);
|
||||
if (!message->SmPolicyNotification) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d",
|
||||
message->res_status);
|
||||
}
|
||||
break;
|
||||
CASE(OGS_SBI_RESOURCE_NAME_TERMINATE)
|
||||
message->TerminationNotification =
|
||||
OpenAPI_termination_notification_parseFromJSON(item);
|
||||
if (!message->TerminationNotification) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
if (message->res_status < 300) {
|
||||
message->TerminationNotification =
|
||||
OpenAPI_termination_notification_parseFromJSON(item);
|
||||
if (!message->TerminationNotification) {
|
||||
rv = OGS_ERROR;
|
||||
ogs_error("JSON parse error");
|
||||
}
|
||||
} else {
|
||||
ogs_error("HTTP ERROR Status : %d",
|
||||
message->res_status);
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
@ -181,7 +181,6 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e)
|
|||
ogs_error("[%s] HTTP response error [%d]",
|
||||
amf_ue->suci, sbi_message->res_status);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
SWITCH(sbi_message->h.method)
|
||||
|
@ -222,7 +221,6 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e)
|
|||
(sbi_message->res_status != OGS_SBI_HTTP_STATUS_NO_CONTENT)) {
|
||||
ogs_error("[%s] HTTP response error [%d]",
|
||||
amf_ue->supi, sbi_message->res_status);
|
||||
break;
|
||||
}
|
||||
|
||||
SWITCH(sbi_message->h.resource.component[1])
|
||||
|
@ -292,7 +290,6 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e)
|
|||
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[1])
|
||||
|
@ -663,7 +660,6 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e)
|
|||
ogs_error("[%s] HTTP response error [%d]",
|
||||
amf_ue->suci, sbi_message->res_status);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
SWITCH(sbi_message->h.method)
|
||||
|
@ -704,7 +700,6 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e)
|
|||
(sbi_message->res_status != OGS_SBI_HTTP_STATUS_NO_CONTENT)) {
|
||||
ogs_error("[%s] HTTP response error [%d]",
|
||||
amf_ue->supi, sbi_message->res_status);
|
||||
break;
|
||||
}
|
||||
|
||||
SWITCH(sbi_message->h.resource.component[1])
|
||||
|
@ -780,7 +775,6 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e)
|
|||
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[1])
|
||||
|
|
|
@ -927,7 +927,8 @@ int amf_namf_callback_handle_sdm_data_change_notify(
|
|||
if (CM_CONNECTED(amf_ue)) {
|
||||
r = nas_5gs_send_de_registration_request(
|
||||
amf_ue,
|
||||
OpenAPI_deregistration_reason_REREGISTRATION_REQUIRED, 0);
|
||||
OpenAPI_deregistration_reason_REREGISTRATION_REQUIRED,
|
||||
OGS_5GMM_CAUSE_5GS_SERVICES_NOT_ALLOWED);
|
||||
ogs_expect(r == OGS_OK);
|
||||
ogs_assert(r != OGS_ERROR);
|
||||
|
||||
|
|
|
@ -421,10 +421,11 @@ bool udm_nudm_uecm_handle_registration_update(
|
|||
ogs_assert(true ==
|
||||
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_FORBIDDEN,
|
||||
message, "Guami mismatch", udm_ue->supi));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if (Amf3GppAccessRegistrationModification->is_purge_flag) {
|
||||
ogs_assert(udm_ue->amf_3gpp_access_registration);
|
||||
udm_ue->amf_3gpp_access_registration->is_purge_flag =
|
||||
Amf3GppAccessRegistrationModification->is_purge_flag;
|
||||
udm_ue->amf_3gpp_access_registration->purge_flag =
|
||||
|
@ -434,7 +435,6 @@ bool udm_nudm_uecm_handle_registration_update(
|
|||
PatchItemList = OpenAPI_list_create();
|
||||
ogs_assert(PatchItemList);
|
||||
|
||||
|
||||
if (Amf3GppAccessRegistrationModification->is_purge_flag) {
|
||||
memset(&item, 0, sizeof(item));
|
||||
item.op = OpenAPI_patch_operation_replace;
|
||||
|
|
Loading…
Reference in New Issue