Coverage Report

Created: 2026-09-27 06:19

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/open5gs/lib/sbi/openapi/model/session_rule.c
Line
Count
Source
1
2
#include <stdlib.h>
3
#include <string.h>
4
#include <stdio.h>
5
#include "session_rule.h"
6
7
OpenAPI_session_rule_t *OpenAPI_session_rule_create(
8
    OpenAPI_ambr_t *auth_sess_ambr,
9
    OpenAPI_authorized_default_qos_t *auth_def_qos,
10
    char *sess_rule_id,
11
    bool is_ref_um_data_null,
12
    char *ref_um_data,
13
    bool is_ref_um_n3g_data_null,
14
    char *ref_um_n3g_data,
15
    bool is_ref_cond_data_null,
16
    char *ref_cond_data
17
)
18
0
{
19
0
    OpenAPI_session_rule_t *session_rule_local_var = ogs_malloc(sizeof(OpenAPI_session_rule_t));
20
0
    ogs_assert(session_rule_local_var);
21
22
0
    session_rule_local_var->auth_sess_ambr = auth_sess_ambr;
23
0
    session_rule_local_var->auth_def_qos = auth_def_qos;
24
0
    session_rule_local_var->sess_rule_id = sess_rule_id;
25
0
    session_rule_local_var->is_ref_um_data_null = is_ref_um_data_null;
26
0
    session_rule_local_var->ref_um_data = ref_um_data;
27
0
    session_rule_local_var->is_ref_um_n3g_data_null = is_ref_um_n3g_data_null;
28
0
    session_rule_local_var->ref_um_n3g_data = ref_um_n3g_data;
29
0
    session_rule_local_var->is_ref_cond_data_null = is_ref_cond_data_null;
30
0
    session_rule_local_var->ref_cond_data = ref_cond_data;
31
32
0
    return session_rule_local_var;
33
0
}
34
35
void OpenAPI_session_rule_free(OpenAPI_session_rule_t *session_rule)
36
0
{
37
0
    OpenAPI_lnode_t *node = NULL;
38
39
0
    if (NULL == session_rule) {
40
0
        return;
41
0
    }
42
0
    if (session_rule->auth_sess_ambr) {
43
0
        OpenAPI_ambr_free(session_rule->auth_sess_ambr);
44
0
        session_rule->auth_sess_ambr = NULL;
45
0
    }
46
0
    if (session_rule->auth_def_qos) {
47
0
        OpenAPI_authorized_default_qos_free(session_rule->auth_def_qos);
48
0
        session_rule->auth_def_qos = NULL;
49
0
    }
50
0
    if (session_rule->sess_rule_id) {
51
0
        ogs_free(session_rule->sess_rule_id);
52
0
        session_rule->sess_rule_id = NULL;
53
0
    }
54
0
    if (session_rule->ref_um_data) {
55
0
        ogs_free(session_rule->ref_um_data);
56
0
        session_rule->ref_um_data = NULL;
57
0
    }
58
0
    if (session_rule->ref_um_n3g_data) {
59
0
        ogs_free(session_rule->ref_um_n3g_data);
60
0
        session_rule->ref_um_n3g_data = NULL;
61
0
    }
62
0
    if (session_rule->ref_cond_data) {
63
0
        ogs_free(session_rule->ref_cond_data);
64
0
        session_rule->ref_cond_data = NULL;
65
0
    }
66
0
    ogs_free(session_rule);
67
0
}
68
69
cJSON *OpenAPI_session_rule_convertToJSON(OpenAPI_session_rule_t *session_rule)
70
0
{
71
0
    cJSON *item = NULL;
72
0
    OpenAPI_lnode_t *node = NULL;
73
74
0
    if (session_rule == NULL) {
75
0
        ogs_error("OpenAPI_session_rule_convertToJSON() failed [SessionRule]");
76
0
        return NULL;
77
0
    }
78
79
0
    item = cJSON_CreateObject();
80
0
    if (session_rule->auth_sess_ambr) {
81
0
    cJSON *auth_sess_ambr_local_JSON = OpenAPI_ambr_convertToJSON(session_rule->auth_sess_ambr);
82
0
    if (auth_sess_ambr_local_JSON == NULL) {
83
0
        ogs_error("OpenAPI_session_rule_convertToJSON() failed [auth_sess_ambr]");
84
0
        goto end;
85
0
    }
86
0
    cJSON_AddItemToObject(item, "authSessAmbr", auth_sess_ambr_local_JSON);
87
0
    if (item->child == NULL) {
88
0
        ogs_error("OpenAPI_session_rule_convertToJSON() failed [auth_sess_ambr]");
89
0
        goto end;
90
0
    }
91
0
    }
92
93
0
    if (session_rule->auth_def_qos) {
94
0
    cJSON *auth_def_qos_local_JSON = OpenAPI_authorized_default_qos_convertToJSON(session_rule->auth_def_qos);
95
0
    if (auth_def_qos_local_JSON == NULL) {
96
0
        ogs_error("OpenAPI_session_rule_convertToJSON() failed [auth_def_qos]");
97
0
        goto end;
98
0
    }
99
0
    cJSON_AddItemToObject(item, "authDefQos", auth_def_qos_local_JSON);
100
0
    if (item->child == NULL) {
101
0
        ogs_error("OpenAPI_session_rule_convertToJSON() failed [auth_def_qos]");
102
0
        goto end;
103
0
    }
104
0
    }
105
106
0
    if (!session_rule->sess_rule_id) {
107
0
        ogs_error("OpenAPI_session_rule_convertToJSON() failed [sess_rule_id]");
108
0
        return NULL;
109
0
    }
110
0
    if (cJSON_AddStringToObject(item, "sessRuleId", session_rule->sess_rule_id) == NULL) {
111
0
        ogs_error("OpenAPI_session_rule_convertToJSON() failed [sess_rule_id]");
112
0
        goto end;
113
0
    }
114
115
0
    if (session_rule->ref_um_data) {
116
0
    if (cJSON_AddStringToObject(item, "refUmData", session_rule->ref_um_data) == NULL) {
117
0
        ogs_error("OpenAPI_session_rule_convertToJSON() failed [ref_um_data]");
118
0
        goto end;
119
0
    }
120
0
    } else if (session_rule->is_ref_um_data_null) {
121
0
        if (cJSON_AddNullToObject(item, "refUmData") == NULL) {
122
0
            ogs_error("OpenAPI_session_rule_convertToJSON() failed [ref_um_data]");
123
0
            goto end;
124
0
        }
125
0
    }
126
127
0
    if (session_rule->ref_um_n3g_data) {
128
0
    if (cJSON_AddStringToObject(item, "refUmN3gData", session_rule->ref_um_n3g_data) == NULL) {
129
0
        ogs_error("OpenAPI_session_rule_convertToJSON() failed [ref_um_n3g_data]");
130
0
        goto end;
131
0
    }
132
0
    } else if (session_rule->is_ref_um_n3g_data_null) {
133
0
        if (cJSON_AddNullToObject(item, "refUmN3gData") == NULL) {
134
0
            ogs_error("OpenAPI_session_rule_convertToJSON() failed [ref_um_n3g_data]");
135
0
            goto end;
136
0
        }
137
0
    }
138
139
0
    if (session_rule->ref_cond_data) {
140
0
    if (cJSON_AddStringToObject(item, "refCondData", session_rule->ref_cond_data) == NULL) {
141
0
        ogs_error("OpenAPI_session_rule_convertToJSON() failed [ref_cond_data]");
142
0
        goto end;
143
0
    }
144
0
    } else if (session_rule->is_ref_cond_data_null) {
145
0
        if (cJSON_AddNullToObject(item, "refCondData") == NULL) {
146
0
            ogs_error("OpenAPI_session_rule_convertToJSON() failed [ref_cond_data]");
147
0
            goto end;
148
0
        }
149
0
    }
150
151
0
end:
152
0
    return item;
153
0
}
154
155
OpenAPI_session_rule_t *OpenAPI_session_rule_parseFromJSON(cJSON *session_ruleJSON)
156
0
{
157
0
    OpenAPI_session_rule_t *session_rule_local_var = NULL;
158
0
    OpenAPI_lnode_t *node = NULL;
159
0
    cJSON *auth_sess_ambr = NULL;
160
0
    OpenAPI_ambr_t *auth_sess_ambr_local_nonprim = NULL;
161
0
    cJSON *auth_def_qos = NULL;
162
0
    OpenAPI_authorized_default_qos_t *auth_def_qos_local_nonprim = NULL;
163
0
    cJSON *sess_rule_id = NULL;
164
0
    cJSON *ref_um_data = NULL;
165
0
    cJSON *ref_um_n3g_data = NULL;
166
0
    cJSON *ref_cond_data = NULL;
167
0
    auth_sess_ambr = cJSON_GetObjectItemCaseSensitive(session_ruleJSON, "authSessAmbr");
168
0
    if (auth_sess_ambr) {
169
0
    auth_sess_ambr_local_nonprim = OpenAPI_ambr_parseFromJSON(auth_sess_ambr);
170
0
    if (!auth_sess_ambr_local_nonprim) {
171
0
        ogs_error("OpenAPI_ambr_parseFromJSON failed [auth_sess_ambr]");
172
0
        goto end;
173
0
    }
174
0
    }
175
176
0
    auth_def_qos = cJSON_GetObjectItemCaseSensitive(session_ruleJSON, "authDefQos");
177
0
    if (auth_def_qos) {
178
0
    auth_def_qos_local_nonprim = OpenAPI_authorized_default_qos_parseFromJSON(auth_def_qos);
179
0
    if (!auth_def_qos_local_nonprim) {
180
0
        ogs_error("OpenAPI_authorized_default_qos_parseFromJSON failed [auth_def_qos]");
181
0
        goto end;
182
0
    }
183
0
    }
184
185
0
    sess_rule_id = cJSON_GetObjectItemCaseSensitive(session_ruleJSON, "sessRuleId");
186
0
    if (!sess_rule_id) {
187
0
        ogs_error("OpenAPI_session_rule_parseFromJSON() failed [sess_rule_id]");
188
0
        goto end;
189
0
    }
190
0
    if (!cJSON_IsString(sess_rule_id)) {
191
0
        ogs_error("OpenAPI_session_rule_parseFromJSON() failed [sess_rule_id]");
192
0
        goto end;
193
0
    }
194
195
0
    ref_um_data = cJSON_GetObjectItemCaseSensitive(session_ruleJSON, "refUmData");
196
0
    if (ref_um_data) {
197
0
    if (!cJSON_IsNull(ref_um_data)) {
198
0
    if (!cJSON_IsString(ref_um_data) && !cJSON_IsNull(ref_um_data)) {
199
0
        ogs_error("OpenAPI_session_rule_parseFromJSON() failed [ref_um_data]");
200
0
        goto end;
201
0
    }
202
0
    }
203
0
    }
204
205
0
    ref_um_n3g_data = cJSON_GetObjectItemCaseSensitive(session_ruleJSON, "refUmN3gData");
206
0
    if (ref_um_n3g_data) {
207
0
    if (!cJSON_IsNull(ref_um_n3g_data)) {
208
0
    if (!cJSON_IsString(ref_um_n3g_data) && !cJSON_IsNull(ref_um_n3g_data)) {
209
0
        ogs_error("OpenAPI_session_rule_parseFromJSON() failed [ref_um_n3g_data]");
210
0
        goto end;
211
0
    }
212
0
    }
213
0
    }
214
215
0
    ref_cond_data = cJSON_GetObjectItemCaseSensitive(session_ruleJSON, "refCondData");
216
0
    if (ref_cond_data) {
217
0
    if (!cJSON_IsNull(ref_cond_data)) {
218
0
    if (!cJSON_IsString(ref_cond_data) && !cJSON_IsNull(ref_cond_data)) {
219
0
        ogs_error("OpenAPI_session_rule_parseFromJSON() failed [ref_cond_data]");
220
0
        goto end;
221
0
    }
222
0
    }
223
0
    }
224
225
0
    session_rule_local_var = OpenAPI_session_rule_create (
226
0
        auth_sess_ambr ? auth_sess_ambr_local_nonprim : NULL,
227
0
        auth_def_qos ? auth_def_qos_local_nonprim : NULL,
228
0
        ogs_strdup(sess_rule_id->valuestring),
229
0
        ref_um_data && cJSON_IsNull(ref_um_data) ? true : false,
230
0
        ref_um_data && !cJSON_IsNull(ref_um_data) ? ogs_strdup(ref_um_data->valuestring) : NULL,
231
0
        ref_um_n3g_data && cJSON_IsNull(ref_um_n3g_data) ? true : false,
232
0
        ref_um_n3g_data && !cJSON_IsNull(ref_um_n3g_data) ? ogs_strdup(ref_um_n3g_data->valuestring) : NULL,
233
0
        ref_cond_data && cJSON_IsNull(ref_cond_data) ? true : false,
234
0
        ref_cond_data && !cJSON_IsNull(ref_cond_data) ? ogs_strdup(ref_cond_data->valuestring) : NULL
235
0
    );
236
237
0
    return session_rule_local_var;
238
0
end:
239
0
    if (auth_sess_ambr_local_nonprim) {
240
0
        OpenAPI_ambr_free(auth_sess_ambr_local_nonprim);
241
0
        auth_sess_ambr_local_nonprim = NULL;
242
0
    }
243
0
    if (auth_def_qos_local_nonprim) {
244
0
        OpenAPI_authorized_default_qos_free(auth_def_qos_local_nonprim);
245
0
        auth_def_qos_local_nonprim = NULL;
246
0
    }
247
0
    return NULL;
248
0
}
249
250
OpenAPI_session_rule_t *OpenAPI_session_rule_copy(OpenAPI_session_rule_t *dst, OpenAPI_session_rule_t *src)
251
0
{
252
0
    cJSON *item = NULL;
253
0
    char *content = NULL;
254
255
0
    ogs_assert(src);
256
0
    item = OpenAPI_session_rule_convertToJSON(src);
257
0
    if (!item) {
258
0
        ogs_error("OpenAPI_session_rule_convertToJSON() failed");
259
0
        return NULL;
260
0
    }
261
262
0
    content = cJSON_Print(item);
263
0
    cJSON_Delete(item);
264
265
0
    if (!content) {
266
0
        ogs_error("cJSON_Print() failed");
267
0
        return NULL;
268
0
    }
269
270
0
    item = cJSON_Parse(content);
271
0
    ogs_free(content);
272
0
    if (!item) {
273
0
        ogs_error("cJSON_Parse() failed");
274
0
        return NULL;
275
0
    }
276
277
0
    OpenAPI_session_rule_free(dst);
278
0
    dst = OpenAPI_session_rule_parseFromJSON(item);
279
0
    cJSON_Delete(item);
280
281
0
    return dst;
282
0
}
283