Commit Graph

1477 Commits

Author SHA1 Message Date
Zebediah Figura f848d03f95 rpcrt4: Fix handling of FC_ALIGNM* directives.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-20 09:57:21 +01:00
Zebediah Figura 9a46a1fc9e rpcrt4/tests: Add a test for FC_ALIGNM* directives.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-20 09:57:19 +01:00
Zebediah Figura c94314085c rpcrt4: Handle large arrays in EmbeddedComplexSize().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-19 10:17:48 +01:00
Zebediah Figura 5d44b1d4bd rpcrt4: Write type format strings for coclasses.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=19016
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-14 17:48:55 +01:00
Alexandre Julliard e24f2f3b90 rpcrt4: Support delegated proxies on ARM.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-13 20:54:27 +01:00
Alexandre Julliard da383cb8e4 rpcrt4: Support stubless proxies on ARM.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-13 20:54:27 +01:00
Zebediah Figura 0c642cc043 rpcrt4: Write the floating-point mask on x86-64.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-12 10:38:56 +01:00
Zebediah Figura d3bc9721f7 rpcrt4: Delegate to the parent if it is not IUnknown.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-12 10:38:53 +01:00
Zebediah Figura f6b1341aa2 rpcrt4: Retrieve the underlying interface for dual interfaces.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-12 10:38:50 +01:00
Alexandre Julliard 60f5e23ca8 rpcrt4: Write type format strings for Automation types.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-12 10:38:46 +01:00
Zebediah Figura 3aec63c004 rpcrt4: Write type format strings for fixed structs.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-09 21:08:09 +01:00
Zebediah Figura 5a4af94f21 rpcrt4: Write type format strings for fixed arrays.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-09 21:08:09 +01:00
Zebediah Figura 9501415605 rpcrt4: Write type format strings for pointers.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-09 21:08:09 +01:00
Zebediah Figura 1dcdd7c01d rpcrt4: Write parameter signatures into the procedure format string.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-09 21:08:09 +01:00
Zebediah Figura 5f5fd9879e rpcrt4: Write the function header into the procedure format string.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-09 21:08:09 +01:00
Zebediah Figura ad3e8134ac rpcrt4: Build the typelib stub headers.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-08 14:57:00 +01:00
Zebediah Figura 297d9cabb8 rpcrt4: Build the typelib proxy headers.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-08 14:56:53 +01:00
Zebediah Figura 57493dc224 rpcrt4: Add a stub implementation of CreateStubFromTypeInfo().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-08 14:56:41 +01:00
Zebediah Figura 12021a565a rpcrt4: Add a stub implementation of CreateProxyFromTypeInfo().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-08 14:56:33 +01:00
Zebediah Figura 666bbe084e rpcrt4: Avoid reference leaks when unmarshalling [in, out] pointers.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-02 15:18:00 +01:00
Zebediah Figura b7cc627c6e rpcrt4/tests: Add some tests for marshalling interface pointers.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-01 21:50:48 +01:00
Zebediah Figura 03be1605db rpcrt4: Ignore fMustAlloc in PointerUnmarshall().
Use our own heuristics to decide whether we, or the inner routine, must
allocate.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-30 19:00:35 +01:00
Zebediah Figura 61fdcfdd36 rpcrt4: Clarify local variables in PointerUnmarshall().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-30 19:00:35 +01:00
Zebediah Figura be430b2626 rpcrt4: Clear allocated memory before marshalling pointers into it (Valgrind).
Since otherwise PointerUnmarshall() might try to interpret pointers contained
therein as existing storage.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-30 19:00:35 +01:00
Zebediah Figura c3db8982d4 rpcrt4: Add comments explaining the arguments to EmbeddedPointerUnmarshall().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-30 19:00:35 +01:00
Michael Stefaniuc 377243b411 rpcrt4: Use the standard ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-19 22:34:36 +02:00
Michael Stefaniuc ac0c0062b4 rpcrt4: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-19 22:34:32 +02:00
Michael Stefaniuc 5ee8a6530b rpcrt4: Avoid a variable holding an ARRAY_SIZE result.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-19 22:34:27 +02:00
Jacek Caban cae3d28a9b rpcrt4/tests: Add a test of client reconnecting on send failure.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-17 17:33:42 +02:00
Jacek Caban 8a48621fc9 rpcrt4: Add RpcExceptionFilter implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-17 17:33:42 +02:00
Jacek Caban d6c94be74d rpcrt4/tests: Get rid of no longer needed win9x checks.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-17 17:33:38 +02:00
Zebediah Figura 5fae77e4db rpcrt4: Unmarshal into a stack pointer on the server side if possible.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-17 10:01:20 +02:00
Zebediah Figura 3efe54f66d rpcrt4/tests: Add more tests for NdrPointerUnmarshall() and NdrPointerFree() on the server side.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-17 10:01:18 +02:00
Zebediah Figura f95777e134 rpcrt4/tests: Test that NdrPointerFree() doesn't free stack pointers.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-17 10:01:17 +02:00
Zebediah Figura 99672dbe91 rpcrt4/tests: Use publicly defined NDR constants.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-17 10:01:15 +02:00
Jacek Caban 3099fda254 rpcrt4: Try reconnecting when to server in IRpcSend on broken connection.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-16 22:26:07 +02:00
Jacek Caban 3b4f3ff397 rpcrt4: Reset assoc_group_id on associations with no active connection.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-16 22:26:07 +02:00
Zebediah Figura be25106503 rpcrt4: Also clear base-type [out] pointers in client_do_args().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-15 13:55:22 +02:00
Zebediah Figura 36592505ca rpcrt4: Discriminants can't be int3264.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-15 13:55:21 +02:00
Zebediah Figura 43275fb178 rpcrt4: Avoid clearing a NULL output parameter in client_do_args().
Avoids an unhandled exception. Passing NULL as a ref pointer (which a
top-level [out] parameter necessarily is) is illegal, but this will be caught
in the CALCSIZE pass. This matches midl/widl behaviour in the -Os case.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-12 09:48:37 +02:00
Zebediah Figura 5be461cd71 rpcrt4: Correctly handle simple ref pointers in calc_arg_size().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-12 09:48:35 +02:00
Zebediah Figura be9f5f4aaf rpcrt4: Handle non-ref pointers in calc_arg_size().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-12 09:48:33 +02:00
Zebediah Figura 935eed8e98 rpcrt4/tests: Add some tests for nesting arrays and pointers.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-09 12:28:39 +02:00
Zebediah Figura ccb89fc67a rpcrt4: Handle absense of RPC flags in call_stubless_func() thunk.
If Oi_HAS_RPCFLAGS is not set, then the stack size is at offset 4, not 8.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-08 12:46:29 +02:00
Zebediah Figura 904d1688a3 ole32: Use the real proxy IID in ClientRpcChannelBuffer_GetBuffer().
Delegated proxies pass the IID of the parent interface to
NdrProxyGetBuffer(). However, this interface was never registered with ole32
on the server side, so calls to delegated methods will return
RPC_S_UNKNOWN_IF. Therefore we have ole32 ignore the passed-in parameter and
use the real proxy ID.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45673
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-17 15:37:41 +02:00
Zebediah Figura b82382f5fe rpcrt4/tests: Add tests for delegated proxy methods.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-17 15:37:30 +02:00
Zebediah Figura 69cd52875a rpcrt4: Use publicly defined NDR constants.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-13 09:53:07 +02:00
Michael Stefaniuc cc906096c3 rpcrt4/tests: Use the available ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-11 11:41:59 +02:00
Zebediah Figura 950b349885 rpcrt4: RpcServerUnregisterIf() with NULL ifspec shouldn't unregister auto-listen interfaces.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-07 12:03:03 +02:00
Zebediah Figura 9d6d2eb3ce rpcrt4/tests: Add a basic test for RPC_IF_AUTOLISTEN.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-07 12:03:00 +02:00