mirror of
https://github.com/open5gs/open5gs.git
synced 2025-11-02 13:03:31 +00:00
[UDM/UDR] Follow up on #3690
This commit is contained in:
@@ -983,10 +983,13 @@ int ogs_sbi_parse_request(
|
||||
}
|
||||
}
|
||||
} else if (!strcmp(ogs_hash_this_key(hi), OGS_SBI_PARAM_FIELDS)) {
|
||||
char *v = ogs_hash_this_val(hi);
|
||||
char *_v = ogs_hash_this_val(hi), *v = NULL;
|
||||
char *token = NULL;
|
||||
char *saveptr = NULL;
|
||||
|
||||
v = ogs_strdup(_v);
|
||||
ogs_assert(v);
|
||||
|
||||
token = ogs_strtok_r(v, ",", &saveptr);
|
||||
while (token != NULL) {
|
||||
if (message->param.num_of_fields < OGS_SBI_MAX_NUM_OF_FIELDS) {
|
||||
@@ -1001,6 +1004,8 @@ int ogs_sbi_parse_request(
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ogs_free(v);
|
||||
} else if (!strcmp(ogs_hash_this_key(hi), OGS_SBI_PARAM_IPV4ADDR)) {
|
||||
message->param.ipv4addr = ogs_hash_this_val(hi);
|
||||
} else if (!strcmp(ogs_hash_this_key(hi), OGS_SBI_PARAM_IPV6PREFIX)) {
|
||||
|
||||
@@ -588,7 +588,8 @@ bool udm_nudm_uecm_handle_smf_registration(
|
||||
OpenAPI_smf_registration_copy(sess->smf_registration, SmfRegistration);
|
||||
|
||||
r = udm_sess_sbi_discover_and_send(OGS_SBI_SERVICE_TYPE_NUDR_DR, NULL,
|
||||
udm_nudr_dr_build_update_smf_context, sess, stream, NULL);
|
||||
udm_nudr_dr_build_update_smf_context, sess, stream,
|
||||
UDM_SBI_NO_STATE, NULL);
|
||||
ogs_expect(r == OGS_OK);
|
||||
ogs_assert(r != OGS_ERROR);
|
||||
|
||||
@@ -609,7 +610,8 @@ bool udm_nudm_uecm_handle_smf_deregistration(
|
||||
ogs_assert(udm_ue);
|
||||
|
||||
r = udm_sess_sbi_discover_and_send(OGS_SBI_SERVICE_TYPE_NUDR_DR, NULL,
|
||||
udm_nudr_dr_build_delete_smf_context, sess, stream, NULL);
|
||||
udm_nudr_dr_build_delete_smf_context, sess, stream,
|
||||
UDM_SBI_NO_STATE, NULL);
|
||||
ogs_expect(r == OGS_OK);
|
||||
ogs_assert(r != OGS_ERROR);
|
||||
|
||||
|
||||
@@ -170,7 +170,7 @@ int udm_sess_sbi_discover_and_send(
|
||||
ogs_sbi_service_type_e service_type,
|
||||
ogs_sbi_discovery_option_t *discovery_option,
|
||||
ogs_sbi_request_t *(*build)(udm_sess_t *sess, void *data),
|
||||
udm_sess_t *sess, ogs_sbi_stream_t *stream, void *data)
|
||||
udm_sess_t *sess, ogs_sbi_stream_t *stream, int state, void *data)
|
||||
{
|
||||
int r;
|
||||
|
||||
@@ -178,7 +178,7 @@ int udm_sess_sbi_discover_and_send(
|
||||
|
||||
r = udm_sbi_discover_and_send(
|
||||
sess->id, &sess->sbi, service_type, discovery_option,
|
||||
(ogs_sbi_build_f)build, sess, stream, UDM_SBI_NO_STATE, data);
|
||||
(ogs_sbi_build_f)build, sess, stream, state, data);
|
||||
if (r != OGS_OK) {
|
||||
ogs_error("udm_sess_sbi_discover_and_send() failed");
|
||||
ogs_assert(true ==
|
||||
|
||||
@@ -44,7 +44,7 @@ int udm_sess_sbi_discover_and_send(
|
||||
ogs_sbi_service_type_e service_type,
|
||||
ogs_sbi_discovery_option_t *discovery_option,
|
||||
ogs_sbi_request_t *(*build)(udm_sess_t *sess, void *data),
|
||||
udm_sess_t *sess, ogs_sbi_stream_t *stream, void *data);
|
||||
udm_sess_t *sess, ogs_sbi_stream_t *stream, int state, void *data);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -486,6 +486,9 @@ bool udr_nudr_dr_handle_subscription_provisioned(
|
||||
memset(&AccessAndMobilitySubscriptionData, 0,
|
||||
sizeof(AccessAndMobilitySubscriptionData));
|
||||
|
||||
memset(&SubscribedUeAmbr, 0, sizeof(SubscribedUeAmbr));
|
||||
memset(&NSSAI, 0, sizeof(NSSAI));
|
||||
|
||||
/* Apply filtering based on fields query parameter */
|
||||
if (recvmsg->param.num_of_fields) {
|
||||
for (i = 0; i < recvmsg->param.num_of_fields; i++) {
|
||||
@@ -524,8 +527,6 @@ bool udr_nudr_dr_handle_subscription_provisioned(
|
||||
AccessAndMobilitySubscriptionData.gpsis = GpsiList;
|
||||
}
|
||||
|
||||
memset(&SubscribedUeAmbr, 0, sizeof(SubscribedUeAmbr));
|
||||
|
||||
if (processUeAmbr) {
|
||||
SubscribedUeAmbr.uplink = ogs_sbi_bitrate_to_string(
|
||||
subscription_data.ambr.uplink, OGS_SBI_BITRATE_KBPS);
|
||||
@@ -537,7 +538,6 @@ bool udr_nudr_dr_handle_subscription_provisioned(
|
||||
}
|
||||
|
||||
if (processNssai) {
|
||||
memset(&NSSAI, 0, sizeof(NSSAI));
|
||||
DefaultSingleNssaiList = OpenAPI_list_create();
|
||||
for (i = 0; i < subscription_data.num_of_slice; i++) {
|
||||
slice_data = &subscription_data.slice[i];
|
||||
|
||||
Reference in New Issue
Block a user