]> arthur.barton.de Git - netatalk.git/blobdiff - libatalk/util/netatalk_conf.c
home name must contain $u
[netatalk.git] / libatalk / util / netatalk_conf.c
index 787c8d2d8149ae89412daf1abf86368cbfe07857..a346184375adb213f1fbbd3641c22ecb59301dbb 100644 (file)
@@ -1024,10 +1024,12 @@ static int readvolfile(AFPObj *obj, const struct passwd *pwent)
 
         /* do variable substitution for volume name */
         if (STRCMP(secname, ==, INISEC_HOMES)) {
-            if (p = iniparser_getstring(obj->iniconfig, INISEC_HOMES, "home name", "$u's home"))
-                strlcpy(tmp, p, MAXPATHLEN);
-            else
-                strlcpy(tmp, p, MAXPATHLEN);
+            p = iniparser_getstring(obj->iniconfig, INISEC_HOMES, "home name", "$u's home");
+            if (strstr(p, "$u") == NULL) {
+                LOG(log_warning, logtype_afpd, "home name must contain $u.");
+                p = "$u's home";
+            }
+            strlcpy(tmp, p, MAXPATHLEN);
         } else {
             strlcpy(tmp, secname, AFPVOL_U8MNAMELEN);
         }
@@ -1359,6 +1361,8 @@ struct vol *getvolbypath(AFPObj *obj, const char *path)
 
     /* do variable substitution for volume name */
     p = iniparser_getstring(obj->iniconfig, INISEC_HOMES, "home name", "$u's home");
+    if (strstr(p, "$u") == NULL)
+        p = "$u's home";
     strlcpy(tmpbuf, p, AFPVOL_U8MNAMELEN);
     EC_NULL_LOG( volxlate(obj, volname, sizeof(volname) - 1, tmpbuf, pw, volpath, NULL) );
 
@@ -1430,14 +1434,14 @@ int afp_config_parse(AFPObj *AFPObj, char *processname)
         options->flags |= OPTION_CUSTOMICON;
     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, "map acls", 1))
+        options->flags |= OPTION_ACL2MACCESS;
     if (iniparser_getboolean(config, INISEC_GLOBAL, "keep sessions", 0))
         options->flags |= OPTION_KEEPSESSIONS;
     if (iniparser_getboolean(config, INISEC_GLOBAL, "close vol", 0))
         options->flags |= OPTION_CLOSEVOL;
-    if (iniparser_getboolean(config, INISEC_GLOBAL, "client polling", 0))
-        options->flags &= ~OPTION_SERVERNOTIF;
+    if (!iniparser_getboolean(config, INISEC_GLOBAL, "client polling", 0))
+        options->flags |= OPTION_SERVERNOTIF;
     if (!iniparser_getboolean(config, INISEC_GLOBAL, "use sendfile", 1))
         options->flags |= OPTION_NOSENDFILE;
     if (iniparser_getboolean(config, INISEC_GLOBAL, "solaris share reservations", 1))