-/* Copyright (C) 2009-2011, Martin Johansson <martin@fatbob.nu>
- Copyright (C) 2005-2011, Thorvald Natvig <thorvald@natvig.com>
+/* Copyright (C) 2009-2012, Martin Johansson <martin@fatbob.nu>
+ Copyright (C) 2005-2012, Thorvald Natvig <thorvald@natvig.com>
All rights reserved.
#define DEFAULT_MAX_CLIENTS 10
#define DEFAULT_MAX_BANDWIDTH 48000
#define DEFAULT_BINDPORT 64738
+#define DEFAULT_BAN_LENGTH (60*60)
const char defaultconfig[] = DEFAULT_CONFIG;
}
}
-void Conf_test(const char *conffile)
+bool_t Conf_ok(const char *conffile)
{
+ bool_t rc = true;
config_init(&configuration);
if (conffile == NULL)
conffile = defaultconfig;
if (config_read_file(&configuration, conffile) != CONFIG_TRUE) {
- fprintf(stderr, "Error in config file %s line %d: %s", conffile,
+ fprintf(stderr, "Error in config file %s line %d: %s\n", conffile,
config_error_line(&configuration), config_error_text(&configuration));
- exit(1);
+ rc = false;
}
+ config_destroy(&configuration);
+ return rc;
}
void Conf_deinit()
return "";
}
break;
+ case ADMIN_PASSPHRASE:
+ setting = config_lookup(&configuration, "admin_password");
+ if (!setting)
+ return "";
+ else {
+ if ((strsetting = config_setting_get_string(setting)) != NULL)
+ return strsetting;
+ else
+ return "";
+ }
+ break;
case BINDADDR:
setting = config_lookup(&configuration, "bindaddr");
if (!setting)
return config_setting_get_int(setting);
}
break;
+ case BAN_LENGTH:
+ setting = config_lookup(&configuration, "ban_length");
+ if (!setting)
+ return DEFAULT_BAN_LENGTH;
+ else {
+ return config_setting_get_int(setting);
+ }
+ break;
case MAX_BANDWIDTH:
setting = config_lookup(&configuration, "max_bandwidth");
if (!setting)
}
}
+bool_t getBoolConf(param_t param)
+{
+ config_setting_t *setting = NULL;
+
+ switch (param) {
+ case ALLOW_TEXTMESSAGE:
+ setting = config_lookup(&configuration, "allow_textmessage");
+ if (!setting)
+ return true;
+ 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;
+ default:
+ doAssert(false);
+ }
+}
+
int Conf_getNextChannel(conf_channel_t *chdesc, int index)
{
config_setting_t *setting = NULL;