Coverage Report

Created: 2026-07-14 06:05

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/open5gs/lib/sbi/openapi/model/pdu_session.c
Line
Count
Source
1
2
#include <stdlib.h>
3
#include <string.h>
4
#include <stdio.h>
5
#include "pdu_session.h"
6
7
OpenAPI_pdu_session_t *OpenAPI_pdu_session_create(
8
    char *dnn,
9
    char *smf_instance_id,
10
    OpenAPI_plmn_id_t *plmn_id,
11
    OpenAPI_snssai_t *single_nssai
12
)
13
0
{
14
0
    OpenAPI_pdu_session_t *pdu_session_local_var = ogs_malloc(sizeof(OpenAPI_pdu_session_t));
15
0
    ogs_assert(pdu_session_local_var);
16
17
0
    pdu_session_local_var->dnn = dnn;
18
0
    pdu_session_local_var->smf_instance_id = smf_instance_id;
19
0
    pdu_session_local_var->plmn_id = plmn_id;
20
0
    pdu_session_local_var->single_nssai = single_nssai;
21
22
0
    return pdu_session_local_var;
23
0
}
24
25
void OpenAPI_pdu_session_free(OpenAPI_pdu_session_t *pdu_session)
26
0
{
27
0
    OpenAPI_lnode_t *node = NULL;
28
29
0
    if (NULL == pdu_session) {
30
0
        return;
31
0
    }
32
0
    if (pdu_session->dnn) {
33
0
        ogs_free(pdu_session->dnn);
34
0
        pdu_session->dnn = NULL;
35
0
    }
36
0
    if (pdu_session->smf_instance_id) {
37
0
        ogs_free(pdu_session->smf_instance_id);
38
0
        pdu_session->smf_instance_id = NULL;
39
0
    }
40
0
    if (pdu_session->plmn_id) {
41
0
        OpenAPI_plmn_id_free(pdu_session->plmn_id);
42
0
        pdu_session->plmn_id = NULL;
43
0
    }
44
0
    if (pdu_session->single_nssai) {
45
0
        OpenAPI_snssai_free(pdu_session->single_nssai);
46
0
        pdu_session->single_nssai = NULL;
47
0
    }
48
0
    ogs_free(pdu_session);
49
0
}
50
51
cJSON *OpenAPI_pdu_session_convertToJSON(OpenAPI_pdu_session_t *pdu_session)
52
0
{
53
0
    cJSON *item = NULL;
54
0
    OpenAPI_lnode_t *node = NULL;
55
56
0
    if (pdu_session == NULL) {
57
0
        ogs_error("OpenAPI_pdu_session_convertToJSON() failed [PduSession]");
58
0
        return NULL;
59
0
    }
60
61
0
    item = cJSON_CreateObject();
62
0
    if (!pdu_session->dnn) {
63
0
        ogs_error("OpenAPI_pdu_session_convertToJSON() failed [dnn]");
64
0
        return NULL;
65
0
    }
66
0
    if (cJSON_AddStringToObject(item, "dnn", pdu_session->dnn) == NULL) {
67
0
        ogs_error("OpenAPI_pdu_session_convertToJSON() failed [dnn]");
68
0
        goto end;
69
0
    }
70
71
0
    if (!pdu_session->smf_instance_id) {
72
0
        ogs_error("OpenAPI_pdu_session_convertToJSON() failed [smf_instance_id]");
73
0
        return NULL;
74
0
    }
75
0
    if (cJSON_AddStringToObject(item, "smfInstanceId", pdu_session->smf_instance_id) == NULL) {
76
0
        ogs_error("OpenAPI_pdu_session_convertToJSON() failed [smf_instance_id]");
77
0
        goto end;
78
0
    }
79
80
0
    if (!pdu_session->plmn_id) {
81
0
        ogs_error("OpenAPI_pdu_session_convertToJSON() failed [plmn_id]");
82
0
        return NULL;
83
0
    }
84
0
    cJSON *plmn_id_local_JSON = OpenAPI_plmn_id_convertToJSON(pdu_session->plmn_id);
85
0
    if (plmn_id_local_JSON == NULL) {
86
0
        ogs_error("OpenAPI_pdu_session_convertToJSON() failed [plmn_id]");
87
0
        goto end;
88
0
    }
89
0
    cJSON_AddItemToObject(item, "plmnId", plmn_id_local_JSON);
90
0
    if (item->child == NULL) {
91
0
        ogs_error("OpenAPI_pdu_session_convertToJSON() failed [plmn_id]");
92
0
        goto end;
93
0
    }
94
95
0
    if (pdu_session->single_nssai) {
96
0
    cJSON *single_nssai_local_JSON = OpenAPI_snssai_convertToJSON(pdu_session->single_nssai);
97
0
    if (single_nssai_local_JSON == NULL) {
98
0
        ogs_error("OpenAPI_pdu_session_convertToJSON() failed [single_nssai]");
99
0
        goto end;
100
0
    }
101
0
    cJSON_AddItemToObject(item, "singleNssai", single_nssai_local_JSON);
102
0
    if (item->child == NULL) {
103
0
        ogs_error("OpenAPI_pdu_session_convertToJSON() failed [single_nssai]");
104
0
        goto end;
105
0
    }
106
0
    }
107
108
0
end:
109
0
    return item;
110
0
}
111
112
OpenAPI_pdu_session_t *OpenAPI_pdu_session_parseFromJSON(cJSON *pdu_sessionJSON)
113
0
{
114
0
    OpenAPI_pdu_session_t *pdu_session_local_var = NULL;
115
0
    OpenAPI_lnode_t *node = NULL;
116
0
    cJSON *dnn = NULL;
117
0
    cJSON *smf_instance_id = NULL;
118
0
    cJSON *plmn_id = NULL;
119
0
    OpenAPI_plmn_id_t *plmn_id_local_nonprim = NULL;
120
0
    cJSON *single_nssai = NULL;
121
0
    OpenAPI_snssai_t *single_nssai_local_nonprim = NULL;
122
0
    dnn = cJSON_GetObjectItemCaseSensitive(pdu_sessionJSON, "dnn");
123
0
    if (!dnn) {
124
0
        ogs_error("OpenAPI_pdu_session_parseFromJSON() failed [dnn]");
125
0
        goto end;
126
0
    }
127
0
    if (!cJSON_IsString(dnn)) {
128
0
        ogs_error("OpenAPI_pdu_session_parseFromJSON() failed [dnn]");
129
0
        goto end;
130
0
    }
131
132
0
    smf_instance_id = cJSON_GetObjectItemCaseSensitive(pdu_sessionJSON, "smfInstanceId");
133
0
    if (!smf_instance_id) {
134
0
        ogs_error("OpenAPI_pdu_session_parseFromJSON() failed [smf_instance_id]");
135
0
        goto end;
136
0
    }
137
0
    if (!cJSON_IsString(smf_instance_id)) {
138
0
        ogs_error("OpenAPI_pdu_session_parseFromJSON() failed [smf_instance_id]");
139
0
        goto end;
140
0
    }
141
142
0
    plmn_id = cJSON_GetObjectItemCaseSensitive(pdu_sessionJSON, "plmnId");
143
0
    if (!plmn_id) {
144
0
        ogs_error("OpenAPI_pdu_session_parseFromJSON() failed [plmn_id]");
145
0
        goto end;
146
0
    }
147
0
    plmn_id_local_nonprim = OpenAPI_plmn_id_parseFromJSON(plmn_id);
148
0
    if (!plmn_id_local_nonprim) {
149
0
        ogs_error("OpenAPI_plmn_id_parseFromJSON failed [plmn_id]");
150
0
        goto end;
151
0
    }
152
153
0
    single_nssai = cJSON_GetObjectItemCaseSensitive(pdu_sessionJSON, "singleNssai");
154
0
    if (single_nssai) {
155
0
    single_nssai_local_nonprim = OpenAPI_snssai_parseFromJSON(single_nssai);
156
0
    if (!single_nssai_local_nonprim) {
157
0
        ogs_error("OpenAPI_snssai_parseFromJSON failed [single_nssai]");
158
0
        goto end;
159
0
    }
160
0
    }
161
162
0
    pdu_session_local_var = OpenAPI_pdu_session_create (
163
0
        ogs_strdup(dnn->valuestring),
164
0
        ogs_strdup(smf_instance_id->valuestring),
165
0
        plmn_id_local_nonprim,
166
0
        single_nssai ? single_nssai_local_nonprim : NULL
167
0
    );
168
169
0
    return pdu_session_local_var;
170
0
end:
171
0
    if (plmn_id_local_nonprim) {
172
0
        OpenAPI_plmn_id_free(plmn_id_local_nonprim);
173
0
        plmn_id_local_nonprim = NULL;
174
0
    }
175
0
    if (single_nssai_local_nonprim) {
176
0
        OpenAPI_snssai_free(single_nssai_local_nonprim);
177
0
        single_nssai_local_nonprim = NULL;
178
0
    }
179
0
    return NULL;
180
0
}
181
182
OpenAPI_pdu_session_t *OpenAPI_pdu_session_copy(OpenAPI_pdu_session_t *dst, OpenAPI_pdu_session_t *src)
183
0
{
184
0
    cJSON *item = NULL;
185
0
    char *content = NULL;
186
187
0
    ogs_assert(src);
188
0
    item = OpenAPI_pdu_session_convertToJSON(src);
189
0
    if (!item) {
190
0
        ogs_error("OpenAPI_pdu_session_convertToJSON() failed");
191
0
        return NULL;
192
0
    }
193
194
0
    content = cJSON_Print(item);
195
0
    cJSON_Delete(item);
196
197
0
    if (!content) {
198
0
        ogs_error("cJSON_Print() failed");
199
0
        return NULL;
200
0
    }
201
202
0
    item = cJSON_Parse(content);
203
0
    ogs_free(content);
204
0
    if (!item) {
205
0
        ogs_error("cJSON_Parse() failed");
206
0
        return NULL;
207
0
    }
208
209
0
    OpenAPI_pdu_session_free(dst);
210
0
    dst = OpenAPI_pdu_session_parseFromJSON(item);
211
0
    cJSON_Delete(item);
212
213
0
    return dst;
214
0
}
215