Commit Graph

149 Commits

Author SHA1 Message Date
Jacek Caban 09e98be243 rpcrt4: Wait for server threads to finish in RpcMgmtWaitServerListen.
This fixes races when stopping manual listen RPC servers. It should fix
races in Office applications as well as our services.exe (visible as CS
error on prefix shutdown).

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-31 21:33:40 +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 5c81f8295e rpcrt4: Store server thread handle in RpcServerProtseq.
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 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 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 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 d0ed6d1035 rpcrt4: Get rid of manual_listen_count and use binary state instead.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-16 15:03:54 +01:00
Jacek Caban c32cd1119c rpcrt4: Acquire new credential handle for each connection.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-30 13:23:21 +01:00
Jacek Caban da05dfd151 rpcrt4: Store security package name in rpc_server_registered_auth_info.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-30 13:23:19 +01:00
Jacek Caban ad77b4c5fd rpcrt4: Initialize all rpc_server_registered_auth_info fields in RpcServerRegisterAuthInfoW.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-08 19:01:58 +01:00
Jacek Caban f3e5e76da9 rpcrt4: Moved AcquireCredentialHandle call to RPCRT4_ServerGetRegisteredAuthInfo.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-03 10:54:17 +09:00
Jacek Caban 6cdbde64ea rpcrt4: Moved EnumerateSecurityPackagesW call to helper function.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-03 10:54:17 +09:00
Jacek Caban a7b1e61fa6 rpcrt4: Forward RpcServerRegisterAuthInfoA to RpcServerRegisterAuthInfoW.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-03 10:54:17 +09:00
Jacek Caban 6141cc800c rpcrt4: Added RpcServerRegisterIf3 implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-18 15:16:12 +09: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
Nikolay Sivov 73a68b065b rpcrt4: Fix RpcMgmtStopServerListening() return value when we're not listening. 2015-03-26 14:21:49 +09:00
Hans Leidekker a5750a1fdf rpcrt4: Implement RpcMgmtIsServerListening. 2012-11-12 13:17:00 +01:00
Hans Leidekker 4d6ff85433 rpcrt4: Add a stub implementation of RpcServerInqDefaultPrincNameA/W. 2012-05-09 17:49:29 +02:00
Alexandre Julliard d2ca9f4b02 rpcrt4: Add ref counting to RPC connections, and grab a reference while processing an RPC packet. 2012-02-14 17:59:27 +01:00
Francois Gouget 92ff5f3548 rpcrt4: Delete the static critical sections when unloading the dll. 2011-11-17 11:38:22 +01:00
Francois Gouget 86d8217aea rpcrt4: Give a name to the critical sections. 2011-11-14 20:15:26 +01:00
Frédéric Delanoy 7e309601f3 dlls: Assorted spelling fixes. 2011-08-03 14:15:50 +02:00
Damjan Jovanovic ec2f513690 rpcrt4: Implement RpcNetworkInqProtseqs. 2011-06-28 16:45:56 -05:00
Damjan Jovanovic 57b7044cd6 rpcrt4: Add stubs for RpcNetworkInqProtseqs. 2011-06-17 19:30:46 +02:00
Hans Leidekker 215b69e36b rpcrt4: Add a stub implementation of RpcMgmtSetAuthorizationFn. 2010-12-15 12:02:09 +01:00
Alexandre Julliard 749f22948c rpcrt4: Implement waiting in RpcMgmtWaitServerListen. 2010-11-10 10:00:35 +01:00
Alexandre Julliard 95ea352738 rpcrt4: Remove a couple of unused local variables. 2010-09-01 14:01:04 +02:00
Rob Shearman a65f7b637a rpcrt4: Process control packets in the server synchronously to avoid races when using 3-factor authentication.
The client has nothing to wait for after sending the AUTH3 packet
before sending the first request packet. Therefore, we must ensure
that the AUTH3 packet has finished being processed before we start
processing any request packets.
2009-12-14 12:19:09 +01:00
Rob Shearman e27e61db71 rpcrt4: Add support for server-side authentication. 2009-12-14 12:19:02 +01:00
Rob Shearman 6ad4d5922b rpcrt4: Implement RpcServerRegisterAuthInfoA/W. 2009-12-14 12:18:41 +01:00
Rob Shearman eb0d2828b2 rpcrt4: Fix potential NULL pointer access in process_bind_packet.
Upon failure to allocate results in process_bind_packet, build nack
packet and send right away, instead of falling into the normal path
and potentially dereferencing the NULL pointer.
2009-11-16 11:34:58 +01:00
Rob Shearman a638bff53d rpcrt4: Stop searching through transfer syntaxes in process_bind_packet when one has been found.
Fixes Valgrind errors in various tests using RPC.
2009-11-12 13:13:26 +01:00
Rob Shearman 59ba6d2573 rpcrt4: Support multiple interfaces and transfer syntaxes in bind and bind ack messages. 2009-11-11 10:56:13 +01:00
Rob Shearman 317edfd7da rpcrt4: Free the memory allocated for the protseq and endpoint strings allocated in RpcServerUseProtseq* functions.
Make a copy of the protseq string in alloc_serverprotoseq to simplify
memory management in higher-level functions.
2009-03-30 13:58:01 +02:00
Rob Shearman 4d8057ffef rpcrt4: RpcServerUseProtseqEp(..., NULL, ...) should return RPC_S_OK.
However, on some buggy platforms it returns
RPC_S_INVALID_ENDPOINT_FORMAT. Don't follow this behaviour our
implementation of the API.
2009-03-30 13:57:54 +02:00
Rob Shearman 375c68a043 rpcrt4: Re-use already registered endpoints for a protocol sequence.
Return RPC_S_INVALID_ENDPOINT_FORMAT if a NULL endpoint is passed into
RpcServerUseProtseqEp{,Ex}{A,W}.
2009-03-26 16:10:49 +01:00
Rob Shearman 7208067492 rpcrt4: Simplify some code in RpcServerInqBindings by changing while loops into for loops. 2009-03-23 14:54:07 +01:00
Rob Shearman 5e1d10d423 rpcrt4: Free the resources associated with server protocol sequences on DLL unload. 2009-03-23 14:54:01 +01:00
Michael Stefaniuc e3bb1c8243 rpcrt4: Remove superfluous pointer casts. 2009-02-16 16:01:37 +01:00
Michael Stefaniuc 4c7a6694cd include: Change unsigned long to ULONG in rpcdce.h for Win64 compatibility.
Also fix the compiler warnings introduced by this change.
2009-01-04 13:34:51 +01:00
Michael Stefaniuc e86eb8efa6 include: Change RPC_STATUS from long to LONG for Win64 compatibility.
Also fix the compiler warnings introduced by this change.
2009-01-04 13:34:38 +01:00
Alexandre Julliard 83b6c8a5fa rpcrt4: Convert source files to utf-8. 2008-10-18 19:20:44 +02:00
Hans Leidekker e511474d47 rpcrt4: Add stub implementations for RpcMgmtInqStats and RpcMgmtStatsVectorFree. 2008-09-23 14:03:19 +02:00
Rob Shearman 34dd534250 rpcrt4: Fix memory leak of 0-byte buffer allocated during processing of bind packets.
In this case conn->server_binding will be NULL and consequently
bind->Handle will be NULL, causing I_RpcFreeBuffer to fail. Therefore
just use I_RpcFree to free the buffer as that is just what
I_RpcFreeBuffer does under the hood anyway.
2008-09-12 16:49:56 +02:00
Rob Shearman ffd37b0eec rpcrt4: Fix memory leaks of hdr in error paths in RPCRT4_io_thread. 2008-09-12 16:49:52 +02:00
Rob Shearman 8cc3adea52 rpcrt4: Free the memory for a registered interface that is in use and when WaitForCallsToComplete is 0. 2008-09-12 16:49:42 +02:00
Rob Shearman c7f9b9347f rpcrt4: Improve trace in RPCRT4_find_interface to print the interface identifier data as well as the object guid. 2008-04-01 19:10:48 +02:00
Andrew Talbot db6a901bf4 rpcrt4: Assign to structs instead of using memcpy. 2008-03-14 11:21:29 +01:00