summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2011-03-29 10:52:32 +0200
committerGünther Deschner <gd@samba.org>2011-03-29 16:03:53 +0200
commit991fa3a5fecc05a01b2d3696fe23cba109de10c0 (patch)
treea1b000dce62778f17a14dd2d9cf76659e988e231 /source3
parent28b204601556105ad57d7ac69210eb75f248f764 (diff)
downloadsamba-991fa3a5fecc05a01b2d3696fe23cba109de10c0.tar.gz
samba-991fa3a5fecc05a01b2d3696fe23cba109de10c0.tar.bz2
samba-991fa3a5fecc05a01b2d3696fe23cba109de10c0.zip
s3-spoolssd: Start the spoolss service correctly.
Signed-off-by: Günther Deschner <gd@samba.org>
Diffstat (limited to 'source3')
-rw-r--r--source3/rpc_server/rpc_ep_setup.c22
-rw-r--r--source3/smbd/server.c2
2 files changed, 17 insertions, 7 deletions
diff --git a/source3/rpc_server/rpc_ep_setup.c b/source3/rpc_server/rpc_ep_setup.c
index a0c54c7e99..d517bb8851 100644
--- a/source3/rpc_server/rpc_ep_setup.c
+++ b/source3/rpc_server/rpc_ep_setup.c
@@ -1103,14 +1103,24 @@ bool dcesrv_ep_setup(struct tevent_context *ev_ctx,
return false;
}
- spoolss_cb.init = spoolss_init_cb;
- spoolss_cb.shutdown = spoolss_shutdown_cb;
- spoolss_cb.private_data = ep_ctx;
- if (!NT_STATUS_IS_OK(rpc_spoolss_init(&spoolss_cb))) {
- return false;
+ rpcsrv_type = lp_parm_const_string(GLOBAL_SECTION_SNUM,
+ "rpc_server",
+ "spoolss",
+ "embedded");
+ if (StrCaseCmp(rpcsrv_type, "embedded") == 0) {
+ spoolss_cb.init = spoolss_init_cb;
+ spoolss_cb.shutdown = spoolss_shutdown_cb;
+ spoolss_cb.private_data = ep_ctx;
+ if (!NT_STATUS_IS_OK(rpc_spoolss_init(&spoolss_cb))) {
+ return false;
+ }
+ } else if (StrCaseCmp(rpcsrv_type, "daemon") == 0 ||
+ StrCaseCmp(rpcsrv_type, "external") == 0) {
+ if (!NT_STATUS_IS_OK(rpc_spoolss_init(NULL))) {
+ return false;
+ }
}
-
svcctl_cb.init = svcctl_init_cb;
svcctl_cb.shutdown = svcctl_shutdown_cb;
svcctl_cb.private_data = ep_ctx;
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 4b7637f89e..8c7b146e19 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -1253,7 +1253,7 @@ extern void build_options(bool screen);
rpcsrv_type = lp_parm_const_string(GLOBAL_SECTION_SNUM,
"rpc_server", "spoolss",
"embedded");
- if (StrCaseCmp(rpcsrv_type, "embedded") != 0) {
+ if (StrCaseCmp(rpcsrv_type, "daemon") == 0) {
start_spoolssd(smbd_event_context(),
smbd_messaging_context());
}