X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libatalk%2Futil%2Fnetatalk_conf.c;h=ce06b9d8a9fd7e28fd063ca74adda7caf0fce03f;hb=f6880d95f390585810c679d071aa8310248afc85;hp=53c29e2814fc7113572d9ff8ca5aecd73a5f2439;hpb=42eb54de3f6373cd394fbd6abfb86d85c8dde935;p=netatalk.git diff --git a/libatalk/util/netatalk_conf.c b/libatalk/util/netatalk_conf.c index 53c29e28..ce06b9d8 100644 --- a/libatalk/util/netatalk_conf.c +++ b/libatalk/util/netatalk_conf.c @@ -801,6 +801,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 +1717,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)) @@ -1768,6 +1768,18 @@ int afp_config_parse(AFPObj *AFPObj, char *processname) 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) ); } else {