From 99960a522416d95e0c25cff7ef01c07914e570da Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Thu, 19 Jan 2017 09:30:45 +0100 Subject: [PATCH] vfs_fruit: only veto AppleDouble files with fruit:resource=file vfs_fruit only creates AppleDouble files itself when "fruit:resource" is set to "file" (the default). It is only then the these AppleDouble files should be treated as an internal representation and should be inaccessible from clients. Bug: https://bugzilla.samba.org/show_bug.cgi?id=12526> Signed-off-by: Ralph Boehme Reviewed-by: Uri Simchoni (cherry picked from commit 708767da8c366c021d6d15a3ae71d009357c3320) --- docs-xml/manpages/vfs_fruit.8.xml | 12 ++++++++---- source3/modules/vfs_fruit.c | 9 ++++++--- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/docs-xml/manpages/vfs_fruit.8.xml b/docs-xml/manpages/vfs_fruit.8.xml index fe576a5..fa86b6f 100644 --- a/docs-xml/manpages/vfs_fruit.8.xml +++ b/docs-xml/manpages/vfs_fruit.8.xml @@ -224,10 +224,14 @@ fruit:veto_appledouble = yes | no - Whether ._ AppleDouble files are vetoed which - prevents the client from seing and accessing internal - AppleDouble files created by vfs_fruit itself for the - purpose of storing a Mac resource fork. + Note: this option only applies when + fruit:resource is set to + file (the default). + + When fruit:resource is set to + file, vfs_fruit may create ._ AppleDouble + files. This options controls whether these ._ AppleDouble files + are vetoed which prevents the client from accessing them. Vetoing ._ files may break some applications, eg extracting Mac ZIP archives from Mac clients failes, because they contain ._ files. Setting this option to diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c index f1283c8..773d0cb 100644 --- a/source3/modules/vfs_fruit.c +++ b/source3/modules/vfs_fruit.c @@ -1568,9 +1568,12 @@ static int init_fruit_config(vfs_handle_struct *handle) } config->encoding = (enum fruit_encoding)enumval; - config->veto_appledouble = lp_parm_bool( - SNUM(handle->conn), FRUIT_PARAM_TYPE_NAME, - "veto_appledouble", true); + if (config->rsrc == FRUIT_RSRC_ADFILE) { + config->veto_appledouble = lp_parm_bool(SNUM(handle->conn), + FRUIT_PARAM_TYPE_NAME, + "veto_appledouble", + true); + } config->use_aapl = lp_parm_bool( -1, FRUIT_PARAM_TYPE_NAME, "aapl", true); -- 2.9.3