X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/7378b5081fde6f48140327d5c072a8231934f027..49e57291d78de2b583d6f2197ae6f9d9ff05e456:/lib/configuration.c diff --git a/lib/configuration.c b/lib/configuration.c index b93e1e9..241d101 100644 --- a/lib/configuration.c +++ b/lib/configuration.c @@ -22,12 +22,8 @@ * @brief Configuration file support */ -#include -#include "types.h" +#include "common.h" -#include -#include -#include #include #include #include @@ -311,7 +307,7 @@ static int set_restrict(const struct config_state *cs, }; for(n = 0; n < nvec; ++n) { - if((i = TABLE_FIND(restrictions, struct restriction, name, vec[n])) < 0) { + if((i = TABLE_FIND(restrictions, name, vec[n])) < 0) { error(0, "%s:%d: invalid restriction '%s'", cs->path, cs->line, vec[n]); return -1; @@ -946,6 +942,8 @@ static const struct conf conf[] = { { C(multicast_loop), &type_boolean, validate_any }, { C(multicast_ttl), &type_integer, validate_non_negative }, { C(namepart), &type_namepart, validate_any }, + { C(new_bias), &type_integer, validate_positive }, + { C(new_bias_age), &type_integer, validate_positive }, { C(new_max), &type_integer, validate_positive }, { C2(nice, nice_rescan), &type_integer, validate_non_negative }, { C(nice_rescan), &type_integer, validate_non_negative }, @@ -960,9 +958,11 @@ static const struct conf conf[] = { { C(replay_min), &type_integer, validate_non_negative }, { C(refresh), &type_integer, validate_positive }, { C(reminder_interval), &type_integer, validate_positive }, + { C(remote_userman), &type_boolean, validate_any }, { C2(restrict, restrictions), &type_restrict, validate_any }, { C(sample_format), &type_sample_format, validate_sample_format }, { C(scratch), &type_string_accum, validate_isreg }, + { C(sendmail), &type_string, validate_isabspath }, { C(short_display), &type_integer, validate_positive }, { C(signal), &type_signal, validate_any }, { C(smtp_server), &type_string, validate_any }, @@ -983,7 +983,7 @@ static const struct conf conf[] = { static const struct conf *find(const char *key) { int n; - if((n = TABLE_FIND(conf, struct conf, name, key)) < 0) + if((n = TABLE_FIND(conf, name, key)) < 0) return 0; return &conf[n]; } @@ -1191,9 +1191,13 @@ static struct config *config_default(void) { c->dbversion = 2; c->cookie_login_lifetime = 86400; c->cookie_key_lifetime = 86400 * 7; + if(sendmail_binary[0] && strcmp(sendmail_binary, "none")) + c->sendmail = xstrdup(sendmail_binary); c->smtp_server = xstrdup("127.0.0.1"); c->new_max = 100; c->reminder_interval = 600; /* 10m */ + c->new_bias_age = 7 * 86400; /* 1 week */ + c->new_bias = 9000000; /* 100 times the base weight */ /* Default stopwords */ if(config_set(&cs, (int)NDEFAULT_STOPWORDS, (char **)default_stopwords)) exit(1); @@ -1279,17 +1283,8 @@ static void config_postdefaults(struct config *c, c->api = BACKEND_COMMAND; else if(c->broadcast.n) c->api = BACKEND_NETWORK; - else { -#if HAVE_ALSA_ASOUNDLIB_H - c->api = BACKEND_ALSA; -#elif HAVE_SYS_SOUNDCARD_H - c->api = BACKEND_OSS; -#elif HAVE_COREAUDIO_AUDIOHARDWARE_H - c->api = BACKEND_COREAUDIO; -#else - c->api = BACKEND_COMMAND; -#endif - } + else + c->api = DEFAULT_BACKEND; } if(server) { if(c->api == BACKEND_COMMAND && !c->speaker_command)