Module: monitoring-plugins
 Branch: master
 Commit: e4a32bfb39ddbe90b95ec4c4dee6ab559d0cec42
 Author: Lorenz Kästle <[email protected]>
   Date: Tue Sep 16 14:34:17 2025 +0200
    URL: 
https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=e4a32bfb

Refactoring check_dbi

---

 plugins/check_dbi.c | 33 ++++++++++++---------------------
 1 file changed, 12 insertions(+), 21 deletions(-)

diff --git a/plugins/check_dbi.c b/plugins/check_dbi.c
index 468ded31..2e110ce3 100644
--- a/plugins/check_dbi.c
+++ b/plugins/check_dbi.c
@@ -76,21 +76,6 @@ static mp_state_enum do_query(dbi_conn /*conn*/, const char 
** /*res_val_str*/,
                                                          mp_dbi_type /*type*/, 
char * /*np_dbi_query*/);
 
 int main(int argc, char **argv) {
-       int status = STATE_UNKNOWN;
-
-       dbi_driver driver;
-       dbi_conn conn;
-
-       unsigned int server_version;
-
-       struct timeval start_timeval;
-       struct timeval end_timeval;
-       double conn_time = 0.0;
-       double query_time = 0.0;
-
-       const char *query_val_str = NULL;
-       double query_val = 0.0;
-
        setlocale(LC_ALL, "");
        bindtextdomain(PACKAGE, LOCALEDIR);
        textdomain(PACKAGE);
@@ -116,8 +101,7 @@ int main(int argc, char **argv) {
                printf("Initializing DBI\n");
        }
 
-       dbi_inst *instance_p = {0};
-
+       dbi_inst *instance_p = NULL;
        if (dbi_initialize_r(NULL, instance_p) < 0) {
                printf(
                        "UNKNOWN - failed to initialize DBI; possibly you don't 
have any drivers installed.\n");
@@ -133,7 +117,7 @@ int main(int argc, char **argv) {
                printf("Opening DBI driver '%s'\n", config.dbi_driver);
        }
 
-       driver = dbi_driver_open_r(config.dbi_driver, instance_p);
+       dbi_driver driver = dbi_driver_open_r(config.dbi_driver, instance_p);
        if (!driver) {
                printf("UNKNOWN - failed to open DBI driver '%s'; possibly it's 
not installed.\n",
                           config.dbi_driver);
@@ -147,9 +131,10 @@ int main(int argc, char **argv) {
        }
 
        /* make a connection to the database */
+       struct timeval start_timeval;
        gettimeofday(&start_timeval, NULL);
 
-       conn = dbi_conn_open(driver);
+       dbi_conn conn = dbi_conn_open(driver);
        if (!conn) {
                printf("UNKNOWN - failed top open connection object.\n");
                dbi_conn_close(conn);
@@ -210,14 +195,16 @@ int main(int argc, char **argv) {
                return STATE_UNKNOWN;
        }
 
+       struct timeval end_timeval;
        gettimeofday(&end_timeval, NULL);
-       conn_time = timediff(start_timeval, end_timeval);
+       double conn_time = timediff(start_timeval, end_timeval);
 
-       server_version = dbi_conn_get_engine_version(conn);
+       unsigned int server_version = dbi_conn_get_engine_version(conn);
        if (verbose) {
                printf("Connected to server version %u\n", server_version);
        }
 
+       int status = STATE_UNKNOWN;
        if (config.metric == METRIC_SERVER_VERSION) {
                status = get_status(server_version, config.dbi_thresholds);
        }
@@ -243,6 +230,10 @@ int main(int argc, char **argv) {
                }
        }
 
+
+       const char *query_val_str = NULL;
+       double query_val = 0.0;
+       double query_time = 0.0;
        if (config.dbi_query) {
                /* execute query */
                status = do_query(conn, &query_val_str, &query_val, 
&query_time, config.metric, config.type,

Reply via email to