mirror of
https://github.com/owntone/owntone-server.git
synced 2025-11-10 22:10:15 -05:00
Replace old config code, remove old code
Activate the new confuse-based config code, add compatibility functions for the old config code.
This commit is contained in:
263
src/conffile.c
263
src/conffile.c
@@ -331,3 +331,266 @@ conffile_unload(void)
|
||||
{
|
||||
cfg_free(cfg);
|
||||
}
|
||||
|
||||
|
||||
/* Wrappers for old configfile handling */
|
||||
#include "conf.h"
|
||||
|
||||
int
|
||||
conf_read(char *file)
|
||||
{
|
||||
return conffile_load(file);
|
||||
}
|
||||
|
||||
int
|
||||
conf_close(void)
|
||||
{
|
||||
conffile_unload();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
conf_get_int(char *section, char *key, int dflt)
|
||||
{
|
||||
cfg_t *lib;
|
||||
|
||||
if ((strcmp(section, "general") == 0)
|
||||
&& (strcmp(key, "port") == 0))
|
||||
{
|
||||
lib = cfg_getnsec(cfg, "library", 0);
|
||||
return cfg_getint(lib, "port");
|
||||
}
|
||||
|
||||
/* Return default for everything else */
|
||||
return dflt;
|
||||
}
|
||||
|
||||
int conf_get_string(char *section, char *key, char *dflt, char *out, int *size)
|
||||
{
|
||||
cfg_t *lib;
|
||||
size_t len;
|
||||
char *val = NULL;
|
||||
|
||||
if (strcmp(section, "general") == 0)
|
||||
{
|
||||
if (strcmp(key, "admin_pw") == 0)
|
||||
{
|
||||
val = cfg_getstr(cfg_getsec(cfg, "general"), "admin_password");
|
||||
}
|
||||
else if (strcmp(key, "password") == 0)
|
||||
{
|
||||
lib = cfg_getnsec(cfg, "library", 0);
|
||||
val = cfg_getstr(lib, "password");
|
||||
}
|
||||
else if (strcmp(key, "extensions") == 0)
|
||||
{
|
||||
val = ".mp3,.m4a,.m4p,.ogg,.flac,.mpc";
|
||||
}
|
||||
else if (strcmp(key, "runas") == 0)
|
||||
{
|
||||
val = cfg_getstr(cfg_getsec(cfg, "general"), "uid");
|
||||
}
|
||||
else if (strcmp(key, "db_type") == 0)
|
||||
{
|
||||
val = "sqlite3";
|
||||
}
|
||||
else if (strcmp(key, "db_parms") == 0)
|
||||
{
|
||||
val = "/var/cache/mt-daapd";
|
||||
}
|
||||
/* web_root now static */
|
||||
else if (strcmp(key, "web_root") == 0)
|
||||
{
|
||||
val = "/usr/share/mt-daapd/admin-root";
|
||||
}
|
||||
}
|
||||
else if (strcmp(section, "plugins") == 0)
|
||||
{
|
||||
/* plugin_dir now static, going away */
|
||||
if (strcmp(key, "plugin_dir") == 0)
|
||||
{
|
||||
val = "/usr/lib/mt-daapd/plugins";
|
||||
}
|
||||
}
|
||||
|
||||
/* Default value */
|
||||
if (val == NULL)
|
||||
val = dflt;
|
||||
|
||||
if (val == NULL)
|
||||
{
|
||||
*size = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
len = strlen(val) + 1;
|
||||
if (len <= *size)
|
||||
{
|
||||
strcpy(out, val);
|
||||
*size = len;
|
||||
}
|
||||
else
|
||||
{
|
||||
*size = len;
|
||||
return CONF_E_OVERFLOW;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *
|
||||
conf_alloc_string(char *section, char *key, char *dflt)
|
||||
{
|
||||
char *val;
|
||||
int len;
|
||||
int ret;
|
||||
|
||||
len = 256;
|
||||
val = (char *)malloc(len);
|
||||
if (!val)
|
||||
return NULL;
|
||||
|
||||
memset(val, 0, len);
|
||||
|
||||
ret = conf_get_string(section, key, dflt, val, &len);
|
||||
if (ret != 0)
|
||||
return NULL;
|
||||
|
||||
if (len == 0)
|
||||
{
|
||||
free(val);
|
||||
val = NULL;
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
int
|
||||
conf_get_array(char *section, char *key, char ***argvp)
|
||||
{
|
||||
cfg_t *lib;
|
||||
int nelem;
|
||||
char *opt;
|
||||
char **a;
|
||||
int i;
|
||||
|
||||
lib = cfg_getnsec(cfg, "library", 0);
|
||||
|
||||
if (strcmp(section, "general") == 0)
|
||||
{
|
||||
if (strcmp(key, "mp3_dir") == 0)
|
||||
{
|
||||
nelem = cfg_size(lib, "directories");
|
||||
if (nelem == 0)
|
||||
return 0;
|
||||
|
||||
opt = "directories";
|
||||
}
|
||||
else if (strcmp(key, "compdirs") == 0)
|
||||
{
|
||||
nelem = cfg_size(lib, "compilations");
|
||||
if (nelem == 0)
|
||||
return 0;
|
||||
|
||||
opt = "compilations";
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
|
||||
a = (char **)malloc((nelem + 1) * sizeof(char *));
|
||||
if (!a)
|
||||
return 0;
|
||||
|
||||
memset(a, 0, (nelem + 1) * sizeof(char *));
|
||||
|
||||
for (i = 0; i < nelem; i++)
|
||||
{
|
||||
a[i] = strdup(cfg_getnstr(lib, opt, i));
|
||||
}
|
||||
|
||||
*argvp = a;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void
|
||||
conf_dispose_array(char **argv)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; argv[i]; i++)
|
||||
free(argv[i]);
|
||||
|
||||
free(argv);
|
||||
}
|
||||
|
||||
char *
|
||||
conf_get_servername(void)
|
||||
{
|
||||
cfg_t *lib;
|
||||
|
||||
lib = cfg_getnsec(cfg, "library", 0);
|
||||
return strdup(cfg_getstr(lib, "name"));
|
||||
}
|
||||
|
||||
/* Not supported */
|
||||
|
||||
int
|
||||
conf_reload(void)
|
||||
{
|
||||
/* Not supported */
|
||||
return CONF_E_NOTSUPP;
|
||||
}
|
||||
|
||||
int
|
||||
conf_set_int(char *section, char *key, int value, int verify)
|
||||
{
|
||||
/* Not supported */
|
||||
return CONF_E_NOTSUPP;
|
||||
}
|
||||
|
||||
int
|
||||
conf_set_string(char *section, char *key, char *value, int verify)
|
||||
{
|
||||
/* Not supported */
|
||||
return CONF_E_NOTSUPP;
|
||||
}
|
||||
|
||||
int
|
||||
conf_iswritable(void)
|
||||
{
|
||||
/* Not supported */
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
conf_isset(char *section, char *key)
|
||||
{
|
||||
/* Not pertinent */
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
conf_write(void)
|
||||
{
|
||||
/* Not supported */
|
||||
return CONF_E_NOTSUPP;
|
||||
}
|
||||
|
||||
char *
|
||||
conf_get_filename(void)
|
||||
{
|
||||
return "NOT SUPPORTED";
|
||||
}
|
||||
|
||||
int
|
||||
conf_xml_dump(WS_CONNINFO *pwsc)
|
||||
{
|
||||
/* Not supported */
|
||||
return CONF_E_NOTSUPP;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user