/*
* This file is part of DisOrder.
* Copyright (C) 2004, 2005, 2006, 2007 Richard Kettlewell
+ * Portions copyright (C) 2007 Mark Wooding
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*/
char *configfile;
+/** @brief Read user configuration
+ *
+ * If clear, the user-specific configuration is not read.
+ */
+int config_per_user = 1;
+
/** @brief Config file parser state */
struct config_state {
/** @brief Filename */
struct stringlistlist *sll;
sll = ADDRESS(cs->config, struct stringlistlist);
+ if(nvec == 0) {
+ sll->n = 0;
+ return 0;
+ }
sll->n++;
sll->s = xrealloc(sll->s, (sll->n * sizeof (struct stringlist)));
s = &sll->s[sll->n - 1];
struct stringlist *sl;
sl = ADDRESS(cs->config, struct stringlist);
+ if(nvec == 0) {
+ sl->n = 0;
+ return 0;
+ }
for(n = 0; n < nvec; ++n) {
sl->n++;
sl->s = xrealloc(sl->s, (sl->n * sizeof (char *)));
{ C(listen), &type_stringlist, validate_port },
{ C(lock), &type_boolean, validate_any },
{ C(mixer), &type_string, validate_ischr },
+ { C(multicast_loop), &type_boolean, validate_any },
{ C(multicast_ttl), &type_integer, validate_non_negative },
{ C(namepart), &type_namepart, validate_any },
{ C2(nice, nice_rescan), &type_integer, validate_non_negative },
c->queue_pad = 10;
c->speaker_backend = -1;
c->multicast_ttl = 1;
+ c->multicast_loop = 1;
c->authorization_algorithm = xstrdup("sha1");
c->noticed_history = 31;
c->short_display = 32;
return -1;
xfree(privconf);
/* if there's a per-user system config file for this user, read it */
- if(!(pw = getpwuid(getuid())))
- fatal(0, "cannot determine our username");
- if((privconf = config_usersysconf(pw))
- && access(privconf, F_OK) == 0
- && config_include(c, privconf))
+ if(config_per_user) {
+ if(!(pw = getpwuid(getuid())))
+ fatal(0, "cannot determine our username");
+ if((privconf = config_usersysconf(pw))
+ && access(privconf, F_OK) == 0
+ && config_include(c, privconf))
return -1;
- xfree(privconf);
- /* if we have a password file, read it */
- if((privconf = config_userconf(getenv("HOME"), pw))
- && access(privconf, F_OK) == 0
- && config_include(c, privconf))
- return -1;
- xfree(privconf);
+ xfree(privconf);
+ /* if we have a password file, read it */
+ if((privconf = config_userconf(getenv("HOME"), pw))
+ && access(privconf, F_OK) == 0
+ && config_include(c, privconf))
+ return -1;
+ xfree(privconf);
+ }
/* install default namepart and transform settings */
config_postdefaults(c, server);
/* everything is good so we shall use the new config */