X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=netatalk.git;a=blobdiff_plain;f=etc%2Fafpd%2Fspotlight.c;fp=etc%2Fafpd%2Fspotlight.c;h=4aabeca91eb0904ad07d4ac29bae0c7389ad1658;hp=d2539b8358e25684e3d4c568ee8cce9df55c73ea;hb=8acb0969fd3dd54bea7961b2823a9331d38b9fbd;hpb=d517632b2d4ef26ea7bbd12794d1cf0709f33542 diff --git a/etc/afpd/spotlight.c b/etc/afpd/spotlight.c index d2539b83..4aabeca9 100644 --- a/etc/afpd/spotlight.c +++ b/etc/afpd/spotlight.c @@ -830,6 +830,7 @@ static int sl_rpc_openQuery(AFPObj *obj, gchar *sparql_query; GError *error = NULL; bool ok; + sl_array_t *scope_array; array = talloc_zero(reply, sl_array_t); @@ -887,6 +888,20 @@ static int sl_rpc_openQuery(AFPObj *obj, } slq->slq_reqinfo = talloc_steal(slq, reqinfo); + scope_array = dalloc_value_for_key(query, "DALLOC_CTX", 0, "DALLOC_CTX", 1, + "kMDScopeArray"); + if (scope_array == NULL) { + slq->slq_scope = talloc_strdup(slq, v->v_path); + } else { + slq->slq_scope = talloc_strdup(slq, scope_array->dd_talloc_array[0]); + } + if (slq->slq_scope == NULL) { + LOG(log_error, logtype_sl, "failed to setup search scope"); + EC_FAIL; + } + + LOG(log_debug, logtype_sl, "Search scope: \"%s\"", slq->slq_scope); + cnids = dalloc_value_for_key(query, "DALLOC_CTX", 0, "DALLOC_CTX", 1, "kMDQueryItemArray"); if (cnids) {