summaryrefslogtreecommitdiff
path: root/source3/smbd/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/smbd/server.c')
-rw-r--r--source3/smbd/server.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index ca6f6c8e16..1c614dad0b 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -982,8 +982,17 @@ extern void build_options(bool screen);
if (smbd_messaging_context() == NULL)
exit(1);
- if (!reload_services(smbd_messaging_context(), False))
- return(-1);
+ /*
+ * Reloading of the printers will not work here as we don't have a
+ * server info and rpc services set up. It will be called later.
+ */
+ if (!reload_services(smbd_messaging_context(), False)) {
+ exit(1);
+ }
+
+ /* ...NOTE... Log files are working from this point! */
+
+ DEBUG(3,("loaded services\n"));
init_structs();
@@ -1002,8 +1011,6 @@ extern void build_options(bool screen);
}
#endif
- DEBUG(3,( "loaded services\n"));
-
if (!is_daemon && !is_a_socket(0)) {
if (!interactive)
DEBUG(0,("standard input is not a socket, assuming -D option\n"));
@@ -1156,6 +1163,9 @@ extern void build_options(bool screen);
static_init_rpc;
+ /* Publish nt printers, this requires a working winreg pipe */
+ reload_printers(smbd_messaging_context());
+
/* only start the background queue daemon if we are
running as a daemon -- bad things will happen if
smbd is launched via inetd and we fork a copy of