X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=netatalk.git;a=blobdiff_plain;f=libatalk%2Futil%2Fnetatalk_conf.c;h=8b26ee8923b66fe2754e29664f113c02fb9d3292;hp=53c29e2814fc7113572d9ff8ca5aecd73a5f2439;hb=952a2d8e011254243e5c3707ef857eab01625f93;hpb=42eb54de3f6373cd394fbd6abfb86d85c8dde935 diff --git a/libatalk/util/netatalk_conf.c b/libatalk/util/netatalk_conf.c index 53c29e28..8b26ee89 100644 --- a/libatalk/util/netatalk_conf.c +++ b/libatalk/util/netatalk_conf.c @@ -772,6 +772,8 @@ static struct vol *creatvol(AFPObj *obj, volume->v_flags |= AFPVOL_NOV2TOEACONV; if (getoption_bool(obj->iniconfig, section, "follow symlinks", preset, 0)) volume->v_flags |= AFPVOL_FOLLOWSYM; + if (getoption_bool(obj->iniconfig, section, "spotlight", preset, 0)) + volume->v_flags |= AFPVOL_SPOTLIGHT; if (getoption_bool(obj->iniconfig, section, "preexec close", preset, 0)) volume->v_preexec_close = 1; @@ -801,6 +803,8 @@ static struct vol *creatvol(AFPObj *obj, volume->v_ad_options |= ADVOL_INVDOTS; if ((volume->v_flags & AFPVOL_FOLLOWSYM)) volume->v_ad_options |= ADVOL_FOLLO_SYML; + if ((volume->v_flags & AFPVOL_RO)) + volume->v_ad_options |= ADVOL_RO; /* Mac to Unix conversion flags*/ if ((volume->v_flags & AFPVOL_EILSEQ)) @@ -1715,8 +1719,6 @@ int afp_config_parse(AFPObj *AFPObj, char *processname) options->flags |= OPTION_NOZEROCONF; if (iniparser_getboolean(config, INISEC_GLOBAL, "advertise ssh", 0)) options->flags |= OPTION_ANNOUNCESSH; - if (iniparser_getboolean(config, INISEC_GLOBAL, "map acls", 1)) - options->flags |= OPTION_ACL2MACCESS; if (iniparser_getboolean(config, INISEC_GLOBAL, "close vol", 0)) options->flags |= OPTION_CLOSEVOL; if (!iniparser_getboolean(config, INISEC_GLOBAL, "client polling", 0)) @@ -1748,6 +1750,7 @@ int afp_config_parse(AFPObj *AFPObj, char *processname) options->k5service = iniparser_getstrdup(config, INISEC_GLOBAL, "k5 service", NULL); options->k5realm = iniparser_getstrdup(config, INISEC_GLOBAL, "k5 realm", NULL); options->listen = iniparser_getstrdup(config, INISEC_GLOBAL, "afp listen", NULL); + options->interfaces = iniparser_getstrdup(config, INISEC_GLOBAL, "afp interfaces", NULL); options->ntdomain = iniparser_getstrdup(config, INISEC_GLOBAL, "nt domain", NULL); options->addomain = iniparser_getstrdup(config, INISEC_GLOBAL, "ad domain", NULL); options->ntseparator = iniparser_getstrdup(config, INISEC_GLOBAL, "nt separator", NULL); @@ -1766,7 +1769,18 @@ int afp_config_parse(AFPObj *AFPObj, char *processname) options->fce_fmodwait = iniparser_getint (config, INISEC_GLOBAL, "fce holdfmod", 60); options->sleep = iniparser_getint (config, INISEC_GLOBAL, "sleep time", 10); options->disconnected = iniparser_getint (config, INISEC_GLOBAL, "disconnect time",24); - options->tracker_loglevel = iniparser_getint (config, INISEC_GLOBAL, "tracker loglevel", 1); + + p = iniparser_getstring(config, INISEC_GLOBAL, "map acls", "rights"); + if (STRCMP(p, ==, "rights")) + options->flags |= OPTION_ACL2MACCESS; + else if (STRCMP(p, ==, "mode")) + options->flags |= OPTION_ACL2MODE | OPTION_ACL2MACCESS; + else { + if (STRCMP(p, !=, "none")) { + LOG(log_error, logtype_afpd, "bad ACL mapping option: %s, defaulting to 'rights'", p); + options->flags |= OPTION_ACL2MACCESS; + } + } if ((p = iniparser_getstring(config, INISEC_GLOBAL, "hostname", NULL))) { EC_NULL_LOG( options->hostname = strdup(p) ); @@ -1938,6 +1952,8 @@ void afp_config_free(AFPObj *obj) CONFIG_ARG_FREE(obj->options.k5realm); if (obj->options.listen) CONFIG_ARG_FREE(obj->options.listen); + if (obj->options.interfaces) + CONFIG_ARG_FREE(obj->options.interfaces); if (obj->options.ntdomain) CONFIG_ARG_FREE(obj->options.ntdomain); if (obj->options.addomain)