X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=src%2Fconf.c;h=38b32852775c1727ffbd4c045515294a42c4f611;hb=4a60669fa1d85ec4644acaed84bad7ac8f79fdba;hp=d85ff7c0eb20aef5613d3fc1661e8ed016fd264a;hpb=9bf7a133fd2e6500976bdd7c8a8bc830f54c5c13;p=umurmur.git diff --git a/src/conf.c b/src/conf.c index d85ff7c..38b3285 100644 --- a/src/conf.c +++ b/src/conf.c @@ -1,5 +1,5 @@ -/* Copyright (C) 2009-2010, Martin Johansson - Copyright (C) 2005-2010, Thorvald Natvig +/* Copyright (C) 2009-2011, Martin Johansson + Copyright (C) 2005-2011, Thorvald Natvig All rights reserved. @@ -40,7 +40,6 @@ static config_t configuration; -#define DEFAULT_CONFIG "/etc/umurmur.conf" #define DEFAULT_WELCOME "Welcome to uMurmur!" #define DEFAULT_MAX_CLIENTS 10 #define DEFAULT_MAX_BANDWIDTH 48000 @@ -48,21 +47,15 @@ static config_t configuration; const char defaultconfig[] = DEFAULT_CONFIG; -int Conf_init(const char *conffile) +void Conf_init(const char *conffile) { - const char *conf; - config_init(&configuration); if (conffile == NULL) - conf = defaultconfig; - else - conf = conffile; - if (config_read_file(&configuration, conf) != CONFIG_TRUE) { - fprintf(stderr, "Error in config file %s: %s at line %d\n", conffile, - config_error_text(&configuration), config_error_line(&configuration)); - exit(1); + conffile = defaultconfig; + if (config_read_file(&configuration, conffile) != CONFIG_TRUE) { + Log_fatal("Error in config file %s line %d: %s", conffile, + config_error_line(&configuration), config_error_text(&configuration)); } - return 0; } void Conf_deinit() @@ -142,6 +135,39 @@ const char *getStrConf(param_t param) return ""; } break; + case USERNAME: + setting = config_lookup(&configuration, "username"); + if (!setting) + return ""; + else { + if ((strsetting = config_setting_get_string(setting)) != NULL) + return strsetting; + else + return ""; + } + break; + case GROUPNAME: + setting = config_lookup(&configuration, "groupname"); + if (!setting) + return ""; + else { + if ((strsetting = config_setting_get_string(setting)) != NULL) + return strsetting; + else + return ""; + } + break; + case LOGFILE: + setting = config_lookup(&configuration, "logfile"); + if (!setting) + return NULL; + else { + if ((strsetting = config_setting_get_string(setting)) != NULL) + return strsetting; + else + return NULL; + } + break; default: doAssert(false); break;