From a0227e806216f6e6795155b6e00ecc40bb82809e Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Thu, 15 Jul 2004 20:15:26 +0000 Subject: deal with user and ~ in config file more nicely git-svn-id: https://svn.musicpd.org/mpd/trunk@1871 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/conf.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/conf.c b/src/conf.c index dbeb11fb5..c92546023 100644 --- a/src/conf.c +++ b/src/conf.c @@ -232,11 +232,25 @@ char ** readConf(char * file) { if(conf_params[conf_absolutePaths[i]][1]=='/' || conf_params[conf_absolutePaths[i]][1]=='\0') { - uid_t uid = geteuid(); - if((pwd = getpwuid(uid)) == NULL) { - ERROR("problems getting passwd entry " - "for current user\n"); - exit(EXIT_FAILURE); + if(conf_params[CONF_USER] && + strlen(conf_params[CONF_USER])) + { + pwd = getpwnam( + conf_params[CONF_USER]); + if(!pwd) { + ERROR("no such user: %s\n", + conf_params[CONF_USER]); + exit(EXIT_FAILURE); + } + } + else { + uid_t uid = geteuid(); + if((pwd = getpwuid(uid)) == NULL) { + ERROR("problems getting passwd " + "entry " + "for current user\n"); + exit(EXIT_FAILURE); + } } } else { -- cgit v1.2.3