1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-02 09:47:23 +03:00

s3:smbd: add smbXsrv_tcon infrastructure

Pair-Programmed-With: Michael Adam <obnox@samba.org>

metze
This commit is contained in:
Stefan Metzmacher 2012-03-16 16:32:28 +01:00
parent 80f9abf637
commit c36bd677f3
5 changed files with 1180 additions and 1 deletions

View File

@ -977,6 +977,7 @@ SMBD_OBJ_SRV = smbd/server_reload.o \
autoconf/librpc/gen_ndr/ndr_smbXsrv.o \
smbd/smbXsrv_version.o \
smbd/smbXsrv_session.o \
smbd/smbXsrv_tcon.o \
$(MANGLE_OBJ) @VFS_STATIC@
SMBD_OBJ_BASE = $(PARAM_WITHOUT_REG_OBJ) $(SMBD_OBJ_SRV) $(LIBSMB_OBJ) \

View File

@ -357,6 +357,7 @@ struct smbXsrv_connection {
uint64_t smbd_idle_profstamp;
struct smbXsrv_session_table *session_table;
struct smbXsrv_tcon_table *tcon_table;
};
NTSTATUS smbXsrv_version_global_init(const struct server_id *server_id);
@ -381,6 +382,26 @@ NTSTATUS smb2srv_session_lookup(struct smbXsrv_connection *conn,
uint64_t session_id, NTTIME now,
struct smbXsrv_session **session);
NTSTATUS smbXsrv_tcon_global_init(void);
NTSTATUS smbXsrv_tcon_update(struct smbXsrv_tcon *tcon);
NTSTATUS smbXsrv_tcon_disconnect(struct smbXsrv_tcon *tcon, uint64_t vuid);
NTSTATUS smb1srv_tcon_table_init(struct smbXsrv_connection *conn);
NTSTATUS smb1srv_tcon_create(struct smbXsrv_connection *conn,
NTTIME now,
struct smbXsrv_tcon **_tcon);
NTSTATUS smb1srv_tcon_lookup(struct smbXsrv_connection *conn,
uint16_t tree_id, NTTIME now,
struct smbXsrv_tcon **tcon);
NTSTATUS smb1srv_tcon_disconnect_all(struct smbXsrv_connection *conn);
NTSTATUS smb2srv_tcon_table_init(struct smbXsrv_session *session);
NTSTATUS smb2srv_tcon_create(struct smbXsrv_session *session,
NTTIME now,
struct smbXsrv_tcon **_tcon);
NTSTATUS smb2srv_tcon_lookup(struct smbXsrv_session *session,
uint32_t tree_id, NTTIME now,
struct smbXsrv_tcon **tcon);
NTSTATUS smb2srv_tcon_disconnect_all(struct smbXsrv_session *session);
struct smbd_smb2_request {
struct smbd_smb2_request *prev, *next;

View File

@ -1392,8 +1392,13 @@ extern void build_options(bool screen);
exit(1);
}
if (!connections_init(True))
if (!connections_init(true)) {
exit(1);
}
status = smbXsrv_tcon_global_init();
if (!NT_STATUS_IS_OK(status)) {
exit(1);
}
if (!locking_init())
exit(1);

1151
source3/smbd/smbXsrv_tcon.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -377,6 +377,7 @@ SMBD_SRC_SRV = '''smbd/server_reload.c smbd/files.c smbd/connection.c
smbd/smb2_break.c
smbd/smbXsrv_version.c
smbd/smbXsrv_session.c
smbd/smbXsrv_tcon.c
smbd/server_exit.c
${MANGLE_SRC}'''