From: Mark Wooding Date: Thu, 4 Jun 2020 19:07:30 +0000 (+0100) Subject: lib/configuration.c, etc.: Remove arguments from `config_userconf'. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/commitdiff_plain/fb93862c3c47914c79a8109e4b0ce9fc1b7ce726?hp=53a4a6fdcc52280765216ff019cf77b85ec48c18 lib/configuration.c, etc.: Remove arguments from `config_userconf'. Nobody ever did anything with the HOME argument at all. Passing in PW might have been slightly valuable, but configuration is only retrieved infrequently. Besides, this is the start of a sequence of changes to how configuration files are found. --- diff --git a/disobedience/login.c b/disobedience/login.c index 0c6e7d7..ae5f415 100644 --- a/disobedience/login.c +++ b/disobedience/login.c @@ -156,7 +156,7 @@ static void login_update_config(struct config *c) { /** @brief Save current login details */ static void login_save_config(void) { - char *path = config_userconf(0, 0), *tmp; + char *path = config_userconf(), *tmp; FILE *fp; byte_xasprintf(&tmp, "%s.tmp", path); diff --git a/lib/configuration.c b/lib/configuration.c index bd9c65d..b5561dc 100644 --- a/lib/configuration.c +++ b/lib/configuration.c @@ -1606,7 +1606,7 @@ int config_read(int server, xfree(privconf); #endif /* if we have a password file, read it */ - if((privconf = config_userconf(0, pw)) + if((privconf = config_userconf()) && access(privconf, F_OK) == 0 && config_include(c, privconf)) return -1; @@ -1672,7 +1672,7 @@ char *config_private(void) { } /** @brief Return the path to user's personal configuration file */ -char *config_userconf(const char *home, const struct passwd *pw) { +char *config_userconf(void) { char *s; #if _WIN32 wchar_t *wpath = 0; @@ -1683,9 +1683,10 @@ char *config_userconf(const char *home, const struct passwd *pw) { CoTaskMemFree(wpath); byte_xasprintf(&s, "%s\\DisOrder\\passwd", appdata); #else - if(!home && !pw && !(pw = getpwuid(getuid()))) + struct passwd *pw; + if(!(pw = getpwuid(getuid()))) disorder_fatal(0, "cannot determine our username"); - byte_xasprintf(&s, "%s/.disorder/passwd", home ? home : pw->pw_dir); + byte_xasprintf(&s, "%s/.disorder/passwd", pw->pw_dir); #endif return s; } diff --git a/lib/configuration.h b/lib/configuration.h index 284ae7a..46a6272 100644 --- a/lib/configuration.h +++ b/lib/configuration.h @@ -342,9 +342,8 @@ char *config_get_file(const char *name); struct passwd; -char *config_userconf(const char *home, const struct passwd *pw); -/* get the user's own private conffile, assuming their home dir is - * @home@ if not null and using @pw@ otherwise */ +char *config_userconf(void); +/* get the user's own private conffile */ char *config_usersysconf(const struct passwd *pw ); /* get the user's conffile in /etc */