From 37e91b2ebb14082e366ed4a9b09d76a2f6163818 Mon Sep 17 00:00:00 2001 From: OpenGnSys Support Team Date: Fri, 26 Jun 2020 20:13:42 +0200 Subject: #971 rename sources folder to src Use the same folder as in ogClient. --- src/dbi.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/dbi.c (limited to 'src/dbi.c') diff --git a/src/dbi.c b/src/dbi.c new file mode 100644 index 0000000..6640f50 --- /dev/null +++ b/src/dbi.c @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2020 Soleta Networks + * + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU Affero General Public License as published by the + * Free Software Foundation, version 3. + */ + +#include "dbi.h" + +struct og_dbi *og_dbi_open(struct og_dbi_config *config) +{ + struct og_dbi *dbi; + + dbi = (struct og_dbi *)malloc(sizeof(struct og_dbi)); + if (!dbi) + return NULL; + + dbi_initialize_r(NULL, &dbi->inst); + dbi->conn = dbi_conn_new_r("mysql", dbi->inst); + if (!dbi->conn) { + free(dbi); + return NULL; + } + + dbi_conn_set_option(dbi->conn, "host", config->host); + dbi_conn_set_option(dbi->conn, "username", config->user); + dbi_conn_set_option(dbi->conn, "password", config->passwd); + dbi_conn_set_option(dbi->conn, "dbname", config->database); + dbi_conn_set_option(dbi->conn, "encoding", "UTF-8"); + + if (dbi_conn_connect(dbi->conn) < 0) { + free(dbi); + return NULL; + } + + return dbi; +} + +void og_dbi_close(struct og_dbi *dbi) +{ + dbi_conn_close(dbi->conn); + dbi_shutdown_r(dbi->inst); + free(dbi); +} -- cgit v1.2.3-18-g5258