diff --git a/lib/dbi/dbi-private.h b/lib/dbi/dbi-private.h index 1812cbbe4..e6a5bca53 100644 --- a/lib/dbi/dbi-private.h +++ b/lib/dbi/dbi-private.h @@ -34,7 +34,7 @@ struct ogs_dbi_s { void (*final)(void); /* session */ int (*session_data)(char *supi, ogs_s_nssai_t *s_nssai, char *dnn, - ogs_session_data_t *data); + int32_t charging_char, ogs_session_data_t *data); /* ims */ int (*msisdn_data)(char *imsi_or_msisdn_bcd, ogs_msisdn_data_t *msisdn_data); int (*ims_data)(char *supi, ogs_ims_data_t *ims_data); diff --git a/lib/dbi/dbi.c b/lib/dbi/dbi.c index 2207cd241..2b3a4c878 100644 --- a/lib/dbi/dbi.c +++ b/lib/dbi/dbi.c @@ -93,12 +93,12 @@ int ogs_dbi_ims_data(char *supi, ogs_ims_data_t *ims_data) /* session */ int ogs_dbi_session_data(char *supi, ogs_s_nssai_t *s_nssai, char *dnn, - ogs_session_data_t *session_data) + int32_t charging_char, ogs_session_data_t *session_data) { ogs_assert(dbi_selected); if (!dbi_selected->session_data) return OGS_ERROR; - return dbi_selected->session_data(supi, s_nssai, dnn, session_data); + return dbi_selected->session_data(supi, s_nssai, dnn, charging_char, session_data); } /* subscription */ diff --git a/lib/dbi/json/json.c b/lib/dbi/json/json.c index 591b70df4..697589eef 100644 --- a/lib/dbi/json/json.c +++ b/lib/dbi/json/json.c @@ -360,14 +360,13 @@ fail: return ret; } -static int json_session_data(char *supi, ogs_s_nssai_t *s_nssai, char *dnn, ogs_session_data_t *session_data) +static int json_session_data(char *supi, ogs_s_nssai_t *s_nssai, char *dnn, + int32_t charging_char, ogs_session_data_t *session_data) { ogs_session_t *session = &session_data->session; ogs_json_apn_profile_t *profile; ogs_json_apn_t *db_apn = ogs_dbi_static_get_apn(dnn); - int charging_char = -1; - if (!db_apn) db_apn = ogs_dbi_static_get_apn("*"); diff --git a/lib/dbi/mongo/mongo-private.h b/lib/dbi/mongo/mongo-private.h index 4fb787ef6..f747351dc 100644 --- a/lib/dbi/mongo/mongo-private.h +++ b/lib/dbi/mongo/mongo-private.h @@ -40,7 +40,7 @@ int ogs_dbi_mongo_ims_data(char *supi, ogs_ims_data_t *ims_data); /* session */ int ogs_dbi_mongo_session_data(char *supi, ogs_s_nssai_t *s_nssai, char *dnn, - ogs_session_data_t *session_data); + int32_t charging_char, ogs_session_data_t *session_data); /* subscription */ int ogs_dbi_mongo_auth_info(char *supi, ogs_dbi_auth_info_t *auth_info); diff --git a/lib/dbi/mongo/session.c b/lib/dbi/mongo/session.c index 1b82ce88a..dabb5cf31 100644 --- a/lib/dbi/mongo/session.c +++ b/lib/dbi/mongo/session.c @@ -23,7 +23,7 @@ #include "mongo-private.h" int ogs_dbi_mongo_session_data(char *supi, ogs_s_nssai_t *s_nssai, char *dnn, - ogs_session_data_t *session_data) + int32_t charging_char, ogs_session_data_t *session_data) { int rv = OGS_OK; mongoc_cursor_t *cursor = NULL; diff --git a/lib/dbi/session.h b/lib/dbi/session.h index 17e4ddd3e..2c10c5a34 100644 --- a/lib/dbi/session.h +++ b/lib/dbi/session.h @@ -28,8 +28,10 @@ extern "C" { #endif +#define OGS_DBI_NO_CHARGING_CHAR -1 + int ogs_dbi_session_data(char *supi, ogs_s_nssai_t *s_nssai, char *dnn, - ogs_session_data_t *session_data); + int32_t charging_char, ogs_session_data_t *session_data); #ifdef __cplusplus } diff --git a/src/pcf/nbsf-handler.c b/src/pcf/nbsf-handler.c index fc48a5e28..ca8e3b834 100644 --- a/src/pcf/nbsf-handler.c +++ b/src/pcf/nbsf-handler.c @@ -123,7 +123,8 @@ bool pcf_nbsf_management_handle_register( ogs_sbi_header_free(&header); rv = ogs_dbi_session_data( - pcf_ue->supi, &sess->s_nssai, sess->dnn, &session_data); + pcf_ue->supi, &sess->s_nssai, sess->dnn, OGS_DBI_NO_CHARGING_CHAR, + &session_data); if (rv != OGS_OK) { strerror = ogs_msprintf("[%s:%d] Cannot find SUPI in DB", pcf_ue->supi, sess->psi); diff --git a/src/pcf/npcf-handler.c b/src/pcf/npcf-handler.c index d0651f8de..d6612a2e6 100644 --- a/src/pcf/npcf-handler.c +++ b/src/pcf/npcf-handler.c @@ -567,7 +567,7 @@ bool pcf_npcf_policyauthorization_handle_create(pcf_sess_t *sess, memset(&session_data, 0, sizeof(ogs_session_data_t)); rv = ogs_dbi_session_data( - pcf_ue->supi, &sess->s_nssai, sess->dnn, &session_data); + pcf_ue->supi, &sess->s_nssai, sess->dnn, OGS_DBI_NO_CHARGING_CHAR, &session_data); if (rv != OGS_OK) { strerror = ogs_msprintf("[%s:%d] Cannot find SUPI in DB", pcf_ue->supi, sess->psi); @@ -980,7 +980,8 @@ bool pcf_npcf_policyauthorization_handle_update( memset(&session_data, 0, sizeof(ogs_session_data_t)); rv = ogs_dbi_session_data( - pcf_ue->supi, &sess->s_nssai, sess->dnn, &session_data); + pcf_ue->supi, &sess->s_nssai, sess->dnn, OGS_DBI_NO_CHARGING_CHAR, + &session_data); if (rv != OGS_OK) { strerror = ogs_msprintf("[%s:%d] Cannot find SUPI in DB", pcf_ue->supi, sess->psi); diff --git a/src/pcrf/pcrf-context.c b/src/pcrf/pcrf-context.c index ca85d71cb..d3c38c9e7 100644 --- a/src/pcrf/pcrf-context.c +++ b/src/pcrf/pcrf-context.c @@ -281,7 +281,7 @@ int pcrf_db_qos_data( ogs_assert(supi); /* For EPC, we'll use [S_NSSAI = NULL] */ - rv = ogs_dbi_session_data(supi, NULL, apn, session_data); + rv = ogs_dbi_session_data(supi, NULL, apn, OGS_DBI_NO_CHARGING_CHAR, session_data); /* For EPC, we need to inialize Flow-Status in Pcc-Rule */ for (i = 0; i < session_data->num_of_pcc_rule; i++) {