From fb93862c3c47914c79a8109e4b0ce9fc1b7ce726 Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Thu, 4 Jun 2020 20:07:30 +0100 Subject: [PATCH 1/1] lib/configuration.c, etc.: Remove arguments from `config_userconf'. Organization: Straylight/Edgeware From: Mark Wooding 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. --- disobedience/login.c | 2 +- lib/configuration.c | 9 +++++---- lib/configuration.h | 5 ++--- 3 files changed, 8 insertions(+), 8 deletions(-) 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 */ -- [mdw]