session channel creation_time smbXsrv_session_add_channel pass 'now'
authorStefan Metzmacher <metze@samba.org>
Fri, 4 Oct 2019 08:02:56 +0000 (10:02 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 28 Jan 2020 12:26:51 +0000 (13:26 +0100)
source3/librpc/idl/smbXsrv.idl
source3/smbd/globals.h
source3/smbd/smb2_sesssetup.c
source3/smbd/smbXsrv_session.c

index c04ac6f3ccc8dd6c4da42a56616bffc53bcf4849..89d5287a1095f0a2666adf32b2543e72d6df75a1 100644 (file)
@@ -200,6 +200,7 @@ interface smbXsrv
 
        typedef struct {
                server_id                               server_id;
+               NTTIME                                  creation_time;
                [charset(UTF8),string] char             local_address[];
                [charset(UTF8),string] char             remote_address[];
                [charset(UTF8),string] char             remote_name[];
index 7b26d04ed0f192d85e7c6112bec84a9b6741606f..42ff497138204fcb284f0ae5c1e6d7018a48e297 100644 (file)
@@ -546,6 +546,7 @@ NTSTATUS smbXsrv_session_create(struct smbXsrv_connection *conn,
                                struct smbXsrv_session **_session);
 NTSTATUS smbXsrv_session_add_channel(struct smbXsrv_session *session,
                                     struct smbXsrv_connection *conn,
+                                    NTTIME now,
                                     struct smbXsrv_channel_global0 **_c);
 NTSTATUS smbXsrv_session_update(struct smbXsrv_session *session);
 struct smbXsrv_channel_global0;
index b43cf21126057d96993cb0e8263e74e94d74c986..2fdd8798c3239b9ad2f0e403ef96d3ef06b4992b 100644 (file)
@@ -915,6 +915,7 @@ static struct tevent_req *smbd_smb2_session_setup_send(TALLOC_CTX *mem_ctx,
 
                status = smbXsrv_session_add_channel(smb2req->session,
                                                     smb2req->xconn,
+                                                    now,
                                                     &c);
                if (!NT_STATUS_IS_OK(status)) {
                        tevent_req_nterror(req, status);
index a6fe818d3971c9427864ba2f26bdf7e4a17a6a92..8325dde7c8da10f00181e9be9fb06226abc97427 100644 (file)
@@ -1293,7 +1293,7 @@ NTSTATUS smbXsrv_session_create(struct smbXsrv_connection *conn,
        global->creation_time = now;
        global->expiration_time = GENSEC_EXPIRE_TIME_INFINITY;
 
-       status = smbXsrv_session_add_channel(session, conn, &channel);
+       status = smbXsrv_session_add_channel(session, conn, now, &channel);
        if (!NT_STATUS_IS_OK(status)) {
                TALLOC_FREE(session);
                return status;
@@ -1338,6 +1338,7 @@ NTSTATUS smbXsrv_session_create(struct smbXsrv_connection *conn,
 
 NTSTATUS smbXsrv_session_add_channel(struct smbXsrv_session *session,
                                     struct smbXsrv_connection *conn,
+                                    NTTIME now,
                                     struct smbXsrv_channel_global0 **_c)
 {
        struct smbXsrv_session_global0 *global = session->global;
@@ -1363,6 +1364,7 @@ NTSTATUS smbXsrv_session_add_channel(struct smbXsrv_session *session,
        ZERO_STRUCTP(c);
 
        c->server_id = messaging_server_id(conn->client->msg_ctx);
+       c->creation_time = now;
        c->local_address = tsocket_address_string(conn->local_address,
                                                  global->channels);
        if (c->local_address == NULL) {