diff --git a/src/utils/dbi.c b/src/utils/dbi.c
index ee2280ce939e6bb9f61cdde27ba3cfa5415d5028..380a841321a1c6507f0c6f07a7f322e2d3e8ba6b 100644 (file)
--- a/src/utils/dbi.c
+++ b/src/utils/dbi.c
return 0;
} /* sdb_dbi_client_connect */
+int
+sdb_dbi_client_check_conn(sdb_dbi_client_t *client)
+{
+ if (! client)
+ return -1;
+
+ if (! client->conn)
+ return sdb_dbi_client_connect(client);
+
+ if (dbi_conn_ping(client->conn))
+ return 0;
+ return sdb_dbi_client_connect(client);
+} /* sdb_dbi_client_check_conn */
+
int
sdb_dbi_exec_query(sdb_dbi_client_t *client, const char *query,
sdb_dbi_data_cb callback, sdb_object_t *user_data, int n, ...)
int status;
- if ((! client) || (! query))
+ if ((! client) || (! client->conn) || (! query))
return -1;
res = dbi_conn_query(client->conn, query);