diff options
author | Warren Dukes <warren.dukes@gmail.com> | 2004-07-15 20:15:26 +0000 |
---|---|---|
committer | Warren Dukes <warren.dukes@gmail.com> | 2004-07-15 20:15:26 +0000 |
commit | a0227e806216f6e6795155b6e00ecc40bb82809e (patch) | |
tree | 68a6f211c882b9111a9124c034fc70e39fef1241 /src | |
parent | e33dcb9bd4125dacea6c3a2a539f1c04961027e7 (diff) | |
download | mpd-a0227e806216f6e6795155b6e00ecc40bb82809e.tar.gz mpd-a0227e806216f6e6795155b6e00ecc40bb82809e.tar.xz mpd-a0227e806216f6e6795155b6e00ecc40bb82809e.zip |
deal with user and ~ in config file more nicely
git-svn-id: https://svn.musicpd.org/mpd/trunk@1871 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to 'src')
-rw-r--r-- | src/conf.c | 24 |
1 files 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 { |