Commit Graph

186 Commits

Author SHA1 Message Date
Jacek Caban ac6325e4bb rpcrt4: Wait for available pipe when connecting to busy server.
It's most likely to happen when server just accepted another connection
and didn't create a new listening pipe instance yet.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-28 00:37:50 +02:00
Jacek Caban 2d9e894d28 rpcrt4: Always protect ref access for connections associated with protseq in RPCRT4_ReleaseConnection.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-02 20:20:56 +02:00
Jacek Caban 2cb32b2f3b rpcrt4: Change RPCRT4_ReleaseConnection return type to void.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-08 16:44:59 +02:00
Jacek Caban e889b027ef rpcrt4: Fix a race when server grabs a connection from the list of active connections.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-08 16:44:59 +02:00
Jacek Caban e98c7a59c2 rpcrt4: Wait for all active connections to be released before quiting server thread.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-31 21:33:39 +02:00
Jacek Caban 10a6b33a93 rpcrt4: Recreate listening pipe in rpcrt4_protseq_np_get_wait_array if needed.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-31 21:33:39 +02:00
Jacek Caban 5c2083fd22 rpcrt4: Store listening pipe name in RpcConnection_np.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-31 21:33:38 +02:00
Jacek Caban 6b53b79e18 rpcrt4: Use HEAP_ZERO_MEMORY to alloc RpcServerProtseq objects.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-24 13:57:52 +02:00
Jacek Caban 28f865b134 rpcrt4: Add close_read implementation for TCP connections.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-24 13:57:47 +02:00
Jacek Caban 29f0b28240 rpcrt4: Add close_read implementation for named pipe connections.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-24 13:57:43 +02:00
Jacek Caban 42ba4d731a rpcrt4: Introduce op for closing connection read end and use it when shutting down server.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-24 13:57:37 +02:00
Jacek Caban ef267f115f rpcrt4: Store all active connections in RpcServerProtseq.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-23 19:25:43 +02:00
Jacek Caban dae30652e6 rpcrt4: Remove connection from list in RPCRT4_ReleaseConnection.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-23 19:25:30 +02:00
Jacek Caban 812897c8ad rpcrt4: Use HEAP_ZERO_MEMORY to alloc RpcConnection objects.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-23 19:25:23 +02:00
Jacek Caban 13d529a749 rpcrt4: Renamed connections list to listeners.
To preserve the name for actual connections.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-23 19:25:19 +02:00
Jacek Caban c953763a4c rpcrt4: Remove no longer needed helpers.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-23 19:25:13 +02:00
Jacek Caban b54833890a rpcrt4: Implement cancel_call for named pipes.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 19:11:26 +02:00
Jacek Caban 372c9e0db5 rpcrt4: Cache event handle in RpcConnection_np object.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 19:11:26 +02:00
Jacek Caban 6e7a2978e7 rpcrt4: Use non-blocking listening on named pipes.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 19:11:26 +02:00
Jacek Caban 4f4ac8c40e rpcrt4: Use named pipe in overlapped mode.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 19:11:26 +02:00
Jacek Caban bd6f8071d8 rpcrt4: Simplify rpcrt4_conn_np_read implementation.
Since RPC messages are sent as a single message, if it's too short, it
means the message is broken and we let the caller to handle an error.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 19:11:26 +02:00
Jacek Caban f62b9d69ae rpcrt4: Simplify rpcrt4_conn_np_write implementation.
There is no need for the loop. Named pipes always do complete writes.
Also use NtWriteFile like we do for reading to not mess with GetLastError().

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 19:11:25 +02:00
Jacek Caban 2035294d0c rpcrt4: Use standard Wine list to store connections in RpcServerProtseq.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-16 18:58:56 +02:00
Jacek Caban e6215938b7 rpcrt4: Always use winsock for networking.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-16 18:58:56 +02:00
Gerald Pfeifer 042b41dd57 rpcrt4: Avoid potential overflow in rpcrt4_protseq_ncacn_np_open_endpoint.
Signed-off-by: Gerald Pfeifer <gerald@pfeifer.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 11:24:08 +01:00
Alexandre Julliard 38b57b30fe rpcrt4: Include ntstatus.h before headers that may need it.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-03 18:06:45 +01:00
Alexandre Julliard 7b0c2cdbcd rpcrt4: Remove noisy fixme.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-20 16:26:26 -07:00
Christoph von Wittich 01290cdc1f rpcrt4: Implement RpcBindingServerFromClient and populate NetworkAddr for each transport.
Add more thorough testing for this function.

Signed-off-by: Colin Finck <mail@colinfinck.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-19 09:44:01 -07:00
Jacek Caban 2f0de6a1bc rpcrt4: Use NtReadFile in rpcrt4_conn_np_read.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-07 18:08:02 +02:00
Jacek Caban 41f93d8f59 rpcrt4: Added support for binding argument in RpcMgmtIsServerListening.
Based on patch by Andrew Eikum.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-28 12:45:01 +09:00
Jacek Caban 6c40b63d3e rpcrt4: Moved formatting pipe names to helper functions.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-28 12:45:01 +09:00
Michael Müller ab82b446a0 rpcrt4: Fix arguments of HttpAddRequestHeaders. 2015-06-25 21:01:16 +09:00
Hans Leidekker 0877e4cbb2 rpcrt4: Remove a couple of unused assignments. 2015-05-21 17:53:40 +09:00
Hans Leidekker 852721863a rpcrt4: Use InternetSetCookie to set the session cookie.
This ensures that the cookie is preserved when the server sets an additional cookie.
2015-05-21 17:53:30 +09:00
Marcus Meissner 7b9efb1f45 rpcrt4: Make sure we do not have *data allocated on error (Coverity). 2015-05-21 13:56:47 +09:00
Hans Leidekker f4c5940656 rpcrt4: Allow all HTTP read requests to be cancelled. 2015-05-14 00:06:57 +09:00
Hans Leidekker e34cb91399 rpcrt4: Also set the Content-Length header explicitly on the in pipe request. 2015-05-14 00:06:57 +09:00
Hans Leidekker 9002780015 rpcrt4: Use the Unicode version of InternetReadFileEx. 2015-05-14 00:06:56 +09:00
Hans Leidekker 49a2fb660b rpcrt4: Make sure the Content-Length header is set correctly when preparing the out pipe. 2014-12-19 22:36:17 +01:00
Marcus Meissner 906c341781 rpcrt4: Fixed memory leak on error exit (Coverity). 2014-07-15 15:30:44 +02:00
Bruno Jesus d4278ce0ed rpcrt4: Take care of EINTR on send/recv. 2014-06-12 18:05:03 +02:00
Frédéric Delanoy 44c1ba9f9e rpcrt4: Constify a character string. 2013-12-18 11:39:29 +01:00
Hans Leidekker 057c98323e rpcrt4: Don't try to decode the authorization value in the first leg. 2013-09-11 16:10:05 +02:00
Hans Leidekker 6f2c4bac58 rpcrt4: Don't remove the authorization header if the scheme is Basic. 2013-09-11 16:10:01 +02:00
Hans Leidekker 9ea95f4105 rpcrt4: Add support for NTLM and Negotiate. 2013-09-05 13:26:15 +02:00
Marcus Meissner d138a1e43d rpcrt4: Free url in error paths (Coverity). 2013-09-02 18:03:49 +02:00
Hans Leidekker 0b900f2fd4 rpcrt4: Only accept status code HTTP_STATUS_OK. 2013-08-28 16:14:36 +02:00
Hans Leidekker 35468903cd rpcrt4: Don't follow HTTP redirects. 2013-08-28 16:14:36 +02:00
Hans Leidekker 9d213312f1 rpcrt4: Remove an unneeded parameter from RPCRT4_BuildHttpConnectHeader. 2013-08-28 16:14:36 +02:00
Hans Leidekker a2f6e92acd rpcrt4: Add support for session cookies. 2013-08-28 16:14:36 +02:00