Robert Shearman : rpcrt4: Implement RpcBindingCopy.

Alexandre Julliard julliard at wine.codeweavers.com
Thu May 25 04:16:03 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: b9f36c3fa208e2b3a99ed4c5859a423a6aef89c0
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=b9f36c3fa208e2b3a99ed4c5859a423a6aef89c0

Author: Robert Shearman <rob at codeweavers.com>
Date:   Wed May 24 23:00:34 2006 +0100

rpcrt4: Implement RpcBindingCopy.

---

 dlls/rpcrt4/rpc_binding.c |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/dlls/rpcrt4/rpc_binding.c b/dlls/rpcrt4/rpc_binding.c
index b1cd88e..bb691f6 100644
--- a/dlls/rpcrt4/rpc_binding.c
+++ b/dlls/rpcrt4/rpc_binding.c
@@ -836,6 +836,37 @@ RPC_STATUS WINAPI I_RpcBindingSetAsync( 
 }
 
 /***********************************************************************
+ *             RpcBindingCopy (RPCRT4.@)
+ */
+RPC_STATUS RPC_ENTRY RpcBindingCopy(
+  RPC_BINDING_HANDLE SourceBinding,
+  RPC_BINDING_HANDLE* DestinationBinding)
+{
+  RpcBinding *DestBinding;
+  RpcBinding *SrcBinding = (RpcBinding*)SourceBinding;
+  RPC_STATUS status;
+
+  TRACE("(%p, %p)\n", SourceBinding, DestinationBinding);
+
+  status = RPCRT4_AllocBinding(&DestBinding, SrcBinding->server);
+  if (status != RPC_S_OK) return status;
+
+  DestBinding->ObjectUuid = SrcBinding->ObjectUuid;
+  DestBinding->BlockingFn = SrcBinding->BlockingFn;
+  DestBinding->Protseq = RPCRT4_strndupA(SrcBinding->Protseq, -1);
+  DestBinding->NetworkAddr = RPCRT4_strndupA(SrcBinding->NetworkAddr, -1);
+  DestBinding->Endpoint = RPCRT4_strndupA(SrcBinding->Endpoint, -1);
+
+  DestBinding->FromConn = SrcBinding->FromConn;
+  SrcBinding->FromConn = NULL;
+  if (SrcBinding->AuthInfo) RpcAuthInfo_AddRef(SrcBinding->AuthInfo);
+  DestBinding->AuthInfo = SrcBinding->AuthInfo;
+
+  *DestinationBinding = DestBinding;
+  return RPC_S_OK;
+}
+
+/***********************************************************************
  *             RpcImpersonateClient (RPCRT4.@)
  *
  * Impersonates the client connected via a binding handle so that security




More information about the wine-cvs mailing list