Coverage Report

Created: 2026-11-06 06:15

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/open5gs/lib/sbi/openapi/model/status_notification.c
Line
Count
Source
1
2
#include <stdlib.h>
3
#include <string.h>
4
#include <stdio.h>
5
#include "status_notification.h"
6
7
OpenAPI_status_notification_t *OpenAPI_status_notification_create(
8
    OpenAPI_status_info_t *status_info,
9
    OpenAPI_small_data_rate_status_t *small_data_rate_status,
10
    OpenAPI_apn_rate_status_t *apn_rate_status,
11
    OpenAPI_target_dnai_info_t *target_dnai_info,
12
    char *old_pdu_session_ref,
13
    char *new_smf_id,
14
    OpenAPI_eps_pdn_cnx_info_t *eps_pdn_cnx_info,
15
    char *inter_plmn_api_root,
16
    char *intra_plmn_api_root
17
)
18
5
{
19
5
    OpenAPI_status_notification_t *status_notification_local_var = ogs_malloc(sizeof(OpenAPI_status_notification_t));
20
5
    ogs_assert(status_notification_local_var);
21
22
5
    status_notification_local_var->status_info = status_info;
23
5
    status_notification_local_var->small_data_rate_status = small_data_rate_status;
24
5
    status_notification_local_var->apn_rate_status = apn_rate_status;
25
5
    status_notification_local_var->target_dnai_info = target_dnai_info;
26
5
    status_notification_local_var->old_pdu_session_ref = old_pdu_session_ref;
27
5
    status_notification_local_var->new_smf_id = new_smf_id;
28
5
    status_notification_local_var->eps_pdn_cnx_info = eps_pdn_cnx_info;
29
5
    status_notification_local_var->inter_plmn_api_root = inter_plmn_api_root;
30
5
    status_notification_local_var->intra_plmn_api_root = intra_plmn_api_root;
31
32
5
    return status_notification_local_var;
33
5
}
34
35
void OpenAPI_status_notification_free(OpenAPI_status_notification_t *status_notification)
36
5
{
37
5
    OpenAPI_lnode_t *node = NULL;
38
39
5
    if (NULL == status_notification) {
40
0
        return;
41
0
    }
42
5
    if (status_notification->status_info) {
43
5
        OpenAPI_status_info_free(status_notification->status_info);
44
5
        status_notification->status_info = NULL;
45
5
    }
46
5
    if (status_notification->small_data_rate_status) {
47
1
        OpenAPI_small_data_rate_status_free(status_notification->small_data_rate_status);
48
1
        status_notification->small_data_rate_status = NULL;
49
1
    }
50
5
    if (status_notification->apn_rate_status) {
51
1
        OpenAPI_apn_rate_status_free(status_notification->apn_rate_status);
52
1
        status_notification->apn_rate_status = NULL;
53
1
    }
54
5
    if (status_notification->target_dnai_info) {
55
0
        OpenAPI_target_dnai_info_free(status_notification->target_dnai_info);
56
0
        status_notification->target_dnai_info = NULL;
57
0
    }
58
5
    if (status_notification->old_pdu_session_ref) {
59
1
        ogs_free(status_notification->old_pdu_session_ref);
60
1
        status_notification->old_pdu_session_ref = NULL;
61
1
    }
62
5
    if (status_notification->new_smf_id) {
63
0
        ogs_free(status_notification->new_smf_id);
64
0
        status_notification->new_smf_id = NULL;
65
0
    }
66
5
    if (status_notification->eps_pdn_cnx_info) {
67
0
        OpenAPI_eps_pdn_cnx_info_free(status_notification->eps_pdn_cnx_info);
68
0
        status_notification->eps_pdn_cnx_info = NULL;
69
0
    }
70
5
    if (status_notification->inter_plmn_api_root) {
71
0
        ogs_free(status_notification->inter_plmn_api_root);
72
0
        status_notification->inter_plmn_api_root = NULL;
73
0
    }
74
5
    if (status_notification->intra_plmn_api_root) {
75
0
        ogs_free(status_notification->intra_plmn_api_root);
76
0
        status_notification->intra_plmn_api_root = NULL;
77
0
    }
78
5
    ogs_free(status_notification);
79
5
}
80
81
cJSON *OpenAPI_status_notification_convertToJSON(OpenAPI_status_notification_t *status_notification)
82
0
{
83
0
    cJSON *item = NULL;
84
0
    OpenAPI_lnode_t *node = NULL;
85
86
0
    if (status_notification == NULL) {
87
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [StatusNotification]");
88
0
        return NULL;
89
0
    }
90
91
0
    item = cJSON_CreateObject();
92
0
    if (!status_notification->status_info) {
93
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [status_info]");
94
0
        return NULL;
95
0
    }
96
0
    cJSON *status_info_local_JSON = OpenAPI_status_info_convertToJSON(status_notification->status_info);
97
0
    if (status_info_local_JSON == NULL) {
98
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [status_info]");
99
0
        goto end;
100
0
    }
101
0
    cJSON_AddItemToObject(item, "statusInfo", status_info_local_JSON);
102
0
    if (item->child == NULL) {
103
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [status_info]");
104
0
        goto end;
105
0
    }
106
107
0
    if (status_notification->small_data_rate_status) {
108
0
    cJSON *small_data_rate_status_local_JSON = OpenAPI_small_data_rate_status_convertToJSON(status_notification->small_data_rate_status);
109
0
    if (small_data_rate_status_local_JSON == NULL) {
110
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [small_data_rate_status]");
111
0
        goto end;
112
0
    }
113
0
    cJSON_AddItemToObject(item, "smallDataRateStatus", small_data_rate_status_local_JSON);
114
0
    if (item->child == NULL) {
115
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [small_data_rate_status]");
116
0
        goto end;
117
0
    }
118
0
    }
119
120
0
    if (status_notification->apn_rate_status) {
121
0
    cJSON *apn_rate_status_local_JSON = OpenAPI_apn_rate_status_convertToJSON(status_notification->apn_rate_status);
122
0
    if (apn_rate_status_local_JSON == NULL) {
123
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [apn_rate_status]");
124
0
        goto end;
125
0
    }
126
0
    cJSON_AddItemToObject(item, "apnRateStatus", apn_rate_status_local_JSON);
127
0
    if (item->child == NULL) {
128
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [apn_rate_status]");
129
0
        goto end;
130
0
    }
131
0
    }
132
133
0
    if (status_notification->target_dnai_info) {
134
0
    cJSON *target_dnai_info_local_JSON = OpenAPI_target_dnai_info_convertToJSON(status_notification->target_dnai_info);
135
0
    if (target_dnai_info_local_JSON == NULL) {
136
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [target_dnai_info]");
137
0
        goto end;
138
0
    }
139
0
    cJSON_AddItemToObject(item, "targetDnaiInfo", target_dnai_info_local_JSON);
140
0
    if (item->child == NULL) {
141
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [target_dnai_info]");
142
0
        goto end;
143
0
    }
144
0
    }
145
146
0
    if (status_notification->old_pdu_session_ref) {
147
0
    if (cJSON_AddStringToObject(item, "oldPduSessionRef", status_notification->old_pdu_session_ref) == NULL) {
148
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [old_pdu_session_ref]");
149
0
        goto end;
150
0
    }
151
0
    }
152
153
0
    if (status_notification->new_smf_id) {
154
0
    if (cJSON_AddStringToObject(item, "newSmfId", status_notification->new_smf_id) == NULL) {
155
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [new_smf_id]");
156
0
        goto end;
157
0
    }
158
0
    }
159
160
0
    if (status_notification->eps_pdn_cnx_info) {
161
0
    cJSON *eps_pdn_cnx_info_local_JSON = OpenAPI_eps_pdn_cnx_info_convertToJSON(status_notification->eps_pdn_cnx_info);
162
0
    if (eps_pdn_cnx_info_local_JSON == NULL) {
163
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [eps_pdn_cnx_info]");
164
0
        goto end;
165
0
    }
166
0
    cJSON_AddItemToObject(item, "epsPdnCnxInfo", eps_pdn_cnx_info_local_JSON);
167
0
    if (item->child == NULL) {
168
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [eps_pdn_cnx_info]");
169
0
        goto end;
170
0
    }
171
0
    }
172
173
0
    if (status_notification->inter_plmn_api_root) {
174
0
    if (cJSON_AddStringToObject(item, "interPlmnApiRoot", status_notification->inter_plmn_api_root) == NULL) {
175
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [inter_plmn_api_root]");
176
0
        goto end;
177
0
    }
178
0
    }
179
180
0
    if (status_notification->intra_plmn_api_root) {
181
0
    if (cJSON_AddStringToObject(item, "intraPlmnApiRoot", status_notification->intra_plmn_api_root) == NULL) {
182
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed [intra_plmn_api_root]");
183
0
        goto end;
184
0
    }
185
0
    }
186
187
0
end:
188
0
    return item;
189
0
}
190
191
OpenAPI_status_notification_t *OpenAPI_status_notification_parseFromJSON(cJSON *status_notificationJSON)
192
86
{
193
86
    OpenAPI_status_notification_t *status_notification_local_var = NULL;
194
86
    OpenAPI_lnode_t *node = NULL;
195
86
    cJSON *status_info = NULL;
196
86
    OpenAPI_status_info_t *status_info_local_nonprim = NULL;
197
86
    cJSON *small_data_rate_status = NULL;
198
86
    OpenAPI_small_data_rate_status_t *small_data_rate_status_local_nonprim = NULL;
199
86
    cJSON *apn_rate_status = NULL;
200
86
    OpenAPI_apn_rate_status_t *apn_rate_status_local_nonprim = NULL;
201
86
    cJSON *target_dnai_info = NULL;
202
86
    OpenAPI_target_dnai_info_t *target_dnai_info_local_nonprim = NULL;
203
86
    cJSON *old_pdu_session_ref = NULL;
204
86
    cJSON *new_smf_id = NULL;
205
86
    cJSON *eps_pdn_cnx_info = NULL;
206
86
    OpenAPI_eps_pdn_cnx_info_t *eps_pdn_cnx_info_local_nonprim = NULL;
207
86
    cJSON *inter_plmn_api_root = NULL;
208
86
    cJSON *intra_plmn_api_root = NULL;
209
86
    status_info = cJSON_GetObjectItemCaseSensitive(status_notificationJSON, "statusInfo");
210
86
    if (!status_info) {
211
57
        ogs_error("OpenAPI_status_notification_parseFromJSON() failed [status_info]");
212
57
        goto end;
213
57
    }
214
29
    status_info_local_nonprim = OpenAPI_status_info_parseFromJSON(status_info);
215
29
    if (!status_info_local_nonprim) {
216
19
        ogs_error("OpenAPI_status_info_parseFromJSON failed [status_info]");
217
19
        goto end;
218
19
    }
219
220
10
    small_data_rate_status = cJSON_GetObjectItemCaseSensitive(status_notificationJSON, "smallDataRateStatus");
221
10
    if (small_data_rate_status) {
222
2
    small_data_rate_status_local_nonprim = OpenAPI_small_data_rate_status_parseFromJSON(small_data_rate_status);
223
2
    if (!small_data_rate_status_local_nonprim) {
224
0
        ogs_error("OpenAPI_small_data_rate_status_parseFromJSON failed [small_data_rate_status]");
225
0
        goto end;
226
0
    }
227
2
    }
228
229
10
    apn_rate_status = cJSON_GetObjectItemCaseSensitive(status_notificationJSON, "apnRateStatus");
230
10
    if (apn_rate_status) {
231
3
    apn_rate_status_local_nonprim = OpenAPI_apn_rate_status_parseFromJSON(apn_rate_status);
232
3
    if (!apn_rate_status_local_nonprim) {
233
1
        ogs_error("OpenAPI_apn_rate_status_parseFromJSON failed [apn_rate_status]");
234
1
        goto end;
235
1
    }
236
3
    }
237
238
9
    target_dnai_info = cJSON_GetObjectItemCaseSensitive(status_notificationJSON, "targetDnaiInfo");
239
9
    if (target_dnai_info) {
240
0
    target_dnai_info_local_nonprim = OpenAPI_target_dnai_info_parseFromJSON(target_dnai_info);
241
0
    if (!target_dnai_info_local_nonprim) {
242
0
        ogs_error("OpenAPI_target_dnai_info_parseFromJSON failed [target_dnai_info]");
243
0
        goto end;
244
0
    }
245
0
    }
246
247
9
    old_pdu_session_ref = cJSON_GetObjectItemCaseSensitive(status_notificationJSON, "oldPduSessionRef");
248
9
    if (old_pdu_session_ref) {
249
3
    if (!cJSON_IsString(old_pdu_session_ref) && !cJSON_IsNull(old_pdu_session_ref)) {
250
1
        ogs_error("OpenAPI_status_notification_parseFromJSON() failed [old_pdu_session_ref]");
251
1
        goto end;
252
1
    }
253
3
    }
254
255
8
    new_smf_id = cJSON_GetObjectItemCaseSensitive(status_notificationJSON, "newSmfId");
256
8
    if (new_smf_id) {
257
1
    if (!cJSON_IsString(new_smf_id) && !cJSON_IsNull(new_smf_id)) {
258
1
        ogs_error("OpenAPI_status_notification_parseFromJSON() failed [new_smf_id]");
259
1
        goto end;
260
1
    }
261
1
    }
262
263
7
    eps_pdn_cnx_info = cJSON_GetObjectItemCaseSensitive(status_notificationJSON, "epsPdnCnxInfo");
264
7
    if (eps_pdn_cnx_info) {
265
1
    eps_pdn_cnx_info_local_nonprim = OpenAPI_eps_pdn_cnx_info_parseFromJSON(eps_pdn_cnx_info);
266
1
    if (!eps_pdn_cnx_info_local_nonprim) {
267
1
        ogs_error("OpenAPI_eps_pdn_cnx_info_parseFromJSON failed [eps_pdn_cnx_info]");
268
1
        goto end;
269
1
    }
270
1
    }
271
272
6
    inter_plmn_api_root = cJSON_GetObjectItemCaseSensitive(status_notificationJSON, "interPlmnApiRoot");
273
6
    if (inter_plmn_api_root) {
274
1
    if (!cJSON_IsString(inter_plmn_api_root) && !cJSON_IsNull(inter_plmn_api_root)) {
275
1
        ogs_error("OpenAPI_status_notification_parseFromJSON() failed [inter_plmn_api_root]");
276
1
        goto end;
277
1
    }
278
1
    }
279
280
5
    intra_plmn_api_root = cJSON_GetObjectItemCaseSensitive(status_notificationJSON, "intraPlmnApiRoot");
281
5
    if (intra_plmn_api_root) {
282
0
    if (!cJSON_IsString(intra_plmn_api_root) && !cJSON_IsNull(intra_plmn_api_root)) {
283
0
        ogs_error("OpenAPI_status_notification_parseFromJSON() failed [intra_plmn_api_root]");
284
0
        goto end;
285
0
    }
286
0
    }
287
288
5
    status_notification_local_var = OpenAPI_status_notification_create (
289
5
        status_info_local_nonprim,
290
5
        small_data_rate_status ? small_data_rate_status_local_nonprim : NULL,
291
5
        apn_rate_status ? apn_rate_status_local_nonprim : NULL,
292
5
        target_dnai_info ? target_dnai_info_local_nonprim : NULL,
293
5
        old_pdu_session_ref && !cJSON_IsNull(old_pdu_session_ref) ? ogs_strdup(old_pdu_session_ref->valuestring) : NULL,
294
5
        new_smf_id && !cJSON_IsNull(new_smf_id) ? ogs_strdup(new_smf_id->valuestring) : NULL,
295
5
        eps_pdn_cnx_info ? eps_pdn_cnx_info_local_nonprim : NULL,
296
5
        inter_plmn_api_root && !cJSON_IsNull(inter_plmn_api_root) ? ogs_strdup(inter_plmn_api_root->valuestring) : NULL,
297
5
        intra_plmn_api_root && !cJSON_IsNull(intra_plmn_api_root) ? ogs_strdup(intra_plmn_api_root->valuestring) : NULL
298
5
    );
299
300
5
    return status_notification_local_var;
301
81
end:
302
81
    if (status_info_local_nonprim) {
303
5
        OpenAPI_status_info_free(status_info_local_nonprim);
304
5
        status_info_local_nonprim = NULL;
305
5
    }
306
81
    if (small_data_rate_status_local_nonprim) {
307
1
        OpenAPI_small_data_rate_status_free(small_data_rate_status_local_nonprim);
308
1
        small_data_rate_status_local_nonprim = NULL;
309
1
    }
310
81
    if (apn_rate_status_local_nonprim) {
311
1
        OpenAPI_apn_rate_status_free(apn_rate_status_local_nonprim);
312
1
        apn_rate_status_local_nonprim = NULL;
313
1
    }
314
81
    if (target_dnai_info_local_nonprim) {
315
0
        OpenAPI_target_dnai_info_free(target_dnai_info_local_nonprim);
316
0
        target_dnai_info_local_nonprim = NULL;
317
0
    }
318
81
    if (eps_pdn_cnx_info_local_nonprim) {
319
0
        OpenAPI_eps_pdn_cnx_info_free(eps_pdn_cnx_info_local_nonprim);
320
0
        eps_pdn_cnx_info_local_nonprim = NULL;
321
0
    }
322
81
    return NULL;
323
5
}
324
325
OpenAPI_status_notification_t *OpenAPI_status_notification_copy(OpenAPI_status_notification_t *dst, OpenAPI_status_notification_t *src)
326
0
{
327
0
    cJSON *item = NULL;
328
0
    char *content = NULL;
329
330
0
    ogs_assert(src);
331
0
    item = OpenAPI_status_notification_convertToJSON(src);
332
0
    if (!item) {
333
0
        ogs_error("OpenAPI_status_notification_convertToJSON() failed");
334
0
        return NULL;
335
0
    }
336
337
0
    content = cJSON_Print(item);
338
0
    cJSON_Delete(item);
339
340
0
    if (!content) {
341
0
        ogs_error("cJSON_Print() failed");
342
0
        return NULL;
343
0
    }
344
345
0
    item = cJSON_Parse(content);
346
0
    ogs_free(content);
347
0
    if (!item) {
348
0
        ogs_error("cJSON_Parse() failed");
349
0
        return NULL;
350
0
    }
351
352
0
    OpenAPI_status_notification_free(dst);
353
0
    dst = OpenAPI_status_notification_parseFromJSON(item);
354
0
    cJSON_Delete(item);
355
356
0
    return dst;
357
0
}
358