X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/61941295f0eb457edc89f0337f732ff071838b6a..a05e4467dee55248f2135dcb532b4729154d69c5:/lib/configuration.c diff --git a/lib/configuration.c b/lib/configuration.c index 90ff371..2dcf8f9 100644 --- a/lib/configuration.c +++ b/lib/configuration.c @@ -1,6 +1,7 @@ /* * 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 @@ -59,6 +60,12 @@ */ 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 */ @@ -1180,19 +1187,21 @@ int config_read(int server) { 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 */