EC_EXIT;
}
-#ifdef HAVE_SOLARIS_ACLS
+#ifdef HAVE_NFSV4_ACLS
static int RF_solaris_acl(VFS_FUNC_ARGS_ACL)
{
static char buf[ MAXPATHLEN + 1];
static int deletecurdir_ea_osx_loop(const struct vol *vol, struct dirent *de, char *name, void *data _U_, int flag _U_)
{
int ret;
-
- if ((ret = netatalk_unlink(name)) != 0)
- return ret;
+ struct stat sb;
+
+ if (strncmp(name, "._", strlen("._")) == 0) {
+ if (lstat(name, &sb) != 0)
+ return -1;
+ if (S_ISREG(sb.st_mode))
+ if ((ret = netatalk_unlink(name)) != 0)
+ return ret;
+ }
return 0;
}
#ifndef HAVE_EAFD
int err;
/* delete stray ._AppleDouble files */
-
- /* first check if there's really no other file besides files starting with ._ */
- if ((err = for_each_adouble("deletecurdir_ea_osx", ".",
- deletecurdir_ea_osx_chkifempty_loop,
- vol, NULL, 0)) != 0) {
- if (err == 1)
- return AFPERR_DIRNEMPT;
- return AFPERR_MISC;
- }
-
- /* Now delete orphaned ._ files */
if ((err = for_each_adouble("deletecurdir_ea_osx", ".",
deletecurdir_ea_osx_loop,
vol, NULL, 0)) != 0)
* Tertiary VFS modules for ACLs
*/
-#ifdef HAVE_SOLARIS_ACLS
+#ifdef HAVE_NFSV4_ACLS
static struct vfs_ops netatalk_solaris_acl_adouble = {
/* validupath: */ NULL,
/* rf_chown: */ NULL,
}
/* ACLs */
-#ifdef HAVE_SOLARIS_ACLS
+#ifdef HAVE_NFSV4_ACLS
vol->vfs_modules[2] = &netatalk_solaris_acl_adouble;
#endif
#ifdef HAVE_POSIX_ACLS