X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=netatalk.git;a=blobdiff_plain;f=libatalk%2Futil%2Fnetatalk_conf.c;h=5ad325693c1ccd46668cee3c560318fb21696920;hp=d6fb4a17c03a8a681e3644a558bc8b687cd18dac;hb=130d356c840ea83c31c4724c8ae92660360eb07b;hpb=8da0f366ed162f10b4a34b98e57e5273c7bc9b4d diff --git a/libatalk/util/netatalk_conf.c b/libatalk/util/netatalk_conf.c index d6fb4a17..5ad32569 100644 --- a/libatalk/util/netatalk_conf.c +++ b/libatalk/util/netatalk_conf.c @@ -667,11 +667,16 @@ static struct vol *creatvol(AFPObj *obj, for(i = 0; i < vlen; i++) if(tmpname[i] == '/') tmpname[i] = ':'; - 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)) ); - bdestroy(dbpath); + + if (!atalk_iniparser_getboolean(obj->iniconfig, INISEC_GLOBAL, "vol dbnest", 0)) { + 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)) ); + bdestroy(dbpath); + } else { + EC_NULL( volume->v_dbpath = strdup(path) ); + } if ((val = getoption(obj->iniconfig, section, "cnid scheme", preset, NULL))) EC_NULL( volume->v_cnidscheme = strdup(val) ); @@ -1987,6 +1992,8 @@ void afp_config_free(AFPObj *obj) CONFIG_ARG_FREE(obj->options.k5service); if (obj->options.k5realm) CONFIG_ARG_FREE(obj->options.k5realm); + if (obj->options.k5principal) + CONFIG_ARG_FREE(obj->options.k5principal); if (obj->options.listen) CONFIG_ARG_FREE(obj->options.listen); if (obj->options.interfaces)