diff options
Diffstat (limited to 'source3/smbd/smbXsrv_client.c')
-rw-r--r-- | source3/smbd/smbXsrv_client.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source3/smbd/smbXsrv_client.c b/source3/smbd/smbXsrv_client.c index e0658d87969..fcfa225048a 100644 --- a/source3/smbd/smbXsrv_client.c +++ b/source3/smbd/smbXsrv_client.c @@ -568,6 +568,7 @@ NTSTATUS smbXsrv_client_create(TALLOC_CTX *mem_ctx, return NT_STATUS_NO_MEMORY; } tevent_req_set_callback(subreq, smbXsrv_client_connection_pass_loop, client); + client->connection_pass_subreq = subreq; *_client = client; return NT_STATUS_OK; @@ -607,6 +608,8 @@ static void smbXsrv_client_connection_pass_loop(struct tevent_req *subreq) int sock_fd = -1; uint64_t seq_low; + client->connection_pass_subreq = NULL; + ret = messaging_filtered_read_recv(subreq, talloc_tos(), &rec); TALLOC_FREE(subreq); if (ret != 0) { @@ -731,6 +734,7 @@ next: return; } tevent_req_set_callback(subreq, smbXsrv_client_connection_pass_loop, client); + client->connection_pass_subreq = subreq; } NTSTATUS smbXsrv_client_update(struct smbXsrv_client *client) @@ -797,6 +801,8 @@ NTSTATUS smbXsrv_client_remove(struct smbXsrv_client *client) return NT_STATUS_OK; } + TALLOC_FREE(client->connection_pass_subreq); + client->global->db_rec = smbXsrv_client_global_fetch_locked( table->global.db_ctx, &client->global->client_guid, |