Commit Graph

105 Commits

Author SHA1 Message Date
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 deae193ac8 rpcrt4: Allow the connection to override the authentication mechanism for a connection type. 2009-12-14 12:19:16 +01:00
Rob Shearman e27e61db71 rpcrt4: Add support for server-side authentication. 2009-12-14 12:19:02 +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 59ba6d2573 rpcrt4: Support multiple interfaces and transfer syntaxes in bind and bind ack messages. 2009-11-11 10:56:13 +01: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
Alexandre Julliard 8de0242885 rpcrt4: Replace long and unsigned long by more appropriate types. 2009-07-03 13:42:57 +02:00
Francois Gouget ef5f1f5065 rpcrt4: Make RPCRT4_NextHttpHeaderField() and RPCRT4_default_receive_fragment() static. 2009-05-13 12:45:37 +02: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
Michael Stefaniuc e3bb1c8243 rpcrt4: Remove superfluous pointer casts. 2009-02-16 16:01:37 +01:00
Andrew Talbot 273b40656b rpcrt4: Declare some functions static. 2009-01-19 13:36:26 +01:00
Michael Stefaniuc 57ab0cd9a6 include: sspi.h: Use the Win types as per MSDN.
This improves the Win64 compatibility.
2009-01-06 12:43:46 +01:00
Michael Stefaniuc e86eb8efa6 include: Change RPC_STATUS from long to LONG for Win64 compatibility.
Also fix the compiler warnings introduced by this change.
2009-01-04 13:34:38 +01:00
Alexandre Julliard 83b6c8a5fa rpcrt4: Convert source files to utf-8. 2008-10-18 19:20:44 +02:00
Rob Shearman be9909ad1d rpcrt4: Print error messages from RPC message functions when they are called in an invalid way. 2008-09-12 16:49:45 +02:00
Rob Shearman 6bb26abe81 rpcrt4: Make RpcAssoc_BindConnection use RPCRT4_ReceiveWithAuth instead of RPCRT4_Receive.
Move the special handling of the PKT_BIND_ACK packet from
RPCRT4_ReceiveWithAuth to RpcAssoc_BindConnection, where it belongs.
2008-06-19 11:44:28 +02:00
Rob Shearman 6bb03d7dba rpcrt4: Add new function RPCRT4_ReceiveWithAuth to receive a fragment and return the authentication data received, if any. 2008-06-19 11:44:22 +02:00
Rob Shearman dec4acd8fe rpcrt4: Rename RPCRT4_SendAuth to RPCRT4_SendWithAuth. 2008-06-19 11:44:17 +02:00
Rob Shearman 8aeb2858e4 rpcrt4: Add a reference to the binding object in I_RpcNegotiateTransferSyntax and release the reference in I_RpcFreeBuffer.
This is needed because a context binding handle could be released on 
unmarshall, but it still needs to stay valid until the binding handle is 
no longer being used.

Re-use the previously unused RPCRT4_ExportBinding function as 
RPCRT4_AddRefBinding and rename RPCRT4_DestroyBinding to 
RPCRT4_ReleaseBinding to show that it's purpose is to release a 
reference count and destroy if necessary, not always destroy.
2008-04-01 19:11:00 +02:00
Andrew Talbot db6a901bf4 rpcrt4: Assign to structs instead of using memcpy. 2008-03-14 11:21:29 +01:00
Rob Shearman 610c213f6d rpcrt4: Add some traces to async_notifier_proc.
Make the test of the return value of wait_for_incoming_data less strict.
2008-02-15 09:53:16 +01:00
Rob Shearman 8e667fd89c rpcrt4: Fix potential memory leaks in RPCRT4_Receive. 2008-02-05 12:19:37 +01:00
Rob Shearman 3024b530c9 rpcrt4: Fix some incorrect checks in RPCRT4_Receive. 2008-02-04 13:02:49 +01:00
Rob Shearman 7277113af3 rpcrt4: Check the return value of RPCRT4_ClientAuthorize in RPCRT4_Send. 2008-01-23 20:45:55 +01:00
Rob Shearman 2badb4faea rpcrt4: Pass the SPN input to RpcBindingSetAuthInfoA/W into InitializeSecurityContextW instead of AcquireCredentialsHandleA/W. 2008-01-23 20:45:52 +01:00
Marcus Meissner 20dcbc3de9 rpcrt4: Initialize CurrentHeader. 2008-01-23 12:05:24 +01:00
Rob Shearman 2b0d3b7400 rpcrt4: Move the receiving of an individual fragment to a separate function. 2008-01-21 12:42:02 +01:00
Rob Shearman 5f077bab07 rpcrt4: Implement asynchronous RPC support. 2008-01-21 12:41:51 +01:00
Andrew Talbot 3c14ae6699 rpcrt4: Remove unneeded casts. 2008-01-17 13:42:14 +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 b0cbf664f6 rpcrt4: Add stubs for I_RpcAsyncSetHandle and I_RpcAsyncAbortCall. 2008-01-07 22:55:39 +01:00
Rob Shearman 31676530c2 rpcrt4: Set the ProcNum of RPC_MESSAGE in NdrClientInitializeNew to include RPC_VALID_FLAGS_BIT.
Mask out RPC_VALID_FLAGS_BIT from ProcNum when it is used to build a 
packet to send to the server.
2008-01-07 22:55:28 +01:00
Rob Shearman 0e6d5202c8 rpcrt4: Don't set Buffer to NULL in I_RpcFreeBuffer. 2008-01-07 12:04:31 +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
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 a51486c657 rpcrt4: Implement RpcCancelThread for the ncacn_ip_tcp protocol sequence. 2007-11-13 13:34:50 +01: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
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
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 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 9787f12589 rpcrt4: Make pointers to RPCRT4_BuildBindHeader and RPCRT4_BuildBindAckHeader const. 2007-06-27 12:32:43 +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 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