smbXsrv: add a smbXsrv_connection argument to smb2srv_session_lookup_raw
authorMichael Adam <obnox@samba.org>
Fri, 8 May 2015 21:15:51 +0000 (23:15 +0200)
committerMichael Adam <obnox@samba.org>
Wed, 29 Jul 2015 16:26:07 +0000 (18:26 +0200)
This way, we can verify that the session is valid on a channel.

Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Michael Adam <obnox@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
source3/smbd/smbXsrv_session.c

index 256d8203a56397d883b65f889811123864b38904..12cc43e7f240455e9241a1b967b2c0577affb5a1 100644 (file)
@@ -52,6 +52,8 @@ struct smbXsrv_session_table {
 };
 
 static NTSTATUS smb2srv_session_lookup_raw(struct smbXsrv_session_table *table,
+                                          /* conn: optional */
+                                          struct smbXsrv_connection *conn,
                                           uint64_t session_id, NTTIME now,
                                           struct smbXsrv_session **session);
 
@@ -281,6 +283,7 @@ static void smbXsrv_session_close_loop(struct tevent_req *subreq)
        }
 
        status = smb2srv_session_lookup_raw(client->session_table,
+                                           NULL, /* smbXsrv_connection */
                                            close_info0->old_session_wire_id,
                                            now, &session);
        if (NT_STATUS_EQUAL(status, NT_STATUS_USER_SESSION_DELETED)) {
@@ -1748,6 +1751,8 @@ NTSTATUS smb2srv_session_table_init(struct smbXsrv_connection *conn)
 }
 
 static NTSTATUS smb2srv_session_lookup_raw(struct smbXsrv_session_table *table,
+                                          /* conn: optional */
+                                          struct smbXsrv_connection *conn,
                                           uint64_t session_id, NTTIME now,
                                           struct smbXsrv_session **session)
 {
@@ -1758,7 +1763,7 @@ static NTSTATUS smb2srv_session_lookup_raw(struct smbXsrv_session_table *table,
                return NT_STATUS_USER_SESSION_DELETED;
        }
 
-       return smbXsrv_session_local_lookup(table, NULL, local_id, now,
+       return smbXsrv_session_local_lookup(table, conn, local_id, now,
                                            session);
 }
 
@@ -1767,7 +1772,8 @@ NTSTATUS smb2srv_session_lookup(struct smbXsrv_connection *conn,
                                struct smbXsrv_session **session)
 {
        struct smbXsrv_session_table *table = conn->client->session_table;
-       return smb2srv_session_lookup_raw(table, session_id, now, session);
+       return smb2srv_session_lookup_raw(table, conn, session_id, now,
+                                         session);
 }
 
 struct smbXsrv_session_global_traverse_state {