]> arthur.barton.de Git - netatalk.git/blobdiff - etc/afpd/directory.c
Reintroduce adouble file creation on enumeration
[netatalk.git] / etc / afpd / directory.c
index 8c65d9d8730d3e6399439ebafa99426461c913af..9917dd43358173c6e0a0fed5e3757b495476d325 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: directory.c,v 1.123 2010-01-05 15:12:19 franklahm Exp $
+ * $Id: directory.c,v 1.125 2010-01-06 11:08:53 franklahm Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * All Rights Reserved.  See COPYRIGHT.
@@ -988,6 +988,7 @@ adddir(struct vol *vol, struct dir *dir, struct path *path)
         dirfreename(edir);
         edir->d_m_name = cdir->d_m_name;
         edir->d_u_name = cdir->d_u_name;
+        edir->d_u_name_len = cdir->d_u_name_len;
         edir->d_m_name_ucs2 = cdir->d_m_name_ucs2;
         free(cdir);
         cdir = edir;
@@ -1645,7 +1646,7 @@ int getdirparams(const struct vol *vol,
                    (1 << DIRPBIT_FINFO)))) {
 
         ad_init(&ad, vol->v_adouble, vol->v_ad_options);
-        if ( !ad_metadata( upath, ADFLAGS_DIR, &ad) ) {
+        if ( !ad_metadata( upath, ADFLAGS_CREATE|ADFLAGS_DIR, &ad) ) {
             isad = 1;
         }
     }
@@ -2535,6 +2536,7 @@ int renamedir(const struct vol *vol, char *src, char *dst,
         dir->d_u_name = buf;
         strcpy( dir->d_u_name, dst );
     }
+    dir->d_u_name_len = strlen(dir->d_u_name);
 
     if (dir->d_m_name_ucs2)
         free(dir->d_m_name_ucs2);