summaryrefslogtreecommitdiffhomepage
path: root/src/socket/ntapi_sc_recv.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/socket/ntapi_sc_recv.c')
-rw-r--r--src/socket/ntapi_sc_recv.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/socket/ntapi_sc_recv.c b/src/socket/ntapi_sc_recv.c
index 19a4423..a45eb17 100644
--- a/src/socket/ntapi_sc_recv.c
+++ b/src/socket/ntapi_sc_recv.c
@@ -56,7 +56,7 @@ int32_t __cdecl __ntapi_sc_recv(
afd_recv.afd_recv.afd_flags = (uint32_t)afdflags;
afd_recv.afd_recv.tdi_flags = (uint32_t)tdiflags;
- hssocket->iostatus = __ntapi->zw_device_io_control_file(
+ if ((hssocket->iostatus = __ntapi->zw_device_io_control_file(
hssocket->hsocket,
hssocket->hevent,
0,
@@ -66,13 +66,11 @@ int32_t __cdecl __ntapi_sc_recv(
&afd_recv,
raddr ? sizeof(afd_recv) : sizeof(afd_recv.afd_recv),
0,
- 0);
+ 0)))
+ return hssocket->iostatus;
- if (hssocket->iostatus && (hssocket->ntflags & __NT_FILE_SYNC_IO))
- __ntapi->sc_wait(hssocket,iosb,&hssocket->timeout);
-
- if (!hssocket->iostatus && bytes_received)
+ if (bytes_received)
*bytes_received = iosb->info;
- return hssocket->iostatus;
+ return NT_STATUS_SUCCESS;
}