X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libatalk%2Futil%2Fnetatalk_conf.c;h=fa6fb8b57ca2084a95bf055af256fffd784b5e33;hb=f254fd618b53e97cc5382b23709d4f3de1e70b41;hp=e1dec578911292b6afd588ab02651d1392c85700;hpb=0d6051d260174a9b8ad3e9457d91aa97e39430c2;p=netatalk.git diff --git a/libatalk/util/netatalk_conf.c b/libatalk/util/netatalk_conf.c index e1dec578..fa6fb8b5 100644 --- a/libatalk/util/netatalk_conf.c +++ b/libatalk/util/netatalk_conf.c @@ -232,7 +232,7 @@ static int check_vol_acl_support(const struct vol *vol) { int ret = 0; -#ifdef HAVE_SOLARIS_ACLS +#ifdef HAVE_NFSV4_ACLS ace_t *aces = NULL; ret = 1; if (get_nfsv4_acl(vol->v_path, &aces) == -1) @@ -245,7 +245,7 @@ static int check_vol_acl_support(const struct vol *vol) ret = 0; #endif -#ifdef HAVE_SOLARIS_ACLS +#ifdef HAVE_NFSV4_ACLS if (aces) free(aces); #endif #ifdef HAVE_POSIX_ACLS @@ -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) ); @@ -776,6 +781,8 @@ static struct vol *creatvol(AFPObj *obj, volume->v_flags |= AFPVOL_SPOTLIGHT; obj->options.flags |= OPTION_SPOTLIGHT; } + if (getoption_bool(obj->iniconfig, section, "delete veto files", preset, 0)) + volume->v_flags |= AFPVOL_DELVETO; if (getoption_bool(obj->iniconfig, section, "preexec close", preset, 0)) volume->v_preexec_close = 1; @@ -1757,6 +1764,8 @@ int afp_config_parse(AFPObj *AFPObj, char *processname) options->flags |= OPTION_SERVERNOTIF; if (!atalk_iniparser_getboolean(config, INISEC_GLOBAL, "use sendfile", 1)) options->flags |= OPTION_NOSENDFILE; + if (atalk_iniparser_getboolean(config, INISEC_GLOBAL, "recvfile", 0)) + options->flags |= OPTION_RECVFILE; if (atalk_iniparser_getboolean(config, INISEC_GLOBAL, "solaris share reservations", 1)) options->flags |= OPTION_SHARE_RESERV; if (atalk_iniparser_getboolean(config, INISEC_GLOBAL, "afpstats", 0)) @@ -1765,6 +1774,8 @@ int afp_config_parse(AFPObj *AFPObj, char *processname) options->flags |= OPTION_AFP_READ_LOCK; if (atalk_iniparser_getboolean(config, INISEC_GLOBAL, "spotlight", 0)) options->flags |= OPTION_SPOTLIGHT_VOL; + if (atalk_iniparser_getboolean(config, INISEC_GLOBAL, "veto message", 0)) + options->flags |= OPTION_VETOMSG; if (!atalk_iniparser_getboolean(config, INISEC_GLOBAL, "save password", 1)) options->passwdbits |= PASSWD_NOSAVE; if (atalk_iniparser_getboolean(config, INISEC_GLOBAL, "set password", 0)) @@ -1789,6 +1800,10 @@ int afp_config_parse(AFPObj *AFPObj, char *processname) options->mimicmodel = atalk_iniparser_getstrdup(config, INISEC_GLOBAL, "mimic model", NULL); options->adminauthuser = atalk_iniparser_getstrdup(config, INISEC_GLOBAL, "admin auth user",NULL); options->ignored_attr = atalk_iniparser_getstrdup(config, INISEC_GLOBAL, "ignored attributes", NULL); + options->cnid_mysql_host = atalk_iniparser_getstrdup(config, INISEC_GLOBAL, "cnid mysql host", NULL); + options->cnid_mysql_user = atalk_iniparser_getstrdup(config, INISEC_GLOBAL, "cnid mysql user", NULL); + options->cnid_mysql_pw = atalk_iniparser_getstrdup(config, INISEC_GLOBAL, "cnid mysql pw", NULL); + options->cnid_mysql_db = atalk_iniparser_getstrdup(config, INISEC_GLOBAL, "cnid mysql db", NULL); options->connections = atalk_iniparser_getint (config, INISEC_GLOBAL, "max connections",200); options->passwdminlen = atalk_iniparser_getint (config, INISEC_GLOBAL, "passwd minlen", 0); options->tickleval = atalk_iniparser_getint (config, INISEC_GLOBAL, "tickleval", 30); @@ -1802,6 +1817,7 @@ int afp_config_parse(AFPObj *AFPObj, char *processname) options->fce_fmodwait = atalk_iniparser_getint (config, INISEC_GLOBAL, "fce holdfmod", 60); options->sleep = atalk_iniparser_getint (config, INISEC_GLOBAL, "sleep time", 10); options->disconnected = atalk_iniparser_getint (config, INISEC_GLOBAL, "disconnect time",24); + options->splice_size = atalk_iniparser_getint (config, INISEC_GLOBAL, "splice size", 64*1024); p = atalk_iniparser_getstring(config, INISEC_GLOBAL, "map acls", "rights"); if (STRCMP(p, ==, "rights")) @@ -1983,6 +1999,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)