X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/d6ea854ab50aedf15bda9ad18f46ca80b50582a8..63ad732fd2031c8775ddf98cd538c8759c4537df:/lib/configuration.c diff --git a/lib/configuration.c b/lib/configuration.c index 85e84a5..2dcf8f9 100644 --- a/lib/configuration.c +++ b/lib/configuration.c @@ -60,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 */ @@ -1181,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 */