]> arthur.barton.de Git - netatalk.git/blobdiff - bin/ad/ad_util.c
Support for home dirs
[netatalk.git] / bin / ad / ad_util.c
index d7e9fee50dffbbb9fc31548e751268d19e036665..0143a1e4c7abb635c4e8e5c6f4cbdd19d5e204c2 100644 (file)
 #include <atalk/logger.h>
 #include <atalk/errchk.h>
 #include <atalk/unicode.h>
+#include <atalk/globals.h>
 #include <atalk/netatalk_conf.h>
 
+
 #include "ad.h"
 
 int log_verbose;             /* Logging flag */
@@ -96,21 +98,21 @@ void _log(enum logtype lt, char *fmt, ...)
  *
  * @returns 0 on success, exits on error
  */
-int openvol(const char *path, afpvol_t *vol)
+int openvol(AFPObj *obj, const char *path, afpvol_t *vol)
 {
     int flags = 0;
 
     memset(vol, 0, sizeof(afpvol_t));
 
-    /* try to find a .AppleDesktop/.volinfo */
-    if ((vol->vol = getvolbypath(path)) == NULL)
+    if ((vol->vol = getvolbypath(obj, path)) == NULL)
         return -1;
 
     if (STRCMP(vol->vol->v_cnidscheme, != , "dbd"))
         ERROR("\"%s\" isn't a \"dbd\" CNID volume!", vol->vol->v_path);
 
     /* Sanity checks to ensure we can touch this volume */
-    if (vol->vol->v_adouble != AD_VERSION2)
+    if (vol->vol->v_adouble != AD_VERSION2
+        && vol->vol->v_adouble != AD_VERSION_EA)
         ERROR("Unsupported adouble versions: %u", vol->vol->v_adouble);
 
     if (vol->vol->v_vfs_ea != AFPVOL_EA_SYS)