Commit 86e521d5 authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

ntdll: Fill the I/O status block with the results of the recv_socket call in sock_recv().

parent 4c639d69
...@@ -615,12 +615,6 @@ static NTSTATUS sock_recv( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, voi ...@@ -615,12 +615,6 @@ static NTSTATUS sock_recv( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, voi
if (status == STATUS_DEVICE_NOT_READY && force_async) if (status == STATUS_DEVICE_NOT_READY && force_async)
status = STATUS_PENDING; status = STATUS_PENDING;
if (!NT_ERROR(status))
{
io->Status = status;
io->Information = information;
}
SERVER_START_REQ( recv_socket ) SERVER_START_REQ( recv_socket )
{ {
req->status = status; req->status = status;
...@@ -630,6 +624,11 @@ static NTSTATUS sock_recv( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, voi ...@@ -630,6 +624,11 @@ static NTSTATUS sock_recv( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, voi
status = wine_server_call( req ); status = wine_server_call( req );
wait_handle = wine_server_ptr_handle( reply->wait ); wait_handle = wine_server_ptr_handle( reply->wait );
options = reply->options; options = reply->options;
if ((!NT_ERROR(status) || wait_handle) && status != STATUS_PENDING)
{
io->Status = status;
io->Information = information;
}
} }
SERVER_END_REQ; SERVER_END_REQ;
......
...@@ -978,8 +978,8 @@ static void test_recv(void) ...@@ -978,8 +978,8 @@ static void test_recv(void)
ret = NtDeviceIoControlFile((HANDLE)client, event, NULL, NULL, &io, ret = NtDeviceIoControlFile((HANDLE)client, event, NULL, NULL, &io,
IOCTL_AFD_RECV, &params, sizeof(params), NULL, 0); IOCTL_AFD_RECV, &params, sizeof(params), NULL, 0);
ok(ret == STATUS_PENDING, "got %#x\n", ret); ok(ret == STATUS_PENDING, "got %#x\n", ret);
todo_wine ok(!io.Status, "got status %#x\n", io.Status); ok(!io.Status, "got status %#x\n", io.Status);
todo_wine ok(!io.Information, "got information %#Ix\n", io.Information); ok(!io.Information, "got information %#Ix\n", io.Information);
ret = send(server, "data", 5, 0); ret = send(server, "data", 5, 0);
ok(ret == 5, "got %d\n", ret); ok(ret == 5, "got %d\n", ret);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment