mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-14 16:47:17 +00:00
- (try to) implement RpcMgmtWaitServerListen
- remove duplicate RpcServerListen declaration in rpcdce.h - some TRACEs
This commit is contained in:
parent
15b9ed9f61
commit
034e4df6e7
|
@ -41,7 +41,21 @@ WINE_DEFAULT_DEBUG_CHANNEL(ole);
|
|||
|
||||
LONG_PTR /* CLIENT_CALL_RETURN */ RPCRT4_NdrClientCall2(PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pFormat, va_list args)
|
||||
{
|
||||
FIXME("(%p,%p,...)\n", pStubDesc, pFormat);
|
||||
|
||||
RPC_CLIENT_INTERFACE *rpc_cli_if = (RPC_CLIENT_INTERFACE *)(pStubDesc->RpcInterfaceInformation);
|
||||
|
||||
FIXME("(pStubDec == ^%p,pFormat = \"%s\",...): stub\n", pStubDesc, pFormat);
|
||||
TRACE("rpc_cli_if == ^%p\n", rpc_cli_if);
|
||||
if (rpc_cli_if) /* for objects this is NULL */
|
||||
TRACE("rpc_cli_if: Length == %d; InterfaceID == <%s,<%d.%d>>; TransferSyntax == <%s,<%d.%d>>; DispatchTable == ^%p; RpcProtseqEndpointCount == %d; RpcProtseqEndpoint == ^%p; Flags == %d\n",
|
||||
rpc_cli_if->Length,
|
||||
debugstr_guid(&rpc_cli_if->InterfaceId.SyntaxGUID), rpc_cli_if->InterfaceId.SyntaxVersion.MajorVersion, rpc_cli_if->InterfaceId.SyntaxVersion.MinorVersion,
|
||||
debugstr_guid(&rpc_cli_if->TransferSyntax.SyntaxGUID), rpc_cli_if->TransferSyntax.SyntaxVersion.MajorVersion, rpc_cli_if->TransferSyntax.SyntaxVersion.MinorVersion,
|
||||
rpc_cli_if->DispatchTable,
|
||||
rpc_cli_if->RpcProtseqEndpointCount,
|
||||
rpc_cli_if->RpcProtseqEndpoint,
|
||||
rpc_cli_if->Flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -110,6 +110,12 @@ RPC_STATUS RPCRT4_CreateBindingA(RpcBinding** Binding, BOOL server, LPSTR Protse
|
|||
RPC_STATUS RPCRT4_CreateBindingW(RpcBinding** Binding, BOOL server, LPWSTR Protseq)
|
||||
{
|
||||
RpcBinding* NewBinding;
|
||||
if (Binding)
|
||||
TRACE(" (*Binding == ^%p, server == %s, Protseq == \"%s\")\n", *Binding, server ? "Yes" : "No", debugstr_w(Protseq));
|
||||
else {
|
||||
ERR("!RpcBinding?\n");
|
||||
*((char *)0) = 0; /* we will crash below anyhow... */
|
||||
}
|
||||
|
||||
NewBinding = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(RpcBinding));
|
||||
NewBinding->refs = 1;
|
||||
|
@ -124,6 +130,9 @@ RPC_STATUS RPCRT4_CreateBindingW(RpcBinding** Binding, BOOL server, LPWSTR Prots
|
|||
|
||||
RPC_STATUS RPCRT4_CompleteBindingA(RpcBinding* Binding, LPSTR NetworkAddr, LPSTR Endpoint, LPSTR NetworkOptions)
|
||||
{
|
||||
|
||||
TRACE(" (RpcBinding == ^%p, NetworkAddr == \"%s\", EndPoint == \"%s\", NetworkOptions == \"%s\")\n", Binding, NetworkAddr, Endpoint, NetworkOptions);
|
||||
|
||||
RPCRT4_strfree(Binding->NetworkAddr);
|
||||
Binding->NetworkAddr = RPCRT4_strdupA(NetworkAddr);
|
||||
RPCRT4_strfree(Binding->Endpoint);
|
||||
|
@ -134,6 +143,10 @@ RPC_STATUS RPCRT4_CompleteBindingA(RpcBinding* Binding, LPSTR NetworkAddr, LPST
|
|||
|
||||
RPC_STATUS RPCRT4_CompleteBindingW(RpcBinding* Binding, LPWSTR NetworkAddr, LPWSTR Endpoint, LPWSTR NetworkOptions)
|
||||
{
|
||||
|
||||
TRACE(" (RpcBinding == ^%p, NetworkAddr == \"%s\", EndPoint == \"%s\", NetworkOptions == \"%s\")\n", Binding,
|
||||
debugstr_w(NetworkAddr), debugstr_w(Endpoint), debugstr_w(NetworkOptions));
|
||||
|
||||
RPCRT4_strfree(Binding->NetworkAddr);
|
||||
Binding->NetworkAddr = RPCRT4_strdupWtoA(NetworkAddr);
|
||||
RPCRT4_strfree(Binding->Endpoint);
|
||||
|
@ -152,6 +165,7 @@ RPC_STATUS RPCRT4_ResolveBinding(RpcBinding* Binding, LPSTR Endpoint)
|
|||
|
||||
RPC_STATUS RPCRT4_SetBindingObject(RpcBinding* Binding, UUID* ObjectUuid)
|
||||
{
|
||||
TRACE(" (*RpcBinding == ^%p, UUID == %s)\n", Binding, debugstr_guid(ObjectUuid));
|
||||
if (ObjectUuid) memcpy(&Binding->ObjectUuid, ObjectUuid, sizeof(UUID));
|
||||
else UuidCreateNil(&Binding->ObjectUuid);
|
||||
return RPC_S_OK;
|
||||
|
@ -160,6 +174,13 @@ RPC_STATUS RPCRT4_SetBindingObject(RpcBinding* Binding, UUID* ObjectUuid)
|
|||
RPC_STATUS RPCRT4_SpawnBinding(RpcBinding** Binding, RpcBinding* OldBinding)
|
||||
{
|
||||
RpcBinding* NewBinding;
|
||||
if (Binding)
|
||||
TRACE(" (*RpcBinding == ^%p, OldBinding == ^%p)\n", *Binding, OldBinding);
|
||||
else {
|
||||
ERR("!RpcBinding?");
|
||||
/* we will crash below anyhow... */
|
||||
*((char *)0) = 0;
|
||||
}
|
||||
|
||||
NewBinding = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(RpcBinding));
|
||||
NewBinding->refs = 1;
|
||||
|
@ -202,6 +223,7 @@ RPC_STATUS RPCRT4_DestroyBinding(RpcBinding* Binding)
|
|||
|
||||
RPC_STATUS RPCRT4_OpenBinding(RpcBinding* Binding)
|
||||
{
|
||||
TRACE(" (Binding == ^%p)\n", Binding);
|
||||
if (!Binding->conn) {
|
||||
if (Binding->server) { /* server */
|
||||
/* protseq=ncalrpc: supposed to use NT LPC ports,
|
||||
|
@ -327,6 +349,7 @@ RPC_STATUS RPCRT4_OpenBinding(RpcBinding* Binding)
|
|||
|
||||
RPC_STATUS RPCRT4_CloseBinding(RpcBinding* Binding)
|
||||
{
|
||||
TRACE(" (Binding == ^%p)\n", Binding);
|
||||
if (Binding->conn) {
|
||||
CancelIo(Binding->conn);
|
||||
CloseHandle(Binding->conn);
|
||||
|
|
|
@ -272,6 +272,7 @@ static DWORD CALLBACK RPCRT4_server_thread(LPVOID the_arg)
|
|||
|
||||
static void RPCRT4_start_listen(void)
|
||||
{
|
||||
TRACE("\n");
|
||||
if (!InterlockedIncrement(&listen_count)) {
|
||||
mgr_event = CreateEventA(NULL, FALSE, FALSE, NULL);
|
||||
server_thread = CreateThread(NULL, 0, RPCRT4_server_thread, NULL, 0, NULL);
|
||||
|
@ -315,6 +316,11 @@ RPC_STATUS WINAPI RpcServerInqBindings( RPC_BINDING_VECTOR** BindingVector )
|
|||
RpcServerProtseq* ps;
|
||||
RpcBinding* bind;
|
||||
|
||||
if (BindingVector)
|
||||
TRACE("(*BindingVector == ^%p)\n", *BindingVector);
|
||||
else
|
||||
ERR("(BindingVector == ^null!!?)\n");
|
||||
|
||||
EnterCriticalSection(&server_cs);
|
||||
/* count bindings */
|
||||
count = 0;
|
||||
|
@ -544,8 +550,21 @@ RPC_STATUS WINAPI RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT
|
|||
|
||||
if (DontWait) return RPC_S_OK;
|
||||
|
||||
/* RpcMgmtWaitServerListen(); */
|
||||
FIXME("can't wait yet\n");
|
||||
return RpcMgmtWaitServerListen();
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* RpcMgmtServerWaitListen (RPCRT4.@)
|
||||
*/
|
||||
RPC_STATUS WINAPI RpcMgmtWaitServerListen( void )
|
||||
{
|
||||
TRACE("\n");
|
||||
|
||||
RPCRT4_start_listen();
|
||||
while (listen_count > -1) {
|
||||
WaitForSingleObject(mgr_event, 1000);
|
||||
}
|
||||
|
||||
return RPC_S_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ init RPCRT4_LibMain
|
|||
@ stub RpcMgmtSetServerStackSize
|
||||
@ stub RpcMgmtStatsVectorFree
|
||||
@ stub RpcMgmtStopServerListening
|
||||
@ stub RpcMgmtWaitServerListen
|
||||
@ stdcall RpcMgmtWaitServerListen() RpcMgmtWaitServerListen
|
||||
@ stub RpcNetworkInqProtseqsA
|
||||
@ stub RpcNetworkInqProtseqsW
|
||||
@ stub RpcNetworkIsProtseqValidA
|
||||
|
|
|
@ -169,6 +169,9 @@ RPCRTAPI RPC_STATUS RPC_ENTRY
|
|||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT DontWait );
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcMgmtWaitServerListen( void );
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcServerRegisterIf( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv );
|
||||
|
||||
|
@ -202,9 +205,6 @@ RPCRTAPI RPC_STATUS RPC_ENTRY
|
|||
LPVOID Arg );
|
||||
#define RpcServerRegisterAuthInfo WINELIB_NAME_AW(RpcServerRegisterAuthInfo)
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT DontWait );
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcStringBindingComposeA( LPSTR ObjUuid, LPSTR Protseq, LPSTR NetworkAddr, LPSTR Endpoint,
|
||||
LPSTR Options, LPSTR* StringBinding );
|
||||
|
|
Loading…
Reference in a new issue