summaryrefslogtreecommitdiff
path: root/source3/rpc_server
diff options
context:
space:
mode:
authorRalph Boehme <slow@samba.org>2019-05-06 14:11:31 +0200
committerJeremy Allison <jra@samba.org>2019-08-08 20:24:33 +0000
commit63366996879fab5b1729de6d6224ca167bdb05b0 (patch)
treed7750455f3bf392dbcfa9b46bd54c6da808ac86d /source3/rpc_server
parent520175e2275abfabfdb5a62e192c4936a6c74d35 (diff)
downloadsamba-63366996879fab5b1729de6d6224ca167bdb05b0.tar.gz
s3:mdssvc: the open command must work on shares with Spotlight disabled
Move the implementation of this setting down to the actual search query processing. macOS has no notion of "spotlight = false" at the DCERPC layer and the open request will always succeed even on all shares. When later the client issues search requests on such shares, we ensure we use the noindex backend. Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/rpc_server')
-rw-r--r--source3/rpc_server/mdssvc/mdssvc.c3
-rw-r--r--source3/rpc_server/mdssvc/srv_mdssvc_nt.c5
2 files changed, 3 insertions, 5 deletions
diff --git a/source3/rpc_server/mdssvc/mdssvc.c b/source3/rpc_server/mdssvc/mdssvc.c
index c93775280b7..1d420482437 100644
--- a/source3/rpc_server/mdssvc/mdssvc.c
+++ b/source3/rpc_server/mdssvc/mdssvc.c
@@ -1521,6 +1521,9 @@ struct mds_ctx *mds_init_ctx(TALLOC_CTX *mem_ctx,
}
backend = lp_spotlight_backend(snum);
+ if (!lp_spotlight(snum)) {
+ backend = SPOTLIGHT_BACKEND_NOINDEX;
+ }
switch (backend) {
case SPOTLIGHT_BACKEND_NOINDEX:
mds_ctx->backend = &mdsscv_backend_noindex;
diff --git a/source3/rpc_server/mdssvc/srv_mdssvc_nt.c b/source3/rpc_server/mdssvc/srv_mdssvc_nt.c
index 68a05bec5ff..a4df2f136b7 100644
--- a/source3/rpc_server/mdssvc/srv_mdssvc_nt.c
+++ b/source3/rpc_server/mdssvc/srv_mdssvc_nt.c
@@ -160,11 +160,6 @@ void _mdssvc_open(struct pipes_struct *p, struct mdssvc_open *r)
if (!VALID_SNUM(snum)) {
return;
}
- if (!lp_spotlight(snum)) {
- return;
- }
-
- DBG_DEBUG("Spotlight enabled: %s\n", r->in.share_name);
path = lp_path(talloc_tos(), snum);
if (path == NULL) {