[SCM] Samba Shared Repository - branch master updated
Ralph Böhme
slow at samba.org
Tue Jul 7 20:36:06 CEST 2015
The branch, master has been updated
via 0afea2c WHATSNEW: Spotlight
via e0edda7 s3-mdssvc: add documentation for mdssvc and mdssd
via 480cc51 s3-mdssvc: add mdssd RPC service daemon for mdssvc
via 4b0ee5d s3-mdssvc: lexer and parser for Spotlight queries
via c2c5621 s3-mdssvc: main Spotlight code
via 0de03ce s3-mdssvc: Spotlight attribute mappings
via 5d4ecea s3-mdssvc: (un)marshalling Spotlight RPC blob
via 222e863 s3-mdssvc: dalloc: dynamic object store based on talloc
via 25f56f5 s3-mdssvc: add new option 'spotlight'
via 63dd793 s3-mdssvc: add Spotlight RPC stubs
via 5c6e2b2 mdssvc: IDL file for new RPC service
via 6e332ab s3-mdssvc: add configure option --enable-spotlight
from 66736fe s4:torture/rpc: use dcerpc_secondary_auth_connection with creds
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 0afea2c364234a28f0b18e97fa08a2c7fe2ae4ae
Author: Ralph Boehme <slow at samba.org>
Date: Fri Mar 27 17:39:43 2015 +0100
WHATSNEW: Spotlight
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
Autobuild-User(master): Ralph Böhme <slow at samba.org>
Autobuild-Date(master): Tue Jul 7 20:35:07 CEST 2015 on sn-devel-104
commit e0edda73115e8671da11cdb18bd88b6461a02210
Author: Ralph Boehme <rb at sernet.de>
Date: Mon Aug 11 22:30:53 2014 +0200
s3-mdssvc: add documentation for mdssvc and mdssd
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 480cc511ff350fd6c6952e8fa991571784b3aa23
Author: Ralph Boehme <rb at sernet.de>
Date: Mon Aug 11 22:29:09 2014 +0200
s3-mdssvc: add mdssd RPC service daemon for mdssvc
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 4b0ee5d209778694d7ee8514bfa9d38f07e39901
Author: Ralph Boehme <rb at sernet.de>
Date: Thu Jul 31 18:01:34 2014 +0200
s3-mdssvc: lexer and parser for Spotlight queries
Add a lexer and parser for translating Spotlight query strings to
SPARQL.
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit c2c5621380ce59e034bddc12e7dc4feebc7daa9f
Author: Ralph Boehme <slow at samba.org>
Date: Thu Mar 26 22:39:21 2015 +0100
s3-mdssvc: main Spotlight code
Implement all Spotlight RPC commands with the Tracker SPARQL async query
API.
Tracker uses glib for implemeting async tasks, we thus have to use a
glib mainloop for processing sheduled tasks in threads.
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 0de03ce4a451ac6887a84b4f9786b1b5bd12cbbb
Author: Ralph Boehme <rb at sernet.de>
Date: Thu Jul 31 17:56:44 2014 +0200
s3-mdssvc: Spotlight attribute mappings
Add mappings for metadata attribute between Spotlight and NEPOMUK for
use with Tracker.
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 5d4eceae1579de341e69a090a3983e323591ce8e
Author: Ralph Boehme <rb at sernet.de>
Date: Thu Jul 31 17:07:28 2014 +0200
s3-mdssvc: (un)marshalling Spotlight RPC blob
Add code for marshalling and unmarshalling Spotlight RPC blobs
from/into a dalloc object store.
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 222e863d4e31f0a30c83eef39e5b4d8475f066d1
Author: Ralph Boehme <rb at sernet.de>
Date: Thu Jul 31 16:27:36 2014 +0200
s3-mdssvc: dalloc: dynamic object store based on talloc
dalloc is a hack with a bizarre API, but it does its job: it's a
simple object store that allows for storing simple and complex data
types.
We'll use it for storing Spotlight query data.
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 25f56f5f4060c912f4fb6a9ef7179829233369bd
Author: Ralph Boehme <rb at sernet.de>
Date: Thu Jul 31 13:49:49 2014 +0200
s3-mdssvc: add new option 'spotlight'
Per share option: it reflects whether a share is indexed by Tracker or
not. The global switch that controls whether Spotlight is enabled or
not, are the mdsvc RPC switches.
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 63dd793cde70a3d3a5bf4144c316b764d687546b
Author: Ralph Boehme <rb at sernet.de>
Date: Wed Jul 23 09:58:45 2014 +0200
s3-mdssvc: add Spotlight RPC stubs
'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 at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 5c6e2b2b1fc4514f5f61dd16b6fdc59410edc815
Author: Ralph Boehme <rb at sernet.de>
Date: Wed Jul 23 09:58:45 2014 +0200
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 at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 6e332abc3c8411bf43010741f9f6c55c7e5bae6f
Author: Ralph Boehme <rb at sernet.de>
Date: Wed Jul 23 07:15:50 2014 +0200
s3-mdssvc: add configure option --enable-spotlight
configure check with pkg-config for libtracker-sparql, default is
disabled.
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
-----------------------------------------------------------------------
Summary of changes:
WHATSNEW.txt | 8 +
docs-xml/smbdotconf/misc/rpcdaemon.xml | 7 +-
docs-xml/smbdotconf/misc/rpcserver.xml | 8 +-
docs-xml/smbdotconf/misc/spotlight.xml | 56 +
lib/param/param_table.c | 8 +
librpc/idl/mdssvc.idl | 68 +
librpc/idl/wscript_build | 3 +-
librpc/wscript_build | 12 +-
source3/param/loadparm.c | 1 +
source3/rpc_server/{lsasd.c => mdssd.c} | 535 ++---
source3/rpc_server/mdssvc/Makefile | 16 +
source3/rpc_server/mdssvc/README | 14 +
source3/rpc_server/mdssvc/dalloc.c | 230 +++
source3/rpc_server/mdssvc/dalloc.h | 163 ++
source3/rpc_server/mdssvc/marshalling.c | 1362 +++++++++++++
source3/rpc_server/mdssvc/marshalling.h | 55 +
source3/rpc_server/mdssvc/mdssvc.c | 2083 ++++++++++++++++++++
source3/rpc_server/mdssvc/mdssvc.h | 125 ++
.../rpc_server/mdssvc/sparql_lexer.c | 415 ++--
source3/rpc_server/mdssvc/sparql_lexer.l | 57 +
source3/rpc_server/mdssvc/sparql_mapping.c | 373 ++++
source3/rpc_server/mdssvc/sparql_mapping.h | 58 +
source3/rpc_server/mdssvc/sparql_parser.c | 1973 ++++++++++++++++++
source3/rpc_server/mdssvc/sparql_parser.h | 98 +
source3/rpc_server/mdssvc/sparql_parser.y | 479 +++++
source3/rpc_server/mdssvc/sparql_parser_test.c | 38 +
source3/rpc_server/mdssvc/srv_mdssvc_nt.c | 213 ++
.../mdssvc/srv_mdssvc_nt.h} | 16 +-
source3/rpc_server/rpc_config.c | 1 +
source3/rpc_server/rpc_config.h | 2 +
source3/rpc_server/rpc_service_setup.c | 59 +
source3/rpc_server/wscript_build | 18 +
source3/smbd/server.c | 10 +
source3/wscript | 20 +-
source3/wscript_build | 12 +-
35 files changed, 7989 insertions(+), 607 deletions(-)
create mode 100644 docs-xml/smbdotconf/misc/spotlight.xml
create mode 100644 librpc/idl/mdssvc.idl
copy source3/rpc_server/{lsasd.c => mdssd.c} (50%)
create mode 100644 source3/rpc_server/mdssvc/Makefile
create mode 100644 source3/rpc_server/mdssvc/README
create mode 100644 source3/rpc_server/mdssvc/dalloc.c
create mode 100644 source3/rpc_server/mdssvc/dalloc.h
create mode 100644 source3/rpc_server/mdssvc/marshalling.c
create mode 100644 source3/rpc_server/mdssvc/marshalling.h
create mode 100644 source3/rpc_server/mdssvc/mdssvc.c
create mode 100644 source3/rpc_server/mdssvc/mdssvc.h
copy source4/heimdal/lib/com_err/lex.c => source3/rpc_server/mdssvc/sparql_lexer.c (82%)
create mode 100644 source3/rpc_server/mdssvc/sparql_lexer.l
create mode 100644 source3/rpc_server/mdssvc/sparql_mapping.c
create mode 100644 source3/rpc_server/mdssvc/sparql_mapping.h
create mode 100644 source3/rpc_server/mdssvc/sparql_parser.c
create mode 100644 source3/rpc_server/mdssvc/sparql_parser.h
create mode 100644 source3/rpc_server/mdssvc/sparql_parser.y
create mode 100644 source3/rpc_server/mdssvc/sparql_parser_test.c
create mode 100644 source3/rpc_server/mdssvc/srv_mdssvc_nt.c
copy source3/{lib/util_cluster.h => rpc_server/mdssvc/srv_mdssvc_nt.h} (71%)
Changeset truncated at 500 lines:
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index ac2e40d..cbf73b9 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -22,6 +22,14 @@ backends for logging to the systemd-journal, lttng and gpfs have been
added. Please consult the section for the 'logging' parameter in the
smb.conf manpage for details.
+Spotlight
+=========
+
+Support for Apple's Spotlight has been added by integrating with Gnome
+Tracker.
+
+For detailed instructions how to build and setup Samba for Spotlight,
+please see the Samba wiki: <https://wiki.samba.org/index.php/Spotlight>
######################################################################
Changes
diff --git a/docs-xml/smbdotconf/misc/rpcdaemon.xml b/docs-xml/smbdotconf/misc/rpcdaemon.xml
index e9654a0..72f057d 100644
--- a/docs-xml/smbdotconf/misc/rpcdaemon.xml
+++ b/docs-xml/smbdotconf/misc/rpcdaemon.xml
@@ -55,14 +55,15 @@
</para>
<para>
- Samba includes separate daemons for spoolss, lsarpc/lsass, netlogon,
- samr, and FSRVP. Currently four daemons are available and they are
- called:
+ Samba includes separate daemons for spoolss, lsarpc/lsass,
+ netlogon, samr, FSRVP and mdssvc(Spotlight). Currently five
+ daemons are available and they are called:
<programlisting>
epmd
lsasd
spoolssd
fssd
+ mdssd
</programlisting>
Example:
<programlisting>
diff --git a/docs-xml/smbdotconf/misc/rpcserver.xml b/docs-xml/smbdotconf/misc/rpcserver.xml
index d285872..fafedaf 100644
--- a/docs-xml/smbdotconf/misc/rpcserver.xml
+++ b/docs-xml/smbdotconf/misc/rpcserver.xml
@@ -32,6 +32,7 @@
<listitem><para>ntsvcs - Plug and Play Services</para></listitem>
<listitem><para>eventlog - Event Logger</para></listitem>
<listitem><para>initshutdown - Init Shutdown Service</para></listitem>
+ <listitem><para>mdssvc - Spotlight</para></listitem>
</itemizedlist>
<para>
@@ -55,8 +56,8 @@
</para>
<para>
- Currently in Samba3 we support three daemons, spoolssd, epmd and
- lsasd. These daemons can be enabled using the
+ Currently in Samba3 we support four daemons, spoolssd, epmd,
+ lsasd and mdssd. These daemons can be enabled using the
<emphasis>rpc_daemon</emphasis> option. For spoolssd you have
to enable the daemon and proxy the named pipe with:
</para>
@@ -71,6 +72,9 @@
rpc_server:spoolss = external
rpc_server:epmapper = disabled
+
+ rpc_daemon:mdssd = fork
+ rpc_server:mdssvc = external
</programlisting>
</para>
diff --git a/docs-xml/smbdotconf/misc/spotlight.xml b/docs-xml/smbdotconf/misc/spotlight.xml
new file mode 100644
index 0000000..fa2001d
--- /dev/null
+++ b/docs-xml/smbdotconf/misc/spotlight.xml
@@ -0,0 +1,56 @@
+<samba:parameter name="spotlight"
+ context="S"
+ type="boolean"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>
+ This parameter controls whether Samba allows Spotlight
+ queries on a share. For controlling indexing of filesystems
+ you also have to use Tracker's own configuration system.
+ </para>
+
+ <para>
+ Spotlight has several prerequisites:
+ </para>
+
+ <itemizedlist>
+ <listitem><para>
+ Samba must be configured and built with Spotlight support.
+ </para></listitem>
+
+ <listitem><para>
+ The <emphasis>mdssvc</emphasis> RPC service must be
+ enabled, see below.
+ </para></listitem>
+
+ <listitem><para> Tracker intergration must be setup and the
+ share must be indexed by Tracker.</para></listitem>
+ </itemizedlist>
+
+ <para>For a detailed set of instructions please see <ulink
+ url="https://wiki.samba.org/index.php/Spotlight">https://wiki.samba.org/index.php/Spotlight</ulink>.
+ </para>
+
+ <para>
+ The Spotlight RPC service can either be enabled as embedded
+ RPC service:
+ </para>
+
+<programlisting>
+<smbconfsection name="[Global]"/>
+<smbconfoption name="rpc_server:mdsvc">embedded</smbconfoption>
+</programlisting>
+
+ <para>
+ Or it can be run in a seperate RPC service daemon:
+ </para>
+
+<programlisting>
+<smbconfsection name="[Global]"/>
+<smbconfoption name="rpc_server:mdssd">fork</smbconfoption>
+<smbconfoption name="rpc_server:mdsvc">external</smbconfoption>
+</programlisting>
+
+</description>
+<value type="default">no</value>
+</samba:parameter>
diff --git a/lib/param/param_table.c b/lib/param/param_table.c
index ff31038..148f79c 100644
--- a/lib/param/param_table.c
+++ b/lib/param/param_table.c
@@ -808,6 +808,14 @@ struct parm_struct parm_table[] = {
.enum_list = NULL,
},
{
+ .label = "spotlight",
+ .type = P_BOOL,
+ .p_class = P_LOCAL,
+ .offset = LOCAL_VAR(spotlight),
+ .special = NULL,
+ .enum_list = NULL,
+ },
+ {
.label = "write ok",
.type = P_BOOLREV,
.p_class = P_LOCAL,
diff --git a/librpc/idl/mdssvc.idl b/librpc/idl/mdssvc.idl
new file mode 100644
index 0000000..bfb27c4
--- /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 4b56af6..6316edd 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 212733a..1594e72 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
)
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index cedaf1a..af74d68 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -185,6 +185,7 @@ static struct loadparm_service sDefault =
.access_based_share_enum = false,
.bAvailable = true,
.read_only = true,
+ .spotlight = false,
.guest_only = false,
.administrative_share = false,
.guest_ok = false,
diff --git a/source3/rpc_server/lsasd.c b/source3/rpc_server/mdssd.c
similarity index 50%
copy from source3/rpc_server/lsasd.c
copy to source3/rpc_server/mdssd.c
index 6fd0817..fac386b 100644
--- a/source3/rpc_server/lsasd.c
+++ b/source3/rpc_server/mdssd.c
@@ -1,9 +1,9 @@
/*
* Unix SMB/CIFS implementation.
*
- * LSA service daemon
+ * mds service daemon
*
- * Copyright (c) 2011 Andreas Schneider <asn at samba.org>
+ * Copyright (c) 2014 Ralph Boehme <rb at sernet.de>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -37,78 +37,37 @@
#include "rpc_server/rpc_ep_register.h"
#include "rpc_server/rpc_sock_helper.h"
-#include "librpc/gen_ndr/srv_lsa.h"
-#include "librpc/gen_ndr/srv_samr.h"
-#include "librpc/gen_ndr/srv_netlogon.h"
+#include "librpc/gen_ndr/srv_mdssvc.h"
+#include "rpc_server/mdssvc/srv_mdssvc_nt.h"
-#define DAEMON_NAME "lsasd"
-#define LSASD_MAX_SOCKETS 64
+#undef DBGC_CLASS
+#define DBGC_CLASS DBGC_RPC_SRV
+
+#define DAEMON_NAME "mdssd"
+#define MDSSD_MAX_SOCKETS 64
static struct server_id parent_id;
-static struct prefork_pool *lsasd_pool = NULL;
-static int lsasd_child_id = 0;
+static struct prefork_pool *mdssd_pool = NULL;
+static int mdssd_child_id = 0;
-static struct pf_daemon_config default_pf_lsasd_cfg = {
+static struct pf_daemon_config default_pf_mdssd_cfg = {
.prefork_status = PFH_INIT,
.min_children = 5,
.max_children = 25,
.spawn_rate = 5,
- .max_allowed_clients = 100,
+ .max_allowed_clients = 1000,
.child_min_life = 60 /* 1 minute minimum life time */
};
-static struct pf_daemon_config pf_lsasd_cfg = { 0 };
+static struct pf_daemon_config pf_mdssd_cfg = { 0 };
-void start_lsasd(struct tevent_context *ev_ctx,
+void start_mdssd(struct tevent_context *ev_ctx,
struct messaging_context *msg_ctx);
-static void lsasd_reopen_logs(int child_id)
-{
- char *lfile = lp_logfile(talloc_tos());
- char *extension;
- int rc;
-
- if (child_id) {
- rc = asprintf(&extension, "%s.%d", DAEMON_NAME, child_id);
- } else {
- rc = asprintf(&extension, "%s", DAEMON_NAME);
- }
- if (rc == -1) {
- return;
- }
-
- rc = 0;
- if (lfile == NULL || lfile[0] == '\0') {
- rc = asprintf(&lfile, "%s/log.%s",
- get_dyn_LOGFILEBASE(), extension);
- } else {
- if (strstr(lfile, extension) == NULL) {
- if (child_id) {
- rc = asprintf(&lfile, "%s.%d",
- lp_logfile(talloc_tos()),
- child_id);
- } else {
- rc = asprintf(&lfile, "%s.%s",
- lp_logfile(talloc_tos()),
- extension);
- }
- }
- }
-
- if (rc > 0) {
- lp_set_logfile(lfile);
- SAFE_FREE(lfile);
- }
-
- SAFE_FREE(extension);
-
- reopen_logs();
-}
-
-static void lsasd_smb_conf_updated(struct messaging_context *msg,
- void *private_data,
- uint32_t msg_type,
- struct server_id server_id,
- DATA_BLOB *data)
+static void mdssd_smb_conf_updated(struct messaging_context *msg,
+ void *private_data,
+ uint32_t msg_type,
+ struct server_id server_id,
+ DATA_BLOB *data)
{
struct tevent_context *ev_ctx;
@@ -118,38 +77,36 @@ static void lsasd_smb_conf_updated(struct messaging_context *msg,
change_to_root_user();
lp_load_global(get_dyn_CONFIGFILE());
- lsasd_reopen_logs(lsasd_child_id);
- if (lsasd_child_id == 0) {
+ reopen_logs();
+ if (mdssd_child_id == 0) {
pfh_daemon_config(DAEMON_NAME,
- &pf_lsasd_cfg,
- &default_pf_lsasd_cfg);
- pfh_manage_pool(ev_ctx, msg, &pf_lsasd_cfg, lsasd_pool);
+ &pf_mdssd_cfg,
+ &default_pf_mdssd_cfg);
+ pfh_manage_pool(ev_ctx, msg, &pf_mdssd_cfg, mdssd_pool);
}
}
-static void lsasd_sig_term_handler(struct tevent_context *ev,
- struct tevent_signal *se,
- int signum,
- int count,
- void *siginfo,
- void *private_data)
+static void mdssd_sig_term_handler(struct tevent_context *ev,
+ struct tevent_signal *se,
+ int signum,
+ int count,
+ void *siginfo,
+ void *private_data)
{
- rpc_netlogon_shutdown();
- rpc_samr_shutdown();
- rpc_lsarpc_shutdown();
+ rpc_mdssvc_shutdown();
DEBUG(0, ("termination signal\n"));
exit(0);
}
-static void lsasd_setup_sig_term_handler(struct tevent_context *ev_ctx)
+static void mdssd_setup_sig_term_handler(struct tevent_context *ev_ctx)
{
struct tevent_signal *se;
se = tevent_add_signal(ev_ctx,
ev_ctx,
SIGTERM, 0,
- lsasd_sig_term_handler,
+ mdssd_sig_term_handler,
NULL);
if (!se) {
DEBUG(0, ("failed to setup SIGTERM handler\n"));
@@ -157,34 +114,34 @@ static void lsasd_setup_sig_term_handler(struct tevent_context *ev_ctx)
}
}
-static void lsasd_sig_hup_handler(struct tevent_context *ev,
- struct tevent_signal *se,
- int signum,
- int count,
- void *siginfo,
- void *pvt)
+static void mdssd_sig_hup_handler(struct tevent_context *ev,
+ struct tevent_signal *se,
+ int signum,
+ int count,
+ void *siginfo,
+ void *pvt)
{
change_to_root_user();
lp_load_global(get_dyn_CONFIGFILE());
- lsasd_reopen_logs(lsasd_child_id);
+ reopen_logs();
pfh_daemon_config(DAEMON_NAME,
- &pf_lsasd_cfg,
- &default_pf_lsasd_cfg);
+ &pf_mdssd_cfg,
+ &default_pf_mdssd_cfg);
/* relay to all children */
- prefork_send_signal_to_all(lsasd_pool, SIGHUP);
+ prefork_send_signal_to_all(mdssd_pool, SIGHUP);
}
-static void lsasd_setup_sig_hup_handler(struct tevent_context *ev_ctx)
+static void mdssd_setup_sig_hup_handler(struct tevent_context *ev_ctx)
{
struct tevent_signal *se;
se = tevent_add_signal(ev_ctx,
--
Samba Shared Repository
More information about the samba-cvs
mailing list