mirror of
https://github.com/open5gs/open5gs.git
synced 2026-05-02 21:30:10 +00:00
[SBI] Crash occurs when ENUM in the MAP (#2103)
This commit is contained in:
parent
ce668c556c
commit
969c116e77
1097 changed files with 266728 additions and 42047 deletions
|
|
@ -58,39 +58,92 @@ OpenAPI_access_and_mobility_data_t *OpenAPI_access_and_mobility_data_create(
|
|||
|
||||
void OpenAPI_access_and_mobility_data_free(OpenAPI_access_and_mobility_data_t *access_and_mobility_data)
|
||||
{
|
||||
OpenAPI_lnode_t *node = NULL;
|
||||
|
||||
if (NULL == access_and_mobility_data) {
|
||||
return;
|
||||
}
|
||||
OpenAPI_lnode_t *node;
|
||||
OpenAPI_user_location_free(access_and_mobility_data->location);
|
||||
ogs_free(access_and_mobility_data->location_ts);
|
||||
ogs_free(access_and_mobility_data->time_zone);
|
||||
ogs_free(access_and_mobility_data->time_zone_ts);
|
||||
OpenAPI_list_for_each(access_and_mobility_data->reg_states, node) {
|
||||
OpenAPI_rm_info_free(node->data);
|
||||
if (access_and_mobility_data->location) {
|
||||
OpenAPI_user_location_free(access_and_mobility_data->location);
|
||||
access_and_mobility_data->location = NULL;
|
||||
}
|
||||
OpenAPI_list_free(access_and_mobility_data->reg_states);
|
||||
ogs_free(access_and_mobility_data->reg_states_ts);
|
||||
OpenAPI_list_for_each(access_and_mobility_data->conn_states, node) {
|
||||
OpenAPI_cm_info_free(node->data);
|
||||
if (access_and_mobility_data->location_ts) {
|
||||
ogs_free(access_and_mobility_data->location_ts);
|
||||
access_and_mobility_data->location_ts = NULL;
|
||||
}
|
||||
if (access_and_mobility_data->time_zone) {
|
||||
ogs_free(access_and_mobility_data->time_zone);
|
||||
access_and_mobility_data->time_zone = NULL;
|
||||
}
|
||||
if (access_and_mobility_data->time_zone_ts) {
|
||||
ogs_free(access_and_mobility_data->time_zone_ts);
|
||||
access_and_mobility_data->time_zone_ts = NULL;
|
||||
}
|
||||
if (access_and_mobility_data->reg_states) {
|
||||
OpenAPI_list_for_each(access_and_mobility_data->reg_states, node) {
|
||||
OpenAPI_rm_info_free(node->data);
|
||||
}
|
||||
OpenAPI_list_free(access_and_mobility_data->reg_states);
|
||||
access_and_mobility_data->reg_states = NULL;
|
||||
}
|
||||
if (access_and_mobility_data->reg_states_ts) {
|
||||
ogs_free(access_and_mobility_data->reg_states_ts);
|
||||
access_and_mobility_data->reg_states_ts = NULL;
|
||||
}
|
||||
if (access_and_mobility_data->conn_states) {
|
||||
OpenAPI_list_for_each(access_and_mobility_data->conn_states, node) {
|
||||
OpenAPI_cm_info_free(node->data);
|
||||
}
|
||||
OpenAPI_list_free(access_and_mobility_data->conn_states);
|
||||
access_and_mobility_data->conn_states = NULL;
|
||||
}
|
||||
if (access_and_mobility_data->conn_states_ts) {
|
||||
ogs_free(access_and_mobility_data->conn_states_ts);
|
||||
access_and_mobility_data->conn_states_ts = NULL;
|
||||
}
|
||||
if (access_and_mobility_data->reachability_status) {
|
||||
OpenAPI_ue_reachability_free(access_and_mobility_data->reachability_status);
|
||||
access_and_mobility_data->reachability_status = NULL;
|
||||
}
|
||||
if (access_and_mobility_data->reachability_status_ts) {
|
||||
ogs_free(access_and_mobility_data->reachability_status_ts);
|
||||
access_and_mobility_data->reachability_status_ts = NULL;
|
||||
}
|
||||
if (access_and_mobility_data->sms_over_nas_status_ts) {
|
||||
ogs_free(access_and_mobility_data->sms_over_nas_status_ts);
|
||||
access_and_mobility_data->sms_over_nas_status_ts = NULL;
|
||||
}
|
||||
if (access_and_mobility_data->roaming_status_ts) {
|
||||
ogs_free(access_and_mobility_data->roaming_status_ts);
|
||||
access_and_mobility_data->roaming_status_ts = NULL;
|
||||
}
|
||||
if (access_and_mobility_data->current_plmn) {
|
||||
OpenAPI_plmn_id_1_free(access_and_mobility_data->current_plmn);
|
||||
access_and_mobility_data->current_plmn = NULL;
|
||||
}
|
||||
if (access_and_mobility_data->current_plmn_ts) {
|
||||
ogs_free(access_and_mobility_data->current_plmn_ts);
|
||||
access_and_mobility_data->current_plmn_ts = NULL;
|
||||
}
|
||||
if (access_and_mobility_data->rat_type) {
|
||||
OpenAPI_list_free(access_and_mobility_data->rat_type);
|
||||
access_and_mobility_data->rat_type = NULL;
|
||||
}
|
||||
if (access_and_mobility_data->rat_types_ts) {
|
||||
ogs_free(access_and_mobility_data->rat_types_ts);
|
||||
access_and_mobility_data->rat_types_ts = NULL;
|
||||
}
|
||||
if (access_and_mobility_data->supp_feat) {
|
||||
ogs_free(access_and_mobility_data->supp_feat);
|
||||
access_and_mobility_data->supp_feat = NULL;
|
||||
}
|
||||
OpenAPI_list_free(access_and_mobility_data->conn_states);
|
||||
ogs_free(access_and_mobility_data->conn_states_ts);
|
||||
OpenAPI_ue_reachability_free(access_and_mobility_data->reachability_status);
|
||||
ogs_free(access_and_mobility_data->reachability_status_ts);
|
||||
ogs_free(access_and_mobility_data->sms_over_nas_status_ts);
|
||||
ogs_free(access_and_mobility_data->roaming_status_ts);
|
||||
OpenAPI_plmn_id_1_free(access_and_mobility_data->current_plmn);
|
||||
ogs_free(access_and_mobility_data->current_plmn_ts);
|
||||
OpenAPI_list_free(access_and_mobility_data->rat_type);
|
||||
ogs_free(access_and_mobility_data->rat_types_ts);
|
||||
ogs_free(access_and_mobility_data->supp_feat);
|
||||
ogs_free(access_and_mobility_data);
|
||||
}
|
||||
|
||||
cJSON *OpenAPI_access_and_mobility_data_convertToJSON(OpenAPI_access_and_mobility_data_t *access_and_mobility_data)
|
||||
{
|
||||
cJSON *item = NULL;
|
||||
OpenAPI_lnode_t *node = NULL;
|
||||
|
||||
if (access_and_mobility_data == NULL) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_convertToJSON() failed [AccessAndMobilityData]");
|
||||
|
|
@ -132,7 +185,7 @@ cJSON *OpenAPI_access_and_mobility_data_convertToJSON(OpenAPI_access_and_mobilit
|
|||
}
|
||||
}
|
||||
|
||||
if (access_and_mobility_data->access_type) {
|
||||
if (access_and_mobility_data->access_type != OpenAPI_access_type_NULL) {
|
||||
if (cJSON_AddStringToObject(item, "accessType", OpenAPI_access_type_ToString(access_and_mobility_data->access_type)) == NULL) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_convertToJSON() failed [access_type]");
|
||||
goto end;
|
||||
|
|
@ -145,17 +198,13 @@ cJSON *OpenAPI_access_and_mobility_data_convertToJSON(OpenAPI_access_and_mobilit
|
|||
ogs_error("OpenAPI_access_and_mobility_data_convertToJSON() failed [reg_states]");
|
||||
goto end;
|
||||
}
|
||||
|
||||
OpenAPI_lnode_t *reg_states_node;
|
||||
if (access_and_mobility_data->reg_states) {
|
||||
OpenAPI_list_for_each(access_and_mobility_data->reg_states, reg_states_node) {
|
||||
cJSON *itemLocal = OpenAPI_rm_info_convertToJSON(reg_states_node->data);
|
||||
if (itemLocal == NULL) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_convertToJSON() failed [reg_states]");
|
||||
goto end;
|
||||
}
|
||||
cJSON_AddItemToArray(reg_statesList, itemLocal);
|
||||
OpenAPI_list_for_each(access_and_mobility_data->reg_states, node) {
|
||||
cJSON *itemLocal = OpenAPI_rm_info_convertToJSON(node->data);
|
||||
if (itemLocal == NULL) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_convertToJSON() failed [reg_states]");
|
||||
goto end;
|
||||
}
|
||||
cJSON_AddItemToArray(reg_statesList, itemLocal);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -172,17 +221,13 @@ cJSON *OpenAPI_access_and_mobility_data_convertToJSON(OpenAPI_access_and_mobilit
|
|||
ogs_error("OpenAPI_access_and_mobility_data_convertToJSON() failed [conn_states]");
|
||||
goto end;
|
||||
}
|
||||
|
||||
OpenAPI_lnode_t *conn_states_node;
|
||||
if (access_and_mobility_data->conn_states) {
|
||||
OpenAPI_list_for_each(access_and_mobility_data->conn_states, conn_states_node) {
|
||||
cJSON *itemLocal = OpenAPI_cm_info_convertToJSON(conn_states_node->data);
|
||||
if (itemLocal == NULL) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_convertToJSON() failed [conn_states]");
|
||||
goto end;
|
||||
}
|
||||
cJSON_AddItemToArray(conn_statesList, itemLocal);
|
||||
OpenAPI_list_for_each(access_and_mobility_data->conn_states, node) {
|
||||
cJSON *itemLocal = OpenAPI_cm_info_convertToJSON(node->data);
|
||||
if (itemLocal == NULL) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_convertToJSON() failed [conn_states]");
|
||||
goto end;
|
||||
}
|
||||
cJSON_AddItemToArray(conn_statesList, itemLocal);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -213,7 +258,7 @@ cJSON *OpenAPI_access_and_mobility_data_convertToJSON(OpenAPI_access_and_mobilit
|
|||
}
|
||||
}
|
||||
|
||||
if (access_and_mobility_data->sms_over_nas_status) {
|
||||
if (access_and_mobility_data->sms_over_nas_status != OpenAPI_sms_support_NULL) {
|
||||
if (cJSON_AddStringToObject(item, "smsOverNasStatus", OpenAPI_sms_support_ToString(access_and_mobility_data->sms_over_nas_status)) == NULL) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_convertToJSON() failed [sms_over_nas_status]");
|
||||
goto end;
|
||||
|
|
@ -261,15 +306,14 @@ cJSON *OpenAPI_access_and_mobility_data_convertToJSON(OpenAPI_access_and_mobilit
|
|||
}
|
||||
}
|
||||
|
||||
if (access_and_mobility_data->rat_type) {
|
||||
cJSON *rat_type = cJSON_AddArrayToObject(item, "ratType");
|
||||
if (rat_type == NULL) {
|
||||
if (access_and_mobility_data->rat_type != OpenAPI_rat_type_NULL) {
|
||||
cJSON *rat_typeList = cJSON_AddArrayToObject(item, "ratType");
|
||||
if (rat_typeList == NULL) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_convertToJSON() failed [rat_type]");
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_lnode_t *rat_type_node;
|
||||
OpenAPI_list_for_each(access_and_mobility_data->rat_type, rat_type_node) {
|
||||
if (cJSON_AddStringToObject(rat_type, "", OpenAPI_rat_type_ToString((intptr_t)rat_type_node->data)) == NULL) {
|
||||
OpenAPI_list_for_each(access_and_mobility_data->rat_type, node) {
|
||||
if (cJSON_AddStringToObject(rat_typeList, "", OpenAPI_rat_type_ToString((intptr_t)node->data)) == NULL) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_convertToJSON() failed [rat_type]");
|
||||
goto end;
|
||||
}
|
||||
|
|
@ -297,43 +341,65 @@ end:
|
|||
OpenAPI_access_and_mobility_data_t *OpenAPI_access_and_mobility_data_parseFromJSON(cJSON *access_and_mobility_dataJSON)
|
||||
{
|
||||
OpenAPI_access_and_mobility_data_t *access_and_mobility_data_local_var = NULL;
|
||||
cJSON *location = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "location");
|
||||
|
||||
OpenAPI_lnode_t *node = NULL;
|
||||
cJSON *location = NULL;
|
||||
OpenAPI_user_location_t *location_local_nonprim = NULL;
|
||||
cJSON *location_ts = NULL;
|
||||
cJSON *time_zone = NULL;
|
||||
cJSON *time_zone_ts = NULL;
|
||||
cJSON *access_type = NULL;
|
||||
OpenAPI_access_type_e access_typeVariable = 0;
|
||||
cJSON *reg_states = NULL;
|
||||
OpenAPI_list_t *reg_statesList = NULL;
|
||||
cJSON *reg_states_ts = NULL;
|
||||
cJSON *conn_states = NULL;
|
||||
OpenAPI_list_t *conn_statesList = NULL;
|
||||
cJSON *conn_states_ts = NULL;
|
||||
cJSON *reachability_status = NULL;
|
||||
OpenAPI_ue_reachability_t *reachability_status_local_nonprim = NULL;
|
||||
cJSON *reachability_status_ts = NULL;
|
||||
cJSON *sms_over_nas_status = NULL;
|
||||
OpenAPI_sms_support_e sms_over_nas_statusVariable = 0;
|
||||
cJSON *sms_over_nas_status_ts = NULL;
|
||||
cJSON *roaming_status = NULL;
|
||||
cJSON *roaming_status_ts = NULL;
|
||||
cJSON *current_plmn = NULL;
|
||||
OpenAPI_plmn_id_1_t *current_plmn_local_nonprim = NULL;
|
||||
cJSON *current_plmn_ts = NULL;
|
||||
cJSON *rat_type = NULL;
|
||||
OpenAPI_list_t *rat_typeList = NULL;
|
||||
cJSON *rat_types_ts = NULL;
|
||||
cJSON *supp_feat = NULL;
|
||||
location = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "location");
|
||||
if (location) {
|
||||
location_local_nonprim = OpenAPI_user_location_parseFromJSON(location);
|
||||
}
|
||||
|
||||
cJSON *location_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "locationTs");
|
||||
|
||||
location_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "locationTs");
|
||||
if (location_ts) {
|
||||
if (!cJSON_IsString(location_ts)) {
|
||||
if (!cJSON_IsString(location_ts) && !cJSON_IsNull(location_ts)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [location_ts]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
cJSON *time_zone = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "timeZone");
|
||||
|
||||
time_zone = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "timeZone");
|
||||
if (time_zone) {
|
||||
if (!cJSON_IsString(time_zone)) {
|
||||
if (!cJSON_IsString(time_zone) && !cJSON_IsNull(time_zone)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [time_zone]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
cJSON *time_zone_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "timeZoneTs");
|
||||
|
||||
time_zone_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "timeZoneTs");
|
||||
if (time_zone_ts) {
|
||||
if (!cJSON_IsString(time_zone_ts)) {
|
||||
if (!cJSON_IsString(time_zone_ts) && !cJSON_IsNull(time_zone_ts)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [time_zone_ts]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
cJSON *access_type = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "accessType");
|
||||
|
||||
OpenAPI_access_type_e access_typeVariable;
|
||||
access_type = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "accessType");
|
||||
if (access_type) {
|
||||
if (!cJSON_IsString(access_type)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [access_type]");
|
||||
|
|
@ -342,101 +408,86 @@ OpenAPI_access_and_mobility_data_t *OpenAPI_access_and_mobility_data_parseFromJS
|
|||
access_typeVariable = OpenAPI_access_type_FromString(access_type->valuestring);
|
||||
}
|
||||
|
||||
cJSON *reg_states = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "regStates");
|
||||
|
||||
OpenAPI_list_t *reg_statesList;
|
||||
reg_states = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "regStates");
|
||||
if (reg_states) {
|
||||
cJSON *reg_states_local_nonprimitive;
|
||||
if (!cJSON_IsArray(reg_states)){
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [reg_states]");
|
||||
goto end;
|
||||
}
|
||||
|
||||
reg_statesList = OpenAPI_list_create();
|
||||
|
||||
cJSON_ArrayForEach(reg_states_local_nonprimitive, reg_states ) {
|
||||
if (!cJSON_IsObject(reg_states_local_nonprimitive)) {
|
||||
cJSON *reg_states_local = NULL;
|
||||
if (!cJSON_IsArray(reg_states)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [reg_states]");
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_rm_info_t *reg_statesItem = OpenAPI_rm_info_parseFromJSON(reg_states_local_nonprimitive);
|
||||
|
||||
if (!reg_statesItem) {
|
||||
ogs_error("No reg_statesItem");
|
||||
OpenAPI_list_free(reg_statesList);
|
||||
goto end;
|
||||
reg_statesList = OpenAPI_list_create();
|
||||
|
||||
cJSON_ArrayForEach(reg_states_local, reg_states) {
|
||||
if (!cJSON_IsObject(reg_states_local)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [reg_states]");
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_rm_info_t *reg_statesItem = OpenAPI_rm_info_parseFromJSON(reg_states_local);
|
||||
if (!reg_statesItem) {
|
||||
ogs_error("No reg_statesItem");
|
||||
OpenAPI_list_free(reg_statesList);
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_list_add(reg_statesList, reg_statesItem);
|
||||
}
|
||||
|
||||
OpenAPI_list_add(reg_statesList, reg_statesItem);
|
||||
}
|
||||
}
|
||||
|
||||
cJSON *reg_states_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "regStatesTs");
|
||||
|
||||
reg_states_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "regStatesTs");
|
||||
if (reg_states_ts) {
|
||||
if (!cJSON_IsString(reg_states_ts)) {
|
||||
if (!cJSON_IsString(reg_states_ts) && !cJSON_IsNull(reg_states_ts)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [reg_states_ts]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
cJSON *conn_states = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "connStates");
|
||||
|
||||
OpenAPI_list_t *conn_statesList;
|
||||
conn_states = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "connStates");
|
||||
if (conn_states) {
|
||||
cJSON *conn_states_local_nonprimitive;
|
||||
if (!cJSON_IsArray(conn_states)){
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [conn_states]");
|
||||
goto end;
|
||||
}
|
||||
|
||||
conn_statesList = OpenAPI_list_create();
|
||||
|
||||
cJSON_ArrayForEach(conn_states_local_nonprimitive, conn_states ) {
|
||||
if (!cJSON_IsObject(conn_states_local_nonprimitive)) {
|
||||
cJSON *conn_states_local = NULL;
|
||||
if (!cJSON_IsArray(conn_states)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [conn_states]");
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_cm_info_t *conn_statesItem = OpenAPI_cm_info_parseFromJSON(conn_states_local_nonprimitive);
|
||||
|
||||
if (!conn_statesItem) {
|
||||
ogs_error("No conn_statesItem");
|
||||
OpenAPI_list_free(conn_statesList);
|
||||
goto end;
|
||||
conn_statesList = OpenAPI_list_create();
|
||||
|
||||
cJSON_ArrayForEach(conn_states_local, conn_states) {
|
||||
if (!cJSON_IsObject(conn_states_local)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [conn_states]");
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_cm_info_t *conn_statesItem = OpenAPI_cm_info_parseFromJSON(conn_states_local);
|
||||
if (!conn_statesItem) {
|
||||
ogs_error("No conn_statesItem");
|
||||
OpenAPI_list_free(conn_statesList);
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_list_add(conn_statesList, conn_statesItem);
|
||||
}
|
||||
|
||||
OpenAPI_list_add(conn_statesList, conn_statesItem);
|
||||
}
|
||||
}
|
||||
|
||||
cJSON *conn_states_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "connStatesTs");
|
||||
|
||||
conn_states_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "connStatesTs");
|
||||
if (conn_states_ts) {
|
||||
if (!cJSON_IsString(conn_states_ts)) {
|
||||
if (!cJSON_IsString(conn_states_ts) && !cJSON_IsNull(conn_states_ts)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [conn_states_ts]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
cJSON *reachability_status = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "reachabilityStatus");
|
||||
|
||||
OpenAPI_ue_reachability_t *reachability_status_local_nonprim = NULL;
|
||||
reachability_status = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "reachabilityStatus");
|
||||
if (reachability_status) {
|
||||
reachability_status_local_nonprim = OpenAPI_ue_reachability_parseFromJSON(reachability_status);
|
||||
}
|
||||
|
||||
cJSON *reachability_status_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "reachabilityStatusTs");
|
||||
|
||||
reachability_status_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "reachabilityStatusTs");
|
||||
if (reachability_status_ts) {
|
||||
if (!cJSON_IsString(reachability_status_ts)) {
|
||||
if (!cJSON_IsString(reachability_status_ts) && !cJSON_IsNull(reachability_status_ts)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [reachability_status_ts]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
cJSON *sms_over_nas_status = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "smsOverNasStatus");
|
||||
|
||||
OpenAPI_sms_support_e sms_over_nas_statusVariable;
|
||||
sms_over_nas_status = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "smsOverNasStatus");
|
||||
if (sms_over_nas_status) {
|
||||
if (!cJSON_IsString(sms_over_nas_status)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [sms_over_nas_status]");
|
||||
|
|
@ -445,17 +496,15 @@ OpenAPI_access_and_mobility_data_t *OpenAPI_access_and_mobility_data_parseFromJS
|
|||
sms_over_nas_statusVariable = OpenAPI_sms_support_FromString(sms_over_nas_status->valuestring);
|
||||
}
|
||||
|
||||
cJSON *sms_over_nas_status_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "smsOverNasStatusTs");
|
||||
|
||||
sms_over_nas_status_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "smsOverNasStatusTs");
|
||||
if (sms_over_nas_status_ts) {
|
||||
if (!cJSON_IsString(sms_over_nas_status_ts)) {
|
||||
if (!cJSON_IsString(sms_over_nas_status_ts) && !cJSON_IsNull(sms_over_nas_status_ts)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [sms_over_nas_status_ts]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
cJSON *roaming_status = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "roamingStatus");
|
||||
|
||||
roaming_status = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "roamingStatus");
|
||||
if (roaming_status) {
|
||||
if (!cJSON_IsBool(roaming_status)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [roaming_status]");
|
||||
|
|
@ -463,66 +512,57 @@ OpenAPI_access_and_mobility_data_t *OpenAPI_access_and_mobility_data_parseFromJS
|
|||
}
|
||||
}
|
||||
|
||||
cJSON *roaming_status_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "roamingStatusTs");
|
||||
|
||||
roaming_status_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "roamingStatusTs");
|
||||
if (roaming_status_ts) {
|
||||
if (!cJSON_IsString(roaming_status_ts)) {
|
||||
if (!cJSON_IsString(roaming_status_ts) && !cJSON_IsNull(roaming_status_ts)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [roaming_status_ts]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
cJSON *current_plmn = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "currentPlmn");
|
||||
|
||||
OpenAPI_plmn_id_1_t *current_plmn_local_nonprim = NULL;
|
||||
current_plmn = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "currentPlmn");
|
||||
if (current_plmn) {
|
||||
current_plmn_local_nonprim = OpenAPI_plmn_id_1_parseFromJSON(current_plmn);
|
||||
}
|
||||
|
||||
cJSON *current_plmn_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "currentPlmnTs");
|
||||
|
||||
current_plmn_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "currentPlmnTs");
|
||||
if (current_plmn_ts) {
|
||||
if (!cJSON_IsString(current_plmn_ts)) {
|
||||
if (!cJSON_IsString(current_plmn_ts) && !cJSON_IsNull(current_plmn_ts)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [current_plmn_ts]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
cJSON *rat_type = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "ratType");
|
||||
|
||||
OpenAPI_list_t *rat_typeList;
|
||||
rat_type = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "ratType");
|
||||
if (rat_type) {
|
||||
cJSON *rat_type_local_nonprimitive;
|
||||
if (!cJSON_IsArray(rat_type)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [rat_type]");
|
||||
goto end;
|
||||
}
|
||||
|
||||
rat_typeList = OpenAPI_list_create();
|
||||
|
||||
cJSON_ArrayForEach(rat_type_local_nonprimitive, rat_type ) {
|
||||
if (!cJSON_IsString(rat_type_local_nonprimitive)){
|
||||
cJSON *rat_type_local = NULL;
|
||||
if (!cJSON_IsArray(rat_type)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [rat_type]");
|
||||
goto end;
|
||||
}
|
||||
|
||||
OpenAPI_list_add(rat_typeList, (void *)OpenAPI_rat_type_FromString(rat_type_local_nonprimitive->valuestring));
|
||||
}
|
||||
rat_typeList = OpenAPI_list_create();
|
||||
|
||||
cJSON_ArrayForEach(rat_type_local, rat_type) {
|
||||
if (!cJSON_IsString(rat_type_local)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [rat_type]");
|
||||
goto end;
|
||||
}
|
||||
OpenAPI_list_add(rat_typeList, (void *)OpenAPI_rat_type_FromString(rat_type_local->valuestring));
|
||||
}
|
||||
}
|
||||
|
||||
cJSON *rat_types_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "ratTypesTs");
|
||||
|
||||
rat_types_ts = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "ratTypesTs");
|
||||
if (rat_types_ts) {
|
||||
if (!cJSON_IsString(rat_types_ts)) {
|
||||
if (!cJSON_IsString(rat_types_ts) && !cJSON_IsNull(rat_types_ts)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [rat_types_ts]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
cJSON *supp_feat = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "suppFeat");
|
||||
|
||||
supp_feat = cJSON_GetObjectItemCaseSensitive(access_and_mobility_dataJSON, "suppFeat");
|
||||
if (supp_feat) {
|
||||
if (!cJSON_IsString(supp_feat)) {
|
||||
if (!cJSON_IsString(supp_feat) && !cJSON_IsNull(supp_feat)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_data_parseFromJSON() failed [supp_feat]");
|
||||
goto end;
|
||||
}
|
||||
|
|
@ -530,30 +570,60 @@ OpenAPI_access_and_mobility_data_t *OpenAPI_access_and_mobility_data_parseFromJS
|
|||
|
||||
access_and_mobility_data_local_var = OpenAPI_access_and_mobility_data_create (
|
||||
location ? location_local_nonprim : NULL,
|
||||
location_ts ? ogs_strdup(location_ts->valuestring) : NULL,
|
||||
time_zone ? ogs_strdup(time_zone->valuestring) : NULL,
|
||||
time_zone_ts ? ogs_strdup(time_zone_ts->valuestring) : NULL,
|
||||
location_ts && !cJSON_IsNull(location_ts) ? ogs_strdup(location_ts->valuestring) : NULL,
|
||||
time_zone && !cJSON_IsNull(time_zone) ? ogs_strdup(time_zone->valuestring) : NULL,
|
||||
time_zone_ts && !cJSON_IsNull(time_zone_ts) ? ogs_strdup(time_zone_ts->valuestring) : NULL,
|
||||
access_type ? access_typeVariable : 0,
|
||||
reg_states ? reg_statesList : NULL,
|
||||
reg_states_ts ? ogs_strdup(reg_states_ts->valuestring) : NULL,
|
||||
reg_states_ts && !cJSON_IsNull(reg_states_ts) ? ogs_strdup(reg_states_ts->valuestring) : NULL,
|
||||
conn_states ? conn_statesList : NULL,
|
||||
conn_states_ts ? ogs_strdup(conn_states_ts->valuestring) : NULL,
|
||||
conn_states_ts && !cJSON_IsNull(conn_states_ts) ? ogs_strdup(conn_states_ts->valuestring) : NULL,
|
||||
reachability_status ? reachability_status_local_nonprim : NULL,
|
||||
reachability_status_ts ? ogs_strdup(reachability_status_ts->valuestring) : NULL,
|
||||
reachability_status_ts && !cJSON_IsNull(reachability_status_ts) ? ogs_strdup(reachability_status_ts->valuestring) : NULL,
|
||||
sms_over_nas_status ? sms_over_nas_statusVariable : 0,
|
||||
sms_over_nas_status_ts ? ogs_strdup(sms_over_nas_status_ts->valuestring) : NULL,
|
||||
sms_over_nas_status_ts && !cJSON_IsNull(sms_over_nas_status_ts) ? ogs_strdup(sms_over_nas_status_ts->valuestring) : NULL,
|
||||
roaming_status ? true : false,
|
||||
roaming_status ? roaming_status->valueint : 0,
|
||||
roaming_status_ts ? ogs_strdup(roaming_status_ts->valuestring) : NULL,
|
||||
roaming_status_ts && !cJSON_IsNull(roaming_status_ts) ? ogs_strdup(roaming_status_ts->valuestring) : NULL,
|
||||
current_plmn ? current_plmn_local_nonprim : NULL,
|
||||
current_plmn_ts ? ogs_strdup(current_plmn_ts->valuestring) : NULL,
|
||||
current_plmn_ts && !cJSON_IsNull(current_plmn_ts) ? ogs_strdup(current_plmn_ts->valuestring) : NULL,
|
||||
rat_type ? rat_typeList : NULL,
|
||||
rat_types_ts ? ogs_strdup(rat_types_ts->valuestring) : NULL,
|
||||
supp_feat ? ogs_strdup(supp_feat->valuestring) : NULL
|
||||
rat_types_ts && !cJSON_IsNull(rat_types_ts) ? ogs_strdup(rat_types_ts->valuestring) : NULL,
|
||||
supp_feat && !cJSON_IsNull(supp_feat) ? ogs_strdup(supp_feat->valuestring) : NULL
|
||||
);
|
||||
|
||||
return access_and_mobility_data_local_var;
|
||||
end:
|
||||
if (location_local_nonprim) {
|
||||
OpenAPI_user_location_free(location_local_nonprim);
|
||||
location_local_nonprim = NULL;
|
||||
}
|
||||
if (reg_statesList) {
|
||||
OpenAPI_list_for_each(reg_statesList, node) {
|
||||
OpenAPI_rm_info_free(node->data);
|
||||
}
|
||||
OpenAPI_list_free(reg_statesList);
|
||||
reg_statesList = NULL;
|
||||
}
|
||||
if (conn_statesList) {
|
||||
OpenAPI_list_for_each(conn_statesList, node) {
|
||||
OpenAPI_cm_info_free(node->data);
|
||||
}
|
||||
OpenAPI_list_free(conn_statesList);
|
||||
conn_statesList = NULL;
|
||||
}
|
||||
if (reachability_status_local_nonprim) {
|
||||
OpenAPI_ue_reachability_free(reachability_status_local_nonprim);
|
||||
reachability_status_local_nonprim = NULL;
|
||||
}
|
||||
if (current_plmn_local_nonprim) {
|
||||
OpenAPI_plmn_id_1_free(current_plmn_local_nonprim);
|
||||
current_plmn_local_nonprim = NULL;
|
||||
}
|
||||
if (rat_typeList) {
|
||||
OpenAPI_list_free(rat_typeList);
|
||||
rat_typeList = NULL;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue