summaryrefslogtreecommitdiff
path: root/librpc
diff options
context:
space:
mode:
authorRalph Boehme <rb@sernet.de>2014-07-23 09:58:45 +0200
committerRalph Böhme <slow@samba.org>2015-07-07 17:34:28 +0200
commit5c6e2b2b1fc4514f5f61dd16b6fdc59410edc815 (patch)
tree74e1bd6c9cd9794c5c2a878c66a9ab5b0f0a5b5c /librpc
parent6e332abc3c8411bf43010741f9f6c55c7e5bae6f (diff)
downloadsamba-5c6e2b2b1fc4514f5f61dd16b6fdc59410edc815.tar.gz
mdssvc: IDL file for new RPC service
'mdssvc' aka 'Metadata Search Service' is an RPC service used by Apple for passing marshalled Spotlight search queries and results between client to server. Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'librpc')
-rw-r--r--librpc/idl/mdssvc.idl68
-rw-r--r--librpc/idl/wscript_build3
-rw-r--r--librpc/wscript_build12
3 files changed, 81 insertions, 2 deletions
diff --git a/librpc/idl/mdssvc.idl b/librpc/idl/mdssvc.idl
new file mode 100644
index 00000000000..bfb27c4a795
--- /dev/null
+++ b/librpc/idl/mdssvc.idl
@@ -0,0 +1,68 @@
+import "misc.idl";
+[
+ uuid("885d85fb-c754-4062-a0e7-6872ce0064f4"),
+ endpoint("ncacn_np:[\\pipe\\mdssvc]", "ncalrpc:"),
+ version(2.0),
+ helpstring("Spotlight metadata search service")
+]
+interface mdssvc
+{
+ void mdssvc_open(
+ [in,out,ref] uint32 *device_id,
+ [in,out,ref] uint32 *unkn2, /* always 0x17 ? */
+ [in,out,ref] uint32 *unkn3, /* always 0 ? */
+ [in][string,charset(UTF8),size_is(1025)] uint8 share_mount_path[],
+ [in][string,charset(UTF8),size_is(1025)] uint8 share_name[],
+ [out,string,charset(UTF8),size_is(1025)] uint8 share_path[],
+ [out,ref] policy_handle *handle
+ );
+
+ void mdssvc_unknown1(
+ [in] policy_handle handle,
+ [in] uint32 unkn1, /* always 0, some status ? */
+ [in] uint32 device_id,
+ [in] uint32 unkn3, /* = mdssvc_open.unkn2 ? */
+ [in] uint32 unkn4, /* always 0, some status ? */
+ [in] uint32 uid,
+ [in] uint32 gid,
+ [out,ref] uint32 *status,
+ [out,ref] uint32 *flags, /* always 0x6b000001 ? */
+ [out,ref] uint32 *unkn7 /* always 0 ? */
+ );
+
+ typedef [public] struct {
+ uint32 length;
+ uint32 size;
+ [size_is(size),length_is(length)] uint8 *spotlight_blob;
+ } mdssvc_blob;
+
+ void mdssvc_cmd(
+ [in] policy_handle handle,
+ [in] uint32 unkn1, /* always 0, status ? */
+ [in] uint32 device_id,
+ [in] uint32 unkn3, /* = mdssvc_open.unkn2 ? */
+ [in] uint32 unkn4, /* always 0 ? */
+ [in] uint32 flags, /* always 0x6b000001 ? */
+ [in] mdssvc_blob request_blob,
+ [in] uint32 unkn5, /* always 0 ? */
+ [in] uint32 max_fragment_size1,
+ [in] uint32 unkn6, /* always 1 ? */
+ /* always max_fragment_size1 = max_fragment_size2 ? */
+ [in] uint32 max_fragment_size2,
+ [in] uint32 unkn7, /* always 0 ? */
+ [in] uint32 unkn8, /* always 0 ? */
+ [out,ref] uint32 *status,
+ [out,ref] mdssvc_blob *response_blob,
+ [out,ref] uint32 *unkn9 /* always 0 ? */
+ );
+
+ void mdssvc_close(
+ [in] policy_handle in_handle,
+ [in] uint32 unkn1, /* always 0, some status ? */
+ [in] uint32 device_id,
+ [in] uint32 unkn2, /* = mdssvc_open.unkn2 ? */
+ [in] uint32 unkn3, /* always 0, some status ? */
+ [out,ref] policy_handle *out_handle,
+ [out,ref] uint32 *status
+ );
+}
diff --git a/librpc/idl/wscript_build b/librpc/idl/wscript_build
index 4b56af63dec..6316edd4665 100644
--- a/librpc/idl/wscript_build
+++ b/librpc/idl/wscript_build
@@ -13,7 +13,8 @@ bld.SAMBA_PIDL_LIST('PIDL',
notify.idl
smb2_lease_struct.idl
policyagent.idl scerpc.idl svcctl.idl wkssvc.idl eventlog6.idl backupkey.idl
- fsrvp.idl bkupblobs.idl fscc.idl frsblobs.idl witness.idl clusapi.idl''',
+ fsrvp.idl bkupblobs.idl fscc.idl frsblobs.idl witness.idl clusapi.idl
+ mdssvc.idl''',
options='--header --ndr-parser --samba3-ndr-server --server --client --python',
output_dir='../gen_ndr')
diff --git a/librpc/wscript_build b/librpc/wscript_build
index 212733aa284..1594e721eac 100644
--- a/librpc/wscript_build
+++ b/librpc/wscript_build
@@ -330,6 +330,11 @@ bld.SAMBA_SUBSYSTEM('NDR_CLUSAPI',
public_deps='ndr'
)
+bld.SAMBA_SUBSYSTEM('NDR_MDSSVC',
+ source='gen_ndr/ndr_mdssvc.c',
+ public_deps='ndr'
+ )
+
bld.SAMBA_SUBSYSTEM('NDR_DCERPC',
source='gen_ndr/ndr_dcerpc.c ndr/ndr_dcerpc.c',
public_deps='ndr',
@@ -665,12 +670,17 @@ bld.SAMBA_SUBSYSTEM('RPC_NDR_CLUSAPI',
public_deps='dcerpc-binding NDR_CLUSAPI'
)
+bld.SAMBA_SUBSYSTEM('RPC_NDR_MDSSVC',
+ source='gen_ndr/ndr_mdssvc_c.c',
+ public_deps='dcerpc-binding NDR_MDSSVC'
+ )
+
# a grouping library for NDR subsystems that may be used by more than one target
bld.SAMBA_LIBRARY('ndr-samba',
source=[],
deps='''NDR_DRSBLOBS NDR_DRSUAPI NDR_IDMAP NDR_NTLMSSP NDR_SCHANNEL NDR_MGMT
NDR_DNSP NDR_EPMAPPER NDR_XATTR NDR_UNIXINFO NDR_NAMED_PIPE_AUTH NDR_DCOM
- NDR_NTPRINTING NDR_FSRVP NDR_WITNESS NDR_OPEN_FILES NDR_SMBXSRV''',
+ NDR_NTPRINTING NDR_FSRVP NDR_WITNESS NDR_MDSSVC NDR_OPEN_FILES NDR_SMBXSRV''',
private_library=True,
grouping_library=True
)