From: Ralph Boehme Date: Sat, 1 Mar 2014 06:00:29 +0000 (+0100) Subject: Run dbpath through variable substitution X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=netatalk.git;a=commitdiff_plain;h=f4154759d91c6c47deddc8f1af948421d48407fb Run dbpath through variable substitution --- diff --git a/libatalk/util/netatalk_conf.c b/libatalk/util/netatalk_conf.c index 43d31fb8..78c8f331 100644 --- a/libatalk/util/netatalk_conf.c +++ b/libatalk/util/netatalk_conf.c @@ -668,14 +668,19 @@ static struct vol *creatvol(AFPObj *obj, if(tmpname[i] == '/') tmpname[i] = ':'; - if (!atalk_iniparser_getboolean(obj->iniconfig, INISEC_GLOBAL, "vol dbnest", 0)) { + if (atalk_iniparser_getboolean(obj->iniconfig, INISEC_GLOBAL, "vol dbnest", 0)) { + EC_NULL( volume->v_dbpath = strdup(path) ); + } else { bstring dbpath; - EC_NULL( val = atalk_iniparser_getstring(obj->iniconfig, INISEC_GLOBAL, "vol dbpath", _PATH_STATEDIR "CNID/") ); - EC_NULL( dbpath = bformat("%s/%s/", val, tmpname) ); - EC_NULL( volume->v_dbpath = strdup(cfrombstr(dbpath)) ); + val = atalk_iniparser_getstring(obj->iniconfig, section, "vol dbpath", NULL); + if (val == NULL) { + EC_NULL( dbpath = bformat("%s/%s/", _PATH_STATEDIR "CNID/", tmpname) ); + } else { + EC_NULL( dbpath = bfromcstr(val)); + } + EC_NULL( volume->v_dbpath = volxlate(obj, NULL, MAXPATHLEN + 1, + cfrombstr(dbpath), pwd, NULL, NULL) ); bdestroy(dbpath); - } else { - EC_NULL( volume->v_dbpath = strdup(path) ); } if ((val = getoption(obj->iniconfig, section, "cnid scheme", preset, NULL)))