Sweden-Number/dlls/rpcrt4
Dmitry Timoshkov a6fe4f6e65 rpcrt4: Reimplement rpcrt4_conn_np_wait_for_incoming_data() using asynchronous read with zero sized buffer.
The problem with NtFsControlFile(FSCTL_PIPE_PEEK) is that it happily returns
STATUS_SUCCESS with 0 bytes of data available. That makes the client think
that the server already sent a reply and try to read the reply data, which
hangs. A solution to this is call NtReadFile() with zero sized buffer, which
has correct behaviour: just waits for incoming data to appear without mangling
the data in the pipe.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-25 20:09:14 +02:00
..
tests
Makefile.in
cproxy.c
cpsf.c
cpsf.h
cstub.c
epm.idl
epm_towers.h
ncastatus.h
ndr_clientserver.c
ndr_contexthandle.c rpcrt4: Remove FIXME about RPC_CONTEXT_HANDLE_FLAGS from NDRSContextMarshall2 and NDRSContextUnmarshall2. 2019-09-19 12:23:42 +02:00
ndr_es.c
ndr_fullpointer.c
ndr_marshall.c
ndr_misc.h
ndr_ole.c
ndr_stubless.c rpcrt4: Perform the INITOUT phase in NdrAsyncServerCall instead of RpcAsyncCompleteCall. 2019-09-19 12:56:59 +02:00
ndr_stubless.h rpcrt4: Perform the INITOUT phase in NdrAsyncServerCall instead of RpcAsyncCompleteCall. 2019-09-19 12:56:59 +02:00
ndr_typelib.c
ndr_types.idl
rpc_assoc.c
rpc_assoc.h
rpc_async.c rpcrt4: Implement RpcAsyncCompleteCall for server side. 2019-09-17 16:50:44 +02:00
rpc_binding.c
rpc_binding.h
rpc_defs.h
rpc_epmap.c
rpc_message.c
rpc_message.h
rpc_server.c
rpc_server.h
rpc_transport.c rpcrt4: Reimplement rpcrt4_conn_np_wait_for_incoming_data() using asynchronous read with zero sized buffer. 2019-09-25 20:09:14 +02:00
rpcrt4.spec
rpcrt4_main.c
version.rc