Commit Graph

108 Commits

Author SHA1 Message Date
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
Andrew Talbot d5d056ef75 rpcrt4: Exclude unused headers. 2007-05-18 14:11:22 +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
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 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
Andrew Talbot 3bc14d9110 rpcrt4: Declare some functions static. 2007-01-25 12:04:18 +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 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
Alexandre Julliard e9d5e5503f rpcrt4: Avoid a sizeof in a trace. 2006-11-10 14:29:55 +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
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
Michael Stefaniuc 56b87f3a0f janitorial: Remove redundant NULL checks before calling HeapFree wrappers. 2006-10-16 10:52:48 +02:00
Huw Davies 3a56eca1c7 rpcrt4: Don't use a short to hold the packet length, since it can
result in premature termination of the send.
2006-06-20 20:35:38 +02:00
Alexandre Julliard 2a91838f0c rpcrt4: Don't use sizeof in traces to avoid printf format warnings. 2006-06-13 14:11:28 +02:00
Robert Shearman 56386bd88c rpcrt4: Return the status received from RPCRT4_Send in I_RpcSend instead of always returning RPC_S_OK. 2006-06-09 21:07:02 +02:00
Robert Shearman 8b56e88276 rpcrt4: Return the actual status code sent back by the server, rather than RPC_S_CALL_FAILED. 2006-05-26 20:15:44 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Robert Shearman dd362a62a1 rpcrt4: Fix copying too much data from the buffer by not taking into account the fact that auth_pad_len has been included in the fragment length. 2006-05-23 11:36:37 +02:00
Robert Shearman e91da1458d rpcrt4: Authentication padding should only be generated if there is authentication data. 2006-05-23 11:36:26 +02:00
Robert Shearman 0592210bcd rpcrt4: Add the definition of RpcAuthVerifier to rpc_defs.h from the DCE/RPC spec.
Use it in RPCRT4_SendAuth instead of writing out the data byte-by-byte.
2006-05-20 17:31:16 +02:00
Robert Shearman 5f266c54a1 rpcrt4: Add the correct amount of auth padding to messages. 2006-05-20 14:02:51 +02:00
Robert Shearman a2d2d4db63 rpcrt4: Update the todo lists and copyrights. 2006-05-20 14:02:24 +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
Robert Shearman 5067ea70c0 rpcrt4: Increment the call id field of the request header.
This is necessary for compatibility with MS/RPC servers.
2006-05-18 10:34:33 +02:00
Robert Shearman 2aa52b07d6 rpcrt4: If the authorisation failed during a send then we should return ERROR_ACCESS_DENIED. 2006-05-18 10:33:50 +02:00
Mike McCormack 336e67e2d1 rpcrt4: Implemented NTLM authentication for rpcrt4 connections. 2006-05-16 12:40:13 +02:00
Mike McCormack 7b5e5b65b0 rpcrt4: Add infrastructure for send authentication data. 2006-05-15 13:56:54 +02:00
Robert Shearman f7fa650d1b rpcrt4: Automatically resolve the endpoint. 2006-05-08 15:36:29 +02:00
Mike McCormack fe99f330ab rpcrt4: Abstract the transport layer functionality. 2006-04-20 19:48:15 +02:00
Mike McCormack 5f6ac9c484 rpcrt4: Use rpcrt4_conn_read in RPCRT4_OpenBinding. 2006-04-19 19:17:42 +02:00
Mike McCormack 71fc596a05 rpcrt4: Make RPCRT4_Send more compatible with write(2). 2006-04-19 19:15:53 +02:00
Mike McCormack 9a4abffa18 rpcrt4: Make RPCRT4_Receive more compatible with read(2). 2006-04-19 15:23:37 +02:00
Robert Shearman a4000349f8 rpcrt4: Fix the sending of >5800 byte messages by only adding offset
to the buffer after the first batch of data has been written to the
pipe.
2006-01-18 11:29:38 +01:00
Robert Shearman c9e4ef73d2 Don't free previous buffer in NdrGetBuffer. 2005-08-03 14:55:05 +00:00
Stefan Huehner 4f82e547d7 Fix some missing-declarations warnings. 2005-07-24 17:11:59 +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 b24193c344 - Add a stub implementation of RpcImpersonateClient.
- More tracing, particularly on error paths.
2005-02-15 20:45:37 +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
Filip Navara c5580b0355 Make RPCRT4 use Windows compatible protocol (DCE v5.0) for
communication.
2004-04-26 23:33:39 +00:00
Filip Navara 3e103dcabe Prevent crashes in I_RpcSend on Windows XP. 2004-04-19 02:56:12 +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
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
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 def211c4c9 For better concurrency, separate the connections from the bindings. 2003-02-19 03:44:35 +00:00
Greg Turner 7ac58a4dc9 - Pull the buffer from the rpc message into the midl stub message
during RpcServerInitializeNew.
- Attempt to implement NdrConformantStringUnmarshall.
- More assertions.
- Comments and cleanups.
2002-10-28 23:53:23 +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 461708c142 - Use memset instead of ZeroMemory, just to be consistent with Ove's
code.
- Add some assertions where assumptions are made (need way more).
- Plug the binding handle into the RPC_MESSAGE during NdrGetBuffer.
- Implement NdrSendReceive.
- Attempt to support client and server bindings in I_RpcSend[Receive].
2002-10-25 21:02:02 +00:00
Ove Kaaven 0a17edf3a5 Implemented I_RpcFreeBuffer, I_RpcGetBuffer, I_RpcReceive, I_RpcSend,
I_RpcSendReceive; administrivia.
2002-10-10 18:55:24 +00:00