diff options
author | Stefan Metzmacher <metze@samba.org> | 2014-06-12 10:40:12 +0200 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2014-08-06 09:51:14 +0200 |
commit | 4dbe105d51a6ee230d75fb799f2f7fe3e4d5e6d0 (patch) | |
tree | d4d19a67682327bf401f7eaec0286f20cc96e0d0 /source3/smbd/smbXsrv_tcon.c | |
parent | 6905bb6c868e33ef399a7b9a0a87b0497dbde43b (diff) | |
download | samba-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.c | 23 |
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, |