Make database location a configuration item

This commit is contained in:
Dustin King
2010-03-21 11:33:05 +01:00
committed by Julien BLACHE
parent 6c6a3a7935
commit e6d75534d7
3 changed files with 8 additions and 2 deletions

View File

@@ -43,6 +43,7 @@ static cfg_opt_t sec_general[] =
CFG_STR("uid", "nobody", CFGF_NONE),
CFG_STR("admin_password", NULL, CFGF_NONE),
CFG_STR("logfile", STATEDIR "/log/" PACKAGE ".log", CFGF_NONE),
CFG_STR("db_path", STATEDIR "/cache/" PACKAGE "/songs3.db", CFGF_NONE),
CFG_INT_CB("loglevel", E_LOG, CFGF_NONE, &cb_loglevel),
CFG_END()
};

View File

@@ -31,13 +31,13 @@
#include <sqlite3.h>
#include "conffile.h"
#include "logger.h"
#include "misc.h"
#include "db.h"
#define STR(x) ((x) ? (x) : "")
#define DB_PATH STATEDIR "/cache/" PACKAGE "/songs3.db"
/* Inotify cookies are uint32_t */
#define INOTIFY_FAKE_COOKIE ((int64_t)1 << 32)
@@ -232,6 +232,7 @@ static struct col_type_map wi_cols_map[] =
{ wi_offsetof(path), DB_TYPE_STRING },
};
static char *db_path;
static __thread sqlite3 *hdl;
@@ -3345,7 +3346,7 @@ db_perthread_init(void)
{
int ret;
ret = sqlite3_open(DB_PATH, &hdl);
ret = sqlite3_open(db_path, &hdl);
if (ret != SQLITE_OK)
{
DPRINTF(E_LOG, L_DB, "Could not open database: %s\n", sqlite3_errmsg(hdl));
@@ -3928,6 +3929,8 @@ db_init(void)
int pls;
int ret;
db_path = cfg_getstr(cfg_getsec(cfg, "general"), "db_path");
if (!sqlite3_threadsafe())
{
DPRINTF(E_FATAL, L_DB, "The SQLite3 library is not built with a threadsafe configuration\n");