1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

vfs_fruit: add and use is_adouble_file()

This adds a helper function that checks whether the last component of a path is
an AppleDouble sidecar file with "._" name prefix.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=13968

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
Ralph Boehme 2019-05-21 11:39:18 +02:00 committed by Jeremy Allison
parent e266daaed1
commit ad70c947c7

View File

@ -2174,6 +2174,27 @@ static bool is_apple_stream(const struct smb_filename *smb_fname)
return false;
}
static bool is_adouble_file(const char *path)
{
const char *p = NULL;
int match;
p = strrchr(path, '/');
if (p == NULL) {
p = path;
} else {
p++;
}
match = strncmp(p,
ADOUBLE_NAME_PREFIX,
strlen(ADOUBLE_NAME_PREFIX));
if (match != 0) {
return false;
}
return true;
}
/**
* Initialize config struct from our smb.conf config parameters
**/
@ -4227,16 +4248,12 @@ static int fruit_rmdir(struct vfs_handle_struct *handle,
}
while ((de = SMB_VFS_READDIR(handle->conn, dh, NULL)) != NULL) {
int match;
struct adouble *ad = NULL;
char *p = NULL;
struct smb_filename *ad_smb_fname = NULL;
int ret;
match = strncmp(de->d_name,
ADOUBLE_NAME_PREFIX,
strlen(ADOUBLE_NAME_PREFIX));
if (match != 0) {
if (!is_adouble_file(de->d_name)) {
continue;
}