summaryrefslogtreecommitdiff
path: root/source4/smbd
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-05-23 16:24:07 +0200
committerJelmer Vernooij <jelmer@samba.org>2008-05-23 16:24:07 +0200
commitcceac63aaab26a72e2f3fd150dd1e4e83a0e5279 (patch)
tree6203cca724fc5f17f068e3fd4d0b403fdff3f8f9 /source4/smbd
parent7c7880695b02df4cbe0faab959846c63d0cc0536 (diff)
parent72fce654072b2d7317ff21c95558bd365701d5dd (diff)
downloadsamba-cceac63aaab26a72e2f3fd150dd1e4e83a0e5279.tar.gz
samba-cceac63aaab26a72e2f3fd150dd1e4e83a0e5279.tar.bz2
samba-cceac63aaab26a72e2f3fd150dd1e4e83a0e5279.zip
Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into v4-0-wsgi
Conflicts: source/scripting/python/samba/provision.py (This used to be commit d27de633656f8a699222df77c4c58326890889a2)
Diffstat (limited to 'source4/smbd')
-rw-r--r--source4/smbd/config.mk32
-rw-r--r--source4/smbd/process_model.c4
-rw-r--r--source4/smbd/process_model.mk23
-rw-r--r--source4/smbd/server.c15
-rw-r--r--source4/smbd/service_stream.c2
-rw-r--r--source4/smbd/service_stream.h6
6 files changed, 49 insertions, 33 deletions
diff --git a/source4/smbd/config.mk b/source4/smbd/config.mk
index 6cbfa16045..e60f444456 100644
--- a/source4/smbd/config.mk
+++ b/source4/smbd/config.mk
@@ -1,34 +1,26 @@
# server subsystem
-################################################
-# Start MODULE service_auth
-[MODULE::service_auth]
-INIT_FUNCTION = server_service_auth_init
-SUBSYSTEM = service
+[SUBSYSTEM::service]
PRIVATE_DEPENDENCIES = \
- auth
-# End MODULE server_auth
-################################################
+ MESSAGING samba-socket
-[SUBSYSTEM::service]
-PRIVATE_PROTO_HEADER = service_proto.h
-OBJ_FILES = \
+service_OBJ_FILES = $(addprefix $(smbdsrcdir)/, \
service.o \
service_stream.o \
- service_task.o
-PRIVATE_DEPENDENCIES = \
- MESSAGING samba-socket
+ service_task.o)
+
+$(eval $(call proto_header_template,$(smbdsrcdir)/service_proto.h,$(service_OBJ_FILES:.o=.c)))
[SUBSYSTEM::PIDFILE]
-OBJ_FILES = pidfile.o
-PRIVATE_PROTO_HEADER = pidfile.h
+
+PIDFILE_OBJ_FILES = $(smbdsrcdir)/pidfile.o
+
+$(eval $(call proto_header_template,$(smbdsrcdir)/pidfile.h,$(PIDFILE_OBJ_FILES:.o=.c)))
#################################
# Start BINARY smbd
[BINARY::smbd]
INSTALLDIR = SBINDIR
-OBJ_FILES = \
- server.o
PRIVATE_DEPENDENCIES = \
process_model \
service \
@@ -44,6 +36,8 @@ PRIVATE_DEPENDENCIES = \
share \
CLUSTER
-MANPAGES += smbd/smbd.8
+smbd_OBJ_FILES = $(smbdsrcdir)/server.o
+
+MANPAGES += $(smbdsrcdir)/smbd.8
# End BINARY smbd
#################################
diff --git a/source4/smbd/process_model.c b/source4/smbd/process_model.c
index fcbe2d9872..e631975b37 100644
--- a/source4/smbd/process_model.c
+++ b/source4/smbd/process_model.c
@@ -20,7 +20,6 @@
#include "includes.h"
#include "smbd/process_model.h"
-#include "build.h"
#include "param/param.h"
/*
@@ -82,6 +81,9 @@ _PUBLIC_ NTSTATUS register_process_model(const void *_ops)
_PUBLIC_ NTSTATUS process_model_init(struct loadparm_context *lp_ctx)
{
+ extern NTSTATUS process_model_standard_init(void);
+ extern NTSTATUS process_model_prefork_init(void);
+ extern NTSTATUS process_model_single_init(void);
init_module_fn static_init[] = { STATIC_process_model_MODULES };
init_module_fn *shared_init = load_samba_modules(NULL, lp_ctx, "process_model");
diff --git a/source4/smbd/process_model.mk b/source4/smbd/process_model.mk
index d559ce1577..5ed8471a9d 100644
--- a/source4/smbd/process_model.mk
+++ b/source4/smbd/process_model.mk
@@ -5,45 +5,46 @@
[MODULE::process_model_single]
INIT_FUNCTION = process_model_single_init
SUBSYSTEM = process_model
-OBJ_FILES = \
- process_single.o
# End MODULE process_model_single
################################################
+process_model_single_OBJ_FILES = $(smbdsrcdir)/process_single.o
+
################################################
# Start MODULE process_model_standard
[MODULE::process_model_standard]
INIT_FUNCTION = process_model_standard_init
SUBSYSTEM = process_model
-OBJ_FILES = \
- process_standard.o
PRIVATE_DEPENDENCIES = SETPROCTITLE
# End MODULE process_model_standard
################################################
+process_model_standard_OBJ_FILES = $(smbdsrcdir)/process_standard.o
+
################################################
# Start MODULE process_model_thread
[MODULE::process_model_thread]
INIT_FUNCTION = process_model_thread_init
SUBSYSTEM = process_model
-OBJ_FILES = \
- process_thread.o
PRIVATE_DEPENDENCIES = PTHREAD
# End MODULE process_model_thread
################################################
+process_model_thread_OBJ_FILES = $(smbdsrcdir)/process_thread.o
+
################################################
# Start MODULE process_model_prefork
[MODULE::process_model_prefork]
INIT_FUNCTION = process_model_prefork_init
SUBSYSTEM = process_model
-OBJ_FILES = \
- process_prefork.o
# End MODULE process_model_thread
################################################
+process_model_prefork_OBJ_FILES = $(smbdsrcdir)/process_prefork.o
+
[SUBSYSTEM::process_model]
-PRIVATE_PROTO_HEADER = process_model_proto.h
-OBJ_FILES = \
- process_model.o
PRIVATE_DEPENDENCIES = LIBSAMBA-UTIL LIBSAMBA-HOSTCONFIG
+
+process_model_OBJ_FILES = $(smbdsrcdir)/process_model.o
+
+$(eval $(call proto_header_template,$(smbdsrcdir)/process_model_proto.h,$(process_model_OBJ_FILES:.o=.c)))
diff --git a/source4/smbd/server.c b/source4/smbd/server.c
index d6e2fb19e4..e1ebd133ce 100644
--- a/source4/smbd/server.c
+++ b/source4/smbd/server.c
@@ -28,7 +28,6 @@
#include "lib/cmdline/popt_common.h"
#include "system/dir.h"
#include "system/filesys.h"
-#include "build.h"
#include "ldb/include/ldb.h"
#include "registry/registry.h"
#include "ntvfs/ntvfs.h"
@@ -187,7 +186,19 @@ static int binary_smbd_main(const char *binary_name, int argc, const char *argv[
bool opt_interactive = false;
int opt;
poptContext pc;
- init_module_fn static_init[] = { STATIC_service_MODULES };
+ extern NTSTATUS server_service_wrepl_init(void);
+ extern NTSTATUS server_service_kdc_init(void);
+ extern NTSTATUS server_service_ldap_init(void);
+ extern NTSTATUS server_service_web_init(void);
+ extern NTSTATUS server_service_ldap_init(void);
+ extern NTSTATUS server_service_winbind_init(void);
+ extern NTSTATUS server_service_nbtd_init(void);
+ extern NTSTATUS server_service_auth_init(void);
+ extern NTSTATUS server_service_cldapd_init(void);
+ extern NTSTATUS server_service_smb_init(void);
+ extern NTSTATUS server_service_drepl_init(void);
+ extern NTSTATUS server_service_rpc_init(void);
+ init_module_fn static_init[] = { STATIC_smbd_MODULES };
init_module_fn *shared_init;
struct event_context *event_ctx;
NTSTATUS status;
diff --git a/source4/smbd/service_stream.c b/source4/smbd/service_stream.c
index 9f744efa81..e27d87ec75 100644
--- a/source4/smbd/service_stream.c
+++ b/source4/smbd/service_stream.c
@@ -119,6 +119,7 @@ void stream_io_handler_callback(void *private, uint16_t flags)
a server connection
*/
NTSTATUS stream_new_connection_merge(struct event_context *ev,
+ struct loadparm_context *lp_ctx,
const struct model_ops *model_ops,
struct socket_context *sock,
const struct stream_server_ops *stream_ops,
@@ -140,6 +141,7 @@ NTSTATUS stream_new_connection_merge(struct event_context *ev,
srv_conn->ops = stream_ops;
srv_conn->msg_ctx = msg_ctx;
srv_conn->event.ctx = ev;
+ srv_conn->lp_ctx = lp_ctx;
srv_conn->event.fde = event_add_fd(ev, srv_conn, socket_get_fd(sock),
EVENT_FD_READ,
stream_io_handler_fde, srv_conn);
diff --git a/source4/smbd/service_stream.h b/source4/smbd/service_stream.h
index 04d23a56f2..d57a54cdc9 100644
--- a/source4/smbd/service_stream.h
+++ b/source4/smbd/service_stream.h
@@ -50,6 +50,12 @@ struct stream_connection {
struct messaging_context *msg_ctx;
struct loadparm_context *lp_ctx;
+ /*
+ * this transport layer session info, normally NULL
+ * which means the same as an anonymous session info
+ */
+ struct auth_session_info *session_info;
+
bool processing;
const char *terminate;
};