[SCM] Samba Shared Repository - branch v4-17-test updated

Jule Anger janger at samba.org
Wed May 31 08:49:02 UTC 2023


The branch, v4-17-test has been updated
       via  dff3946d616 vfs_fruit: add fruit:convert_adouble parameter
       via  a2567c17294 vfs_fruit: just log failing AppleDouble conversion
       via  4e0850b7afc libadouble: allow FILE_SHARE_DELETE in ad_convert_xattr()
       via  b0e8932b1cf vfs_fruit: never return AFP_Resource stream for directories
       via  ed1979c76c6 vfs_fruit: return ENOENT instead of EISDIR when trying to open AFP_Resource for a directory
       via  f544dc9cc06 CI: add a test for fruit AppleDouble conversion when deletion triggers conversion
      from  e1c3f8328cd rpc_server3: Pass winbind_env_set() state through to rpcd_*

https://git.samba.org/?p=samba.git;a=shortlog;h=v4-17-test


- Log -----------------------------------------------------------------
commit dff3946d616cc7fad6008df8165251abc057fbed
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
    
    (cherry picked from commit 035f6d914d133cf3248f15b1be06a9e1837238da)
    
    Autobuild-User(v4-17-test): Jule Anger <janger at samba.org>
    Autobuild-Date(v4-17-test): Wed May 31 08:48:25 UTC 2023 on sn-devel-184

commit a2567c172945a2b3fab6a7741d72d55503ba3ab6
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>
    (cherry picked from commit 3bf97f19c36d26b4178f7cb6202bbdd44de0c1aa)

commit 4e0850b7afc7ac383ddd6929e7b9d3836135564d
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>
    (cherry picked from commit 55bd10456486628cad2bd085618e873598401c3b)

commit b0e8932b1cf94f1f43ac6eca29250a63bea66708
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>
    (cherry picked from commit 06f0c070a0b18313f48362aa326e3e7e6a096492)

commit ed1979c76c6e75f168049fc9669e6e5250264af3
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>
    (cherry picked from commit 9b91a8bad2ff8da9eb56f1f9d640bcea294a5a0a)

commit f544dc9cc069457bd1e911e692d28ad1d4e72a03
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>
    (cherry picked from commit 59eadfe21aca6d563f86ea656517216036421bca)

-----------------------------------------------------------------------

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 4caf308a612..b2ebfae2e21 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 062c73ec758..15f8f0aa8a9 100644
--- a/source3/lib/adouble.c
+++ b/source3/lib/adouble.c
@@ -1222,7 +1222,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 4058d4834e7..c08238cb15f 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