[SCM] Samba Shared Repository - branch master updated
Jeremy Allison
jra at samba.org
Fri May 26 00:53:01 UTC 2023
The branch, master has been updated
via 035f6d914d1 vfs_fruit: add fruit:convert_adouble parameter
via 3bf97f19c36 vfs_fruit: just log failing AppleDouble conversion
via 55bd1045648 libadouble: allow FILE_SHARE_DELETE in ad_convert_xattr()
via 06f0c070a0b vfs_fruit: never return AFP_Resource stream for directories
via 9b91a8bad2f vfs_fruit: return ENOENT instead of EISDIR when trying to open AFP_Resource for a directory
via 59eadfe21ac CI: add a test for fruit AppleDouble conversion when deletion triggers conversion
from 412373984db smbd: also reset struct stat_ex.cached_dos_attributes in SET_STAT_INVALID()
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 035f6d914d133cf3248f15b1be06a9e1837238da
Author: Ralph Boehme <slow at samba.org>
Date: Mon May 22 12:32:00 2023 +0200
vfs_fruit: add fruit:convert_adouble parameter
https://bugzilla.samba.org/show_bug.cgi?id=15378
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
Autobuild-User(master): Jeremy Allison <jra at samba.org>
Autobuild-Date(master): Fri May 26 00:52:29 UTC 2023 on atb-devel-224
commit 3bf97f19c36d26b4178f7cb6202bbdd44de0c1aa
Author: Ralph Boehme <slow at samba.org>
Date: Mon May 22 12:25:04 2023 +0200
vfs_fruit: just log failing AppleDouble conversion
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15378
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 55bd10456486628cad2bd085618e873598401c3b
Author: Ralph Boehme <slow at samba.org>
Date: Tue May 23 17:28:33 2023 +0200
libadouble: allow FILE_SHARE_DELETE in ad_convert_xattr()
Not specifying FILE_SHARE_DELETE wasn't done intentionally. Not setting the flag
triggers the following problem:
* client sends a CREATE with delete access
* this triggers a call to open_streams_for_delete() where we check for
conflicting opens on any of the streams of the file or directory
* if the file (or directory) has a stream like ":com.apple.quarantine" the
stream is opened with DELETE_ACCESS and kept open when the next step might:
* if the file (or directory) has a Mac specific :AFP_AfpInfo stream, the
ad_convert() routine in fruit_create_file() is triggered
* ad_convert() checks if the file (or ...) has a sidecar ._ AppleDouble file, if
it has:
* in ad_convert_xattr() we unpack any set of xattrs encoded in the AppleDouble
file and recreate them as streams with the VFS. Now, if any of these xattrs
happens to be converted to a stream that we still have open in
open_streams_for_delete() (see above) we get a NT_STATUS_SHARING_VIOLATION
This error gets passed up the stack back to open_streams_for_delete() so the
client CREATE request fails and the client is unhappy.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15378
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 06f0c070a0b18313f48362aa326e3e7e6a096492
Author: Ralph Boehme <slow at samba.org>
Date: Mon May 22 19:37:17 2023 +0200
vfs_fruit: never return AFP_Resource stream for directories
The macOS client creates ._ AppleDouble files for directories that do contain
an (empty) resource fork AppleDouble entry. So when going from a Samba server
config without streams module (or when migrating data from another server
without streams support), to a Samba config with a streams module and vfs_fruit,
fruit_streaminfo() will wrongly return the AFP_Resource from the AppleDouble
file as stream to the client.
To address this, just never return an AFP_Resource stream for directories when
listing streams in fruit_streaminfo(). ad_convert(), when configured with
fruit:delete_empty_adfiles = true
fruit:wipe_intentionally_left_blank_rfork = true
will happily discard the AFP_Resource from the AppleDouble file.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15378
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 9b91a8bad2ff8da9eb56f1f9d640bcea294a5a0a
Author: Ralph Boehme <slow at samba.org>
Date: Mon May 22 19:35:33 2023 +0200
vfs_fruit: return ENOENT instead of EISDIR when trying to open AFP_Resource for a directory
Translates to NT_STATUS_OBJECT_NAME_NOT_FOUND which is the same error macOS
returns in this case.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15378
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 59eadfe21aca6d563f86ea656517216036421bca
Author: Ralph Boehme <slow at samba.org>
Date: Wed May 24 21:28:48 2023 +0200
CI: add a test for fruit AppleDouble conversion when deletion triggers conversion
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15378
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
-----------------------------------------------------------------------
Summary of changes:
docs-xml/manpages/vfs_fruit.8.xml | 13 +
source3/lib/adouble.c | 2 +-
source3/modules/vfs_fruit.c | 48 +-
source4/torture/vfs/fruit.c | 954 ++++++++++++++++++++++++++++++++++++++
4 files changed, 999 insertions(+), 18 deletions(-)
Changeset truncated at 500 lines:
diff --git a/docs-xml/manpages/vfs_fruit.8.xml b/docs-xml/manpages/vfs_fruit.8.xml
index 6950898a7d1..2215f031312 100644
--- a/docs-xml/manpages/vfs_fruit.8.xml
+++ b/docs-xml/manpages/vfs_fruit.8.xml
@@ -406,6 +406,19 @@
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>fruit:convert_adouble = yes | no</term>
+ <listitem>
+ <para>Whether an attempt shall be made to convert ._ AppleDouble
+ sidecar files to native streams (xattrs when using
+ vfs_streams_xattr). The main use case for this conversion is
+ transparent migration from a server config without streams support
+ where the macOS client created those AppleDouble sidecar
+ files.</para>
+ <para>The default is <emphasis>yes</emphasis>.</para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
</refsect1>
diff --git a/source3/lib/adouble.c b/source3/lib/adouble.c
index ee4166f9628..3181a390d35 100644
--- a/source3/lib/adouble.c
+++ b/source3/lib/adouble.c
@@ -1236,7 +1236,7 @@ static bool ad_convert_xattr(vfs_handle_struct *handle,
NULL, /* dirfsp */
stream_name, /* fname */
FILE_GENERIC_WRITE, /* access_mask */
- FILE_SHARE_READ | FILE_SHARE_WRITE, /* share_access */
+ FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, /* share_access */
FILE_OPEN_IF, /* create_disposition */
0, /* create_options */
0, /* file_attributes */
diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c
index 637e2a1a6ed..ce5ae38505e 100644
--- a/source3/modules/vfs_fruit.c
+++ b/source3/modules/vfs_fruit.c
@@ -131,6 +131,7 @@ struct fruit_config_data {
const char *model;
bool time_machine;
off_t time_machine_max_size;
+ bool convert_adouble;
bool wipe_intentionally_left_blank_rfork;
bool delete_empty_adfiles;
@@ -381,6 +382,10 @@ static int init_fruit_config(vfs_handle_struct *handle)
config->time_machine_max_size = conv_str_size(tm_size_str);
}
+ config->convert_adouble = lp_parm_bool(
+ SNUM(handle->conn), FRUIT_PARAM_TYPE_NAME,
+ "convert_adouble", true);
+
config->wipe_intentionally_left_blank_rfork = lp_parm_bool(
SNUM(handle->conn), FRUIT_PARAM_TYPE_NAME,
"wipe_intentionally_left_blank_rfork", false);
@@ -1567,7 +1572,7 @@ static int fruit_open_rsrc_adouble(vfs_handle_struct *handle,
S_ISDIR(fsp->base_fsp->fsp_name->st.st_ex_mode))
{
/* sorry, but directories don't have a resource fork */
- errno = EISDIR;
+ errno = ENOENT;
rc = -1;
goto exit;
}
@@ -3959,6 +3964,10 @@ static NTSTATUS fruit_streaminfo_rsrc(vfs_handle_struct *handle,
struct fruit_config_data *config = NULL;
NTSTATUS status;
+ if (S_ISDIR(smb_fname->st.st_ex_mode)) {
+ return NT_STATUS_OK;
+ }
+
SMB_VFS_HANDLE_GET_DATA(handle, config, struct fruit_config_data,
return NT_STATUS_INTERNAL_ERROR);
@@ -4286,7 +4295,10 @@ static NTSTATUS fruit_create_file(vfs_handle_struct *handle,
SMB_VFS_HANDLE_GET_DATA(handle, config, struct fruit_config_data,
return NT_STATUS_UNSUCCESSFUL);
- if (is_apple_stream(smb_fname->stream_name) && !internal_open) {
+ if (is_apple_stream(smb_fname->stream_name) &&
+ !internal_open &&
+ config->convert_adouble)
+ {
uint32_t conv_flags = 0;
if (config->wipe_intentionally_left_blank_rfork) {
@@ -4301,8 +4313,8 @@ static NTSTATUS fruit_create_file(vfs_handle_struct *handle,
macos_string_replace_map,
conv_flags);
if (ret != 0) {
- DBG_ERR("ad_convert() failed\n");
- return NT_STATUS_UNSUCCESSFUL;
+ DBG_ERR("ad_convert(\"%s\") failed\n",
+ smb_fname_str_dbg(smb_fname));
}
}
@@ -4400,20 +4412,22 @@ static NTSTATUS fruit_freaddir_attr(struct vfs_handle_struct *handle,
DBG_DEBUG("Path [%s]\n", fsp_str_dbg(fsp));
- if (config->wipe_intentionally_left_blank_rfork) {
- conv_flags |= AD_CONV_WIPE_BLANK;
- }
- if (config->delete_empty_adfiles) {
- conv_flags |= AD_CONV_DELETE;
- }
+ if (config->convert_adouble) {
+ if (config->wipe_intentionally_left_blank_rfork) {
+ conv_flags |= AD_CONV_WIPE_BLANK;
+ }
+ if (config->delete_empty_adfiles) {
+ conv_flags |= AD_CONV_DELETE;
+ }
- ret = ad_convert(handle,
- fsp->fsp_name,
- macos_string_replace_map,
- conv_flags);
- if (ret != 0) {
- DBG_ERR("ad_convert() failed\n");
- return NT_STATUS_UNSUCCESSFUL;
+ ret = ad_convert(handle,
+ fsp->fsp_name,
+ macos_string_replace_map,
+ conv_flags);
+ if (ret != 0) {
+ DBG_ERR("ad_convert(\"%s\") failed\n",
+ fsp_str_dbg(fsp));
+ }
}
*pattr_data = talloc_zero(mem_ctx, struct readdir_attr_data);
diff --git a/source4/torture/vfs/fruit.c b/source4/torture/vfs/fruit.c
index 3621fec460c..99d63becbb4 100644
--- a/source4/torture/vfs/fruit.c
+++ b/source4/torture/vfs/fruit.c
@@ -7017,6 +7017,959 @@ done:
return ret;
}
+/*
+-------------------------------------------------------------------------------
+MagicNumber: 00051607 : AppleDouble
+Version : 00020000 : Version 2
+Filler : 4D 61 63 20 4F 53 20 58 20 20 20 20 20 20 20 20 : Mac OS X
+Num. of ent: 0002 : 2
+
+-------------------------------------------------------------------------------
+Entry ID : 00000009 : Finder Info
+Offset : 00000032 : 50
+Length : 00000EB0 : 3760
+
+-DInfo-----:
+Rect top : 0000 : 0
+Rect left : 0000 : 0
+Rect bottom: 0000 : 0
+Rect right : 0000 : 0
+isAlias : 0
+Invisible : 0
+hasBundle : 0
+nameLocked : 0
+Stationery : 0
+CustomIcon : 0
+Reserved : 0
+Inited : 1
+NoINITS : 0
+Shared : 0
+SwitchLaunc: 0
+Hidden Ext : 0
+color : 000 : none
+isOnDesk : 0
+Location v : 0000 : 0
+Location h : 0000 : 0
+View : 0000 : ..
+
+-DXInfo----:
+Scroll v : 0000 : 0
+Scroll h : 0000 : 0
+Rsvd|OpnChn: 00000000 : 0
+AreInvalid : 0
+unknown bit: 0
+unknown bit: 0
+unknown bit: 0
+unknown bit: 0
+unknown bit: 0
+unknown bit: 0
+CustomBadge: 0
+ObjctIsBusy: 0
+unknown bit: 0
+unknown bit: 0
+unknown bit: 0
+unknown bit: 0
+RoutingInfo: 0
+unknown bit: 0
+unknown bit: 0
+Comment : 0000 : ..
+PutAway : 00000000 : 0
+
+-EA--------:
+pad : 0000 : ..
+magic : 41545452 : ATTR
+debug_tag : 0081714C : 8483148
+total_size : 00000EE2 : 3810
+data_start : 00000098 : 152
+data_length: 00000039 : 57
+reserved[0]: 00000000 : ....
+reserved[1]: 00000000 : ....
+reserved[2]: 00000000 : ....
+flags : 0000 : ..
+num_attrs : 0001 : 1
+-EA ENTRY--:
+offset : 00000098 : 152
+length : 00000039 : 57
+flags : 0000 : ..
+namelen : 15 : 21
+-EA NAME---: 0 1 2 3 4 5 6 7 8 9 A B C D E F : (ASCII)
+00000000 : 63 6F 6D 2E 61 70 70 6C 65 2E 71 75 61 72 61 6E : com.apple.quaran
+00000010 : 74 69 6E 65 00 : tine.
+-EA VALUE--: 0 1 2 3 4 5 6 7 8 9 A B C D E F : (ASCII)
+00000000 : 30 30 38 31 3B 36 32 65 61 33 37 66 64 3B 43 68 : 0081;62ea37fd;Ch
+00000010 : 72 6F 6D 65 3B 42 35 39 46 42 39 45 44 2D 35 41 : rome;B59FB9ED-5A
+00000020 : 32 39 2D 34 45 35 42 2D 38 35 36 43 2D 37 45 44 : 29-4E5B-856C-7ED
+00000030 : 30 45 46 45 41 37 30 41 43 : 0EFEA70AC
+
+-RAW DUMP--: 0 1 2 3 4 5 6 7 8 9 A B C D E F : (ASCII)
+00000000 : 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 : ................
+00000010 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000020 : 00 00 41 54 54 52 00 81 71 4C 00 00 0E E2 00 00 : ..ATTR..qL......
+00000030 : 00 98 00 00 00 39 00 00 00 00 00 00 00 00 00 00 : .....9..........
+00000040 : 00 00 00 00 00 01 00 00 00 98 00 00 00 39 00 00 : .............9..
+00000050 : 15 63 6F 6D 2E 61 70 70 6C 65 2E 71 75 61 72 61 : .com.apple.quara
+00000060 : 6E 74 69 6E 65 00 30 30 38 31 3B 36 32 65 61 33 : ntine.0081;62ea3
+00000070 : 37 66 64 3B 43 68 72 6F 6D 65 3B 42 35 39 46 42 : 7fd;Chrome;B59FB
+00000080 : 39 45 44 2D 35 41 32 39 2D 34 45 35 42 2D 38 35 : 9ED-5A29-4E5B-85
+00000090 : 36 43 2D 37 45 44 30 45 46 45 41 37 30 41 43 00 : 6C-7ED0EFEA70AC.
+000000A0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000B0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000C0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000100 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000110 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000120 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000130 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000140 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000150 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000160 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000170 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000180 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000190 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000001A0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000001B0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000001C0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000001D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000001E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000001F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000200 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000210 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000220 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000230 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000240 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000250 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000260 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000270 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000280 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000290 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000002A0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000002B0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000002C0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000002D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000002E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000002F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000300 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000310 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000320 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000330 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000340 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000350 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000360 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000370 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000380 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000390 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000003A0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000003B0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000003C0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000003D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000003E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000003F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000400 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000410 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000420 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000430 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000440 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000450 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000460 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000470 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000480 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000490 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000004A0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000004B0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000004C0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000004D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000004E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000004F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000500 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000510 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000520 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000530 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000540 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000550 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000560 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000570 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000580 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000590 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000005A0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000005B0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000005C0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000005D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000005E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000005F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000600 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000610 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000620 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000630 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000640 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000650 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000660 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000670 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000680 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000690 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000006A0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000006B0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000006C0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000006D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000006E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000006F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000700 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000710 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000720 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000730 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000740 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000750 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000760 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000770 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000780 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000790 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000007A0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000007B0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000007C0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000007D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000007E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000007F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000800 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000810 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000820 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000830 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000840 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000850 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000860 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000870 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000880 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000890 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000008A0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000008B0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000008C0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000008D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000008E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000008F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000900 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000910 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000920 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000930 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000940 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000950 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000960 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000970 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000980 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000990 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000009A0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000009B0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000009C0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000009D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000009E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000009F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000A00 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000A10 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000A20 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000A30 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000A40 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000A50 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000A60 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000A70 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000A80 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000A90 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000AA0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000AB0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000AC0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000AD0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000AE0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000AF0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000B00 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000B10 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000B20 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000B30 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000B40 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000B50 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000B60 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000B70 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000B80 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000B90 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000BA0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000BB0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000BC0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000BD0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000BE0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000BF0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000C00 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000C10 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000C20 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000C30 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000C40 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000C50 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000C60 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000C70 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000C80 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000C90 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000CA0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000CB0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000CC0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000CD0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000CE0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000CF0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000D00 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000D10 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000D20 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000D30 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000D40 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000D50 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000D60 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000D70 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000D80 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000D90 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000DA0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000DB0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000DC0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000DD0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000DE0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000DF0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000E00 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000E10 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000E20 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000E30 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000E40 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000E50 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000E60 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000E70 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000E80 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000E90 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000EA0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+
+-------------------------------------------------------------------------------
+Entry ID : 00000002 : Resource Fork
+Offset : 00000EE2 : 3810
+Length : 0000011E : 286
+
+-RAW DUMP--: 0 1 2 3 4 5 6 7 8 9 A B C D E F : (ASCII)
+00000000 : 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 1E : ................
+00000010 : 54 68 69 73 20 72 65 73 6F 75 72 63 65 20 66 6F : This resource fo
+00000020 : 72 6B 20 69 6E 74 65 6E 74 69 6F 6E 61 6C 6C 79 : rk intentionally
+00000030 : 20 6C 65 66 74 20 62 6C 61 6E 6B 20 20 20 00 00 : left blank ..
+00000040 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000050 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000060 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000070 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000080 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000090 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000A0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000B0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000C0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+000000F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
+00000100 : 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 1E : ................
+00000110 : 00 00 00 00 00 00 00 00 00 1C 00 1E FF FF : ..............
+*/
+
+static char osx_adouble_dir_w_xattr[] = {
+ 0x00, 0x05, 0x16, 0x07, 0x00, 0x02, 0x00, 0x00,
+ 0x4d, 0x61, 0x63, 0x20, 0x4f, 0x53, 0x20, 0x58,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00,
+ 0x00, 0x32, 0x00, 0x00, 0x0e, 0xb0, 0x00, 0x00,
--
Samba Shared Repository
More information about the samba-cvs
mailing list