X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=src%2Fconf.c;h=47504527158775e56f495cb239f39236a9e471b8;hb=673cad207cccf829038ab1a4399ca302bb0cf078;hp=cf1677bffdd852bf3f16e6309a9e9bebb691fe1c;hpb=25b7d7ee7e1979bf244fa663b56f68c8b00f51b1;p=umurmur.git diff --git a/src/conf.c b/src/conf.c index cf1677b..4750452 100644 --- a/src/conf.c +++ b/src/conf.c @@ -1,5 +1,5 @@ -/* Copyright (C) 2009-2011, Martin Johansson - Copyright (C) 2005-2011, Thorvald Natvig +/* Copyright (C) 2009-2014, Martin Johansson + Copyright (C) 2005-2014, Thorvald Natvig All rights reserved. @@ -45,6 +45,7 @@ static config_t configuration; #define DEFAULT_MAX_BANDWIDTH 48000 #define DEFAULT_BINDPORT 64738 #define DEFAULT_BAN_LENGTH (60*60) +#define DEFAULT_OPUS_THRESHOLD 100 const char defaultconfig[] = DEFAULT_CONFIG; @@ -107,6 +108,17 @@ const char *getStrConf(param_t param) return "/etc/umurmur/private_key.key"; } break; + case CAPATH: + setting = config_lookup(&configuration, "ca_path"); + if (!setting) + return NULL; + else { + if ((strsetting = config_setting_get_string(setting)) != NULL) + return strsetting; + else + return NULL; + } + break; case PASSPHRASE: setting = config_lookup(&configuration, "password"); if (!setting) @@ -195,6 +207,17 @@ const char *getStrConf(param_t param) return NULL; } break; + case BANFILE: + setting = config_lookup(&configuration, "banfile"); + if (!setting) + return NULL; + else { + if ((strsetting = config_setting_get_string(setting)) != NULL) + return strsetting; + else + return NULL; + } + break; default: doAssert(false); break; @@ -239,6 +262,14 @@ int getIntConf(param_t param) return config_setting_get_int(setting); } break; + case OPUS_THRESHOLD: + setting = config_lookup(&configuration, "opus_threshold"); + if (!setting) + return DEFAULT_OPUS_THRESHOLD; + else { + return config_setting_get_int(setting); + } + break; default: doAssert(false); } @@ -256,6 +287,20 @@ bool_t getBoolConf(param_t param) else return config_setting_get_bool(setting); break; + case ENABLE_BAN: + setting = config_lookup(&configuration, "enable_ban"); + if (!setting) + return false; + else + return config_setting_get_bool(setting); + break; + case SYNC_BANFILE: + setting = config_lookup(&configuration, "sync_banfile"); + if (!setting) + return false; + else + return config_setting_get_bool(setting); + break; default: doAssert(false); } @@ -299,6 +344,20 @@ int Conf_getNextChannel(conf_channel_t *chdesc, int index) chdesc->noenter = false; else chdesc->noenter = config_setting_get_bool(setting); + + ret = snprintf(configstr, maxconfig, "channels.[%d].silent", index); + setting = config_lookup(&configuration, configstr); + if (ret >= maxconfig || ret < 0 || setting == NULL) /* Optional */ + chdesc->silent = false; + else + chdesc->silent = config_setting_get_bool(setting); + + ret = snprintf(configstr, maxconfig, "channels.[%d].position", index); + setting = config_lookup(&configuration, configstr); + if (ret >= maxconfig || ret < 0 || setting == NULL) /* Optional */ + chdesc->position = 0; + else + chdesc->position = config_setting_get_int(setting); return 0; }