From 259e1706e3206b215e136ea9d5beef4c9e3fcdee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Deschner?= Date: Wed, 28 Jun 2017 18:10:28 +0200 Subject: [PATCH] vfs_fruit: add fruit:model = parametric option MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fruit:model = iMac fruit:model = MacBook fruit:model = MacPro fruit:model = Xserve will all display a different icon inside Finder. Formerly, we used "Samba" which resulted in a "?" icon in Finder, with the new default "MacSamba" we appear with a computer box icon at least. Guenther Bug: https://bugzilla.samba.org/show_bug.cgi?id=12840 Signed-off-by: Guenther Deschner Signed-off-by: Ralph Boehme Reviewed-by: Ralph Boehme Autobuild-User(master): Günther Deschner Autobuild-Date(master): Wed Jul 12 03:17:57 CEST 2017 on sn-devel-144 --- docs-xml/manpages/vfs_fruit.8.xml | 9 +++++++++ source3/modules/vfs_fruit.c | 6 +++++- source4/torture/vfs/fruit.c | 8 +++++++- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/docs-xml/manpages/vfs_fruit.8.xml b/docs-xml/manpages/vfs_fruit.8.xml index a86dec6..7097aac 100644 --- a/docs-xml/manpages/vfs_fruit.8.xml +++ b/docs-xml/manpages/vfs_fruit.8.xml @@ -160,6 +160,15 @@ + + fruit:model = MacSamba + + This option defines the model string inside the AAPL + extension and will determine the appearance of the icon representing the + Samba server in the Finder window. + The default is MacSamba. + + diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c index b49ee1c..3482d4e 100644 --- a/source3/modules/vfs_fruit.c +++ b/source3/modules/vfs_fruit.c @@ -138,6 +138,7 @@ struct fruit_config_data { bool veto_appledouble; bool posix_rename; bool aapl_zero_file_id; + const char *model; /* * Additional options, all enabled by default, @@ -1628,6 +1629,9 @@ static int init_fruit_config(vfs_handle_struct *handle) config->readdir_attr_max_access = lp_parm_bool( SNUM(handle->conn), "readdir_attr", "aapl_max_access", true); + config->model = lp_parm_const_string( + -1, FRUIT_PARAM_TYPE_NAME, "model", "MacSamba"); + SMB_VFS_HANDLE_SET_DATA(handle, config, NULL, struct fruit_config_data, return -1); @@ -2272,7 +2276,7 @@ static NTSTATUS check_aapl(vfs_handle_struct *handle, if (req_bitmap & SMB2_CRTCTX_AAPL_MODEL_INFO) { ok = convert_string_talloc(req, CH_UNIX, CH_UTF16LE, - "Samba", strlen("Samba"), + config->model, strlen(config->model), &model, &modellen); if (!ok) { return NT_STATUS_UNSUCCESSFUL; diff --git a/source4/torture/vfs/fruit.c b/source4/torture/vfs/fruit.c index 2ab153a..c78c906 100644 --- a/source4/torture/vfs/fruit.c +++ b/source4/torture/vfs/fruit.c @@ -1252,7 +1252,13 @@ static bool enable_aapl(struct torture_context *tctx, torture_assert_goto(tctx, aapl != NULL, ret, done, "missing AAPL context"); if (!is_osx_server) { - torture_assert_goto(tctx, aapl->data.length == 50, ret, done, "bad AAPL size"); + size_t exptected_aapl_ctx_size; + + exptected_aapl_ctx_size = strlen("MacSamba") * 2 + 40; + + torture_assert_goto( + tctx, aapl->data.length == exptected_aapl_ctx_size, + ret, done, "bad AAPL size"); } aapl_server_caps = BVAL(aapl->data.data, 16); -- 2.9.4