Commit Graph

920 Commits

Author SHA1 Message Date
Rob Shearman d8e467b0fd rpcrt4: Reverse the conditions for which *pPointer is assigned base_ptr_val in PointerUnmarshall.
In one condition (fMustAlloc == TRUE), base_ptr_val may be uninitialised
and so cause a valgrind warning. Reversing the check is harmless and
doesn't result in a performance decrease.
2007-12-03 13:10:21 +01:00
Rob Shearman eef207e3f1 rpcrt4: Initialise the memory in test_simple_struct_marshal before passing it to NdrSimpleStructUnmarshall.
Otherwise, the unmarshalling code will read from unintialised memory
when trying to reuse the embedded pointers in the memory block.

Also fix a couple of memory leaks.
2007-12-03 13:10:21 +01:00
Rob Shearman c735a14788 rpcrt4: Fix NdrSimpleStructUnmarshall to cope with [in, out] embedded pointers. 2007-11-30 11:56:30 +01:00
Rob Shearman b676309db3 rpcrt4: Improve PointerUnmarshall to cope with keeping the non-NULL source pointer of a client unmarshall.
This will enable various types with embedded pointers to handle [in,out] 
parameters correctly by keeping the existing memory.
2007-11-30 11:56:21 +01:00
Rob Shearman 4e8f69ac2d rpcrt4: Move forcing of fMustAlloc to NULL to the callers of EmbeddedPointerUnmarshall.
This will enable them to be individually fixed up to use memory if it 
was provided by the caller.
2007-11-30 11:56:11 +01:00
Rob Shearman 43e0c67fe2 rpcrt4: EmbeddedPointerUnmarshall doesn't need to change the address of the allocated memory, so reduce the level of indirection of the memory parameter by one. 2007-11-30 11:56:04 +01:00
Rob Shearman 34522de870 rpcrt4: Errors in sending or receiving packets should result in RPC_S_CALL_FAILED being returned, not RPC_S_PROTOCOL_ERROR. 2007-11-30 11:55:50 +01:00
Rob Shearman 8668369b4f rpcrt4: Fix an integer overflow in NdrConformantStructMarshall and NdrConformantStructUnmarshall. 2007-11-29 13:31:05 +01:00
Rob Shearman 074898ba2b rpcrt4: Fix some more potential buffer overflows. 2007-11-29 13:30:58 +01:00
Rob Shearman 5a3c34eb89 rpcrt4: Check there is enough space in the buffer and that the size doesn't cause an overflow when copying data to it. 2007-11-29 13:30:21 +01:00
Rob Shearman d0223ecc0e rpcrt4: Check for integer overflows when increasing the buffer length.
Rename safe_buffer_copy to safe_copy_from_buffer.
2007-11-29 13:30:04 +01:00
Rob Shearman 4171309731 rpcrt4: Fix the tests for up_enum16.
It is different to the other base types as it has a different size on 
the wire to in memory, so it can't just be set to the buffer when 
unmarshalling.
2007-11-27 16:42:17 +01:00
Michael Stefaniuc 61ed0c99e6 rpcrt4: socket() returns -1 on error so check the return value against that. 2007-11-27 12:29:45 +01:00
Rob Shearman 046f24a0e7 rpcrt4: Raise an exception if a NULL ref-pointer is passed in to PointerMarshall or PointerBufferSize. 2007-11-21 12:03:35 +01:00
Rob Shearman 8a15423ab7 rpcrt4: Hold the thread-data's critical section while cancelling a call.
Check that there is a connection before trying to cancel it.
2007-11-19 13:53:22 +01:00
Francois Gouget 4fddc5e726 rpcrt4: Add some missing prototypes and better match the PSDK types. 2007-11-13 23:28:06 +01:00
Rob Shearman 3634dc1b1c rpcrt4: Fix a copy and paste mistake in declaring threaddata_cs_debug.
Reported by Hans Leidekker.
2007-11-13 23:28:05 +01:00
Francois Gouget b6ad7b5ef7 rpcrt4: Add an API documentation stub to make winapi_check happy. 2007-11-13 13:37:24 +01:00
Rob Shearman a51486c657 rpcrt4: Implement RpcCancelThread for the ncacn_ip_tcp protocol sequence. 2007-11-13 13:34:50 +01:00
Rob Shearman 7ad36eabfc rpcrt4: Add stubs for RpcMgmtSetCancelTimeout and RpcCancelThread. 2007-11-07 11:57:25 +01:00
Rob Shearman ebe885d782 rpcrt4: Add a stub for RpcErrorStartEnumeration. 2007-11-07 11:57:20 +01:00
Dan Hipschman a0ac63961d widl: Don't rely on type_memsize to return 0 for all conformant arrays. 2007-11-06 13:02:56 +01:00
Rob Shearman 04dc115b54 rpcrt4: Handle FC_IGNORE in the base type functions. 2007-11-05 15:06:06 +01:00
Dan Hipschman 8d15820f79 widl: Handle pointers to conformant arrays (e.g., "[size_is(, n)] int **p; "). 2007-11-05 13:24:37 +01:00
Dan Hipschman 8caa325eb7 rpcrt4: Initialize allocated pointers to NULL in PointerUnmarshall.
This patch initializes allocated pointers in PointerUnmarshall since later
code checks the value for NULL (specifically, NdrConformantArrayUnmarshall).
2007-11-05 13:24:36 +01:00
Dan Hipschman eaffc0a0da rpcrt4/tests: Initialize memory in the get_name test.
This initializes the memory for an [in] parameter.
2007-11-05 13:24:36 +01:00
Rob Shearman c4a1a081a9 rpcrt4: Factorise out the argument processing from NdrStubCall2 into two functions. 2007-11-05 13:24:36 +01:00
Rob Shearman 83bc80ada0 rpcrt4: Move some type definitions from ndr_stubless.c to ndr_stubless.h. 2007-11-05 13:24:36 +01:00
Rob Shearman 3eac5b4e59 rpcrt4: Add a small bit of documentation as to what NdrStubCall2 does. 2007-11-05 13:24:36 +01:00
Rob Shearman 18c16a8027 rpcrt4: Add a test for the pointers in [in,out] pointer structs not changing when the pointers aren't NULL. 2007-11-02 12:37:35 +01:00
Gerald Pfeifer 826a6d09d4 rpcrt4: Initialize variable to avoid compiler warning. 2007-10-25 12:48:01 +02:00
Dan Hipschman ff8930f2bf widl: Fix problems with variable-size user types. 2007-10-22 13:47:56 +02:00
Dan Hipschman 1d0f9378bc widl: Detect conformant arrays of user types correctly. 2007-10-18 12:09:23 +02:00
Dan Hipschman e219087c65 rpcrt4/tests: Free memory from one of the tests. 2007-10-15 16:55:31 +02:00
Dan Hipschman acfde97b9e rpcrt4, widl: Make pointer layouts compatible with windows; fix conformant array tests. 2007-10-11 16:24:28 +02:00
Dan Hipschman d00ff2ed58 widl: Make structs containing user types bogus; fix square_test_us test failure. 2007-10-09 11:39:26 +02:00
Dan Hipschman e0b209815d rpcrt4/tests: Make server.idl compatible with MIDL. 2007-10-09 11:39:21 +02:00
Alexandre Julliard b7df430831 rpcrt4/tests: Remove static keywords that hide test failures. 2007-09-27 20:13:21 +02:00
Dan Hipschman 723c8bacfa widl: Fix string codes in pointer descriptions. 2007-09-27 10:09:38 +02:00
Dan Hipschman 347f2a2da2 widl: Fix top-level conformant arrays with pointer attributes. 2007-09-27 10:09:32 +02:00
Dan Hipschman 767a1f26f6 widl: Handle top-level conformance for complex arrays. 2007-09-20 14:27:29 +02:00
Dan Hipschman dbfabf68a2 widl: Respect pointer attributes better. 2007-09-20 14:27:25 +02:00
Dan Hipschman 132f06cd48 widl: Implement complex arrays. 2007-09-19 11:39:09 +02:00
Dan Hipschman 8df79f0c99 widl: Implement pointer descriptions for complex structures. 2007-09-19 11:38:28 +02:00
Rob Shearman f67a6adf4e rpcrt4: Implement RpcSmDestroyClientContext and RpcSsDestroyClientContext. 2007-09-19 11:36:41 +02:00
Rob Shearman 5191498564 rpcrt4: Fix a copy-and-paste error in RpcAuthInfo_Release that caused a double free of memory. 2007-09-19 11:36:28 +02:00
Dan Hipschman 5e84eb9a47 widl: Add padding to the end of complex structures. 2007-09-14 14:43:13 +02:00
Rob Shearman 2eb0e1ce21 rpcrt4: Fix a trace in RPCRT4_SecurePacket. 2007-09-12 11:33:11 +02:00
Rob Shearman e0e27e4dfb rpcrt4: Correctly handle the failure of RPCRT4_SecurePacket in RPCRT4_Receive. 2007-09-12 11:33:10 +02:00
Dan Hipschman ba54c455fb widl: Allow size_is on strings. 2007-09-10 15:29:46 +02:00
Dan Hipschman 62fb623e14 widl: Implement NDR for struct field alignment. 2007-09-10 15:29:46 +02:00
Dan Hipschman 3d036da6d3 widl: Fix top-level and callback conformances. 2007-09-10 15:29:46 +02:00
Andrew Talbot 04e0986d60 rpcrt4: Constify some variables. 2007-08-22 11:58:13 +02:00
Andrew Talbot fa3d623882 rpcrt4: Constify some variables. 2007-08-20 11:56:05 +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
Dmitry Timoshkov 12d3905427 rpcrt4: Fix the buffer bounds check. 2007-07-19 12:03:50 +02:00
Rob Shearman d212adbf10 rpcrt4: Add some more RPC to NCA status code mappings.
Add RPC_S_SEC_PKG_ERROR to the list of "hard" errors.
2007-07-18 12:56:16 +02:00
Rob Shearman 2703059933 rpcrt4: Never allocate memory for the discriminant in union_arm_unmarshall as the memory is part of the union and has already been allocated. 2007-07-16 22:46:59 +02:00
Rob Shearman b44c16cc8d rpcrt4: Check to make sure there is enough data in the buffer during unmarshalling, so that the code doesn't try to read beyound the end of the buffer. 2007-07-16 22:46:55 +02:00
Rob Shearman 686c0f094c rpcrt4: Even though FC_ENUM16 is an unsigned type, the highest allowable value that can be marshalled is SHRT_MAX, not USHRT_MAX. 2007-07-16 22:46:47 +02:00
Rob Shearman c6dc14d81b rpcrt4: Make binding to an interface a function of RpcAssoc instead of
binding handles, since binding requires information from the
association and not from the binding handle.
2007-07-13 12:27:17 +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 67c8fa58ec rpcrt4: Store the assoc_group_id in the connections. 2007-06-27 12:32:43 +02:00
Rob Shearman 9787f12589 rpcrt4: Make pointers to RPCRT4_BuildBindHeader and RPCRT4_BuildBindAckHeader const. 2007-06-27 12:32:43 +02:00
Rob Shearman 680e35643d rpcrt4: Remove the unused AuthInfo field from the RpcAssoc structure and Used from RpcConnection. 2007-06-27 12:32:42 +02:00
Dan Hipschman 46222aee6e widl: Allow enums as union switch types. 2007-06-26 11:59:53 +02:00
Dan Hipschman ea7b1694de rpcrt4: Allow enums as union switch types. 2007-06-26 11:59:43 +02:00
Dan Hipschman 076a6206ff rpcrt4/tests: Wrap a try/except block around tests. 2007-06-26 11:59:32 +02:00
Dan Hipschman 512c36cae6 widl: Get simple enums working. 2007-06-26 11:59:02 +02:00
Rob Shearman 545c2a95f6 rpcrt4: Dereference the pointer passed to the marshaling/unmarshaling/sizing routines in complex types for interface pointers. 2007-06-25 23:21:55 +02:00
Rob Shearman fc124eca6e rpcrt4: Implement marshalling, unmarshalling and buffer sizing for the context handle type. 2007-06-25 23:21:55 +02:00
Rob Shearman d36f02eaa9 rpcrt4: Implement marshalling/unmarshalling for the range NDR type. 2007-06-25 23:21:54 +02:00
Rob Shearman 4174255e0c rpcrt4: Set PointerBufferMark to the buffer location immediately after the non-pointer data in complex struct and array marshaling and unmarshaling to keep to the DCE/RPC specification. 2007-06-25 23:21:54 +02:00
Rob Shearman cbafe663b0 rpcrt4: Try a lot harder to resuse existing connections by comparing inside the RpcQualityOfService and RpcAuthInfo objects.
Store a copy of the SEC_WINNT_AUTH_IDENTITY structure passed in to
RpcBindingSetAuthInfo(Ex) to enable us to do this for RpcAuthInfo objects.
2007-06-25 23:21:54 +02:00
Rob Shearman 0ebcacca39 rpcrt4: Store the assoc_group_id field returned from the bind_ack packet and use it when creating further connections in the association group. 2007-06-25 23:21:53 +02:00
Rob Shearman 62c49bdd18 rpcrt4: When an exception is raised, return the stored exception code instead of the generic RPC_S_CALL_FAILED. 2007-06-25 23:21:53 +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 c411d95e20 rpcrt4: Close the connection if a protocol error or certain other kinds of errors occur, instead of returning it to the connection pool. 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
Rob Shearman 903fb72b21 rpcrt4: Add a STUBLESS_FREE phase for freeing the allocated memory in the server function. 2007-06-25 23:21:52 +02:00
Rob Shearman a1dca20dd7 rpcrt4: Add support for ServerAllocSize parameters. 2007-06-25 23:21:52 +02:00
Rob Shearman 73c31ed309 rpcrt4: Don't use add on the sizes of array elements to an open-ended structure; use FIELD_OFFSET with the array index instead. 2007-06-25 23:21:52 +02:00
Dan Hipschman 4e8c8d03e5 widl: Add tests for arrays of pointers. 2007-06-21 13:10:46 +02:00
Rob Shearman 0f826e7cc1 rpcrt4: Use the offset to array data in embedded pointer format descriptions. 2007-06-20 13:08:30 +02:00
Dan Hipschman d2c15ed01b rpcrt4: Fix typo in union buffer size calculation. 2007-06-19 11:46:02 +02:00
Dan Hipschman 6fd05b1dc7 rpcrt4: Fix bug calculating union switch type. 2007-06-19 11:45:51 +02:00
Dan Hipschman b09b917a5c rpcrt4: Remove inaccurate comments. 2007-06-19 11:45:44 +02:00
Dan Hipschman 08c846a9da rpcrt4: Add encapsulated union tests. 2007-06-19 11:45:11 +02:00
Rob Shearman 0871ab9130 rpcrt4: Implement encapsulated union NDR functions. 2007-06-18 13:58:09 +02:00
Dan Hipschman 3325020636 widl: Handle wire_marshal pointer attributes. 2007-06-14 11:36:05 +02:00
Dan Hipschman 2bc8808be1 widl: Test structure argument marshalling. 2007-06-14 11:35:55 +02:00
Dan Hipschman c0982b42c5 widl: Handle wire_marshal types. 2007-06-14 11:35:44 +02:00
Dan Hipschman 88c8128704 widl: Simplify correlation descriptor code. 2007-06-12 11:13:30 +02:00
Dan Hipschman 8f689ee023 widl: Implement conformant structure handling. 2007-06-06 12:13:35 +02:00
Dan Hipschman 978b4d4f4e widl: Represent arrays with type_t. 2007-06-06 12:13:16 +02:00
Dan Hipschman e5c8a6eb5d rpcrt4: Fix build of test on Solaris by renaming a variable. 2007-05-31 13:07:13 +02:00
Francois Gouget 8d7ad785e3 rpcrt4/tests: Fix a Visual C++ double to float conversion warning. 2007-05-29 13:46:19 +02:00
Francois Gouget f27a7153a5 rpcrt4/tests: Fix signed/unsigned and 32/64bit issues with the wiredatalen parameter. 2007-05-29 13:46:14 +02:00
Dmitry Timoshkov 3c9e7a7f33 wine: Switch to using 'long' for INT_PTR type for 64-bit compatibility. 2007-05-25 20:37:56 +02:00
Dan Hipschman 8f7a5d63ec widl: Allow types that reference themselves. 2007-05-25 19:36:12 +02:00
Dan Hipschman 00ce411231 widl: Handle pointers in unions.
Unify write_pointers with write_embedded_types, and handle pointers in
unions.  Includes tests.
2007-05-25 19:35:29 +02:00
Dan Hipschman b4e8073f8c rpcrt4: Fix test typo. 2007-05-25 19:35:02 +02:00
Dan Hipschman c5aaadc4c8 widl: Lay framework for unions with simple unions working. 2007-05-21 12:40:58 +02:00
Andrew Talbot d5d056ef75 rpcrt4: Exclude unused headers. 2007-05-18 14:11:22 +02:00
Dan Hipschman 52ca3ebada widl: Write some structures to the type format string on the fly. 2007-05-16 13:33:17 +02:00
Dan Hipschman d9c120490f widl: Handle pointers fields that point to structures. 2007-05-14 14:24:16 +02:00
Dan Hipschman ef433e2792 widl: Remove var_t's ptr_level field and start write_pointers. 2007-05-11 12:33:27 +02:00
Rob Shearman 35e99b50f1 rpcrt4: Print the correct values when warning about a bad frag length. 2007-04-30 12:33:19 +02:00
Dan Hipschman ba17c25e62 rpcrt4: Add a testcase for RPCs with fixed-size arrays. 2007-04-26 16:12:23 +02:00
Dan Hipschman cc09b0c19c rpcrt4: Add tests for RPC and widl generated code. 2007-04-26 15:48:13 +02:00
Dan Hipschman 6c5e78fe03 rpcrt4: Add tests for RpcServerListen and friends. 2007-04-13 11:42:42 +02:00
Francois Gouget 0081b430e1 Assorted spelling and English fixes. 2007-04-03 11:23:12 +02:00
Rob Shearman 173590a664 rpcrt4: Fixing the using of the auth_len values the wrong way round - PKT_PRIVACY implies the packet will be encrypted, not just signed. 2007-03-28 12:14:18 +02:00
Rob Shearman 763fe63213 rpcrt4: Use the correct authorization trailer length using information from the security provider.
Previously it was hardcoded to 16, so only the NTLM provider would work correctly.
2007-03-27 13:00:00 +02:00
Rob Shearman 88295b9a02 rpcrt4: Call CompleteAuthToken if InitializeSecurityContext returned a code that says it should be called.
Currently, the only security provider that requires this is the Digest 
one, which we don't really care about, but is supported for completeness.
2007-03-27 12:59:42 +02:00
Rob Shearman 88e9b3fad8 rpcrt4: Call InitializeSecurityContext from only one function.
This reduces the amount of code and ensures that the parameters passed 
to it stay the same, apart from the previous context and the output 
buffer description.
2007-03-27 12:42:05 +02:00
Rob Shearman 7abb647cd3 rpcrt4: Retrieve the maximum token length from the security provider rather than using a hardcoded and rather small limit. 2007-03-27 12:41:54 +02:00
Rob Shearman 7e061e4f64 rpcrt4: Make some parameters of non-exported functions const. 2007-03-27 12:39:18 +02:00
Rob Shearman adb7cca85c rpcrt4: Implement associations which are intermediary objects that track the relationship between the client and a given endpoint on the server.
Use these to encapsulate the connection pool so that the lifetimes of 
connections are properly handled again.
2007-03-27 12:39:05 +02:00
Andrew Talbot 67813450b9 rpcrt4: Replace inline static with static inline. 2007-03-23 12:29:52 +01:00
Rob Shearman 8620d15d39 rpcrt4: Unmarshal NULL OLE interfaces properly by handling the case of a 0 stream size. 2007-03-14 18:49:49 +01:00
Huw Davies 6fcff278b3 rpcrt4: Tests that show that the allocation rules for unmarshaling a conformant array are the same as those for a simple structure. 2007-03-13 11:52:37 +01:00
Francois Gouget d3245723ae rpcrt4: Fix a file handle leak in RPCRT4_RPCSSOnDemandCall().
Also, RPCRT4_RpcssNPConnect() returns a file handle so treat it as
such by checking it against INVALID_HANDLE_VALUE and not NULL.
2007-03-08 21:31:07 +01:00
Alexandre Julliard 9dd1f1e341 Added version information for a number of dlls. 2007-03-07 21:25:16 +01:00
Rob Shearman 55a103ca5c rpcrt4: Use IPPROTO_TCP for SOL_TCP if SOL_TCP isn't defined.
Fixes compilation on *BSD systems.
2007-03-01 20:42:50 +01:00
Rob Shearman 829dfa8052 rpcrt4: Set TCP_NODELAY on the socket for the ncacn_ip_tcp transport to reduce latency. 2007-02-28 13:28:40 +01:00
Rob Shearman ca6fe3fbf2 rpcrt4: Fix a memory leak in I_RpcSendReceive caused by I_RpcReceive overwriting pMsg->Buffer.
(Reported by Huw Davies.)
2007-02-21 19:48:51 +01:00
Rob Shearman b491d926d5 rpcrt4: Add documentation for the I_Rpc* RPC message functions. 2007-02-21 19:48:44 +01:00
Rob Shearman b6d8b27be5 rpcrt4: The format structures used in the marshaling code should have 1-byte alignment. 2007-02-12 15:20:52 +01:00
Alexandre Julliard 639ffbfde7 rpcrt4: Enter new named pipe connections into the protocol connection list. 2007-02-12 14:13:22 +01:00
Francois Gouget 45d5ff01a6 rpcrt4: Better match the PSDK types and fix the winapi_check warnings. 2007-02-07 21:42:02 +01:00
Francois Gouget 62662d21dd rpcrt4: Improve the prototypes Win64 compatibility by replacing long with LONG. 2007-02-06 13:23:53 +01:00
Andrew Talbot 3bc14d9110 rpcrt4: Declare some functions static. 2007-01-25 12:04:18 +01:00
Rob Shearman 399844e9f6 rpcrt4: RPCRT4_strdupWtoA and RPCRT4_strdupAtoW don't change the input string, so make the input const. 2007-01-25 12:00:13 +01:00
Rob Shearman 961455c7f0 rpcrt4: Stash away NetworkOptions passed in from the binding string so that transports can look at the string if needed. 2007-01-25 12:00:10 +01:00
Rob Shearman d05f5f33a4 rpcrt4: When copying quality of service, deep copy TransportCredentials structure too.
Remove some no longer relevant fixmes.
2007-01-24 12:07:24 +01:00
Rob Shearman 2103bca4db rpcrt4: Fix a typo in rpcrt4_conn_open_pipe.
Fix a typo in rpcrt4_conn_open_pipe where the initial setting of dwFlags 
was done inside the switch statement instead of at the indented place of 
at the start of the block (thanks to Jan Zerebecki for noticing this bug).
2007-01-24 12:07:14 +01:00
Huw Davies e3abd2b3ff rpcrt4: Implement NdrSimpleType{Marshall,Unmarshall}. 2007-01-24 11:59:01 +01:00
Rob Shearman e6f4514512 rpcrt4: Try to avoid partial named pipe read/writes by looping. 2007-01-23 11:38:23 +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 0debcf5b1e rpcrt4: Handle security quality of service flags relevant to the ncacn_np protocol. 2007-01-22 12:01:57 +01:00
Rob Shearman 4b79a0252a rpcrt4: Track the security quality of service settings for bindings and connections. 2007-01-22 12:01:54 +01:00
Joel Parker 2319999a05 Remove redundant semicolons for ANSI compatibility. 2007-01-17 11:58:15 +01:00
Paul Vriens c21d65cfb2 rpcrt4/tests: Cast-qual warning fixes. 2007-01-12 20:41:22 +01:00
Francois Gouget fa7c32f56c rpcrt4: Give a proper name to some formerly reserved MIDL_STUB_MESSAGE fields.
Define NTDDI_VERSION so we get definitions for the Reserved51_X fields with the PSDK.
This fixes compilation of the ndr_marshall.c with the PSDK.
2007-01-11 11:37:13 +01:00
Francois Gouget f43b549081 rpcrt4/tests: Remove an unneeded '#if 0' and fix the code so it compiles without warnings. 2007-01-08 12:08:03 +01:00
Francois Gouget 9f586f1b79 rpcrt4/tests: Replace some '#if 0's with 'if (0)'s, or remove them if not needed anymore.
Fix the code so it compiles without warnings.
2007-01-08 12:07:59 +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 48344f505b rpcrt4: Free the resource allocated by InitializeSecurityContext when the connection is closed. 2006-12-18 11:45:51 +01:00
Dmitry Timoshkov 8c3fdfea42 rpcrt4: Make some data const. 2006-12-14 20:11:34 +01:00
Andrew Talbot 82a042d0df rpcrt4/tests: Cast-qual warnings fix. 2006-12-14 12:51:10 +01:00
Marcus Meissner f0280cbd1e made functions and variables static in some testcases. 2006-12-11 12:18:29 +01:00
Francois Gouget bb8e625b5b Assorted spelling fixes. 2006-12-05 10:31:47 +01:00
Rob Shearman 06dd3efe2f rpcrt4: RPC_C_AUTHN_LEVEL_NONE and RPC_C_AUTHN_LEVEL_DEFAULT are
handled at the binding level now instead of the message level, so
remove this special handling in RPCRT4_Send.
2006-11-22 11:37:15 +01:00
Rob Shearman 20c53a77e2 rpcrt4: Allow applications to specify authentication levels other than connect in RpcBindingSetAuthInfoA/W.
Map the default authentication level and service to sane values.
Don't create an RpcAuthInfo object if RPC_C_AUTHN_LEVEL_NONE is specified.
2006-11-22 11:37:08 +01:00
Rob Shearman 8bb10f1082 rpcrt4: Use SecInvalidateHandle and SecIsValidHandle for handling RpcConnection::ctx instead of setting/comparing the field to 0. 2006-11-15 11:25:57 +01:00
Rob Shearman 51dd6f9fb8 rpcrt4: Add support for signing, verifying, encrypting and decrypting RPC packets. 2006-11-15 11:25:53 +01:00
Rob Shearman 8e178b2d4f rpcrt4: Fix a crash in RPCRT4_OpenBinding that can occur if
RPCRT4_CreateConnection fails by checking the return value from the
function and returning in this case.
2006-11-15 11:25:44 +01:00
Rob Shearman 079b6b074c rpcrt4: Add a FIXME for unsupported client protocol sequences. 2006-11-15 11:25:35 +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 59a90143bf rpcrt4: Fix a comment and move a WARN to where it really indicates a problem, rather than falsely triggering on normal conditions. 2006-11-13 14:32:21 +01:00
Francois Gouget b2656633a6 Add some documentation headers to make winapi_check happy. 2006-11-13 13:01:15 +01:00
Francois Gouget 5962cf6e4f rpcrt4: Add some stub documentation headers to make winapi_check happy.
Also fix some headers that identified internal APIs as external.
2006-11-13 13:00:53 +01:00
Andrew Talbot fcb5bc6a1f rpcrt4: Cast-qual warnings fix. 2006-11-13 12:47:00 +01:00
Andrew Talbot b011a4eecd rpcrt4: Cast-qual warnings fix. 2006-11-13 12:46:53 +01:00
Alexandre Julliard e9d5e5503f rpcrt4: Avoid a sizeof in a trace. 2006-11-10 14:29:55 +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
Rob Shearman 44922d29db rpcrt4: Correctly align the results in the RPC Bind Ack packet. 2006-11-10 13:50:03 +01:00
Michael Stefaniuc de21efbadd rpcrt4: Win64 printf format warning fixes. 2006-11-10 11:31:59 +01:00
Michael Stefaniuc 718f3c3505 rpcrt4: More "unsigned long" to "ULONG" changes in preparation of the removal of WINE_NO_LONG_AS_INT. 2006-11-10 11:31:45 +01:00
Michael Stefaniuc 32ec528405 rpcrt4: Bring the function definitions in sync with their declaration.
They got out of sync due to the unsigned long to ULONG changes in the headers.
2006-11-10 11:31:37 +01:00
Michael Stefaniuc 0628fb5098 rpcrt4/ndr_marshall.c: Bring the function definitions in sync with their declaration.
Those got out of sync due to the unsigned long to ULONG migration in the headers.
2006-11-10 11:31:26 +01:00
Alexandre Julliard c0f9d369dc rpcrt4/tests: Replace || by |. 2006-11-09 18:20:49 +01:00
Michael Stefaniuc 6bf97313bc rpcrt4/tests: Fix the warnings introduced by the "unsigned long" to "ULONG" header changes. 2006-11-09 10:43:45 +01:00
Rob Shearman 0345a578b5 rpcrt4: For TCP endpoints, bind to all the address and ports that getaddrinfo for the machine. 2006-11-09 10:37:29 +01:00
Rob Shearman 034eaa1cad rpcrt4: Use MaxCalls from the protseq when determining the backlog length to pass in to listen. 2006-11-09 10:37:15 +01:00
Rob Shearman 34577de406 rpcrt4: The error code RPC_S_SERVER_UNAVAILABLE doesn't make much sense on the server side
so replace it with some more appropriate endpoint error codes.
2006-11-09 10:37:07 +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
Michael Stefaniuc e9ae478c14 rpcproxy.h: Use LONG/ULONG for Win64 compatibility instead of long and unsigned long. 2006-11-08 15:51:25 +01:00
Michael Stefaniuc 4e2b462d4f rpcrt4: For Win64 compatibility use a temp variable of the right type in ComputeVariance(). 2006-11-08 15:51:22 +01:00
Francois Gouget ea483682c5 secur32: sspi.h must not include wtypes.h. 2006-11-08 12:11:00 +01:00
Rob Shearman 3acc624219 rpcrt4: Remove unnecessary quotes in traces, as debugstr_a and debugstr_w add them instead. 2006-11-06 12:27:21 +01:00
Rob Shearman 85e28ae33d rpcrt4: Set the AI_PASSIVE flag to getaddrinfo in rpcrt4_ip_tcp_open so that the bound-to port is connectable from other machines. 2006-10-31 21:42:32 +01:00
Rob Shearman 3ed6a201c2 rpcrt4: Improve the debug messages for failures in rpcrt4_ip_tcp_open. 2006-10-31 21:42:25 +01:00
Rob Shearman 828c733f72 rpcrt4: Set the socket back to blocking in rpcrt4_conn_tcp_handoff as
the read and write function for the protseq assume that syscalls will block.
2006-10-31 21:42:17 +01:00
Rob Shearman e2e05d0493 rpcrt4: Fix a typo in rpcrt4_ip_tcp_open that would cause the function
to go into an infinite loop if getaddrinfo returned more than one entry.
2006-10-31 21:41:38 +01:00
Rob Shearman 593d0fbac0 rpcrt4: Convert the named pipe server code to look directly into the
connection to get at the wait handles, instead of using
get_connect_wait_handle which isn't generic enough to be used for
other protocols.
Remove the unneeded get_connect_wait_handle function from the connection 
operations function list.
2006-10-31 21:41:29 +01:00
Rob Shearman 7553a8990c rpcrt4: Eliminate the extra thread used for RPC over TCP/IP servers by adding socket-specific server protseq functions. 2006-10-31 21:41:07 +01:00
Rob Shearman 709b536f0c rpcrt4: The allocation hint in request and response packets is just that - a hint.
It is not an error if the stub data exceeds this size, so reallocate the 
buffer with the newly calculated size and continue.
2006-10-27 12:00:22 +02:00
Rob Shearman fbe829cbb1 rpcrt4: Don't terminate the loop on the buffer becoming filled, but when we receive a packet with the RPC_FLG_LAST flag set.
This matches what is mentioned in the DCE/RPC specification.
2006-10-27 12:00:12 +02:00
Rob Shearman 28d3bd3e42 rpcrt4: Fix RPCRT4_Receive to accept authentication verifier data on any packets, not just bind packets. 2006-10-27 12:00:05 +02:00
Rob Shearman c3918d9be4 rpcrt4: Move transport-specific server functions to rpc_transport.c. 2006-10-25 20:21:41 +02:00
Damjan Jovanovic 48ca62185b rpcrt4: Added support for RPC TCP servers. 2006-10-20 14:46:55 +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 92c3979433 rpcrt4: Rename protseq_ops to connection_ops to reflect the fact that
the functions operate on an RpcConnection object, not an
RpcServerProtseq object.
2006-10-16 19:55:37 +02:00
Robert Shearman e906424178 rpcrt4: Create a server thread for each protseq. 2006-10-16 19:44:42 +02:00
Michael Stefaniuc 56b87f3a0f janitorial: Remove redundant NULL checks before calling HeapFree wrappers. 2006-10-16 10:52:48 +02:00
Francois Gouget 4794dc0e38 rpcrt4: Add RPC_CSTR, RPC_WSTR and update the prototypes accordingly. 2006-10-13 11:54:58 +02:00
Ge van Geldorp d642e11438 winapi_test: Regenerate tests.
Remove structs from test list which have preprocessor directives in
their definitions (winapi_test can't handle that).
2006-10-11 12:12:21 +02:00
Michael Stefaniuc 14c551bc3a rpcrt4/tests: Win64 printf format warning fixes. 2006-10-09 12:44:16 +02:00
Francois Gouget 82babbee0b Add missing '\n's to Wine traces. 2006-10-05 17:46:48 +02:00
Robert Shearman 2324aeec33 rpcrt4: Use I_Rpc{Allocate, Free} instead of Heap{Alloc, Free} as that
the former are exported by rpcrt4 seemingly to allow callers of tower
functions to free the allocated memory.
2006-10-03 16:14:57 +02:00
Robert Shearman 7dab87e2e9 rpcrt4: RpcBindingCopy is implemented. 2006-10-03 16:14:49 +02:00
Robert Shearman b9423076ba rpcrt4: Don't use HEAP_ZERO_MEMORY when most of the fields will be initialised to non-zero values. 2006-10-03 16:14:47 +02:00
Francois Gouget 1011bc47bf rpcrt4: Don't return void values. This fixes Visual C++ warnings. 2006-10-02 11:54:43 +02:00
Francois Gouget 68e84a7a53 Add missing '\n's to ok() calls. 2006-09-29 17:53:39 +02:00
Michael Stefaniuc 85ce5117c5 Add a WINE_NO_LONG_INT define to many makefiles to ease the transition of DWORD/LONG/ULONG from long to int. 2006-09-29 16:08:30 +02:00
Thomas Weidenmueller bc0f9c49b0 rpcrt4: Fix RpcMgmtSetServerStackSize prototype. 2006-09-28 14:03:50 +02:00
Andrew Talbot 8221beb225 rpcrt4: Cast-qual warnings fix. 2006-09-26 11:40:52 +02:00
Andrew Talbot 3f123e51bf rpcrt4: Cast-qual warnings fix. 2006-09-26 11:40:47 +02:00
Andrew Talbot 269f77d872 rpcrt4: Cast-qual warnings fix. 2006-09-26 11:40:41 +02:00
Andrew Talbot 7147f79153 rpcrt4: Cast-qual warnings fix. 2006-09-26 11:40:33 +02:00
Alexandre Julliard 32ab895e46 makefiles: Generate the dependencies line to avoid some code duplication. 2006-09-14 09:38:16 +02:00
Francois Gouget 06f9532dda Assorted spelling fixes. 2006-09-08 11:04:53 +02:00
Robert Shearman a6e545a27c rpcrt4: Raise an exception if IRpcChannelBuffer_GetBuffer fails.
Make StdProxy_GetIID and StdProxy_GetChannel return void.
Don't bother checking for This and pRpcChannelBuffer being NULL as 
native doesn't.
2006-09-07 11:42:05 +02:00
Huw Davies bd9891ffed rpcrt4: Add delegating stub support. 2006-09-07 10:57:39 +02:00
Huw Davies b058e6e729 rpcrt4: Add infrastructure to create and manage a variable sized vtbl
that will be used as the server object for delegated stubs.
2006-09-07 10:57:27 +02:00
Huw Davies 9b91307677 rpcrt4: Tests on NdrCStdStubBuffer_Release to show that we shouldn't call Disconnect.
Also call IPSFactoryBuffer_Release on the 2nd arg, rather than on This->pPSFactory.
2006-09-07 10:24:54 +02:00
Huw Davies 86aa95fd2b rpcrt4: Tidy up CStdStubBuffer_QueryInterface. 2006-09-07 10:23:00 +02:00
Huw Davies dffd3e5034 rpcrt4: Tidy up CStdStubBuffer_AddRef,Release. 2006-09-07 10:22:35 +02:00
Robert Shearman ada61620de rpcrt4: Make the reference counting in the standard proxy thread-safe. 2006-09-07 10:19:38 +02:00
Robert Shearman 3e01da1838 rpcrt4: Fix NdrStubGetBuffer to use the IRpcChannelBuffer object since
IRpcChannelBuffer_GetBuffer may put extra data onto the wire for ORPC
calls.
2006-09-07 10:18:52 +02:00
Robert Shearman 3535b70a0b rpcrt4: Remove some unused code. 2006-09-07 10:18:48 +02:00
Robert Shearman 5515633517 rpcrt4: Rename ndr_midl.c to ndr_clientserver.c to more accurately
idenitfy what the code contained does - it is a number of helpers for
generated client/server code.
2006-09-07 10:18:31 +02:00
Robert Shearman 583ae12233 rpcrt4: Move NdrStub* functions to cstub.c and move NdrProxy*
functions to cproxy.c since both sets of functions depend on the
implementations of the standard stubs and proxies.
2006-09-07 10:17:28 +02:00
Huw Davies d28698dd73 rpcrt4: Add a test for IRpcStubBuffer_Connect on a delegated stub.
This shows that we have a vtbl ptr at (void**)This-2 that is passed to
the base interface's IRpcStubBuffer_Connect.  This vtbl should
presumably forward calls to the real object's vtbl.  We can't simply
pass the real object to the base interface's stub, as the real
object's QI may not provide us with the base interface.
2006-08-29 12:26:31 +02:00
Huw Davies 161f60071e rpcrt4: Add a helper function to create a stub. 2006-08-29 12:26:22 +02:00
Alexandre Julliard 5cf75e615a makefiles: Only run test and documentation targets in directories that need them. 2006-08-28 13:37:44 +02:00
Huw Davies 487c691dc5 rpcrt4: Tests for CStdStubBuffer_Disconnect and a tidy up of the implementation. 2006-08-23 20:10:36 +02:00
Huw Davies f42f727f7c rpcrt4: Tests for CStdStubBuffer_Connect and fixes to make them pass. 2006-08-23 20:10:15 +02:00
Huw Davies cadc39842b rpcrt4: Add tests for CreateStub and fix up CStdStubBuffer_Construct to match. 2006-08-23 20:10:06 +02:00
Huw Davies 6a0fccd3a9 rpcrt4: Add tests for NdrStubForwardingFunction and write a commented out implementation.
This shows that the IRpcStubBuffer for a delegated stub's base
interface is stored at (void**)This-1.
2006-08-23 20:09:52 +02:00
Huw Davies a5dcb3e39d rpcrt4: Tests for NdrDllGetClassObject.
These show that delegated stubs need different Connect, Disconnect and
CountRefs methods than non-delegated stubs (ie they don't use all of
the CStdStubBuffer_* functions).
2006-08-23 20:09:04 +02:00
Stefan Huehner 998e256c82 Fix some -Wstrict-prototype warnings () -> (void). 2006-08-21 12:06:26 +02:00
Huw Davies 59be6e0600 rpcrt4: Remember to skip over the conformance description. 2006-08-18 11:34:26 +02:00
Huw Davies d9b6672530 rpcrt4: Add tests for NdrAllocate. 2006-08-17 11:19:17 +02:00
Robert Shearman 4bbc3ca8dc rpcrt4: Move processing of the arguments from NdrClientCall2 to two new functions. 2006-08-16 16:41:42 +02:00
Robert Shearman 68e867da81 rpcrt4: Forward NdrClientCall to NdrClientCall2.
NdrClientCall should be implemented as a separate function when 
NdrClientCall2 has been factorised enough.
2006-08-09 20:41:34 +02:00
Robert Shearman f953cc406a rpcrt4: Add some more traces and make the stack offsets easier to read in the stubless interpreter. 2006-08-09 20:41:21 +02:00
Robert Shearman 88bbbed176 rpcrt4: Change call_memory_sizer to preserve the buffer contents and
initialise the memory size field to zero before calling the memory
sizer function.
2006-08-09 20:41:13 +02:00
Robert Shearman d29108c396 rpcrt4: Set retval_ptr and allocate memory for out pointers for the old format stubless intepreter. 2006-08-09 20:41:01 +02:00
Robert Shearman 3db5f872a0 rpcrt4: Support fixed arrays in calc_arg_size. 2006-08-09 20:40:40 +02:00