Commit Graph

1189 Commits

Author SHA1 Message Date
Hans Leidekker fddabccaa1 rpcrt4: Add tests for RPC calls with authentication. 2009-12-14 16:14:37 +01:00
Rob Shearman f823f2181e rpcrt4: Override inquire_auth_client for ncalrpc transport to always indicate that the connection is authenticated. 2009-12-14 12:19:37 +01:00
Rob Shearman 3dbf356f8f rpcrt4: Allow the authentication details of the client to be transport-specific. 2009-12-14 12:19:33 +01:00
Rob Shearman d918587f1d rpcrt4: Implement client impersonation. 2009-12-14 12:19:27 +01:00
Rob Shearman 95026f9d6b rpcrt4: Override authentication functions for ncalrpc protocol to do nothing.
The protocol is local only and therefore encryption/decryption isn't
necessary to keep the data private, and methods are built into the
protocol for impersonating the user of the calling thread.
2009-12-14 12:19:21 +01:00
Rob Shearman deae193ac8 rpcrt4: Allow the connection to override the authentication mechanism for a connection type. 2009-12-14 12:19:16 +01: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 ceb7fda374 rpcrt4: Fix rpcrt4_conn_tcp_read and rpcrt4_conn_tcp_write for reading/writing zero-sized data. 2009-12-14 12:18:47 +01:00
Rob Shearman 6ad4d5922b rpcrt4: Implement RpcServerRegisterAuthInfoA/W. 2009-12-14 12:18:41 +01:00
Rob Shearman d412bcc3ae rpcrt4: Handle [out]-only non-conformant strings in stubless servers. 2009-12-14 12:04:05 +01:00
Rob Shearman b24aa1c153 rpcrt4: Add support for context handles in stubless servers. 2009-12-14 12:04:05 +01:00
Rob Shearman 15cd36d21d rpcrt4: Fix some memory leaks in the cstub tests. 2009-12-14 12:04:05 +01:00
Marcus Meissner 4c36f79964 rpcrt4: Fixed array_compute_and_size_conformance on strings (Coverity). 2009-12-07 14:18:28 +01:00
Alexandre Julliard e48f4253a4 rpcrt4/tests: Skip the get_ranged_enum test on old Windows versions. 2009-12-04 14:34:58 +01:00
Rob Shearman cd453f453f rpcrt4: Fix memory leak in test_conf_complex_struct. 2009-11-29 16:42:15 +01:00
Rob Shearman c8f9df7f1e rpcrt4: Fix uninitialised memory read in ndr_marshall tests.
The memory needs to be initialised since NDR will look at the memory
to see if it needs to allocate memory for embedded pointers.
2009-11-29 16:40:20 +01:00
Rob Shearman af271255f5 rpcrt4: Add tests for full pointers. 2009-11-18 15:15:21 +01:00
Rob Shearman 37793cd550 rpcrt4: Fix the pointer saved during full pointer unmarshalling.
The pointer address may set by the type unmarshalling function and
therefore will not be base_ptr_val. This value is the value at
*pPointer and is what needs to be retrieved during subsequent
unmarshalling of the same function.
2009-11-18 15:14:10 +01:00
Rob Shearman 51dbc8d06b rpcrt4: Fix the return value of NdrFullPointerQueryRefId for a pointer ID of 0. 2009-11-18 14:13:33 +01:00
Rob Shearman d6f293f7be rpcrt4: Add test for calling NdrFullPointerQueryRefId with a 0 pointer ID. 2009-11-18 14:13:30 +01:00
Rob Shearman 438f2a52a6 rpcrt4: Implement comm_status and fault_status handling for stubless procedures. 2009-11-16 17:16:33 +01:00
Rob Shearman cdc10a8d3b rpcrt4: Don't crash with a NULL binding handle in RpcBindingFree. 2009-11-16 17:16:19 +01:00
Rob Shearman b49512ecaf rpcrt4: Ignore the network address for ncalrpc in is_epm_destination_local.
The network address is ignored in the transport code, so it doesn't
make sense to take it into account here.
2009-11-16 17:16:14 +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
Hans Leidekker 03aae9e418 rpcrt4: Add tests for RpcBindingInqAuthInfo. 2009-11-12 15:18:54 +01:00
Hans Leidekker 8abe95ddfa rpcrt4: Implement RpcBindingInqAuthInfo{, Ex}. 2009-11-12 15:18:48 +01:00
Rob Shearman efda021c5d Revert "rpcrt4: The get_ranged_enum test doesn't work on Windows, so don't execute it for the moment.".
This reverts commit 81036cc51831db03f8e0eb03b5f74ae5099461cd.
2009-11-12 14:18:27 +01:00
Rob Shearman 03f87bc1c3 rpcrt4: Replace sizeofs with FIELD_OFFSET in RPCRT4_BuildBindNackHeader to avoid relying on ANYSIZE_ARRAY being 1. 2009-11-12 13:15:37 +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
Hans Leidekker 59e3d9b5c7 rpcrt4: Implement RpcBindingInqAuthClient{, Ex}. 2009-11-11 11:51:18 +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 7e52896b84 rpcrt4: The get_ranged_enum test doesn't work on Windows, so don't execute it for the moment. 2009-11-11 10:56:09 +01:00
Marcus Meissner 860c87bb1c rpcrt4: Compare network options correctly (Coverity). 2009-11-10 13:10:14 +01:00
Rob Shearman 97d5f3401d widl: Add support for varargs functions. 2009-11-09 20:42:27 +01:00
Rob Shearman 2b3659f326 widl: Implement [range] attribute. 2009-11-09 20:34:17 +01:00
Hans Leidekker 444307610e rpcrt4: Add a test for the ncalrpc protocol sequence. 2009-11-04 13:07:56 +01:00
Hans Leidekker 4b33527f51 rpcrt4: Correct spelling of RPC_C_QOS_IDENTITY_STATIC and RPC_C_QOS_IDENTITY_DYNAMIC. 2009-11-04 13:07:56 +01:00
Alexandre Julliard c4ebf3687b rpcrt4: Specify the full application path when starting rpcss.exe. 2009-10-27 11:20:42 +01:00
Huw Davies da86e727bd rpcrt4: Move the full pointer table init to after a potential call to NdrServerInitializeNew(). 2009-10-26 13:38:10 +01:00
Alexandre Julliard 3b602f5fea rpcrt4/tests: Fix a double free (Valgrind). 2009-10-22 15:10:58 +02:00
Alexandre Julliard 8ce9b8f1be rpcrt4/tests: Remove tests for specific values of bit fields. 2009-10-09 16:09:20 +02:00
Ge van Geldorp 55230ba6e0 rpcrt4/tests: Fix cstub test on Win7. 2009-09-24 16:03:31 +02:00
Hans Leidekker ee7755511b rpcrt4: Add stub implementations of NdrMesTypeDecode2 and NdrMesTypeFree2. 2009-09-22 16:17:53 +02:00
Francois Gouget 891d3ef525 rpcrt4: Fix compilation on systems that don't support nameless unions. 2009-08-31 12:41:37 +02:00
Francois Gouget ee7902b283 rpcrt4/tests: Fix compilation on systems that don't support nameless unions.
Also omit the nameless union macros from the error messages for clarity.
2009-08-31 12:41:21 +02:00
Juan Lang d82cbcf049 rpcrt4: Allow Annotation to be NULL.
Fixes bug 19760.
--Juan

From afb4d6b943345e19952fe34bd1d8ab4c411563ae Mon Sep 17 00:00:00 2001
From: Juan Lang <juan.lang@gmail.com>
Date: Wed, 19 Aug 2009 14:27:20 -0700
Subject: [PATCH 3/3] Allow Annotation to be NULL
2009-08-20 15:26:33 +02:00
Alexandre Julliard e01420d72a rpcrt4: Assign a unique id to the connection instead of changing it for each message. 2009-08-18 20:15:01 +02:00
Huw Davies 70804336aa rpcrt4: Add support for FC_ALIGNM2. 2009-08-17 16:47:24 +02:00
Alexandre Julliard 8de0242885 rpcrt4: Replace long and unsigned long by more appropriate types. 2009-07-03 13:42:57 +02:00
Alexandre Julliard b6efd13ef5 rpcrt4: Add call frame annotations in x86 assembly code. 2009-06-25 12:05:09 +02:00
Alexandre Julliard b579c48133 rpcrt4: Fix memory sizes of marshalled pointers on 64-bit. 2009-06-19 12:49:35 +02:00
Alexandre Julliard 39d75dfba4 rpcrt4/tests: Fix the marshalling test for Win9x. 2009-06-19 12:49:20 +02:00
Alexandre Julliard c3c8aa3b23 rpcrt4/tests: Fix the marshalling test for Win64. 2009-06-19 12:38:46 +02:00
Francois Gouget d51d209b5f rpcrt4/tests: Replace malloc() with HeapAlloc(). 2009-06-15 13:42:29 +02:00
Alexandre Julliard f2d65b5563 rpcrt4: Add appropriate stdcall decorations to assembly functions. 2009-06-15 13:42:26 +02:00
Alexandre Julliard c35aa1d46d rpcrt4: Adjust the start of the proxy virtual table for stubless proxies. 2009-06-10 16:54:30 +02:00
Francois Gouget 47be6e8379 rpcrt4/tests: Make dummy_Release() static. 2009-06-05 14:43:25 +02:00
Alexandre Julliard cbf9d1b0c6 rpcrt4: Add checks for the number of methods being larger than what we support. 2009-06-03 16:52:06 +02:00
Alexandre Julliard 066060a520 rpcrt4/tests: Add tests for the contents of virtual table for delegated proxies. 2009-06-03 16:51:47 +02:00
Alexandre Julliard 3c9571df78 rpcrt4: Add support for proxy delegation. 2009-06-03 16:51:15 +02:00
Alexandre Julliard 01d00d178e rpcrt4: Split the vtbl initialization in NdrDllGetClassObject to a separate function. 2009-06-03 16:50:39 +02:00
Alexandre Julliard 449a82866d rpcrt4: Retrieve the stubless information for the thunks directly from the virtual table pointer. 2009-06-01 21:48:48 +02:00
Alexandre Julliard acfebea667 rpcrt4: Use the same allocation technique as delegated stubs for the stubless thunks.
This avoids allocating them on the heap, and avoids the need for a
separate vtbl.
2009-06-01 21:38:18 +02:00
Alexandre Julliard ce3c45934b rpcrt4: Return the stack size from the ObjectStubless function so that the thunks are independent from the number of arguments. 2009-06-01 21:36:12 +02:00
Alexandre Julliard 6f49023802 rpcrt4: Allocate the delegated stubs vtbl only once it is really needed. 2009-06-01 16:55:14 +02:00
Alexandre Julliard 0357ad0894 rpcrt4: Change the allocation of delegated stub methods so that we never need to free them. 2009-06-01 16:40:44 +02:00
Alexandre Julliard 2c1b94bde2 rpcrt4/tests: Fix a few more broken tests on NT4. 2009-06-01 16:16:05 +02:00
Alexandre Julliard 47d927f704 rpcrt4/tests: Disable some tests that crash on Windows. 2009-05-28 22:27:51 +02:00
Alexandre Julliard 05f57146c8 rpcrt4/tests: Remove tests for v1 memory list, the layout is wrong and we don't care about it anyway. 2009-05-28 20:30:05 +02:00
Alexandre Julliard 03b6dcb4a1 rpcrt4/tests: Mark some stub message tests broken for older Windows versions.
Group the common tests in a function shared between client and server.
2009-05-28 20:29:51 +02:00
Alexandre Julliard aded9e4091 rpcrt4: Fix compiler warnings on 64-bit. 2009-05-28 11:56:30 +02:00
Alexandre Julliard feeaf97c81 rpcrt4: Implement NdrPointerMemorySize and enable the corresponding tests. 2009-05-28 11:52:36 +02:00
Alexandre Julliard 49f1433cdc rpcrt4/tests: Enable some tests that no longer crash Wine. 2009-05-28 11:41:12 +02:00
Alexandre Julliard bb18c5ab07 rpcrt4/tests: Comment out a couple of tests that crash on older Windows versions. 2009-05-28 11:38:41 +02:00
Alexandre Julliard 7571c1fd53 rpcrt4: Fix the PSFactoryBuffer proxy refcounting, with tests. 2009-05-27 21:25:10 +02:00
Alexandre Julliard 36965f5726 rpcrt4/tests: Fix a number of 64-bit issues in the ndr_marshall test. 2009-05-27 21:18:35 +02:00
Alexandre Julliard 23e70e00ed rpcrt4: Internal functions don't need to be WINAPI. 2009-05-27 13:04:33 +02:00
Francois Gouget ef5f1f5065 rpcrt4: Make RPCRT4_NextHttpHeaderField() and RPCRT4_default_receive_fragment() static. 2009-05-13 12:45:37 +02:00
Francois Gouget 082147d906 rpcrt4: Remove WINAPI on static functions where not needed. 2009-05-06 12:20:10 +02:00
Michael Stefaniuc 3b803f5390 rpcrt4: Replace some usage of the long type. 2009-04-21 13:16:31 +02:00
Paul Vriens 90d3163aba rpcrt4: Fix NdrDllCanUnloadNow. 2009-04-20 14:14:03 +02:00
Rob Shearman 324b4d0243 rpcrt4: Add a Win32 implementation of ncacn_ip_tcp transport. 2009-04-08 16:01:42 +02:00
Rob Shearman 06c2982a39 rpcrt4: Factor out non-Win32 compatible parts of the ncacn_ip_tcp client code to allow it to be compiled in. 2009-04-08 16:01:34 +02:00
Rob Shearman ce747f3fac rpcrt4: Compile in RPC over HTTP support even if HAVE_SOCKETPAIR is not defined. 2009-04-07 14:53:34 +02:00
Rob Shearman b2a5bfdfc9 rpcrt4: Fix context handle test on Vista upwards.
Don't run tests that results in an ERROR_INVALID_HANDLE exception being raised.

Check for the context handle function pointers being non-NULL to
prevent exceptions being raised on platforms without these functions.
2009-04-07 14:22:35 +02:00
Nikolay Sivov fd3b57c53a rpcrt4: Implemented RpcEpRegisterW wrapping RpcEpRegisterA. 2009-03-31 12:41:11 +02: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
Austin English f8f4c4ef43 rpcrt4/test: Change a skip to win_skip. 2009-03-26 16:13:33 +01:00
Rob Shearman 524a99a2da rpcrt4: Ensure that only the IP/IPv6 address families are considered in rpcrt4_protseq_ncacn_ip_tcp_open_endpoint/rpcrt4_ncacn_ip_tcp_open. 2009-03-26 16:11:07 +01:00
Rob Shearman a42d4dbfb6 rpcrt4: Allow listening on dynamically generated ncacn_ip_tcp endpoints. 2009-03-26 16:10:59 +01: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
Alexandre Julliard ce3ce9be8f rpcrt4: Disable HTTP support if we don't have socketpair and related networking functions. 2009-03-26 14:02:01 +01:00
Huw Davies eaf4492c70 rpcrt4: Dynamically allocate the buffer if the fixed size one isn't large enough. Don't return an inappropriate error if we fail to get the status text, it's only used for diagnostics. 2009-03-26 11:50:50 +01:00
Rob Shearman 5f6ae94ad0 rpcrt4: Implement RPC over HTTP support.
CodeWeavers did this work for supporting the optional HTTP connection
method of Outlook 2003/2007 (must be running with Windows versions set
to XP or higher to see this option).

This was written before Microsoft publicly released a specification
for the RPC over HTTP protocol and so was developed by examining
traffic flowing between a Windows client and an IIS server.
2009-03-25 15:20:52 +01:00
Rob Shearman 834c5b4275 rpcrt4: Implement stubless asynchronous NDR interpreter.
CodeWeavers did this work for supporting Outlook 2007.
2009-03-25 15:20:44 +01:00
Rob Shearman cdf509d71f rpcrt4: Fix crash when calling RpcServerUseProtseq for ncacn_np and ncalrpc.
Add tests for these protocol sequences and for ncacn_ip_tcp.
2009-03-24 13:12:11 +01:00
Rob Shearman ae5770d366 rpcrt4: Fix a memory leak in union unmarshall functions by never passing fMustAlloc=TRUE into union_arm_unmarshall. 2009-03-23 14:54:29 +01:00
Rob Shearman 1c8c45d0f6 rpcrt4: Implement NdrRangeUnmarshall for enum types. 2009-03-23 14:54:15 +01:00