summaryrefslogtreecommitdiff
path: root/source3/smbd/smbXsrv_tcon.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2014-06-12 10:40:12 +0200
committerMichael Adam <obnox@samba.org>2014-08-06 09:51:14 +0200
commit4dbe105d51a6ee230d75fb799f2f7fe3e4d5e6d0 (patch)
treed4d19a67682327bf401f7eaec0286f20cc96e0d0 /source3/smbd/smbXsrv_tcon.c
parent6905bb6c868e33ef399a7b9a0a87b0497dbde43b (diff)
downloadsamba-4dbe105d51a6ee230d75fb799f2f7fe3e4d5e6d0.tar.gz
s3:smbXsrv_tcon: don't pass smbXsrv_connection to smbXsrv_tcon_create()
A tcon can be used on multiple connections in future, so better pass the few needed parameters explicitly and let the caller figure out where to get them. Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org> Reviewed-by: Michael Adam <obnox@samba.org>
Diffstat (limited to 'source3/smbd/smbXsrv_tcon.c')
-rw-r--r--source3/smbd/smbXsrv_tcon.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/source3/smbd/smbXsrv_tcon.c b/source3/smbd/smbXsrv_tcon.c
index 2cbd7613677..48a938e798c 100644
--- a/source3/smbd/smbXsrv_tcon.c
+++ b/source3/smbd/smbXsrv_tcon.c
@@ -697,8 +697,9 @@ static int smbXsrv_tcon_destructor(struct smbXsrv_tcon *tcon)
return 0;
}
-static NTSTATUS smbXsrv_tcon_create(struct smbXsrv_connection *conn,
- struct smbXsrv_tcon_table *table,
+static NTSTATUS smbXsrv_tcon_create(struct smbXsrv_tcon_table *table,
+ enum protocol_types protocol,
+ struct server_id server_id,
NTTIME now,
struct smbXsrv_tcon **_tcon)
{
@@ -729,7 +730,7 @@ static NTSTATUS smbXsrv_tcon_create(struct smbXsrv_connection *conn,
}
tcon->global = global;
- if (conn->protocol >= PROTOCOL_SMB2_02) {
+ if (protocol >= PROTOCOL_SMB2_02) {
uint64_t id = global->tcon_global_id;
uint8_t key_buf[SMBXSRV_TCON_LOCAL_TDB_KEY_SIZE];
TDB_DATA key;
@@ -770,7 +771,7 @@ static NTSTATUS smbXsrv_tcon_create(struct smbXsrv_connection *conn,
global->creation_time = now;
- global->server_id = messaging_server_id(conn->msg_ctx);
+ global->server_id = server_id;
ptr = tcon;
val = make_tdb_data((uint8_t const *)&ptr, sizeof(ptr));
@@ -1087,8 +1088,11 @@ NTSTATUS smb1srv_tcon_create(struct smbXsrv_connection *conn,
NTTIME now,
struct smbXsrv_tcon **_tcon)
{
- return smbXsrv_tcon_create(conn, conn->tcon_table, now,
- _tcon);
+ struct server_id id = messaging_server_id(conn->msg_ctx);
+
+ return smbXsrv_tcon_create(conn->tcon_table,
+ conn->protocol,
+ id, now, _tcon);
}
NTSTATUS smb1srv_tcon_lookup(struct smbXsrv_connection *conn,
@@ -1139,8 +1143,11 @@ NTSTATUS smb2srv_tcon_create(struct smbXsrv_session *session,
NTTIME now,
struct smbXsrv_tcon **_tcon)
{
- return smbXsrv_tcon_create(session->connection, session->tcon_table,
- now, _tcon);
+ struct server_id id = messaging_server_id(session->connection->msg_ctx);
+
+ return smbXsrv_tcon_create(session->tcon_table,
+ PROTOCOL_SMB2_02,
+ id, now, _tcon);
}
NTSTATUS smb2srv_tcon_lookup(struct smbXsrv_session *session,