Coverage Report

Created: 2026-08-17 06:12

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/open5gs/lib/sbi/openapi/model/udm_info.c
Line
Count
Source
1
2
#include <stdlib.h>
3
#include <string.h>
4
#include <stdio.h>
5
#include "udm_info.h"
6
7
OpenAPI_udm_info_t *OpenAPI_udm_info_create(
8
    char *group_id,
9
    OpenAPI_list_t *supi_ranges,
10
    OpenAPI_list_t *gpsi_ranges,
11
    OpenAPI_list_t *external_group_identifiers_ranges,
12
    OpenAPI_list_t *routing_indicators,
13
    OpenAPI_list_t *internal_group_identifiers_ranges,
14
    OpenAPI_list_t *suci_infos,
15
    bool is_any_ue_udm_single_instance,
16
    int any_ue_udm_single_instance
17
)
18
5.85k
{
19
5.85k
    OpenAPI_udm_info_t *udm_info_local_var = ogs_malloc(sizeof(OpenAPI_udm_info_t));
20
5.85k
    ogs_assert(udm_info_local_var);
21
22
5.85k
    udm_info_local_var->group_id = group_id;
23
5.85k
    udm_info_local_var->supi_ranges = supi_ranges;
24
5.85k
    udm_info_local_var->gpsi_ranges = gpsi_ranges;
25
5.85k
    udm_info_local_var->external_group_identifiers_ranges = external_group_identifiers_ranges;
26
5.85k
    udm_info_local_var->routing_indicators = routing_indicators;
27
5.85k
    udm_info_local_var->internal_group_identifiers_ranges = internal_group_identifiers_ranges;
28
5.85k
    udm_info_local_var->suci_infos = suci_infos;
29
5.85k
    udm_info_local_var->is_any_ue_udm_single_instance = is_any_ue_udm_single_instance;
30
5.85k
    udm_info_local_var->any_ue_udm_single_instance = any_ue_udm_single_instance;
31
32
5.85k
    return udm_info_local_var;
33
5.85k
}
34
35
void OpenAPI_udm_info_free(OpenAPI_udm_info_t *udm_info)
36
11.8k
{
37
11.8k
    OpenAPI_lnode_t *node = NULL;
38
39
11.8k
    if (NULL == udm_info) {
40
5.96k
        return;
41
5.96k
    }
42
5.85k
    if (udm_info->group_id) {
43
194
        ogs_free(udm_info->group_id);
44
194
        udm_info->group_id = NULL;
45
194
    }
46
5.85k
    if (udm_info->supi_ranges) {
47
602
        OpenAPI_list_for_each(udm_info->supi_ranges, node) {
48
602
            OpenAPI_supi_range_free(node->data);
49
602
        }
50
446
        OpenAPI_list_free(udm_info->supi_ranges);
51
446
        udm_info->supi_ranges = NULL;
52
446
    }
53
5.85k
    if (udm_info->gpsi_ranges) {
54
560
        OpenAPI_list_for_each(udm_info->gpsi_ranges, node) {
55
560
            OpenAPI_identity_range_free(node->data);
56
560
        }
57
407
        OpenAPI_list_free(udm_info->gpsi_ranges);
58
407
        udm_info->gpsi_ranges = NULL;
59
407
    }
60
5.85k
    if (udm_info->external_group_identifiers_ranges) {
61
301
        OpenAPI_list_for_each(udm_info->external_group_identifiers_ranges, node) {
62
301
            OpenAPI_identity_range_free(node->data);
63
301
        }
64
269
        OpenAPI_list_free(udm_info->external_group_identifiers_ranges);
65
269
        udm_info->external_group_identifiers_ranges = NULL;
66
269
    }
67
5.85k
    if (udm_info->routing_indicators) {
68
552
        OpenAPI_list_for_each(udm_info->routing_indicators, node) {
69
508
            ogs_free(node->data);
70
508
        }
71
552
        OpenAPI_list_free(udm_info->routing_indicators);
72
552
        udm_info->routing_indicators = NULL;
73
552
    }
74
5.85k
    if (udm_info->internal_group_identifiers_ranges) {
75
581
        OpenAPI_list_for_each(udm_info->internal_group_identifiers_ranges, node) {
76
581
            OpenAPI_internal_group_id_range_free(node->data);
77
581
        }
78
404
        OpenAPI_list_free(udm_info->internal_group_identifiers_ranges);
79
404
        udm_info->internal_group_identifiers_ranges = NULL;
80
404
    }
81
5.85k
    if (udm_info->suci_infos) {
82
928
        OpenAPI_list_for_each(udm_info->suci_infos, node) {
83
928
            OpenAPI_suci_info_free(node->data);
84
928
        }
85
457
        OpenAPI_list_free(udm_info->suci_infos);
86
457
        udm_info->suci_infos = NULL;
87
457
    }
88
5.85k
    ogs_free(udm_info);
89
5.85k
}
90
91
cJSON *OpenAPI_udm_info_convertToJSON(OpenAPI_udm_info_t *udm_info)
92
0
{
93
0
    cJSON *item = NULL;
94
0
    OpenAPI_lnode_t *node = NULL;
95
96
0
    if (udm_info == NULL) {
97
0
        ogs_error("OpenAPI_udm_info_convertToJSON() failed [UdmInfo]");
98
0
        return NULL;
99
0
    }
100
101
0
    item = cJSON_CreateObject();
102
0
    if (udm_info->group_id) {
103
0
    if (cJSON_AddStringToObject(item, "groupId", udm_info->group_id) == NULL) {
104
0
        ogs_error("OpenAPI_udm_info_convertToJSON() failed [group_id]");
105
0
        goto end;
106
0
    }
107
0
    }
108
109
0
    if (udm_info->supi_ranges) {
110
0
    cJSON *supi_rangesList = cJSON_AddArrayToObject(item, "supiRanges");
111
0
    if (supi_rangesList == NULL) {
112
0
        ogs_error("OpenAPI_udm_info_convertToJSON() failed [supi_ranges]");
113
0
        goto end;
114
0
    }
115
0
    OpenAPI_list_for_each(udm_info->supi_ranges, node) {
116
0
        cJSON *itemLocal = OpenAPI_supi_range_convertToJSON(node->data);
117
0
        if (itemLocal == NULL) {
118
0
            ogs_error("OpenAPI_udm_info_convertToJSON() failed [supi_ranges]");
119
0
            goto end;
120
0
        }
121
0
        cJSON_AddItemToArray(supi_rangesList, itemLocal);
122
0
    }
123
0
    }
124
125
0
    if (udm_info->gpsi_ranges) {
126
0
    cJSON *gpsi_rangesList = cJSON_AddArrayToObject(item, "gpsiRanges");
127
0
    if (gpsi_rangesList == NULL) {
128
0
        ogs_error("OpenAPI_udm_info_convertToJSON() failed [gpsi_ranges]");
129
0
        goto end;
130
0
    }
131
0
    OpenAPI_list_for_each(udm_info->gpsi_ranges, node) {
132
0
        cJSON *itemLocal = OpenAPI_identity_range_convertToJSON(node->data);
133
0
        if (itemLocal == NULL) {
134
0
            ogs_error("OpenAPI_udm_info_convertToJSON() failed [gpsi_ranges]");
135
0
            goto end;
136
0
        }
137
0
        cJSON_AddItemToArray(gpsi_rangesList, itemLocal);
138
0
    }
139
0
    }
140
141
0
    if (udm_info->external_group_identifiers_ranges) {
142
0
    cJSON *external_group_identifiers_rangesList = cJSON_AddArrayToObject(item, "externalGroupIdentifiersRanges");
143
0
    if (external_group_identifiers_rangesList == NULL) {
144
0
        ogs_error("OpenAPI_udm_info_convertToJSON() failed [external_group_identifiers_ranges]");
145
0
        goto end;
146
0
    }
147
0
    OpenAPI_list_for_each(udm_info->external_group_identifiers_ranges, node) {
148
0
        cJSON *itemLocal = OpenAPI_identity_range_convertToJSON(node->data);
149
0
        if (itemLocal == NULL) {
150
0
            ogs_error("OpenAPI_udm_info_convertToJSON() failed [external_group_identifiers_ranges]");
151
0
            goto end;
152
0
        }
153
0
        cJSON_AddItemToArray(external_group_identifiers_rangesList, itemLocal);
154
0
    }
155
0
    }
156
157
0
    if (udm_info->routing_indicators) {
158
0
    cJSON *routing_indicatorsList = cJSON_AddArrayToObject(item, "routingIndicators");
159
0
    if (routing_indicatorsList == NULL) {
160
0
        ogs_error("OpenAPI_udm_info_convertToJSON() failed [routing_indicators]");
161
0
        goto end;
162
0
    }
163
0
    OpenAPI_list_for_each(udm_info->routing_indicators, node) {
164
0
        if (cJSON_AddStringToObject(routing_indicatorsList, "", (char*)node->data) == NULL) {
165
0
            ogs_error("OpenAPI_udm_info_convertToJSON() failed [routing_indicators]");
166
0
            goto end;
167
0
        }
168
0
    }
169
0
    }
170
171
0
    if (udm_info->internal_group_identifiers_ranges) {
172
0
    cJSON *internal_group_identifiers_rangesList = cJSON_AddArrayToObject(item, "internalGroupIdentifiersRanges");
173
0
    if (internal_group_identifiers_rangesList == NULL) {
174
0
        ogs_error("OpenAPI_udm_info_convertToJSON() failed [internal_group_identifiers_ranges]");
175
0
        goto end;
176
0
    }
177
0
    OpenAPI_list_for_each(udm_info->internal_group_identifiers_ranges, node) {
178
0
        cJSON *itemLocal = OpenAPI_internal_group_id_range_convertToJSON(node->data);
179
0
        if (itemLocal == NULL) {
180
0
            ogs_error("OpenAPI_udm_info_convertToJSON() failed [internal_group_identifiers_ranges]");
181
0
            goto end;
182
0
        }
183
0
        cJSON_AddItemToArray(internal_group_identifiers_rangesList, itemLocal);
184
0
    }
185
0
    }
186
187
0
    if (udm_info->suci_infos) {
188
0
    cJSON *suci_infosList = cJSON_AddArrayToObject(item, "suciInfos");
189
0
    if (suci_infosList == NULL) {
190
0
        ogs_error("OpenAPI_udm_info_convertToJSON() failed [suci_infos]");
191
0
        goto end;
192
0
    }
193
0
    OpenAPI_list_for_each(udm_info->suci_infos, node) {
194
0
        cJSON *itemLocal = OpenAPI_suci_info_convertToJSON(node->data);
195
0
        if (itemLocal == NULL) {
196
0
            ogs_error("OpenAPI_udm_info_convertToJSON() failed [suci_infos]");
197
0
            goto end;
198
0
        }
199
0
        cJSON_AddItemToArray(suci_infosList, itemLocal);
200
0
    }
201
0
    }
202
203
0
    if (udm_info->is_any_ue_udm_single_instance) {
204
0
    if (cJSON_AddBoolToObject(item, "anyUeUdmSingleInstance", udm_info->any_ue_udm_single_instance) == NULL) {
205
0
        ogs_error("OpenAPI_udm_info_convertToJSON() failed [any_ue_udm_single_instance]");
206
0
        goto end;
207
0
    }
208
0
    }
209
210
0
end:
211
0
    return item;
212
0
}
213
214
OpenAPI_udm_info_t *OpenAPI_udm_info_parseFromJSON(cJSON *udm_infoJSON)
215
11.3k
{
216
11.3k
    OpenAPI_udm_info_t *udm_info_local_var = NULL;
217
11.3k
    OpenAPI_lnode_t *node = NULL;
218
11.3k
    cJSON *group_id = NULL;
219
11.3k
    cJSON *supi_ranges = NULL;
220
11.3k
    OpenAPI_list_t *supi_rangesList = NULL;
221
11.3k
    cJSON *gpsi_ranges = NULL;
222
11.3k
    OpenAPI_list_t *gpsi_rangesList = NULL;
223
11.3k
    cJSON *external_group_identifiers_ranges = NULL;
224
11.3k
    OpenAPI_list_t *external_group_identifiers_rangesList = NULL;
225
11.3k
    cJSON *routing_indicators = NULL;
226
11.3k
    OpenAPI_list_t *routing_indicatorsList = NULL;
227
11.3k
    cJSON *internal_group_identifiers_ranges = NULL;
228
11.3k
    OpenAPI_list_t *internal_group_identifiers_rangesList = NULL;
229
11.3k
    cJSON *suci_infos = NULL;
230
11.3k
    OpenAPI_list_t *suci_infosList = NULL;
231
11.3k
    cJSON *any_ue_udm_single_instance = NULL;
232
11.3k
    group_id = cJSON_GetObjectItemCaseSensitive(udm_infoJSON, "groupId");
233
11.3k
    if (group_id) {
234
584
    if (!cJSON_IsString(group_id) && !cJSON_IsNull(group_id)) {
235
196
        ogs_error("OpenAPI_udm_info_parseFromJSON() failed [group_id]");
236
196
        goto end;
237
196
    }
238
584
    }
239
240
11.1k
    supi_ranges = cJSON_GetObjectItemCaseSensitive(udm_infoJSON, "supiRanges");
241
11.1k
    if (supi_ranges) {
242
1.47k
        cJSON *supi_ranges_local = NULL;
243
1.47k
        if (!cJSON_IsArray(supi_ranges)) {
244
291
            ogs_error("OpenAPI_udm_info_parseFromJSON() failed [supi_ranges]");
245
291
            goto end;
246
291
        }
247
248
1.18k
        supi_rangesList = OpenAPI_list_create();
249
250
2.03k
        cJSON_ArrayForEach(supi_ranges_local, supi_ranges) {
251
2.03k
            if (!cJSON_IsObject(supi_ranges_local)) {
252
543
                ogs_error("OpenAPI_udm_info_parseFromJSON() failed [supi_ranges]");
253
543
                goto end;
254
543
            }
255
1.49k
            OpenAPI_supi_range_t *supi_rangesItem = OpenAPI_supi_range_parseFromJSON(supi_ranges_local);
256
1.49k
            if (!supi_rangesItem) {
257
196
                ogs_error("No supi_rangesItem");
258
196
                goto end;
259
196
            }
260
1.29k
            OpenAPI_list_add(supi_rangesList, supi_rangesItem);
261
1.29k
        }
262
1.18k
    }
263
264
10.1k
    gpsi_ranges = cJSON_GetObjectItemCaseSensitive(udm_infoJSON, "gpsiRanges");
265
10.1k
    if (gpsi_ranges) {
266
1.24k
        cJSON *gpsi_ranges_local = NULL;
267
1.24k
        if (!cJSON_IsArray(gpsi_ranges)) {
268
206
            ogs_error("OpenAPI_udm_info_parseFromJSON() failed [gpsi_ranges]");
269
206
            goto end;
270
206
        }
271
272
1.04k
        gpsi_rangesList = OpenAPI_list_create();
273
274
1.76k
        cJSON_ArrayForEach(gpsi_ranges_local, gpsi_ranges) {
275
1.76k
            if (!cJSON_IsObject(gpsi_ranges_local)) {
276
426
                ogs_error("OpenAPI_udm_info_parseFromJSON() failed [gpsi_ranges]");
277
426
                goto end;
278
426
            }
279
1.33k
            OpenAPI_identity_range_t *gpsi_rangesItem = OpenAPI_identity_range_parseFromJSON(gpsi_ranges_local);
280
1.33k
            if (!gpsi_rangesItem) {
281
208
                ogs_error("No gpsi_rangesItem");
282
208
                goto end;
283
208
            }
284
1.13k
            OpenAPI_list_add(gpsi_rangesList, gpsi_rangesItem);
285
1.13k
        }
286
1.04k
    }
287
288
9.27k
    external_group_identifiers_ranges = cJSON_GetObjectItemCaseSensitive(udm_infoJSON, "externalGroupIdentifiersRanges");
289
9.27k
    if (external_group_identifiers_ranges) {
290
1.06k
        cJSON *external_group_identifiers_ranges_local = NULL;
291
1.06k
        if (!cJSON_IsArray(external_group_identifiers_ranges)) {
292
194
            ogs_error("OpenAPI_udm_info_parseFromJSON() failed [external_group_identifiers_ranges]");
293
194
            goto end;
294
194
        }
295
296
872
        external_group_identifiers_rangesList = OpenAPI_list_create();
297
298
1.45k
        cJSON_ArrayForEach(external_group_identifiers_ranges_local, external_group_identifiers_ranges) {
299
1.45k
            if (!cJSON_IsObject(external_group_identifiers_ranges_local)) {
300
409
                ogs_error("OpenAPI_udm_info_parseFromJSON() failed [external_group_identifiers_ranges]");
301
409
                goto end;
302
409
            }
303
1.05k
            OpenAPI_identity_range_t *external_group_identifiers_rangesItem = OpenAPI_identity_range_parseFromJSON(external_group_identifiers_ranges_local);
304
1.05k
            if (!external_group_identifiers_rangesItem) {
305
194
                ogs_error("No external_group_identifiers_rangesItem");
306
194
                goto end;
307
194
            }
308
856
            OpenAPI_list_add(external_group_identifiers_rangesList, external_group_identifiers_rangesItem);
309
856
        }
310
872
    }
311
312
8.48k
    routing_indicators = cJSON_GetObjectItemCaseSensitive(udm_infoJSON, "routingIndicators");
313
8.48k
    if (routing_indicators) {
314
1.17k
        cJSON *routing_indicators_local = NULL;
315
1.17k
        if (!cJSON_IsArray(routing_indicators)) {
316
225
            ogs_error("OpenAPI_udm_info_parseFromJSON() failed [routing_indicators]");
317
225
            goto end;
318
225
        }
319
320
950
        routing_indicatorsList = OpenAPI_list_create();
321
322
1.38k
        cJSON_ArrayForEach(routing_indicators_local, routing_indicators) {
323
1.38k
            double *localDouble = NULL;
324
1.38k
            int *localInt = NULL;
325
1.38k
            if (!cJSON_IsString(routing_indicators_local)) {
326
398
                ogs_error("OpenAPI_udm_info_parseFromJSON() failed [routing_indicators]");
327
398
                goto end;
328
398
            }
329
982
            OpenAPI_list_add(routing_indicatorsList, ogs_strdup(routing_indicators_local->valuestring));
330
982
        }
331
950
    }
332
333
7.85k
    internal_group_identifiers_ranges = cJSON_GetObjectItemCaseSensitive(udm_infoJSON, "internalGroupIdentifiersRanges");
334
7.85k
    if (internal_group_identifiers_ranges) {
335
1.01k
        cJSON *internal_group_identifiers_ranges_local = NULL;
336
1.01k
        if (!cJSON_IsArray(internal_group_identifiers_ranges)) {
337
194
            ogs_error("OpenAPI_udm_info_parseFromJSON() failed [internal_group_identifiers_ranges]");
338
194
            goto end;
339
194
        }
340
341
823
        internal_group_identifiers_rangesList = OpenAPI_list_create();
342
343
1.28k
        cJSON_ArrayForEach(internal_group_identifiers_ranges_local, internal_group_identifiers_ranges) {
344
1.28k
            if (!cJSON_IsObject(internal_group_identifiers_ranges_local)) {
345
271
                ogs_error("OpenAPI_udm_info_parseFromJSON() failed [internal_group_identifiers_ranges]");
346
271
                goto end;
347
271
            }
348
1.01k
            OpenAPI_internal_group_id_range_t *internal_group_identifiers_rangesItem = OpenAPI_internal_group_id_range_parseFromJSON(internal_group_identifiers_ranges_local);
349
1.01k
            if (!internal_group_identifiers_rangesItem) {
350
148
                ogs_error("No internal_group_identifiers_rangesItem");
351
148
                goto end;
352
148
            }
353
862
            OpenAPI_list_add(internal_group_identifiers_rangesList, internal_group_identifiers_rangesItem);
354
862
        }
355
823
    }
356
357
7.24k
    suci_infos = cJSON_GetObjectItemCaseSensitive(udm_infoJSON, "suciInfos");
358
7.24k
    if (suci_infos) {
359
1.65k
        cJSON *suci_infos_local = NULL;
360
1.65k
        if (!cJSON_IsArray(suci_infos)) {
361
200
            ogs_error("OpenAPI_udm_info_parseFromJSON() failed [suci_infos]");
362
200
            goto end;
363
200
        }
364
365
1.45k
        suci_infosList = OpenAPI_list_create();
366
367
5.38k
        cJSON_ArrayForEach(suci_infos_local, suci_infos) {
368
5.38k
            if (!cJSON_IsObject(suci_infos_local)) {
369
501
                ogs_error("OpenAPI_udm_info_parseFromJSON() failed [suci_infos]");
370
501
                goto end;
371
501
            }
372
4.88k
            OpenAPI_suci_info_t *suci_infosItem = OpenAPI_suci_info_parseFromJSON(suci_infos_local);
373
4.88k
            if (!suci_infosItem) {
374
494
                ogs_error("No suci_infosItem");
375
494
                goto end;
376
494
            }
377
4.39k
            OpenAPI_list_add(suci_infosList, suci_infosItem);
378
4.39k
        }
379
1.45k
    }
380
381
6.05k
    any_ue_udm_single_instance = cJSON_GetObjectItemCaseSensitive(udm_infoJSON, "anyUeUdmSingleInstance");
382
6.05k
    if (any_ue_udm_single_instance) {
383
392
    if (!cJSON_IsBool(any_ue_udm_single_instance)) {
384
198
        ogs_error("OpenAPI_udm_info_parseFromJSON() failed [any_ue_udm_single_instance]");
385
198
        goto end;
386
198
    }
387
392
    }
388
389
5.85k
    udm_info_local_var = OpenAPI_udm_info_create (
390
5.85k
        group_id && !cJSON_IsNull(group_id) ? ogs_strdup(group_id->valuestring) : NULL,
391
5.85k
        supi_ranges ? supi_rangesList : NULL,
392
5.85k
        gpsi_ranges ? gpsi_rangesList : NULL,
393
5.85k
        external_group_identifiers_ranges ? external_group_identifiers_rangesList : NULL,
394
5.85k
        routing_indicators ? routing_indicatorsList : NULL,
395
5.85k
        internal_group_identifiers_ranges ? internal_group_identifiers_rangesList : NULL,
396
5.85k
        suci_infos ? suci_infosList : NULL,
397
5.85k
        any_ue_udm_single_instance ? true : false,
398
5.85k
        any_ue_udm_single_instance ? any_ue_udm_single_instance->valueint : 0
399
5.85k
    );
400
401
5.85k
    return udm_info_local_var;
402
5.49k
end:
403
5.49k
    if (supi_rangesList) {
404
739
        OpenAPI_list_for_each(supi_rangesList, node) {
405
692
            OpenAPI_supi_range_free(node->data);
406
692
        }
407
739
        OpenAPI_list_free(supi_rangesList);
408
739
        supi_rangesList = NULL;
409
739
    }
410
5.49k
    if (gpsi_rangesList) {
411
634
        OpenAPI_list_for_each(gpsi_rangesList, node) {
412
570
            OpenAPI_identity_range_free(node->data);
413
570
        }
414
634
        OpenAPI_list_free(gpsi_rangesList);
415
634
        gpsi_rangesList = NULL;
416
634
    }
417
5.49k
    if (external_group_identifiers_rangesList) {
418
603
        OpenAPI_list_for_each(external_group_identifiers_rangesList, node) {
419
555
            OpenAPI_identity_range_free(node->data);
420
555
        }
421
603
        OpenAPI_list_free(external_group_identifiers_rangesList);
422
603
        external_group_identifiers_rangesList = NULL;
423
603
    }
424
5.49k
    if (routing_indicatorsList) {
425
474
        OpenAPI_list_for_each(routing_indicatorsList, node) {
426
474
            ogs_free(node->data);
427
474
        }
428
398
        OpenAPI_list_free(routing_indicatorsList);
429
398
        routing_indicatorsList = NULL;
430
398
    }
431
5.49k
    if (internal_group_identifiers_rangesList) {
432
419
        OpenAPI_list_for_each(internal_group_identifiers_rangesList, node) {
433
281
            OpenAPI_internal_group_id_range_free(node->data);
434
281
        }
435
419
        OpenAPI_list_free(internal_group_identifiers_rangesList);
436
419
        internal_group_identifiers_rangesList = NULL;
437
419
    }
438
5.49k
    if (suci_infosList) {
439
3.46k
        OpenAPI_list_for_each(suci_infosList, node) {
440
3.46k
            OpenAPI_suci_info_free(node->data);
441
3.46k
        }
442
995
        OpenAPI_list_free(suci_infosList);
443
995
        suci_infosList = NULL;
444
995
    }
445
5.49k
    return NULL;
446
6.05k
}
447
448
OpenAPI_udm_info_t *OpenAPI_udm_info_copy(OpenAPI_udm_info_t *dst, OpenAPI_udm_info_t *src)
449
0
{
450
0
    cJSON *item = NULL;
451
0
    char *content = NULL;
452
453
0
    ogs_assert(src);
454
0
    item = OpenAPI_udm_info_convertToJSON(src);
455
0
    if (!item) {
456
0
        ogs_error("OpenAPI_udm_info_convertToJSON() failed");
457
0
        return NULL;
458
0
    }
459
460
0
    content = cJSON_Print(item);
461
0
    cJSON_Delete(item);
462
463
0
    if (!content) {
464
0
        ogs_error("cJSON_Print() failed");
465
0
        return NULL;
466
0
    }
467
468
0
    item = cJSON_Parse(content);
469
0
    ogs_free(content);
470
0
    if (!item) {
471
0
        ogs_error("cJSON_Parse() failed");
472
0
        return NULL;
473
0
    }
474
475
0
    OpenAPI_udm_info_free(dst);
476
0
    dst = OpenAPI_udm_info_parseFromJSON(item);
477
0
    cJSON_Delete(item);
478
479
0
    return dst;
480
0
}
481