• Ralph Boehme's avatar
    vfs_fruit: change trigger points of AppleDouble conversion · 8b1dfd9b
    Ralph Boehme authored
    This moves the trigger points where AppleDouble file conversion is run by
    ad_convert() from deep down the callchain in ad_read_rsrc_adouble() to high
    level VFS entry points.
    
    Currently ad_convert() will be triggered as part of open_file_ntcreate(...,
    "file:AFP_AfpResource", ...): after SMB_VFS_OPEN() has been called with O_CREAT,
    what created the file, we call SMB_VFS_FSTAT() on the just created
    filehandle. This ends up in ad_convert(), finds the resource fork empty and thus
    deletes the file.
    
    This commit moves calling of the conversion funtion to the high level VFS entry
    points where the converted metadata is needed:
    
    o for directory enumerations SMB_VFS_READDIR_ATTR() is called to fill in the
      repurposed fields in the directory entry metadata
    
    o obviously for SMB_VFS_CREATE_FILE() on an macOS stream
    
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=13958Signed-off-by: 's avatarRalph Boehme <slow@samba.org>
    Reviewed-by: 's avatarJeremy Allison <jra@samba.org>
    (cherry picked from commit 78a4639b2d06cc69788861618d2e91945e142d2b)
    
    Autobuild-User(v4-9-test): Karolin Seeger <kseeger@samba.org>
    Autobuild-Date(v4-9-test): Thu Jun 13 14:25:17 UTC 2019 on sn-devel-144
    8b1dfd9b
Name
Last commit
Last update
auth Loading commit data...
buildtools Loading commit data...
coverity Loading commit data...
ctdb Loading commit data...
dfs_server Loading commit data...
docs-xml Loading commit data...
dynconfig Loading commit data...
examples Loading commit data...
file_server Loading commit data...
include Loading commit data...
lib Loading commit data...
libcli Loading commit data...
libds/common Loading commit data...
libgpo Loading commit data...
librpc Loading commit data...
nsswitch Loading commit data...
packaging Loading commit data...
pidl Loading commit data...
python Loading commit data...
release-scripts Loading commit data...
script Loading commit data...
selftest Loading commit data...
source3 Loading commit data...
source4 Loading commit data...
testdata Loading commit data...
testprogs Loading commit data...
tests Loading commit data...
testsuite Loading commit data...
third_party Loading commit data...
wintest Loading commit data...
.bzrignore Loading commit data...
.gitignore Loading commit data...
.gitlab-ci-private.yml Loading commit data...
.gitlab-ci.yml Loading commit data...
.testr.conf Loading commit data...
.travis.yml Loading commit data...
.ycm_extra_conf.py Loading commit data...
BUILD_SYSTEMS.txt Loading commit data...
COPYING Loading commit data...
Makefile Loading commit data...
PFIF.txt Loading commit data...
README Loading commit data...
README.Coding Loading commit data...
README.cifs-utils Loading commit data...
README.contributing Loading commit data...
VERSION Loading commit data...
WHATSNEW.txt Loading commit data...
callcatcher-exceptions.grep Loading commit data...
configure Loading commit data...
configure.developer Loading commit data...
install_with_python.sh Loading commit data...
simple-dc-steps.sh Loading commit data...
wscript Loading commit data...
wscript_build Loading commit data...
wscript_build_embedded_heimdal Loading commit data...
wscript_build_system_heimdal Loading commit data...
wscript_build_system_mitkrb5 Loading commit data...
wscript_configure_system_mitkrb5 Loading commit data...