/src/open5gs/lib/sbi/openapi/model/udr_info.c
Line | Count | Source |
1 | | |
2 | | #include <stdlib.h> |
3 | | #include <string.h> |
4 | | #include <stdio.h> |
5 | | #include "udr_info.h" |
6 | | |
7 | | OpenAPI_udr_info_t *OpenAPI_udr_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 *supported_data_sets, |
13 | | OpenAPI_list_t *shared_data_id_ranges, |
14 | | bool is_any_ue_ind, |
15 | | int any_ue_ind |
16 | | ) |
17 | 3.24k | { |
18 | 3.24k | OpenAPI_udr_info_t *udr_info_local_var = ogs_malloc(sizeof(OpenAPI_udr_info_t)); |
19 | 3.24k | ogs_assert(udr_info_local_var); |
20 | | |
21 | 3.24k | udr_info_local_var->group_id = group_id; |
22 | 3.24k | udr_info_local_var->supi_ranges = supi_ranges; |
23 | 3.24k | udr_info_local_var->gpsi_ranges = gpsi_ranges; |
24 | 3.24k | udr_info_local_var->external_group_identifiers_ranges = external_group_identifiers_ranges; |
25 | 3.24k | udr_info_local_var->supported_data_sets = supported_data_sets; |
26 | 3.24k | udr_info_local_var->shared_data_id_ranges = shared_data_id_ranges; |
27 | 3.24k | udr_info_local_var->is_any_ue_ind = is_any_ue_ind; |
28 | 3.24k | udr_info_local_var->any_ue_ind = any_ue_ind; |
29 | | |
30 | 3.24k | return udr_info_local_var; |
31 | 3.24k | } |
32 | | |
33 | | void OpenAPI_udr_info_free(OpenAPI_udr_info_t *udr_info) |
34 | 5.47k | { |
35 | 5.47k | OpenAPI_lnode_t *node = NULL; |
36 | | |
37 | 5.47k | if (NULL == udr_info) { |
38 | 2.22k | return; |
39 | 2.22k | } |
40 | 3.24k | if (udr_info->group_id) { |
41 | 205 | ogs_free(udr_info->group_id); |
42 | 205 | udr_info->group_id = NULL; |
43 | 205 | } |
44 | 3.24k | if (udr_info->supi_ranges) { |
45 | 153 | OpenAPI_list_for_each(udr_info->supi_ranges, node) { |
46 | 82 | OpenAPI_supi_range_free(node->data); |
47 | 82 | } |
48 | 153 | OpenAPI_list_free(udr_info->supi_ranges); |
49 | 153 | udr_info->supi_ranges = NULL; |
50 | 153 | } |
51 | 3.24k | if (udr_info->gpsi_ranges) { |
52 | 130 | OpenAPI_list_for_each(udr_info->gpsi_ranges, node) { |
53 | 23 | OpenAPI_identity_range_free(node->data); |
54 | 23 | } |
55 | 130 | OpenAPI_list_free(udr_info->gpsi_ranges); |
56 | 130 | udr_info->gpsi_ranges = NULL; |
57 | 130 | } |
58 | 3.24k | if (udr_info->external_group_identifiers_ranges) { |
59 | 77 | OpenAPI_list_for_each(udr_info->external_group_identifiers_ranges, node) { |
60 | 10 | OpenAPI_identity_range_free(node->data); |
61 | 10 | } |
62 | 77 | OpenAPI_list_free(udr_info->external_group_identifiers_ranges); |
63 | 77 | udr_info->external_group_identifiers_ranges = NULL; |
64 | 77 | } |
65 | 3.24k | if (udr_info->supported_data_sets) { |
66 | 0 | OpenAPI_list_free(udr_info->supported_data_sets); |
67 | 0 | udr_info->supported_data_sets = NULL; |
68 | 0 | } |
69 | 3.24k | if (udr_info->shared_data_id_ranges) { |
70 | 67 | OpenAPI_list_for_each(udr_info->shared_data_id_ranges, node) { |
71 | 0 | OpenAPI_shared_data_id_range_free(node->data); |
72 | 0 | } |
73 | 67 | OpenAPI_list_free(udr_info->shared_data_id_ranges); |
74 | 67 | udr_info->shared_data_id_ranges = NULL; |
75 | 67 | } |
76 | 3.24k | ogs_free(udr_info); |
77 | 3.24k | } |
78 | | |
79 | | cJSON *OpenAPI_udr_info_convertToJSON(OpenAPI_udr_info_t *udr_info) |
80 | 0 | { |
81 | 0 | cJSON *item = NULL; |
82 | 0 | OpenAPI_lnode_t *node = NULL; |
83 | |
|
84 | 0 | if (udr_info == NULL) { |
85 | 0 | ogs_error("OpenAPI_udr_info_convertToJSON() failed [UdrInfo]"); |
86 | 0 | return NULL; |
87 | 0 | } |
88 | | |
89 | 0 | item = cJSON_CreateObject(); |
90 | 0 | if (udr_info->group_id) { |
91 | 0 | if (cJSON_AddStringToObject(item, "groupId", udr_info->group_id) == NULL) { |
92 | 0 | ogs_error("OpenAPI_udr_info_convertToJSON() failed [group_id]"); |
93 | 0 | goto end; |
94 | 0 | } |
95 | 0 | } |
96 | | |
97 | 0 | if (udr_info->supi_ranges) { |
98 | 0 | cJSON *supi_rangesList = cJSON_AddArrayToObject(item, "supiRanges"); |
99 | 0 | if (supi_rangesList == NULL) { |
100 | 0 | ogs_error("OpenAPI_udr_info_convertToJSON() failed [supi_ranges]"); |
101 | 0 | goto end; |
102 | 0 | } |
103 | 0 | OpenAPI_list_for_each(udr_info->supi_ranges, node) { |
104 | 0 | cJSON *itemLocal = OpenAPI_supi_range_convertToJSON(node->data); |
105 | 0 | if (itemLocal == NULL) { |
106 | 0 | ogs_error("OpenAPI_udr_info_convertToJSON() failed [supi_ranges]"); |
107 | 0 | goto end; |
108 | 0 | } |
109 | 0 | cJSON_AddItemToArray(supi_rangesList, itemLocal); |
110 | 0 | } |
111 | 0 | } |
112 | | |
113 | 0 | if (udr_info->gpsi_ranges) { |
114 | 0 | cJSON *gpsi_rangesList = cJSON_AddArrayToObject(item, "gpsiRanges"); |
115 | 0 | if (gpsi_rangesList == NULL) { |
116 | 0 | ogs_error("OpenAPI_udr_info_convertToJSON() failed [gpsi_ranges]"); |
117 | 0 | goto end; |
118 | 0 | } |
119 | 0 | OpenAPI_list_for_each(udr_info->gpsi_ranges, node) { |
120 | 0 | cJSON *itemLocal = OpenAPI_identity_range_convertToJSON(node->data); |
121 | 0 | if (itemLocal == NULL) { |
122 | 0 | ogs_error("OpenAPI_udr_info_convertToJSON() failed [gpsi_ranges]"); |
123 | 0 | goto end; |
124 | 0 | } |
125 | 0 | cJSON_AddItemToArray(gpsi_rangesList, itemLocal); |
126 | 0 | } |
127 | 0 | } |
128 | | |
129 | 0 | if (udr_info->external_group_identifiers_ranges) { |
130 | 0 | cJSON *external_group_identifiers_rangesList = cJSON_AddArrayToObject(item, "externalGroupIdentifiersRanges"); |
131 | 0 | if (external_group_identifiers_rangesList == NULL) { |
132 | 0 | ogs_error("OpenAPI_udr_info_convertToJSON() failed [external_group_identifiers_ranges]"); |
133 | 0 | goto end; |
134 | 0 | } |
135 | 0 | OpenAPI_list_for_each(udr_info->external_group_identifiers_ranges, node) { |
136 | 0 | cJSON *itemLocal = OpenAPI_identity_range_convertToJSON(node->data); |
137 | 0 | if (itemLocal == NULL) { |
138 | 0 | ogs_error("OpenAPI_udr_info_convertToJSON() failed [external_group_identifiers_ranges]"); |
139 | 0 | goto end; |
140 | 0 | } |
141 | 0 | cJSON_AddItemToArray(external_group_identifiers_rangesList, itemLocal); |
142 | 0 | } |
143 | 0 | } |
144 | | |
145 | 0 | if (udr_info->supported_data_sets != OpenAPI_data_set_id_NULL) { |
146 | 0 | cJSON *supported_data_setsList = cJSON_AddArrayToObject(item, "supportedDataSets"); |
147 | 0 | if (supported_data_setsList == NULL) { |
148 | 0 | ogs_error("OpenAPI_udr_info_convertToJSON() failed [supported_data_sets]"); |
149 | 0 | goto end; |
150 | 0 | } |
151 | 0 | OpenAPI_list_for_each(udr_info->supported_data_sets, node) { |
152 | 0 | if (cJSON_AddStringToObject(supported_data_setsList, "", OpenAPI_data_set_id_ToString((intptr_t)node->data)) == NULL) { |
153 | 0 | ogs_error("OpenAPI_udr_info_convertToJSON() failed [supported_data_sets]"); |
154 | 0 | goto end; |
155 | 0 | } |
156 | 0 | } |
157 | 0 | } |
158 | | |
159 | 0 | if (udr_info->shared_data_id_ranges) { |
160 | 0 | cJSON *shared_data_id_rangesList = cJSON_AddArrayToObject(item, "sharedDataIdRanges"); |
161 | 0 | if (shared_data_id_rangesList == NULL) { |
162 | 0 | ogs_error("OpenAPI_udr_info_convertToJSON() failed [shared_data_id_ranges]"); |
163 | 0 | goto end; |
164 | 0 | } |
165 | 0 | OpenAPI_list_for_each(udr_info->shared_data_id_ranges, node) { |
166 | 0 | cJSON *itemLocal = OpenAPI_shared_data_id_range_convertToJSON(node->data); |
167 | 0 | if (itemLocal == NULL) { |
168 | 0 | ogs_error("OpenAPI_udr_info_convertToJSON() failed [shared_data_id_ranges]"); |
169 | 0 | goto end; |
170 | 0 | } |
171 | 0 | cJSON_AddItemToArray(shared_data_id_rangesList, itemLocal); |
172 | 0 | } |
173 | 0 | } |
174 | | |
175 | 0 | if (udr_info->is_any_ue_ind) { |
176 | 0 | if (cJSON_AddBoolToObject(item, "anyUeInd", udr_info->any_ue_ind) == NULL) { |
177 | 0 | ogs_error("OpenAPI_udr_info_convertToJSON() failed [any_ue_ind]"); |
178 | 0 | goto end; |
179 | 0 | } |
180 | 0 | } |
181 | | |
182 | 0 | end: |
183 | 0 | return item; |
184 | 0 | } |
185 | | |
186 | | OpenAPI_udr_info_t *OpenAPI_udr_info_parseFromJSON(cJSON *udr_infoJSON) |
187 | 4.82k | { |
188 | 4.82k | OpenAPI_udr_info_t *udr_info_local_var = NULL; |
189 | 4.82k | OpenAPI_lnode_t *node = NULL; |
190 | 4.82k | cJSON *group_id = NULL; |
191 | 4.82k | cJSON *supi_ranges = NULL; |
192 | 4.82k | OpenAPI_list_t *supi_rangesList = NULL; |
193 | 4.82k | cJSON *gpsi_ranges = NULL; |
194 | 4.82k | OpenAPI_list_t *gpsi_rangesList = NULL; |
195 | 4.82k | cJSON *external_group_identifiers_ranges = NULL; |
196 | 4.82k | OpenAPI_list_t *external_group_identifiers_rangesList = NULL; |
197 | 4.82k | cJSON *supported_data_sets = NULL; |
198 | 4.82k | OpenAPI_list_t *supported_data_setsList = NULL; |
199 | 4.82k | cJSON *shared_data_id_ranges = NULL; |
200 | 4.82k | OpenAPI_list_t *shared_data_id_rangesList = NULL; |
201 | 4.82k | cJSON *any_ue_ind = NULL; |
202 | 4.82k | group_id = cJSON_GetObjectItemCaseSensitive(udr_infoJSON, "groupId"); |
203 | 4.82k | if (group_id) { |
204 | 760 | if (!cJSON_IsString(group_id) && !cJSON_IsNull(group_id)) { |
205 | 343 | ogs_error("OpenAPI_udr_info_parseFromJSON() failed [group_id]"); |
206 | 343 | goto end; |
207 | 343 | } |
208 | 760 | } |
209 | | |
210 | 4.48k | supi_ranges = cJSON_GetObjectItemCaseSensitive(udr_infoJSON, "supiRanges"); |
211 | 4.48k | if (supi_ranges) { |
212 | 538 | cJSON *supi_ranges_local = NULL; |
213 | 538 | if (!cJSON_IsArray(supi_ranges)) { |
214 | 145 | ogs_error("OpenAPI_udr_info_parseFromJSON() failed [supi_ranges]"); |
215 | 145 | goto end; |
216 | 145 | } |
217 | | |
218 | 393 | supi_rangesList = OpenAPI_list_create(); |
219 | | |
220 | 511 | cJSON_ArrayForEach(supi_ranges_local, supi_ranges) { |
221 | 511 | if (!cJSON_IsObject(supi_ranges_local)) { |
222 | 206 | ogs_error("OpenAPI_udr_info_parseFromJSON() failed [supi_ranges]"); |
223 | 206 | goto end; |
224 | 206 | } |
225 | 305 | OpenAPI_supi_range_t *supi_rangesItem = OpenAPI_supi_range_parseFromJSON(supi_ranges_local); |
226 | 305 | if (!supi_rangesItem) { |
227 | 34 | ogs_error("No supi_rangesItem"); |
228 | 34 | goto end; |
229 | 34 | } |
230 | 271 | OpenAPI_list_add(supi_rangesList, supi_rangesItem); |
231 | 271 | } |
232 | 393 | } |
233 | | |
234 | 4.09k | gpsi_ranges = cJSON_GetObjectItemCaseSensitive(udr_infoJSON, "gpsiRanges"); |
235 | 4.09k | if (gpsi_ranges) { |
236 | 708 | cJSON *gpsi_ranges_local = NULL; |
237 | 708 | if (!cJSON_IsArray(gpsi_ranges)) { |
238 | 297 | ogs_error("OpenAPI_udr_info_parseFromJSON() failed [gpsi_ranges]"); |
239 | 297 | goto end; |
240 | 297 | } |
241 | | |
242 | 411 | gpsi_rangesList = OpenAPI_list_create(); |
243 | | |
244 | 446 | cJSON_ArrayForEach(gpsi_ranges_local, gpsi_ranges) { |
245 | 446 | if (!cJSON_IsObject(gpsi_ranges_local)) { |
246 | 215 | ogs_error("OpenAPI_udr_info_parseFromJSON() failed [gpsi_ranges]"); |
247 | 215 | goto end; |
248 | 215 | } |
249 | 231 | OpenAPI_identity_range_t *gpsi_rangesItem = OpenAPI_identity_range_parseFromJSON(gpsi_ranges_local); |
250 | 231 | if (!gpsi_rangesItem) { |
251 | 66 | ogs_error("No gpsi_rangesItem"); |
252 | 66 | goto end; |
253 | 66 | } |
254 | 165 | OpenAPI_list_add(gpsi_rangesList, gpsi_rangesItem); |
255 | 165 | } |
256 | 411 | } |
257 | | |
258 | 3.51k | external_group_identifiers_ranges = cJSON_GetObjectItemCaseSensitive(udr_infoJSON, "externalGroupIdentifiersRanges"); |
259 | 3.51k | if (external_group_identifiers_ranges) { |
260 | 206 | cJSON *external_group_identifiers_ranges_local = NULL; |
261 | 206 | if (!cJSON_IsArray(external_group_identifiers_ranges)) { |
262 | 102 | ogs_error("OpenAPI_udr_info_parseFromJSON() failed [external_group_identifiers_ranges]"); |
263 | 102 | goto end; |
264 | 102 | } |
265 | | |
266 | 104 | external_group_identifiers_rangesList = OpenAPI_list_create(); |
267 | | |
268 | 104 | cJSON_ArrayForEach(external_group_identifiers_ranges_local, external_group_identifiers_ranges) { |
269 | 38 | if (!cJSON_IsObject(external_group_identifiers_ranges_local)) { |
270 | 27 | ogs_error("OpenAPI_udr_info_parseFromJSON() failed [external_group_identifiers_ranges]"); |
271 | 27 | goto end; |
272 | 27 | } |
273 | 11 | OpenAPI_identity_range_t *external_group_identifiers_rangesItem = OpenAPI_identity_range_parseFromJSON(external_group_identifiers_ranges_local); |
274 | 11 | if (!external_group_identifiers_rangesItem) { |
275 | 0 | ogs_error("No external_group_identifiers_rangesItem"); |
276 | 0 | goto end; |
277 | 0 | } |
278 | 11 | OpenAPI_list_add(external_group_identifiers_rangesList, external_group_identifiers_rangesItem); |
279 | 11 | } |
280 | 104 | } |
281 | | |
282 | 3.38k | supported_data_sets = cJSON_GetObjectItemCaseSensitive(udr_infoJSON, "supportedDataSets"); |
283 | 3.38k | if (supported_data_sets) { |
284 | 35 | cJSON *supported_data_sets_local = NULL; |
285 | 35 | if (!cJSON_IsArray(supported_data_sets)) { |
286 | 35 | ogs_error("OpenAPI_udr_info_parseFromJSON() failed [supported_data_sets]"); |
287 | 35 | goto end; |
288 | 35 | } |
289 | | |
290 | 0 | supported_data_setsList = OpenAPI_list_create(); |
291 | |
|
292 | 0 | cJSON_ArrayForEach(supported_data_sets_local, supported_data_sets) { |
293 | 0 | OpenAPI_data_set_id_e localEnum = OpenAPI_data_set_id_NULL; |
294 | 0 | if (!cJSON_IsString(supported_data_sets_local)) { |
295 | 0 | ogs_error("OpenAPI_udr_info_parseFromJSON() failed [supported_data_sets]"); |
296 | 0 | goto end; |
297 | 0 | } |
298 | 0 | localEnum = OpenAPI_data_set_id_FromString(supported_data_sets_local->valuestring); |
299 | 0 | if (!localEnum) { |
300 | 0 | ogs_info("Enum value \"%s\" for field \"supported_data_sets\" is not supported. Ignoring it ...", |
301 | 0 | supported_data_sets_local->valuestring); |
302 | 0 | } else { |
303 | 0 | OpenAPI_list_add(supported_data_setsList, (void *)localEnum); |
304 | 0 | } |
305 | 0 | } |
306 | 0 | if (supported_data_setsList->count == 0) { |
307 | 0 | ogs_error("OpenAPI_udr_info_parseFromJSON() failed: Expected supported_data_setsList to not be empty (after ignoring unsupported enum values)."); |
308 | 0 | goto end; |
309 | 0 | } |
310 | 0 | } |
311 | | |
312 | 3.35k | shared_data_id_ranges = cJSON_GetObjectItemCaseSensitive(udr_infoJSON, "sharedDataIdRanges"); |
313 | 3.35k | if (shared_data_id_ranges) { |
314 | 107 | cJSON *shared_data_id_ranges_local = NULL; |
315 | 107 | if (!cJSON_IsArray(shared_data_id_ranges)) { |
316 | 3 | ogs_error("OpenAPI_udr_info_parseFromJSON() failed [shared_data_id_ranges]"); |
317 | 3 | goto end; |
318 | 3 | } |
319 | | |
320 | 104 | shared_data_id_rangesList = OpenAPI_list_create(); |
321 | | |
322 | 104 | cJSON_ArrayForEach(shared_data_id_ranges_local, shared_data_id_ranges) { |
323 | 74 | if (!cJSON_IsObject(shared_data_id_ranges_local)) { |
324 | 37 | ogs_error("OpenAPI_udr_info_parseFromJSON() failed [shared_data_id_ranges]"); |
325 | 37 | goto end; |
326 | 37 | } |
327 | 37 | OpenAPI_shared_data_id_range_t *shared_data_id_rangesItem = OpenAPI_shared_data_id_range_parseFromJSON(shared_data_id_ranges_local); |
328 | 37 | if (!shared_data_id_rangesItem) { |
329 | 0 | ogs_error("No shared_data_id_rangesItem"); |
330 | 0 | goto end; |
331 | 0 | } |
332 | 37 | OpenAPI_list_add(shared_data_id_rangesList, shared_data_id_rangesItem); |
333 | 37 | } |
334 | 104 | } |
335 | | |
336 | 3.31k | any_ue_ind = cJSON_GetObjectItemCaseSensitive(udr_infoJSON, "anyUeInd"); |
337 | 3.31k | if (any_ue_ind) { |
338 | 72 | if (!cJSON_IsBool(any_ue_ind)) { |
339 | 72 | ogs_error("OpenAPI_udr_info_parseFromJSON() failed [any_ue_ind]"); |
340 | 72 | goto end; |
341 | 72 | } |
342 | 72 | } |
343 | | |
344 | 3.24k | udr_info_local_var = OpenAPI_udr_info_create ( |
345 | 3.24k | group_id && !cJSON_IsNull(group_id) ? ogs_strdup(group_id->valuestring) : NULL, |
346 | 3.24k | supi_ranges ? supi_rangesList : NULL, |
347 | 3.24k | gpsi_ranges ? gpsi_rangesList : NULL, |
348 | 3.24k | external_group_identifiers_ranges ? external_group_identifiers_rangesList : NULL, |
349 | 3.24k | supported_data_sets ? supported_data_setsList : NULL, |
350 | 3.24k | shared_data_id_ranges ? shared_data_id_rangesList : NULL, |
351 | 3.24k | any_ue_ind ? true : false, |
352 | 3.24k | any_ue_ind ? any_ue_ind->valueint : 0 |
353 | 3.24k | ); |
354 | | |
355 | 3.24k | return udr_info_local_var; |
356 | 1.58k | end: |
357 | 1.58k | if (supi_rangesList) { |
358 | 240 | OpenAPI_list_for_each(supi_rangesList, node) { |
359 | 189 | OpenAPI_supi_range_free(node->data); |
360 | 189 | } |
361 | 240 | OpenAPI_list_free(supi_rangesList); |
362 | 240 | supi_rangesList = NULL; |
363 | 240 | } |
364 | 1.58k | if (gpsi_rangesList) { |
365 | 281 | OpenAPI_list_for_each(gpsi_rangesList, node) { |
366 | 142 | OpenAPI_identity_range_free(node->data); |
367 | 142 | } |
368 | 281 | OpenAPI_list_free(gpsi_rangesList); |
369 | 281 | gpsi_rangesList = NULL; |
370 | 281 | } |
371 | 1.58k | if (external_group_identifiers_rangesList) { |
372 | 27 | OpenAPI_list_for_each(external_group_identifiers_rangesList, node) { |
373 | 1 | OpenAPI_identity_range_free(node->data); |
374 | 1 | } |
375 | 27 | OpenAPI_list_free(external_group_identifiers_rangesList); |
376 | 27 | external_group_identifiers_rangesList = NULL; |
377 | 27 | } |
378 | 1.58k | if (supported_data_setsList) { |
379 | 0 | OpenAPI_list_free(supported_data_setsList); |
380 | 0 | supported_data_setsList = NULL; |
381 | 0 | } |
382 | 1.58k | if (shared_data_id_rangesList) { |
383 | 37 | OpenAPI_list_for_each(shared_data_id_rangesList, node) { |
384 | 37 | OpenAPI_shared_data_id_range_free(node->data); |
385 | 37 | } |
386 | 37 | OpenAPI_list_free(shared_data_id_rangesList); |
387 | 37 | shared_data_id_rangesList = NULL; |
388 | 37 | } |
389 | 1.58k | return NULL; |
390 | 3.31k | } |
391 | | |
392 | | OpenAPI_udr_info_t *OpenAPI_udr_info_copy(OpenAPI_udr_info_t *dst, OpenAPI_udr_info_t *src) |
393 | 0 | { |
394 | 0 | cJSON *item = NULL; |
395 | 0 | char *content = NULL; |
396 | |
|
397 | 0 | ogs_assert(src); |
398 | 0 | item = OpenAPI_udr_info_convertToJSON(src); |
399 | 0 | if (!item) { |
400 | 0 | ogs_error("OpenAPI_udr_info_convertToJSON() failed"); |
401 | 0 | return NULL; |
402 | 0 | } |
403 | | |
404 | 0 | content = cJSON_Print(item); |
405 | 0 | cJSON_Delete(item); |
406 | |
|
407 | 0 | if (!content) { |
408 | 0 | ogs_error("cJSON_Print() failed"); |
409 | 0 | return NULL; |
410 | 0 | } |
411 | | |
412 | 0 | item = cJSON_Parse(content); |
413 | 0 | ogs_free(content); |
414 | 0 | if (!item) { |
415 | 0 | ogs_error("cJSON_Parse() failed"); |
416 | 0 | return NULL; |
417 | 0 | } |
418 | | |
419 | 0 | OpenAPI_udr_info_free(dst); |
420 | 0 | dst = OpenAPI_udr_info_parseFromJSON(item); |
421 | 0 | cJSON_Delete(item); |
422 | |
|
423 | 0 | return dst; |
424 | 0 | } |
425 | | |