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:
Julien BLACHE
2009-04-18 15:35:42 +02:00
parent a17e23010a
commit e3ab6de328
6 changed files with 266 additions and 2218 deletions

View File

@@ -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;
}