]> arthur.barton.de Git - netatalk.git/blobdiff - etc/afpd/volume.c
Merge branch 'product-2-2' of git://github.com/franklahm/Netatalk into alex-master
[netatalk.git] / etc / afpd / volume.c
index c6504ad15e9bb95d2998c72d588e3a291ddb657d..8079966310bf68a37cad2285e278545eab23652d 100644 (file)
@@ -146,10 +146,10 @@ typedef struct _special_folder {
 } _special_folder;
 
 static const _special_folder special_folders[] = {
-    {"Network Trash Folder",     1,  0777,  1},
-    {"Temporary Items",          1,  0777,  1},
     {".AppleDesktop",            1,  0777,  0},
 #if 0
+    {"Network Trash Folder",     1,  0777,  1},
+    {"Temporary Items",          1,  0777,  1},
     {"TheFindByContentFolder",   0,     0,  1},
     {"TheVolumeSettingsFolder",  0,     0,  1},
 #endif
@@ -513,6 +513,8 @@ static void volset(struct vol_option *options, struct vol_option *save,
                 options[VOLOPT_FLAGS].i_value |= AFPVOL_NONETIDS;
             else if (strcasecmp(p, "noacls") == 0)
                 options[VOLOPT_FLAGS].i_value &= ~AFPVOL_ACLS;
+            else if (strcasecmp(p, "followsymlinks") == 0)
+                options[VOLOPT_FLAGS].i_value |= AFPVOL_FOLLOWSYM;
             p = strtok(NULL, ",");
         }
 
@@ -778,6 +780,8 @@ static int creatvol(AFPObj *obj, struct passwd *pwd,
             volume->v_ad_options |= ADVOL_INVDOTS;
         if ((volume->v_flags & AFPVOL_NOADOUBLE))
             volume->v_ad_options |= ADVOL_NOADOUBLE;
+        if ((volume->v_flags & AFPVOL_FOLLOWSYM))
+            volume->v_ad_options |= ADVOL_FOLLO_SYML;
 
         if (options[VOLOPT_PASSWORD].c_value)
             volume->v_password = strdup(options[VOLOPT_PASSWORD].c_value);