Module: wine Branch: refs/heads/master Commit: b9f36c3fa208e2b3a99ed4c5859a423a6aef89c0 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=b9f36c3fa208e2b3a99ed4c5...
Author: Robert Shearman rob@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