Rob Shearman
8608e895eb
Add a new convenience macro for an exception handler that handles all exceptions.
...
When using native compiler exceptions, the previous method of doing
this, __EXCEPT(NULL), would expand to __except(
(NULL)(GetExceptionInformation())) which doesn't compile as NULL isn't a
function.
So add a new macro, __EXCEPT_ALL, which works correctly both when using
native compiler exceptions and without and which makes the meaning of
code in which it is used clearer.
2008-02-16 14:58:24 +01:00
Rob Shearman
a82f4dd9b7
Don't use GetExceptionCode and GetExceptionInformation in exception filter functions.
...
When using native compiler exceptions, it isn't valid to use
GetExceptionCode and GetExceptionInformation anywhere other than in the
filter or handler blocks since it would be very hard for the compiler to
work out where to retrieve the exception information from on the stack.
Therefore, remove the WINE_EXCEPTION_FILTER and WINE_FINALLY_FUNC macros
which enabled GetExceptionCode, GetExceptionInformation and
AbnormalTermination to be used inside of the functions they declared and
fix up all callers to access the information directly.
2008-02-16 14:57:44 +01:00
Rob Shearman
1ceef1e149
rpcrt4: Fix potential memory leaks on error paths in RPCRT4_io_thread.
2008-02-05 12:19:37 +01:00
Rob Shearman
a04641c15b
rpcrt4: Split RPCRT4_process_packet out into separate functions.
2008-01-11 12:25:59 +01:00
Rob Shearman
5be085dec5
rpcrt4: Fix a leak of msg in RPCRT4_io_thread on the error paths.
2008-01-09 12:25:56 +01:00
Rob Shearman
af4639f74a
rpcrt4: Improve error handling in RPCRT4_io_thread and remove commented-out code.
2008-01-08 14:02:56 +01:00
Rob Shearman
d0f914befc
rpcrt4: Bind to the server interface in I_RpcGetBuffer, not I_RpcSendReceive.
...
The actual sending of the request is still done in I_RpcSendReceive though.
Disallow the server from calling I_RpcSend and I_RpcReceive to allow
simplification of the code. The releasing of the connection is now done
in I_RpcFreeBuffer.
Implement I_RpcNegotiateTransferSyntax.
2008-01-08 14:00:50 +01:00
Rob Shearman
c8b3dc40a4
rpcrt4: Update todos.
2008-01-07 12:02:52 +01:00
Rob Shearman
51c051c0c4
rpcrt4: Keep a track of server context handles allocated during processing of a request.
...
Release them after processing of a request has finished to avoid a slow
memory leak if the association isn't released for ages.
2007-12-31 17:13:55 +01:00
Rob Shearman
1cb7df8a98
rpcrt4: Implement I_RpcGetCurrentCallHandle.
2007-12-18 19:48:19 +01:00
Rob Shearman
bdc5a34196
rpcrt4: Add a stub for I_RpcGetCurrentCallHandle.
2007-12-18 12:32:55 +01:00
Rob Shearman
737510eeb6
rpcrt4: Move association code into a separate file.
2007-12-17 11:59:18 +01:00
Rob Shearman
22f530c835
rpcrt4: Make a server association when a bind packet is received in the server.
...
Support handing out association group IDs.
2007-12-17 11:59:13 +01:00
Gerald Pfeifer
826a6d09d4
rpcrt4: Initialize variable to avoid compiler warning.
2007-10-25 12:48:01 +02:00
Andrew Talbot
04e0986d60
rpcrt4: Constify some variables.
2007-08-22 11:58:13 +02:00
Rob Shearman
8a87d916b4
rpcrt4: Convert bind ack and nack reject reasons into RPC status codes when binding.
2007-07-23 11:48:13 +02:00
Rob Shearman
69eeb8b1b7
rpcrt4: Return a fault packet if the proc num exceeds the index of the last function available for the interface.
2007-07-05 19:53:53 +02:00
Rob Shearman
234b8cbe0a
rpcrt4: Call RPCRT4_Send directly from PKT_RECEIVE handler in server.
...
Remove the WINE_RPCFLAG_EXCEPTION hack to pass exception information to
I_RpcSend.
2007-07-05 19:53:47 +02:00
Rob Shearman
9c77d7ac1f
rpcrt4: Translate between NCA and RPC status codes.
2007-07-05 19:53:29 +02:00
Rob Shearman
2de3d31a7a
rpcrt4: Translate STATUS_ACCESS_VIOLATION exceptions caught whilst executing the stub function to ERROR_NOACCESS to prevent confusing exceptions occurring in the client.
2007-06-25 23:21:53 +02:00
Rob Shearman
0d05685b68
rpcrt4: Return a fault packet if the interface/object pair in a request packet aren't registered.
2007-06-25 23:21:52 +02:00
Andrew Talbot
d5d056ef75
rpcrt4: Exclude unused headers.
2007-05-18 14:11:22 +02:00
Andrew Talbot
67813450b9
rpcrt4: Replace inline static with static inline.
2007-03-23 12:29:52 +01:00
Francois Gouget
62662d21dd
rpcrt4: Improve the prototypes Win64 compatibility by replacing long with LONG.
2007-02-06 13:23:53 +01:00
Rob Shearman
9fb15b4105
rpcrt4: Make the fixme for an unhandled packet type more useful by printing the code of the unhandled packet type.
2007-01-23 11:38:16 +01:00
Rob Shearman
98c87d0e70
rpcrt4: Pass WT_EXECUTELONGFUNCTION to QueueUserWorkItem since the
...
function being called can sometimes take a long time to return and we
almost always want a new thread to be created if there are no free
threads available.
2007-01-04 21:13:49 +01:00
Rob Shearman
776f81b3be
rpcrt4: A NULL IfSpec in RpcServerUnregisterIf should remove all interfaces, not crash.
2007-01-02 20:49:04 +01:00
Rob Shearman
29a9abff8a
rpcrt4: Implement RpcServerUnregisterIf.
2006-11-13 14:32:41 +01:00
Rob Shearman
0b1cc1061b
rpcrt4: Convert the server interfaces list into a standard Wine list.
2006-11-13 14:32:24 +01:00
Rob Shearman
61967ff4be
rpcrt4: Create one protseq object per used protocol sequence, not per RpcServerUseProtseq* function call.
2006-11-10 13:50:17 +01:00
Rob Shearman
e1561038d0
rpcrt4: Don't store the endpoint in the protseq.
2006-11-10 13:50:12 +01:00
Rob Shearman
e0acc8d276
rpcrt4: Fix a crash in RpcServerUseProtseqEpExA/W when using an unsupported protseq.
2006-11-10 13:50:07 +01:00
Michael Stefaniuc
de21efbadd
rpcrt4: Win64 printf format warning fixes.
2006-11-10 11:31:59 +01:00
Rob Shearman
8b6c30ab4b
rpcrt4: Open the endpoint from the caller of RpcServerUseProtseq* instead of the protseq server thread.
...
This allows errors to be returned to the caller and to create more than
one connection for an endpoint.
2006-11-09 10:36:47 +01:00
Rob Shearman
c3918d9be4
rpcrt4: Move transport-specific server functions to rpc_transport.c.
2006-10-25 20:21:41 +02:00
Robert Shearman
2f6e643d56
rpcrt4: Add a critical section to protect the connection list in each
...
protseq to avoid taking the process-wide server_cs in the hot path for
each protocol.
2006-10-16 19:58:17 +02:00
Robert Shearman
9ea03d7077
rpcrt4: Convert the protseq list into a standard Wine list.
2006-10-16 19:57:01 +02:00
Robert Shearman
1ceeb058e3
rpcrt4: Abstract out the way incoming connections are waited for so that we no longer need to wait on Win32 handles.
2006-10-16 19:56:38 +02:00
Robert Shearman
e906424178
rpcrt4: Create a server thread for each protseq.
2006-10-16 19:44:42 +02:00
Francois Gouget
4794dc0e38
rpcrt4: Add RPC_CSTR, RPC_WSTR and update the prototypes accordingly.
2006-10-13 11:54:58 +02:00
Thomas Weidenmueller
bc0f9c49b0
rpcrt4: Fix RpcMgmtSetServerStackSize prototype.
2006-09-28 14:03:50 +02:00
Robert Shearman
e7df38c27f
rpcrt4: Add a stub for RpcMgmtSetServerStackSize.
2006-06-30 20:43:53 +02:00
Robert Shearman
45d42528a0
rpcrt4: Add stub for RpcMgmtEnableIdleCleanup.
2006-06-21 13:39:38 +02:00
Robert Shearman
0da8836ff7
rpcrt4: Move the packet manipulation from the exception filter to the exception handler.
...
Remove the unused server_sem variable.
2006-06-19 23:04:19 +02:00
Robert Shearman
1437f8bd8c
rpcrt4: Use the thread pool in the RPC server for processing packets.
2006-06-19 10:28:50 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Mike McCormack
0f8f927aed
rpcrt4: Add a stub implementation for RpcMgmtIsServerListening.
2006-05-18 16:36:21 +02:00
Robert Shearman
217ec275b8
rpcrt4: Store non-connection-specific authentication information in a ref-counted structure that is shared between connections and bindings.
2006-05-18 10:36:07 +02:00
Mike McCormack
9b791e0983
rpcrt4: Allocate RpcServerProtseq in a single place.
2006-04-21 11:28:39 +02:00
Mike McCormack
fe99f330ab
rpcrt4: Abstract the transport layer functionality.
2006-04-20 19:48:15 +02:00
Mike McCormack
3a4a76be2f
rpcrt4: Abstract access to the connection's waitable object.
2006-04-20 15:17:06 +02:00
Robert Shearman
b36d5fa11f
rpcrt4: Fix some memory leaks.
2006-04-20 15:11:51 +02:00
Mike McCormack
a0f8623e2e
rpcrt4: Stub implementation for rpcrt4.RpcMgmtEpEltInqBegin().
2006-04-19 12:00:26 +02:00
Mike McCormack
f0c49daedf
rpcrt4: Add a stub implementation for rpcrt4.RpcMgmtInqIfIds().
2006-04-19 12:00:09 +02:00
Robert Shearman
196829663a
rpcrt4: Fix race condition in RpcServerListen.
...
The DontWait parameter is used for forcing the function not to wait
for the server to finish.
2006-01-03 12:07:04 +01:00
Ge van Geldorp
1a1583a364
Match PSDK STATUS_* definitions.
2005-11-28 17:32:54 +01:00
Alexandre Julliard
20a1a203c6
Use a more portable scheme for storing the name of a critical
...
section.
2005-09-09 10:19:44 +00:00
Mike McCormack
4a5378efcd
Fix some gcc 4.0 warnings.
2005-08-30 08:56:35 +00:00
Mike McCormack
bda7ace2e9
Interlocked LONG* gcc warning fixes.
2005-07-13 11:59:15 +00:00
Robert Shearman
ff4ba9573c
Fix an RPC server startup race introduced by me.
2005-06-08 18:32:30 +00:00
Robert Shearman
b5eacf9a8d
- Fix RpcServerListen so that it doesn't return
...
RPC_S_ALREADY_LISTENING when the only interfaces it is listening on
are auto listens.
- Only synchronize with server thread when necessary and move this
into RpcMgmtWaitServerListen.
2005-05-13 13:55:24 +00:00
Robert Shearman
16779f1e5e
Fix deadlock caused by not leaving the critical section on all code
...
paths.
2005-03-19 17:05:41 +00:00
Robert Shearman
64280a6de4
- RpcMgmtStopServerListen should not affect auto-listen interfaces.
...
- Implement stub for RpcRevertToSelfEx.
- Change the more verbose files to use a new debug channel, "rpc."
2005-03-14 10:11:04 +00:00
Robert Shearman
c5bb5182e8
Fix RPC server thread race.
2005-02-15 15:03:26 +00:00
Mike McCormack
4a0f999859
Use CreateEventW in preference to CreateEventA for unnamed events.
2005-01-07 15:40:09 +00:00
Michael Stefaniuc
5ad7d858e0
Do not check for non NULL pointer before HeapFree'ing it. It's
...
redundant.
2004-12-23 17:06:43 +00:00
Vincent Béron
6c644d68cf
Fix various function prototypes.
2004-10-19 23:55:15 +00:00
Hans Leidekker
719a789792
Fix signed/unsigned comparison warnings.
2004-09-22 02:46:38 +00:00
Mike McCormack
bff122fe94
Avoid non-standard types in rpcdcep.h.
2004-09-03 01:04:05 +00:00
Mike Hearn
484f1b82d2
Remove the RPC connection cache as Windows does not allow multiple
...
binds on the same connection.
2004-06-17 19:54:34 +00:00
Filip Navara
c5580b0355
Make RPCRT4 use Windows compatible protocol (DCE v5.0) for
...
communication.
2004-04-26 23:33:39 +00:00
Filip Navara
7930ada851
Fix some RPC prototypes to get it compiling with W32API.
2004-04-19 23:03:58 +00:00
Robert Shearman
d1d89a64a6
- Fix a bad use of HeapRealloc.
...
- Fix error return codes.
- Improve traces.
2004-02-27 04:33:41 +00:00
Francois Gouget
6b6ed724ae
Add missing '\n's to debug traces.
2004-01-27 00:01:43 +00:00
Ove Kaaven
00d0406c0d
Avoid freeing request packet too early if an exception occurs.
2004-01-09 00:35:04 +00:00
Alexandre Julliard
402b79a1e8
Porting fixes.
2003-11-27 00:59:36 +00:00
Gregory M. Turner
add18f77e9
Implemented RpcObjectSetType.
2003-11-21 22:14:42 +00:00
Gregory M. Turner
9e85bf3f87
- Trace the argument to RPCRT4_server_thread.
...
- ^null implies two indirections, we have one.
- Ove's intent doesn't matter, the current implementation is right.
2003-11-20 23:39:18 +00:00
Oleg Prokhorov
de12a97041
Another portion of HeapReAlloc fixes.
2003-10-14 05:24:20 +00:00
Mike Hearn
a7b9936008
Move packet linked list tail forward correctly on push.
2003-09-15 19:57:11 +00:00
Alexandre Julliard
e37c6e18d0
Fixed header dependencies to be fully compatible with the Windows
...
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard
19b6a49845
Allocate DebugInfo field for all critical sections (based on a patch
...
by Alex Pasadyn).
Get rid of the Wine-specific CRITICAL_SECTION_INIT macro.
2003-08-12 23:50:54 +00:00
Ove Kaaven
c707e23675
Initial support for RPC call failures, by catching RPC server
...
exceptions and returning simple failure packets, and throwing
exceptions on the client side when unmarshalling the failure packet.
2003-05-22 03:36:00 +00:00
Ove Kaaven
2d56c3d62d
For RPC servers, don't deallocate the RPC request packet before the
...
RPC reply packet is sent, in case marshalling the reply needs any of
the request data.
2003-05-21 18:23:06 +00:00
Ove Kaaven
8e38233736
Implemented simple caching of client connections.
2003-04-19 20:06:42 +00:00
Ove Kaaven
097c8edc39
Fixed a race condition on RPC worker thread creation, and a typo.
2003-04-19 02:49:35 +00:00
Ove Kaaven
def211c4c9
For better concurrency, separate the connections from the bindings.
2003-02-19 03:44:35 +00:00
Greg Turner
2339b83ef4
Fix some problems found by winapi_check.
2002-11-01 01:47:43 +00:00
Greg Turner
eaa53a05b0
Remove #ifdef WINNT conditionals; just use the NT definitions.
2002-10-31 23:36:07 +00:00
Greg Turner
3eafbfcd56
- Fix offset bug in the conformant string unmarshall routine.
...
- Fix discrepancy between headers and implementation of
I_RpcBindingSetAsync when compiling under WINNT.
- Eliminate race conditions in the relationship between "listen_count"
and "std_listen" in rpc_server.h.
- Code-stubs for RpcServerUnregisterIf, RpcServerUnregisterIfEx.
- Attempt to implement RpcMgmtStopServerListening (definitely not
happy just yet).
- RpcServerUnregisterIfEx wasn't xp-sepcific after all; this leads me to
suspect there are more such mistakes in the spec-file comments, but I
haven't looked into it or fixed them yet (coming soon).
- Cleanups, trace-enhancements, etc.
2002-10-31 22:45:12 +00:00
Greg Turner
a215f6b21a
- Clean up and add some comments.
...
- Add NDR Data representation constants.
- Propagate DataRepresentation into and out of packet headers.
- Implement NdrServerInitializeNew
2002-10-28 21:14:16 +00:00
Greg Turner
fc55077e52
- Clean up and enhance some traces.
...
- Stubs for NdrConvert, NdrConvert2, and NdrServerInitializeNew.
2002-10-28 20:07:01 +00:00
Greg Turner
641f7fa3de
Fixed a tiny trace bug.
2002-10-23 23:36:05 +00:00
Greg Turner
36fa7d50a7
- ClientCall2 still deserves a FIXME.
...
- Complete bindings with NULL endpoints.
- Implement RpcServerUseProtseqA, RpcServerUseProtseqW.
2002-10-22 00:40:01 +00:00
Greg Turner
b71535ebfd
Stubs for RpcServerUseProtseqA, RpcServerUseProtseqW.
2002-10-21 23:41:35 +00:00
Greg Turner
fc4e2fe74f
Fix up RpcMgmtWaitServerListen to be less incorrect.
2002-10-19 19:14:45 +00:00
Alexandre Julliard
b34fb35b31
Fixed warnings caused by conversion to -DSTRICT.
2002-10-18 23:48:57 +00:00
Greg Turner
034e4df6e7
- (try to) implement RpcMgmtWaitServerListen
...
- remove duplicate RpcServerListen declaration in rpcdce.h
- some TRACEs
2002-10-18 03:56:56 +00:00
Ove Kaaven
1cc2cee66f
Reimplement several RpcServer.* methods in rpc_server.c.
...
Implement RpcServerInqBindings, I_RpcServerStartListening,
I_RpcServerStopListening, and I_RpcWindowProc.
2002-10-11 17:52:37 +00:00