[SBI] Crash occurs when ENUM in the MAP (#2103)

This commit is contained in:
Sukchan Lee 2023-03-01 17:50:25 +09:00
parent ce668c556c
commit 969c116e77
1097 changed files with 266728 additions and 42047 deletions

View file

@ -70,52 +70,108 @@ OpenAPI_traffic_influ_data_t *OpenAPI_traffic_influ_data_create(
void OpenAPI_traffic_influ_data_free(OpenAPI_traffic_influ_data_t *traffic_influ_data)
{
OpenAPI_lnode_t *node = NULL;
if (NULL == traffic_influ_data) {
return;
}
OpenAPI_lnode_t *node;
ogs_free(traffic_influ_data->up_path_chg_notif_corre_id);
ogs_free(traffic_influ_data->af_app_id);
ogs_free(traffic_influ_data->dnn);
OpenAPI_list_for_each(traffic_influ_data->eth_traffic_filters, node) {
OpenAPI_eth_flow_description_free(node->data);
if (traffic_influ_data->up_path_chg_notif_corre_id) {
ogs_free(traffic_influ_data->up_path_chg_notif_corre_id);
traffic_influ_data->up_path_chg_notif_corre_id = NULL;
}
OpenAPI_list_free(traffic_influ_data->eth_traffic_filters);
OpenAPI_snssai_free(traffic_influ_data->snssai);
ogs_free(traffic_influ_data->inter_group_id);
ogs_free(traffic_influ_data->supi);
OpenAPI_list_for_each(traffic_influ_data->traffic_filters, node) {
OpenAPI_flow_info_free(node->data);
if (traffic_influ_data->af_app_id) {
ogs_free(traffic_influ_data->af_app_id);
traffic_influ_data->af_app_id = NULL;
}
OpenAPI_list_free(traffic_influ_data->traffic_filters);
OpenAPI_list_for_each(traffic_influ_data->traffic_routes, node) {
OpenAPI_route_to_location_free(node->data);
if (traffic_influ_data->dnn) {
ogs_free(traffic_influ_data->dnn);
traffic_influ_data->dnn = NULL;
}
OpenAPI_list_free(traffic_influ_data->traffic_routes);
ogs_free(traffic_influ_data->valid_start_time);
ogs_free(traffic_influ_data->valid_end_time);
OpenAPI_list_for_each(traffic_influ_data->temp_validities, node) {
OpenAPI_temporal_validity_free(node->data);
if (traffic_influ_data->eth_traffic_filters) {
OpenAPI_list_for_each(traffic_influ_data->eth_traffic_filters, node) {
OpenAPI_eth_flow_description_free(node->data);
}
OpenAPI_list_free(traffic_influ_data->eth_traffic_filters);
traffic_influ_data->eth_traffic_filters = NULL;
}
OpenAPI_list_free(traffic_influ_data->temp_validities);
OpenAPI_network_area_info_1_free(traffic_influ_data->nw_area_info);
ogs_free(traffic_influ_data->up_path_chg_notif_uri);
OpenAPI_list_for_each(traffic_influ_data->headers, node) {
ogs_free(node->data);
if (traffic_influ_data->snssai) {
OpenAPI_snssai_free(traffic_influ_data->snssai);
traffic_influ_data->snssai = NULL;
}
OpenAPI_list_free(traffic_influ_data->headers);
OpenAPI_list_for_each(traffic_influ_data->subscribed_events, node) {
OpenAPI_subscribed_event_free(node->data);
if (traffic_influ_data->inter_group_id) {
ogs_free(traffic_influ_data->inter_group_id);
traffic_influ_data->inter_group_id = NULL;
}
if (traffic_influ_data->supi) {
ogs_free(traffic_influ_data->supi);
traffic_influ_data->supi = NULL;
}
if (traffic_influ_data->traffic_filters) {
OpenAPI_list_for_each(traffic_influ_data->traffic_filters, node) {
OpenAPI_flow_info_free(node->data);
}
OpenAPI_list_free(traffic_influ_data->traffic_filters);
traffic_influ_data->traffic_filters = NULL;
}
if (traffic_influ_data->traffic_routes) {
OpenAPI_list_for_each(traffic_influ_data->traffic_routes, node) {
OpenAPI_route_to_location_free(node->data);
}
OpenAPI_list_free(traffic_influ_data->traffic_routes);
traffic_influ_data->traffic_routes = NULL;
}
if (traffic_influ_data->valid_start_time) {
ogs_free(traffic_influ_data->valid_start_time);
traffic_influ_data->valid_start_time = NULL;
}
if (traffic_influ_data->valid_end_time) {
ogs_free(traffic_influ_data->valid_end_time);
traffic_influ_data->valid_end_time = NULL;
}
if (traffic_influ_data->temp_validities) {
OpenAPI_list_for_each(traffic_influ_data->temp_validities, node) {
OpenAPI_temporal_validity_free(node->data);
}
OpenAPI_list_free(traffic_influ_data->temp_validities);
traffic_influ_data->temp_validities = NULL;
}
if (traffic_influ_data->nw_area_info) {
OpenAPI_network_area_info_1_free(traffic_influ_data->nw_area_info);
traffic_influ_data->nw_area_info = NULL;
}
if (traffic_influ_data->up_path_chg_notif_uri) {
ogs_free(traffic_influ_data->up_path_chg_notif_uri);
traffic_influ_data->up_path_chg_notif_uri = NULL;
}
if (traffic_influ_data->headers) {
OpenAPI_list_for_each(traffic_influ_data->headers, node) {
ogs_free(node->data);
}
OpenAPI_list_free(traffic_influ_data->headers);
traffic_influ_data->headers = NULL;
}
if (traffic_influ_data->subscribed_events) {
OpenAPI_list_for_each(traffic_influ_data->subscribed_events, node) {
OpenAPI_subscribed_event_free(node->data);
}
OpenAPI_list_free(traffic_influ_data->subscribed_events);
traffic_influ_data->subscribed_events = NULL;
}
if (traffic_influ_data->supported_features) {
ogs_free(traffic_influ_data->supported_features);
traffic_influ_data->supported_features = NULL;
}
if (traffic_influ_data->res_uri) {
ogs_free(traffic_influ_data->res_uri);
traffic_influ_data->res_uri = NULL;
}
OpenAPI_list_free(traffic_influ_data->subscribed_events);
ogs_free(traffic_influ_data->supported_features);
ogs_free(traffic_influ_data->res_uri);
ogs_free(traffic_influ_data);
}
cJSON *OpenAPI_traffic_influ_data_convertToJSON(OpenAPI_traffic_influ_data_t *traffic_influ_data)
{
cJSON *item = NULL;
OpenAPI_lnode_t *node = NULL;
if (traffic_influ_data == NULL) {
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [TrafficInfluData]");
@ -157,17 +213,13 @@ cJSON *OpenAPI_traffic_influ_data_convertToJSON(OpenAPI_traffic_influ_data_t *tr
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [eth_traffic_filters]");
goto end;
}
OpenAPI_lnode_t *eth_traffic_filters_node;
if (traffic_influ_data->eth_traffic_filters) {
OpenAPI_list_for_each(traffic_influ_data->eth_traffic_filters, eth_traffic_filters_node) {
cJSON *itemLocal = OpenAPI_eth_flow_description_convertToJSON(eth_traffic_filters_node->data);
if (itemLocal == NULL) {
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [eth_traffic_filters]");
goto end;
}
cJSON_AddItemToArray(eth_traffic_filtersList, itemLocal);
OpenAPI_list_for_each(traffic_influ_data->eth_traffic_filters, node) {
cJSON *itemLocal = OpenAPI_eth_flow_description_convertToJSON(node->data);
if (itemLocal == NULL) {
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [eth_traffic_filters]");
goto end;
}
cJSON_AddItemToArray(eth_traffic_filtersList, itemLocal);
}
}
@ -204,17 +256,13 @@ cJSON *OpenAPI_traffic_influ_data_convertToJSON(OpenAPI_traffic_influ_data_t *tr
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [traffic_filters]");
goto end;
}
OpenAPI_lnode_t *traffic_filters_node;
if (traffic_influ_data->traffic_filters) {
OpenAPI_list_for_each(traffic_influ_data->traffic_filters, traffic_filters_node) {
cJSON *itemLocal = OpenAPI_flow_info_convertToJSON(traffic_filters_node->data);
if (itemLocal == NULL) {
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [traffic_filters]");
goto end;
}
cJSON_AddItemToArray(traffic_filtersList, itemLocal);
OpenAPI_list_for_each(traffic_influ_data->traffic_filters, node) {
cJSON *itemLocal = OpenAPI_flow_info_convertToJSON(node->data);
if (itemLocal == NULL) {
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [traffic_filters]");
goto end;
}
cJSON_AddItemToArray(traffic_filtersList, itemLocal);
}
}
@ -224,17 +272,13 @@ cJSON *OpenAPI_traffic_influ_data_convertToJSON(OpenAPI_traffic_influ_data_t *tr
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [traffic_routes]");
goto end;
}
OpenAPI_lnode_t *traffic_routes_node;
if (traffic_influ_data->traffic_routes) {
OpenAPI_list_for_each(traffic_influ_data->traffic_routes, traffic_routes_node) {
cJSON *itemLocal = OpenAPI_route_to_location_convertToJSON(traffic_routes_node->data);
if (itemLocal == NULL) {
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [traffic_routes]");
goto end;
}
cJSON_AddItemToArray(traffic_routesList, itemLocal);
OpenAPI_list_for_each(traffic_influ_data->traffic_routes, node) {
cJSON *itemLocal = OpenAPI_route_to_location_convertToJSON(node->data);
if (itemLocal == NULL) {
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [traffic_routes]");
goto end;
}
cJSON_AddItemToArray(traffic_routesList, itemLocal);
}
}
@ -265,17 +309,13 @@ cJSON *OpenAPI_traffic_influ_data_convertToJSON(OpenAPI_traffic_influ_data_t *tr
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [temp_validities]");
goto end;
}
OpenAPI_lnode_t *temp_validities_node;
if (traffic_influ_data->temp_validities) {
OpenAPI_list_for_each(traffic_influ_data->temp_validities, temp_validities_node) {
cJSON *itemLocal = OpenAPI_temporal_validity_convertToJSON(temp_validities_node->data);
if (itemLocal == NULL) {
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [temp_validities]");
goto end;
}
cJSON_AddItemToArray(temp_validitiesList, itemLocal);
OpenAPI_list_for_each(traffic_influ_data->temp_validities, node) {
cJSON *itemLocal = OpenAPI_temporal_validity_convertToJSON(node->data);
if (itemLocal == NULL) {
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [temp_validities]");
goto end;
}
cJSON_AddItemToArray(temp_validitiesList, itemLocal);
}
}
@ -300,19 +340,17 @@ cJSON *OpenAPI_traffic_influ_data_convertToJSON(OpenAPI_traffic_influ_data_t *tr
}
if (traffic_influ_data->headers) {
cJSON *headers = cJSON_AddArrayToObject(item, "headers");
if (headers == NULL) {
cJSON *headersList = cJSON_AddArrayToObject(item, "headers");
if (headersList == NULL) {
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [headers]");
goto end;
}
OpenAPI_lnode_t *headers_node;
OpenAPI_list_for_each(traffic_influ_data->headers, headers_node) {
if (cJSON_AddStringToObject(headers, "", (char*)headers_node->data) == NULL) {
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [headers]");
goto end;
OpenAPI_list_for_each(traffic_influ_data->headers, node) {
if (cJSON_AddStringToObject(headersList, "", (char*)node->data) == NULL) {
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [headers]");
goto end;
}
}
}
}
if (traffic_influ_data->subscribed_events) {
@ -321,21 +359,17 @@ cJSON *OpenAPI_traffic_influ_data_convertToJSON(OpenAPI_traffic_influ_data_t *tr
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [subscribed_events]");
goto end;
}
OpenAPI_lnode_t *subscribed_events_node;
if (traffic_influ_data->subscribed_events) {
OpenAPI_list_for_each(traffic_influ_data->subscribed_events, subscribed_events_node) {
cJSON *itemLocal = OpenAPI_subscribed_event_convertToJSON(subscribed_events_node->data);
if (itemLocal == NULL) {
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [subscribed_events]");
goto end;
}
cJSON_AddItemToArray(subscribed_eventsList, itemLocal);
OpenAPI_list_for_each(traffic_influ_data->subscribed_events, node) {
cJSON *itemLocal = OpenAPI_subscribed_event_convertToJSON(node->data);
if (itemLocal == NULL) {
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [subscribed_events]");
goto end;
}
cJSON_AddItemToArray(subscribed_eventsList, itemLocal);
}
}
if (traffic_influ_data->dnai_chg_type) {
if (traffic_influ_data->dnai_chg_type != OpenAPI_dnai_change_type_NULL) {
if (cJSON_AddStringToObject(item, "dnaiChgType", OpenAPI_dnai_change_type_ToString(traffic_influ_data->dnai_chg_type)) == NULL) {
ogs_error("OpenAPI_traffic_influ_data_convertToJSON() failed [dnai_chg_type]");
goto end;
@ -377,17 +411,48 @@ end:
OpenAPI_traffic_influ_data_t *OpenAPI_traffic_influ_data_parseFromJSON(cJSON *traffic_influ_dataJSON)
{
OpenAPI_traffic_influ_data_t *traffic_influ_data_local_var = NULL;
cJSON *up_path_chg_notif_corre_id = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "upPathChgNotifCorreId");
OpenAPI_lnode_t *node = NULL;
cJSON *up_path_chg_notif_corre_id = NULL;
cJSON *app_relo_ind = NULL;
cJSON *af_app_id = NULL;
cJSON *dnn = NULL;
cJSON *eth_traffic_filters = NULL;
OpenAPI_list_t *eth_traffic_filtersList = NULL;
cJSON *snssai = NULL;
OpenAPI_snssai_t *snssai_local_nonprim = NULL;
cJSON *inter_group_id = NULL;
cJSON *supi = NULL;
cJSON *traffic_filters = NULL;
OpenAPI_list_t *traffic_filtersList = NULL;
cJSON *traffic_routes = NULL;
OpenAPI_list_t *traffic_routesList = NULL;
cJSON *traff_corre_ind = NULL;
cJSON *valid_start_time = NULL;
cJSON *valid_end_time = NULL;
cJSON *temp_validities = NULL;
OpenAPI_list_t *temp_validitiesList = NULL;
cJSON *nw_area_info = NULL;
OpenAPI_network_area_info_1_t *nw_area_info_local_nonprim = NULL;
cJSON *up_path_chg_notif_uri = NULL;
cJSON *headers = NULL;
OpenAPI_list_t *headersList = NULL;
cJSON *subscribed_events = NULL;
OpenAPI_list_t *subscribed_eventsList = NULL;
cJSON *dnai_chg_type = NULL;
OpenAPI_dnai_change_type_e dnai_chg_typeVariable = 0;
cJSON *af_ack_ind = NULL;
cJSON *addr_preser_ind = NULL;
cJSON *supported_features = NULL;
cJSON *res_uri = NULL;
up_path_chg_notif_corre_id = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "upPathChgNotifCorreId");
if (up_path_chg_notif_corre_id) {
if (!cJSON_IsString(up_path_chg_notif_corre_id)) {
if (!cJSON_IsString(up_path_chg_notif_corre_id) && !cJSON_IsNull(up_path_chg_notif_corre_id)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [up_path_chg_notif_corre_id]");
goto end;
}
}
cJSON *app_relo_ind = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "appReloInd");
app_relo_ind = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "appReloInd");
if (app_relo_ind) {
if (!cJSON_IsBool(app_relo_ind)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [app_relo_ind]");
@ -395,138 +460,119 @@ OpenAPI_traffic_influ_data_t *OpenAPI_traffic_influ_data_parseFromJSON(cJSON *tr
}
}
cJSON *af_app_id = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "afAppId");
af_app_id = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "afAppId");
if (af_app_id) {
if (!cJSON_IsString(af_app_id)) {
if (!cJSON_IsString(af_app_id) && !cJSON_IsNull(af_app_id)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [af_app_id]");
goto end;
}
}
cJSON *dnn = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "dnn");
dnn = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "dnn");
if (dnn) {
if (!cJSON_IsString(dnn)) {
if (!cJSON_IsString(dnn) && !cJSON_IsNull(dnn)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [dnn]");
goto end;
}
}
cJSON *eth_traffic_filters = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "ethTrafficFilters");
OpenAPI_list_t *eth_traffic_filtersList;
eth_traffic_filters = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "ethTrafficFilters");
if (eth_traffic_filters) {
cJSON *eth_traffic_filters_local_nonprimitive;
if (!cJSON_IsArray(eth_traffic_filters)){
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [eth_traffic_filters]");
goto end;
}
eth_traffic_filtersList = OpenAPI_list_create();
cJSON_ArrayForEach(eth_traffic_filters_local_nonprimitive, eth_traffic_filters ) {
if (!cJSON_IsObject(eth_traffic_filters_local_nonprimitive)) {
cJSON *eth_traffic_filters_local = NULL;
if (!cJSON_IsArray(eth_traffic_filters)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [eth_traffic_filters]");
goto end;
}
OpenAPI_eth_flow_description_t *eth_traffic_filtersItem = OpenAPI_eth_flow_description_parseFromJSON(eth_traffic_filters_local_nonprimitive);
if (!eth_traffic_filtersItem) {
ogs_error("No eth_traffic_filtersItem");
OpenAPI_list_free(eth_traffic_filtersList);
goto end;
eth_traffic_filtersList = OpenAPI_list_create();
cJSON_ArrayForEach(eth_traffic_filters_local, eth_traffic_filters) {
if (!cJSON_IsObject(eth_traffic_filters_local)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [eth_traffic_filters]");
goto end;
}
OpenAPI_eth_flow_description_t *eth_traffic_filtersItem = OpenAPI_eth_flow_description_parseFromJSON(eth_traffic_filters_local);
if (!eth_traffic_filtersItem) {
ogs_error("No eth_traffic_filtersItem");
OpenAPI_list_free(eth_traffic_filtersList);
goto end;
}
OpenAPI_list_add(eth_traffic_filtersList, eth_traffic_filtersItem);
}
OpenAPI_list_add(eth_traffic_filtersList, eth_traffic_filtersItem);
}
}
cJSON *snssai = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "snssai");
OpenAPI_snssai_t *snssai_local_nonprim = NULL;
snssai = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "snssai");
if (snssai) {
snssai_local_nonprim = OpenAPI_snssai_parseFromJSON(snssai);
}
cJSON *inter_group_id = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "interGroupId");
inter_group_id = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "interGroupId");
if (inter_group_id) {
if (!cJSON_IsString(inter_group_id)) {
if (!cJSON_IsString(inter_group_id) && !cJSON_IsNull(inter_group_id)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [inter_group_id]");
goto end;
}
}
cJSON *supi = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "supi");
supi = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "supi");
if (supi) {
if (!cJSON_IsString(supi)) {
if (!cJSON_IsString(supi) && !cJSON_IsNull(supi)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [supi]");
goto end;
}
}
cJSON *traffic_filters = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "trafficFilters");
OpenAPI_list_t *traffic_filtersList;
traffic_filters = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "trafficFilters");
if (traffic_filters) {
cJSON *traffic_filters_local_nonprimitive;
if (!cJSON_IsArray(traffic_filters)){
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [traffic_filters]");
goto end;
}
traffic_filtersList = OpenAPI_list_create();
cJSON_ArrayForEach(traffic_filters_local_nonprimitive, traffic_filters ) {
if (!cJSON_IsObject(traffic_filters_local_nonprimitive)) {
cJSON *traffic_filters_local = NULL;
if (!cJSON_IsArray(traffic_filters)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [traffic_filters]");
goto end;
}
OpenAPI_flow_info_t *traffic_filtersItem = OpenAPI_flow_info_parseFromJSON(traffic_filters_local_nonprimitive);
if (!traffic_filtersItem) {
ogs_error("No traffic_filtersItem");
OpenAPI_list_free(traffic_filtersList);
goto end;
traffic_filtersList = OpenAPI_list_create();
cJSON_ArrayForEach(traffic_filters_local, traffic_filters) {
if (!cJSON_IsObject(traffic_filters_local)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [traffic_filters]");
goto end;
}
OpenAPI_flow_info_t *traffic_filtersItem = OpenAPI_flow_info_parseFromJSON(traffic_filters_local);
if (!traffic_filtersItem) {
ogs_error("No traffic_filtersItem");
OpenAPI_list_free(traffic_filtersList);
goto end;
}
OpenAPI_list_add(traffic_filtersList, traffic_filtersItem);
}
OpenAPI_list_add(traffic_filtersList, traffic_filtersItem);
}
}
cJSON *traffic_routes = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "trafficRoutes");
OpenAPI_list_t *traffic_routesList;
traffic_routes = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "trafficRoutes");
if (traffic_routes) {
cJSON *traffic_routes_local_nonprimitive;
if (!cJSON_IsArray(traffic_routes)){
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [traffic_routes]");
goto end;
}
traffic_routesList = OpenAPI_list_create();
cJSON_ArrayForEach(traffic_routes_local_nonprimitive, traffic_routes ) {
if (!cJSON_IsObject(traffic_routes_local_nonprimitive)) {
cJSON *traffic_routes_local = NULL;
if (!cJSON_IsArray(traffic_routes)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [traffic_routes]");
goto end;
}
OpenAPI_route_to_location_t *traffic_routesItem = OpenAPI_route_to_location_parseFromJSON(traffic_routes_local_nonprimitive);
if (!traffic_routesItem) {
ogs_error("No traffic_routesItem");
OpenAPI_list_free(traffic_routesList);
goto end;
traffic_routesList = OpenAPI_list_create();
cJSON_ArrayForEach(traffic_routes_local, traffic_routes) {
if (!cJSON_IsObject(traffic_routes_local)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [traffic_routes]");
goto end;
}
OpenAPI_route_to_location_t *traffic_routesItem = OpenAPI_route_to_location_parseFromJSON(traffic_routes_local);
if (!traffic_routesItem) {
ogs_error("No traffic_routesItem");
OpenAPI_list_free(traffic_routesList);
goto end;
}
OpenAPI_list_add(traffic_routesList, traffic_routesItem);
}
OpenAPI_list_add(traffic_routesList, traffic_routesItem);
}
}
cJSON *traff_corre_ind = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "traffCorreInd");
traff_corre_ind = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "traffCorreInd");
if (traff_corre_ind) {
if (!cJSON_IsBool(traff_corre_ind)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [traff_corre_ind]");
@ -534,121 +580,107 @@ OpenAPI_traffic_influ_data_t *OpenAPI_traffic_influ_data_parseFromJSON(cJSON *tr
}
}
cJSON *valid_start_time = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "validStartTime");
valid_start_time = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "validStartTime");
if (valid_start_time) {
if (!cJSON_IsString(valid_start_time)) {
if (!cJSON_IsString(valid_start_time) && !cJSON_IsNull(valid_start_time)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [valid_start_time]");
goto end;
}
}
cJSON *valid_end_time = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "validEndTime");
valid_end_time = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "validEndTime");
if (valid_end_time) {
if (!cJSON_IsString(valid_end_time)) {
if (!cJSON_IsString(valid_end_time) && !cJSON_IsNull(valid_end_time)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [valid_end_time]");
goto end;
}
}
cJSON *temp_validities = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "tempValidities");
OpenAPI_list_t *temp_validitiesList;
temp_validities = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "tempValidities");
if (temp_validities) {
cJSON *temp_validities_local_nonprimitive;
if (!cJSON_IsArray(temp_validities)){
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [temp_validities]");
goto end;
}
temp_validitiesList = OpenAPI_list_create();
cJSON_ArrayForEach(temp_validities_local_nonprimitive, temp_validities ) {
if (!cJSON_IsObject(temp_validities_local_nonprimitive)) {
cJSON *temp_validities_local = NULL;
if (!cJSON_IsArray(temp_validities)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [temp_validities]");
goto end;
}
OpenAPI_temporal_validity_t *temp_validitiesItem = OpenAPI_temporal_validity_parseFromJSON(temp_validities_local_nonprimitive);
if (!temp_validitiesItem) {
ogs_error("No temp_validitiesItem");
OpenAPI_list_free(temp_validitiesList);
goto end;
temp_validitiesList = OpenAPI_list_create();
cJSON_ArrayForEach(temp_validities_local, temp_validities) {
if (!cJSON_IsObject(temp_validities_local)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [temp_validities]");
goto end;
}
OpenAPI_temporal_validity_t *temp_validitiesItem = OpenAPI_temporal_validity_parseFromJSON(temp_validities_local);
if (!temp_validitiesItem) {
ogs_error("No temp_validitiesItem");
OpenAPI_list_free(temp_validitiesList);
goto end;
}
OpenAPI_list_add(temp_validitiesList, temp_validitiesItem);
}
OpenAPI_list_add(temp_validitiesList, temp_validitiesItem);
}
}
cJSON *nw_area_info = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "nwAreaInfo");
OpenAPI_network_area_info_1_t *nw_area_info_local_nonprim = NULL;
nw_area_info = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "nwAreaInfo");
if (nw_area_info) {
nw_area_info_local_nonprim = OpenAPI_network_area_info_1_parseFromJSON(nw_area_info);
}
cJSON *up_path_chg_notif_uri = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "upPathChgNotifUri");
up_path_chg_notif_uri = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "upPathChgNotifUri");
if (up_path_chg_notif_uri) {
if (!cJSON_IsString(up_path_chg_notif_uri)) {
if (!cJSON_IsString(up_path_chg_notif_uri) && !cJSON_IsNull(up_path_chg_notif_uri)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [up_path_chg_notif_uri]");
goto end;
}
}
cJSON *headers = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "headers");
OpenAPI_list_t *headersList;
headers = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "headers");
if (headers) {
cJSON *headers_local;
if (!cJSON_IsArray(headers)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [headers]");
goto end;
}
headersList = OpenAPI_list_create();
cJSON *headers_local = NULL;
if (!cJSON_IsArray(headers)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [headers]");
goto end;
}
cJSON_ArrayForEach(headers_local, headers) {
if (!cJSON_IsString(headers_local)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [headers]");
goto end;
}
OpenAPI_list_add(headersList, ogs_strdup(headers_local->valuestring));
}
headersList = OpenAPI_list_create();
cJSON_ArrayForEach(headers_local, headers) {
double *localDouble = NULL;
int *localInt = NULL;
if (!cJSON_IsString(headers_local)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [headers]");
goto end;
}
OpenAPI_list_add(headersList, ogs_strdup(headers_local->valuestring));
}
}
cJSON *subscribed_events = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "subscribedEvents");
OpenAPI_list_t *subscribed_eventsList;
subscribed_events = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "subscribedEvents");
if (subscribed_events) {
cJSON *subscribed_events_local_nonprimitive;
if (!cJSON_IsArray(subscribed_events)){
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [subscribed_events]");
goto end;
}
subscribed_eventsList = OpenAPI_list_create();
cJSON_ArrayForEach(subscribed_events_local_nonprimitive, subscribed_events ) {
if (!cJSON_IsObject(subscribed_events_local_nonprimitive)) {
cJSON *subscribed_events_local = NULL;
if (!cJSON_IsArray(subscribed_events)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [subscribed_events]");
goto end;
}
OpenAPI_subscribed_event_t *subscribed_eventsItem = OpenAPI_subscribed_event_parseFromJSON(subscribed_events_local_nonprimitive);
if (!subscribed_eventsItem) {
ogs_error("No subscribed_eventsItem");
OpenAPI_list_free(subscribed_eventsList);
goto end;
subscribed_eventsList = OpenAPI_list_create();
cJSON_ArrayForEach(subscribed_events_local, subscribed_events) {
if (!cJSON_IsObject(subscribed_events_local)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [subscribed_events]");
goto end;
}
OpenAPI_subscribed_event_t *subscribed_eventsItem = OpenAPI_subscribed_event_parseFromJSON(subscribed_events_local);
if (!subscribed_eventsItem) {
ogs_error("No subscribed_eventsItem");
OpenAPI_list_free(subscribed_eventsList);
goto end;
}
OpenAPI_list_add(subscribed_eventsList, subscribed_eventsItem);
}
OpenAPI_list_add(subscribed_eventsList, subscribed_eventsItem);
}
}
cJSON *dnai_chg_type = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "dnaiChgType");
OpenAPI_dnai_change_type_e dnai_chg_typeVariable;
dnai_chg_type = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "dnaiChgType");
if (dnai_chg_type) {
if (!cJSON_IsString(dnai_chg_type)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [dnai_chg_type]");
@ -657,8 +689,7 @@ OpenAPI_traffic_influ_data_t *OpenAPI_traffic_influ_data_parseFromJSON(cJSON *tr
dnai_chg_typeVariable = OpenAPI_dnai_change_type_FromString(dnai_chg_type->valuestring);
}
cJSON *af_ack_ind = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "afAckInd");
af_ack_ind = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "afAckInd");
if (af_ack_ind) {
if (!cJSON_IsBool(af_ack_ind)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [af_ack_ind]");
@ -666,8 +697,7 @@ OpenAPI_traffic_influ_data_t *OpenAPI_traffic_influ_data_parseFromJSON(cJSON *tr
}
}
cJSON *addr_preser_ind = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "addrPreserInd");
addr_preser_ind = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "addrPreserInd");
if (addr_preser_ind) {
if (!cJSON_IsBool(addr_preser_ind)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [addr_preser_ind]");
@ -675,43 +705,41 @@ OpenAPI_traffic_influ_data_t *OpenAPI_traffic_influ_data_parseFromJSON(cJSON *tr
}
}
cJSON *supported_features = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "supportedFeatures");
supported_features = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "supportedFeatures");
if (supported_features) {
if (!cJSON_IsString(supported_features)) {
if (!cJSON_IsString(supported_features) && !cJSON_IsNull(supported_features)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [supported_features]");
goto end;
}
}
cJSON *res_uri = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "resUri");
res_uri = cJSON_GetObjectItemCaseSensitive(traffic_influ_dataJSON, "resUri");
if (res_uri) {
if (!cJSON_IsString(res_uri)) {
if (!cJSON_IsString(res_uri) && !cJSON_IsNull(res_uri)) {
ogs_error("OpenAPI_traffic_influ_data_parseFromJSON() failed [res_uri]");
goto end;
}
}
traffic_influ_data_local_var = OpenAPI_traffic_influ_data_create (
up_path_chg_notif_corre_id ? ogs_strdup(up_path_chg_notif_corre_id->valuestring) : NULL,
up_path_chg_notif_corre_id && !cJSON_IsNull(up_path_chg_notif_corre_id) ? ogs_strdup(up_path_chg_notif_corre_id->valuestring) : NULL,
app_relo_ind ? true : false,
app_relo_ind ? app_relo_ind->valueint : 0,
af_app_id ? ogs_strdup(af_app_id->valuestring) : NULL,
dnn ? ogs_strdup(dnn->valuestring) : NULL,
af_app_id && !cJSON_IsNull(af_app_id) ? ogs_strdup(af_app_id->valuestring) : NULL,
dnn && !cJSON_IsNull(dnn) ? ogs_strdup(dnn->valuestring) : NULL,
eth_traffic_filters ? eth_traffic_filtersList : NULL,
snssai ? snssai_local_nonprim : NULL,
inter_group_id ? ogs_strdup(inter_group_id->valuestring) : NULL,
supi ? ogs_strdup(supi->valuestring) : NULL,
inter_group_id && !cJSON_IsNull(inter_group_id) ? ogs_strdup(inter_group_id->valuestring) : NULL,
supi && !cJSON_IsNull(supi) ? ogs_strdup(supi->valuestring) : NULL,
traffic_filters ? traffic_filtersList : NULL,
traffic_routes ? traffic_routesList : NULL,
traff_corre_ind ? true : false,
traff_corre_ind ? traff_corre_ind->valueint : 0,
valid_start_time ? ogs_strdup(valid_start_time->valuestring) : NULL,
valid_end_time ? ogs_strdup(valid_end_time->valuestring) : NULL,
valid_start_time && !cJSON_IsNull(valid_start_time) ? ogs_strdup(valid_start_time->valuestring) : NULL,
valid_end_time && !cJSON_IsNull(valid_end_time) ? ogs_strdup(valid_end_time->valuestring) : NULL,
temp_validities ? temp_validitiesList : NULL,
nw_area_info ? nw_area_info_local_nonprim : NULL,
up_path_chg_notif_uri ? ogs_strdup(up_path_chg_notif_uri->valuestring) : NULL,
up_path_chg_notif_uri && !cJSON_IsNull(up_path_chg_notif_uri) ? ogs_strdup(up_path_chg_notif_uri->valuestring) : NULL,
headers ? headersList : NULL,
subscribed_events ? subscribed_eventsList : NULL,
dnai_chg_type ? dnai_chg_typeVariable : 0,
@ -719,12 +747,62 @@ OpenAPI_traffic_influ_data_t *OpenAPI_traffic_influ_data_parseFromJSON(cJSON *tr
af_ack_ind ? af_ack_ind->valueint : 0,
addr_preser_ind ? true : false,
addr_preser_ind ? addr_preser_ind->valueint : 0,
supported_features ? ogs_strdup(supported_features->valuestring) : NULL,
res_uri ? ogs_strdup(res_uri->valuestring) : NULL
supported_features && !cJSON_IsNull(supported_features) ? ogs_strdup(supported_features->valuestring) : NULL,
res_uri && !cJSON_IsNull(res_uri) ? ogs_strdup(res_uri->valuestring) : NULL
);
return traffic_influ_data_local_var;
end:
if (eth_traffic_filtersList) {
OpenAPI_list_for_each(eth_traffic_filtersList, node) {
OpenAPI_eth_flow_description_free(node->data);
}
OpenAPI_list_free(eth_traffic_filtersList);
eth_traffic_filtersList = NULL;
}
if (snssai_local_nonprim) {
OpenAPI_snssai_free(snssai_local_nonprim);
snssai_local_nonprim = NULL;
}
if (traffic_filtersList) {
OpenAPI_list_for_each(traffic_filtersList, node) {
OpenAPI_flow_info_free(node->data);
}
OpenAPI_list_free(traffic_filtersList);
traffic_filtersList = NULL;
}
if (traffic_routesList) {
OpenAPI_list_for_each(traffic_routesList, node) {
OpenAPI_route_to_location_free(node->data);
}
OpenAPI_list_free(traffic_routesList);
traffic_routesList = NULL;
}
if (temp_validitiesList) {
OpenAPI_list_for_each(temp_validitiesList, node) {
OpenAPI_temporal_validity_free(node->data);
}
OpenAPI_list_free(temp_validitiesList);
temp_validitiesList = NULL;
}
if (nw_area_info_local_nonprim) {
OpenAPI_network_area_info_1_free(nw_area_info_local_nonprim);
nw_area_info_local_nonprim = NULL;
}
if (headersList) {
OpenAPI_list_for_each(headersList, node) {
ogs_free(node->data);
}
OpenAPI_list_free(headersList);
headersList = NULL;
}
if (subscribed_eventsList) {
OpenAPI_list_for_each(subscribed_eventsList, node) {
OpenAPI_subscribed_event_free(node->data);
}
OpenAPI_list_free(subscribed_eventsList);
subscribed_eventsList = NULL;
}
return NULL;
}