From 0e0de176fe882e1b85ed9a0c2e133d344ea475b2 Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Tue, 23 Aug 2022 17:39:16 +0200 Subject: [PATCH] [dbi]: make ogs_dbi_final depend on the selected database driver --- lib/dbi/dbi-private.h | 1 + lib/dbi/dbi.c | 8 ++++++++ lib/dbi/mongo/ogs-mongoc.c | 7 ++----- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/dbi/dbi-private.h b/lib/dbi/dbi-private.h index ebc71e32f..1812cbbe4 100644 --- a/lib/dbi/dbi-private.h +++ b/lib/dbi/dbi-private.h @@ -31,6 +31,7 @@ extern "C" { struct ogs_dbi_s { const char *name; + void (*final)(void); /* session */ int (*session_data)(char *supi, ogs_s_nssai_t *s_nssai, char *dnn, ogs_session_data_t *data); diff --git a/lib/dbi/dbi.c b/lib/dbi/dbi.c index 96cd76f1a..e26ee7293 100644 --- a/lib/dbi/dbi.c +++ b/lib/dbi/dbi.c @@ -63,6 +63,14 @@ int ogs_dbi_select_interface(const char *dbi_name) return -1; } +void ogs_dbi_final(void) +{ + if (!dbi_selected) + return; + + dbi_selected->final(); +} + /* ims */ int ogs_dbi_msisdn_data( char *imsi_or_msisdn_bcd, ogs_msisdn_data_t *msisdn_data) diff --git a/lib/dbi/mongo/ogs-mongoc.c b/lib/dbi/mongo/ogs-mongoc.c index cdb4fae23..f3c2e1740 100644 --- a/lib/dbi/mongo/ogs-mongoc.c +++ b/lib/dbi/mongo/ogs-mongoc.c @@ -164,6 +164,8 @@ ogs_mongoc_t *ogs_mongoc(void) ogs_dbi_t ogs_dbi_mongo_interface = { .name = "mongo", + /* final */ + .final = ogs_mongoc_final, /* session */ .session_data = ogs_dbi_mongo_session_data, /* ims */ @@ -201,8 +203,3 @@ int ogs_dbi_mongo_init(const char *db_uri) return OGS_OK; } - -void ogs_dbi_final() -{ - ogs_mongoc_final(); -}