change it ...
authorStefan Metzmacher <metze@samba.org>
Wed, 8 Feb 2012 18:31:08 +0000 (19:31 +0100)
committerStefan Metzmacher <metze@samba.org>
Thu, 10 May 2012 16:41:16 +0000 (18:41 +0200)
source3/smbd/smbXsrv_open.c

index 0b4f04b5578f62557ee7225cd7326a2ca5231418..90c2f56dfe7586784d9025aab7292897a2552be6 100644 (file)
@@ -65,11 +65,11 @@ NTSTATUS smbXsrv_open_global_init(void)
        return NT_STATUS_OK;
 }
 
-static NTSTATUS smbXsrv_session_table_init(struct smbXsrv_connection *conn,
+static NTSTATUS smbXsrv_open_table_init(struct smbXsrv_connection *conn,
                                           uint32_t lowest_id,
                                           uint32_t highest_id)
 {
-       struct smbXsrv_session_table *table = &conn->session_table;
+       struct smbXsrv_open_table *table = &conn->open_table;
        NTSTATUS status;
 
        ZERO_STRUCTP(table);
@@ -80,17 +80,17 @@ static NTSTATUS smbXsrv_session_table_init(struct smbXsrv_connection *conn,
        table->local.lowest_id = lowest_id;
        table->local.highest_id = highest_id;
 
-       status = smbXsrv_session_global_init();
+       status = smbXsrv_open_global_init();
        if (!NT_STATUS_IS_OK(status)) {
                return status;
        }
 
-       table->global.db_ctx = smbXsrv_session_global_db_ctx;
+       table->global.db_ctx = smbXsrv_open_global_db_ctx;
 
        return NT_STATUS_OK;
 }
 
-struct smb1srv_session_local_allocate_state {
+struct smb1srv_open_local_allocate_state {
        const uint32_t lowest_id;
        const uint32_t highest_id;
        uint32_t last_id;
@@ -98,11 +98,11 @@ struct smb1srv_session_local_allocate_state {
        NTSTATUS status;
 };
 
-static int smb1srv_session_local_allocate_traverse(struct db_record *rec,
+static int smb1srv_open_local_allocate_traverse(struct db_record *rec,
                                                   void *private_data)
 {
-       struct smb1srv_session_local_allocate_state *state =
-               (struct smb1srv_session_local_allocate_state *)private_data;
+       struct smb1srv_open_local_allocate_state *state =
+               (struct smb1srv_open_local_allocate_state *)private_data;
        TDB_DATA key = dbwrap_record_get_key(rec);
        uint32_t id = 0;
 
@@ -138,14 +138,14 @@ static int smb1srv_session_local_allocate_traverse(struct db_record *rec,
        return 0;
 }
 
-static NTSTATUS smb1srv_session_local_allocate_id(struct db_context *db,
+static NTSTATUS smb1srv_open_local_allocate_id(struct db_context *db,
                                                  uint32_t lowest_id,
                                                  uint32_t highest_id,
                                                  TALLOC_CTX *mem_ctx,
                                                  struct db_record **_rec,
                                                  uint32_t *_id)
 {
-       struct smb1srv_session_local_allocate_state state = {
+       struct smb1srv_open_local_allocate_state state = {
                .lowest_id = lowest_id,
                .highest_id = highest_id,
                .last_id = 0,
@@ -202,7 +202,7 @@ static NTSTATUS smb1srv_session_local_allocate_id(struct db_context *db,
                return NT_STATUS_OK;
        }
 
-       status = dbwrap_traverse_read(db, smb1srv_session_local_allocate_traverse,
+       status = dbwrap_traverse_read(db, smb1srv_open_local_allocate_traverse,
                                      &state, &count);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_INTERNAL_DB_CORRUPTION)) {
                /*
@@ -246,16 +246,16 @@ static NTSTATUS smb1srv_session_local_allocate_id(struct db_context *db,
        return state.status;
 }
 
-struct smbXsrv_session_local_fetch_state {
-       struct smbXsrv_session *session;
+struct smbXsrv_open_local_fetch_state {
+       struct smbXsrv_open *open;
        NTSTATUS status;
 };
 
-static void smbXsrv_session_local_fetch_parser(TDB_DATA key, TDB_DATA data,
+static void smbXsrv_open_local_fetch_parser(TDB_DATA key, TDB_DATA data,
                                               void *private_data)
 {
-       struct smbXsrv_session_local_fetch_state *state =
-               (struct smbXsrv_session_local_fetch_state *)private_data;
+       struct smbXsrv_open_local_fetch_state *state =
+               (struct smbXsrv_open_local_fetch_state *)private_data;
        void *ptr;
 
        if (data.dsize != sizeof(ptr)) {
@@ -264,34 +264,34 @@ static void smbXsrv_session_local_fetch_parser(TDB_DATA key, TDB_DATA data,
        }
 
        memcpy(&ptr, data.dptr, data.dsize);
-       state->session = talloc_get_type_abort(ptr, struct smbXsrv_session);
+       state->open = talloc_get_type_abort(ptr, struct smbXsrv_open);
        state->status = NT_STATUS_OK;
 }
 
-static NTSTATUS smbXsrv_session_local_lookup(struct smbXsrv_session_table *table,
-                                            uint32_t session_local_id,
+static NTSTATUS smbXsrv_open_local_lookup(struct smbXsrv_open_table *table,
+                                            uint32_t open_local_id,
                                             NTTIME now,
-                                            struct smbXsrv_session **_session)
+                                            struct smbXsrv_open **_open)
 {
-       struct smbXsrv_session_local_fetch_state state = {
-               .session = NULL,
+       struct smbXsrv_open_local_fetch_state state = {
+               .open = NULL,
                .status = NT_STATUS_INTERNAL_ERROR,
        };
        uint8_t key_buf[sizeof(uint32_t)];
        TDB_DATA key;
        NTSTATUS status;
 
-       *_session = NULL;
+       *_open = NULL;
 
        if (table->local.db_ctx == NULL) {
                return NT_STATUS_INTERNAL_ERROR;
        }
 
-       RSIVAL(key_buf, 0, session_local_id);
+       RSIVAL(key_buf, 0, open_local_id);
        key = make_tdb_data(key_buf, sizeof(key_buf));
 
        status = dbwrap_parse_record(table->local.db_ctx, key,
-                                    smbXsrv_session_local_fetch_parser,
+                                    smbXsrv_open_local_fetch_parser,
                                     &state);
        if (NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
                return NT_STATUS_USER_SESSION_DELETED;
@@ -302,38 +302,38 @@ static NTSTATUS smbXsrv_session_local_lookup(struct smbXsrv_session_table *table
                return state.status;
        }
 
-       if (!NT_STATUS_IS_OK(state.session->status)) {
-               *_session = state.session;
-               return state.session->status;
+       if (!NT_STATUS_IS_OK(state.open->status)) {
+               *_open = state.open;
+               return state.open->status;
        }
 
-       if (now > state.session->global->expiration_time) {
-               state.session->status = NT_STATUS_NETWORK_SESSION_EXPIRED;
+       if (now > state.open->global->expiration_time) {
+               state.open->status = NT_STATUS_NETWORK_SESSION_EXPIRED;
        }
 
-       *_session = state.session;
-       return state.session->status;
+       *_open = state.open;
+       return state.open->status;
 }
 
-static int smbXsrv_session_global_destructor(struct smbXsrv_session_global0 *global)
+static int smbXsrv_open_global_destructor(struct smbXsrv_open_global0 *global)
 {
        return 0;
 }
 
-static NTSTATUS smbXsrv_session_global_allocate(struct db_context *db,
+static NTSTATUS smbXsrv_open_global_allocate(struct db_context *db,
                                        TALLOC_CTX *mem_ctx,
-                                       struct smbXsrv_session_global0 **_global)
+                                       struct smbXsrv_open_global0 **_global)
 {
        uint32_t i;
-       struct smbXsrv_session_global0 *global = NULL;
+       struct smbXsrv_open_global0 *global = NULL;
 
        *_global = NULL;
 
-       global = talloc_zero(mem_ctx, struct smbXsrv_session_global0);
+       global = talloc_zero(mem_ctx, struct smbXsrv_open_global0);
        if (global == NULL) {
                return NT_STATUS_NO_MEMORY;
        }
-       talloc_set_destructor(global, smbXsrv_session_global_destructor);
+       talloc_set_destructor(global, smbXsrv_open_global_destructor);
 
        for (i = 0; i < UINT32_MAX; i++) {
                uint32_t id;
@@ -367,7 +367,7 @@ static NTSTATUS smbXsrv_session_global_allocate(struct db_context *db,
                        continue;
                }
 
-               global->session_global_id = id;
+               global->open_global_id = id;
 
                *_global = global;
                return NT_STATUS_OK;
@@ -378,10 +378,10 @@ static NTSTATUS smbXsrv_session_global_allocate(struct db_context *db,
        return NT_STATUS_INTERNAL_ERROR;
 }
 
-static NTSTATUS smbXsrv_session_global_store(struct smbXsrv_connection *sconn,
-                                            struct smbXsrv_session_global0 *global)
+static NTSTATUS smbXsrv_open_global_store(struct smbXsrv_connection *sconn,
+                                            struct smbXsrv_open_global0 *global)
 {
-       struct smbXsrv_session_globalB global_blob;
+       struct smbXsrv_open_globalB global_blob;
        DATA_BLOB blob = data_blob_null;
        TDB_DATA val;
        NTSTATUS status;
@@ -408,7 +408,7 @@ static NTSTATUS smbXsrv_session_global_store(struct smbXsrv_connection *sconn,
        global_blob.info.info0 = global;
 
        ndr_err = ndr_push_struct_blob(&blob, global->db_rec, &global_blob,
-                       (ndr_push_flags_fn_t)ndr_push_smbXsrv_session_globalB);
+                       (ndr_push_flags_fn_t)ndr_push_smbXsrv_open_globalB);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                //status = ndr_err_code;
                TALLOC_FREE(global->db_rec);
@@ -425,47 +425,47 @@ static NTSTATUS smbXsrv_session_global_store(struct smbXsrv_connection *sconn,
        return NT_STATUS_OK;
 }
 
-struct smbXsrv_session_global_fetch_state {
+struct smbXsrv_open_global_fetch_state {
        TALLOC_CTX *mem_ctx;
-       struct smbXsrv_session_global *session;
+       struct smbXsrv_open_global *open;
        NTSTATUS status;
 };
 
-static void smbXsrv_session_global_fetch_parser(TDB_DATA key, TDB_DATA data,
+static void smbXsrv_open_global_fetch_parser(TDB_DATA key, TDB_DATA data,
                                               void *private_data)
 {
-       struct smbXsrv_session_global_fetch_state *state =
-               (struct smbXsrv_session_global_fetch_state *)private_data;
+       struct smbXsrv_open_global_fetch_state *state =
+               (struct smbXsrv_open_global_fetch_state *)private_data;
 
        state->status = NT_STATUS_NOT_IMPLEMENTED;
 }
 
-static NTSTATUS smbXsrv_session_global_lookup(struct smbXsrv_session_table *table,
-                                             uint32_t session_global_id,
+static NTSTATUS smbXsrv_open_global_lookup(struct smbXsrv_open_table *table,
+                                             uint32_t open_global_id,
                                              TALLOC_CTX *mem_ctx,
-                                             struct smbXsrv_session_global **_session)
+                                             struct smbXsrv_open_global **_open)
 {
-       struct smbXsrv_session_global_fetch_state state = {
+       struct smbXsrv_open_global_fetch_state state = {
                .mem_ctx = mem_ctx,
-               .session = NULL,
+               .open = NULL,
                .status = NT_STATUS_INTERNAL_ERROR,
        };
        TDB_DATA key;
        uint8_t key_buf[sizeof(uint32_t)];
        NTSTATUS status;
 
-       *_session = NULL;
+       *_open = NULL;
 
        if (table->global.db_ctx == NULL) {
                return NT_STATUS_INTERNAL_ERROR;
        }
 
        /* TODO: key as string */
-       RSIVAL(key_buf, 0, session_global_id);
+       RSIVAL(key_buf, 0, open_global_id);
        key = make_tdb_data(key_buf, sizeof(key_buf));
 
        status = dbwrap_parse_record(table->global.db_ctx, key,
-                                    smbXsrv_session_global_fetch_parser, &state);
+                                    smbXsrv_open_global_fetch_parser, &state);
        if (NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
                return NT_STATUS_USER_SESSION_DELETED;
        } else if (!NT_STATUS_IS_OK(status)) {
@@ -475,116 +475,116 @@ static NTSTATUS smbXsrv_session_global_lookup(struct smbXsrv_session_table *tabl
                return state.status;
        }
 
-       *_session = state.session;
+       *_open = state.open;
        return NT_STATUS_OK;
 }
 
-static int smbXsrv_session_destructor(struct smbXsrv_session *session)
+static int smbXsrv_open_destructor(struct smbXsrv_open *open)
 {
-       struct smbXsrv_session_table *table;
+       struct smbXsrv_open_table *table;
        struct db_record *local_rec = NULL;
        struct db_record *global_rec = NULL;
        NTSTATUS status;
 
-       if (session->connection == NULL) {
+       if (open->connection == NULL) {
                return 0;
        }
 
-       table = &session->connection->session_table;
-       session->connection = NULL;
+       table = &open->connection->open_table;
+       open->connection = NULL;
 
-       local_rec = session->db_rec;
-       session->db_rec = NULL;
+       local_rec = open->db_rec;
+       open->db_rec = NULL;
        if (local_rec == NULL) {
                uint8_t key_buf[sizeof(uint32_t)];
                TDB_DATA key;
 
-               RSIVAL(key_buf, 0, session->local_id);
+               RSIVAL(key_buf, 0, open->local_id);
                key = make_tdb_data(key_buf, sizeof(key_buf));
 
                local_rec = dbwrap_fetch_locked(table->local.db_ctx,
-                                               session, key);
+                                               open, key);
        }
 
        if (local_rec != NULL) {
                status = dbwrap_record_delete(local_rec);
        }
 
-       global_rec = session->global->db_rec;
-       session->global->db_rec = NULL;
+       global_rec = open->global->db_rec;
+       open->global->db_rec = NULL;
        if (global_rec == NULL) {
                uint8_t key_buf[sizeof(uint32_t)];
                TDB_DATA key;
 
-               RSIVAL(key_buf, 0, session->global->session_global_id);
+               RSIVAL(key_buf, 0, open->global->open_global_id);
                key = make_tdb_data(key_buf, sizeof(key_buf));
 
                global_rec = dbwrap_fetch_locked(table->global.db_ctx,
-                                                session->global, key);
+                                                open->global, key);
        }
 
        if (global_rec != NULL) {
                status = dbwrap_record_delete(global_rec);
        }
-       TALLOC_FREE(session->global);
+       TALLOC_FREE(open->global);
 
        return 0;
 }
 
-NTSTATUS smbXsrv_session_create(struct smbXsrv_connection *conn,
+NTSTATUS smbXsrv_open_create(struct smbXsrv_connection *conn,
                                NTTIME now,
-                               struct smbXsrv_session **_session)
+                               struct smbXsrv_open **_open)
 {
-       struct smbXsrv_session_table *table = &conn->session_table;
-       uint32_t max_sessions = table->local.highest_id - table->local.lowest_id;
+       struct smbXsrv_open_table *table = &conn->open_table;
+       uint32_t max_opens = table->local.highest_id - table->local.lowest_id;
        struct db_record *local_rec = NULL;
-       struct smbXsrv_session *session = NULL;
+       struct smbXsrv_open *open = NULL;
        void *ptr = NULL;
        TDB_DATA val;
-       struct smbXsrv_session_global0 *global = NULL;
+       struct smbXsrv_open_global0 *global = NULL;
        struct smbXsrv_channel_global0 *channels = NULL;
        NTSTATUS status;
 
        //system("sleep 999999");
 
-       if (table->local.num_sessions >= max_sessions) {
+       if (table->local.num_opens >= max_opens) {
                return NT_STATUS_INSUFFICIENT_RESOURCES;
                // TODO smb1 return NT_STATUS_TOO_MANY_SESSIONS;
        }
 
-       session = talloc_zero(conn, struct smbXsrv_session);
-       if (session == NULL) {
+       open = talloc_zero(conn, struct smbXsrv_open);
+       if (open == NULL) {
                return NT_STATUS_NO_MEMORY;
        }
-       session->status = NT_STATUS_MORE_PROCESSING_REQUIRED;
-       session->connection = conn;
+       open->status = NT_STATUS_MORE_PROCESSING_REQUIRED;
+       open->connection = conn;
 
-       status = smbXsrv_session_global_allocate(table->global.db_ctx,
-                                                session,
+       status = smbXsrv_open_global_allocate(table->global.db_ctx,
+                                                open,
                                                 &global);
        if (!NT_STATUS_IS_OK(status)) {
-               talloc_free(session);
+               talloc_free(open);
                return status;
        }
-       session->global = global;
+       open->global = global;
 
-       talloc_set_destructor(session, smbXsrv_session_destructor);
+       talloc_set_destructor(open, smbXsrv_open_destructor);
 
        if (conn->protocol >= PROTOCOL_SMB2_02) {
-               uint64_t id = global->session_global_id;
+               uint64_t id = global->open_global_id;
                uint8_t key_buf[sizeof(uint32_t)];
                TDB_DATA key;
 
-               global->session_wire_id = id;
-               //global->session_wire_id |= (id << 32) & 0xFFFFFFFF00000000ULL;
+               global->open_wire_id = id;
+               //global->open_wire_id |= (id << 32) & 0xFFFFFFFF00000000ULL;
 
-               session->local_id = global->session_global_id;
+               open->local_id = global->open_global_id;
 
-               RSIVAL(key_buf, 0, session->local_id);
+               RSIVAL(key_buf, 0, open->local_id);
                key = make_tdb_data(key_buf, sizeof(key_buf));
 
                local_rec = dbwrap_fetch_locked(table->local.db_ctx,
-                                               session, key);
+                                               open, key);
                if (local_rec == NULL) {
                        return NT_STATUS_NO_MEMORY;
                }
@@ -595,25 +595,25 @@ NTSTATUS smbXsrv_session_create(struct smbXsrv_connection *conn,
                }
        } else {
 
-               status = smb1srv_session_local_allocate_id(table->local.db_ctx,
+               status = smb1srv_open_local_allocate_id(table->local.db_ctx,
                                                        table->local.lowest_id,
                                                        table->local.highest_id,
-                                                       session,
+                                                       open,
                                                        &local_rec,
-                                                       &session->local_id);
+                                                       &open->local_id);
                if (!NT_STATUS_IS_OK(status)) {
                        return status;
                }
 
-               global->session_wire_id = session->local_id;
+               global->open_wire_id = open->local_id;
        }
 
-       ptr = session;
+       ptr = open;
        val = make_tdb_data((uint8_t const *)&ptr, sizeof(ptr));
        status = dbwrap_record_store(local_rec, val, TDB_REPLACE);
        TALLOC_FREE(local_rec);
        if (!NT_STATUS_IS_OK(status)) {
-               talloc_free(session);
+               talloc_free(open);
                return status;
        }
 
@@ -625,7 +625,7 @@ NTSTATUS smbXsrv_session_create(struct smbXsrv_connection *conn,
                                     struct smbXsrv_channel_global0,
                                     global->num_channels);
        if (channels == NULL) {
-               talloc_free(session);
+               talloc_free(open);
                return NT_STATUS_NO_MEMORY;
        }
        global->channels = channels;
@@ -634,66 +634,66 @@ NTSTATUS smbXsrv_session_create(struct smbXsrv_connection *conn,
        channels[0].local_address = tsocket_address_string(conn->local_address,
                                                           channels);
        if (channels[0].local_address == NULL) {
-               talloc_free(session);
+               talloc_free(open);
                return NT_STATUS_NO_MEMORY;
        }
        channels[0].remote_address = tsocket_address_string(conn->remote_address,
                                                            channels);
        if (channels[0].remote_address == NULL) {
-               talloc_free(session);
+               talloc_free(open);
                return NT_STATUS_NO_MEMORY;
        }
        channels[0].remote_name = talloc_strdup(channels, conn->remote_hostname);
        if (channels[0].remote_name == NULL) {
-               talloc_free(session);
+               talloc_free(open);
                return NT_STATUS_NO_MEMORY;
        }
        channels[0].signing_key = data_blob_null;
 
-       status = smbXsrv_session_global_store(conn,
+       status = smbXsrv_open_global_store(conn,
                                              global);
        if (!NT_STATUS_IS_OK(status)) {
-               talloc_free(session);
+               talloc_free(open);
                return status;
        }
 
        {
-               struct smbXsrv_sessionB session_blob;
+               struct smbXsrv_openB open_blob;
 
-               ZERO_STRUCT(session_blob);
-               session_blob.version = 0;
-               session_blob.info.info0 = session;
+               ZERO_STRUCT(open_blob);
+               open_blob.version = 0;
+               open_blob.info.info0 = open;
 
-               NDR_PRINT_DEBUG(smbXsrv_sessionB, &session_blob);
+               NDR_PRINT_DEBUG(smbXsrv_openB, &open_blob);
        }
 
-       *_session = session;
+       *_open = open;
        return NT_STATUS_OK;
 }
 
-NTSTATUS smbXsrv_session_update(struct smbXsrv_session *session)
+NTSTATUS smbXsrv_open_update(struct smbXsrv_open *open)
 {
-       struct smbXsrv_session_table *table = &session->connection->session_table;
+       struct smbXsrv_open_table *table = &open->connection->open_table;
        NTSTATUS status;
        uint8_t key_buf[sizeof(uint32_t)];
        TDB_DATA key;
 
-       if (session->global->db_rec != NULL) {
+       if (open->global->db_rec != NULL) {
                return NT_STATUS_INTERNAL_ERROR;
        }
 
-       RSIVAL(key_buf, 0, session->global->session_global_id);
+       RSIVAL(key_buf, 0, open->global->open_global_id);
        key = make_tdb_data(key_buf, sizeof(key_buf));
 
-       session->global->db_rec = dbwrap_fetch_locked(table->global.db_ctx,
-                                                     session->global, key);
-       if (session->global->db_rec == NULL) {
+       open->global->db_rec = dbwrap_fetch_locked(table->global.db_ctx,
+                                                     open->global, key);
+       if (open->global->db_rec == NULL) {
                // TODO proper return code?
                return NT_STATUS_NO_MEMORY;
        }
 
-       status = smbXsrv_session_global_store(session->connection,
-                                             session->global);
+       status = smbXsrv_open_global_store(open->connection,
+                                             open->global);
        if (!NT_STATUS_IS_OK(status)) {
                /* debug */
                return status;
@@ -702,39 +702,39 @@ NTSTATUS smbXsrv_session_update(struct smbXsrv_session *session)
        return NT_STATUS_OK;
 }
 
-NTSTATUS smb1srv_session_table_init(struct smbXsrv_connection *conn)
+NTSTATUS smb1srv_open_table_init(struct smbXsrv_connection *conn)
 {
        /*
         * Allow a range from 100..65534.
         */
-       return smbXsrv_session_table_init(conn, 100, UINT16_MAX - 1);
+       return smbXsrv_open_table_init(conn, 100, UINT16_MAX - 1);
 }
 
-NTSTATUS smb1srv_session_lookup(struct smbXsrv_session_table *table,
+NTSTATUS smb1srv_open_lookup(struct smbXsrv_open_table *table,
                                uint16_t vuid, NTTIME now,
-                               struct smbXsrv_session **session)
+                               struct smbXsrv_open **open)
 {
        uint32_t local_id = vuid;
 
-       return smbXsrv_session_local_lookup(table, local_id, now, session);
+       return smbXsrv_open_local_lookup(table, local_id, now, open);
 }
 
-NTSTATUS smb2srv_session_table_init(struct smbXsrv_connection *conn)
+NTSTATUS smb2srv_open_table_init(struct smbXsrv_connection *conn)
 {
        /*
         * For now use the same range as SMB1.
         *
         * Allow a range from 100..65534.
         */
-       return smbXsrv_session_table_init(conn, 100, UINT16_MAX - 1);
+       return smbXsrv_open_table_init(conn, 100, UINT16_MAX - 1);
 }
 
-NTSTATUS smb2srv_session_lookup(struct smbXsrv_session_table *table,
-                               uint64_t session_id, NTTIME now,
-                               struct smbXsrv_session **session)
+NTSTATUS smb2srv_open_lookup(struct smbXsrv_open_table *table,
+                               uint64_t open_id, NTTIME now,
+                               struct smbXsrv_open **open)
 {
-       uint32_t local_id = session_id & UINT32_MAX;
+       uint32_t local_id = open_id & UINT32_MAX;
 
-       return smbXsrv_session_local_lookup(table, local_id, now, session);
+       return smbXsrv_open_local_lookup(table, local_id, now, open);
 }