- (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)
|
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;
|
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)
|
RPC_STATUS RPCRT4_CreateBindingW(RpcBinding** Binding, BOOL server, LPWSTR Protseq)
|
||||||
{
|
{
|
||||||
RpcBinding* NewBinding;
|
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 = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(RpcBinding));
|
||||||
NewBinding->refs = 1;
|
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)
|
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);
|
RPCRT4_strfree(Binding->NetworkAddr);
|
||||||
Binding->NetworkAddr = RPCRT4_strdupA(NetworkAddr);
|
Binding->NetworkAddr = RPCRT4_strdupA(NetworkAddr);
|
||||||
RPCRT4_strfree(Binding->Endpoint);
|
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)
|
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);
|
RPCRT4_strfree(Binding->NetworkAddr);
|
||||||
Binding->NetworkAddr = RPCRT4_strdupWtoA(NetworkAddr);
|
Binding->NetworkAddr = RPCRT4_strdupWtoA(NetworkAddr);
|
||||||
RPCRT4_strfree(Binding->Endpoint);
|
RPCRT4_strfree(Binding->Endpoint);
|
||||||
@ -152,6 +165,7 @@ RPC_STATUS RPCRT4_ResolveBinding(RpcBinding* Binding, LPSTR Endpoint)
|
|||||||
|
|
||||||
RPC_STATUS RPCRT4_SetBindingObject(RpcBinding* Binding, UUID* ObjectUuid)
|
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));
|
if (ObjectUuid) memcpy(&Binding->ObjectUuid, ObjectUuid, sizeof(UUID));
|
||||||
else UuidCreateNil(&Binding->ObjectUuid);
|
else UuidCreateNil(&Binding->ObjectUuid);
|
||||||
return RPC_S_OK;
|
return RPC_S_OK;
|
||||||
@ -160,6 +174,13 @@ RPC_STATUS RPCRT4_SetBindingObject(RpcBinding* Binding, UUID* ObjectUuid)
|
|||||||
RPC_STATUS RPCRT4_SpawnBinding(RpcBinding** Binding, RpcBinding* OldBinding)
|
RPC_STATUS RPCRT4_SpawnBinding(RpcBinding** Binding, RpcBinding* OldBinding)
|
||||||
{
|
{
|
||||||
RpcBinding* NewBinding;
|
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 = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(RpcBinding));
|
||||||
NewBinding->refs = 1;
|
NewBinding->refs = 1;
|
||||||
@ -202,6 +223,7 @@ RPC_STATUS RPCRT4_DestroyBinding(RpcBinding* Binding)
|
|||||||
|
|
||||||
RPC_STATUS RPCRT4_OpenBinding(RpcBinding* Binding)
|
RPC_STATUS RPCRT4_OpenBinding(RpcBinding* Binding)
|
||||||
{
|
{
|
||||||
|
TRACE(" (Binding == ^%p)\n", Binding);
|
||||||
if (!Binding->conn) {
|
if (!Binding->conn) {
|
||||||
if (Binding->server) { /* server */
|
if (Binding->server) { /* server */
|
||||||
/* protseq=ncalrpc: supposed to use NT LPC ports,
|
/* protseq=ncalrpc: supposed to use NT LPC ports,
|
||||||
@ -327,6 +349,7 @@ RPC_STATUS RPCRT4_OpenBinding(RpcBinding* Binding)
|
|||||||
|
|
||||||
RPC_STATUS RPCRT4_CloseBinding(RpcBinding* Binding)
|
RPC_STATUS RPCRT4_CloseBinding(RpcBinding* Binding)
|
||||||
{
|
{
|
||||||
|
TRACE(" (Binding == ^%p)\n", Binding);
|
||||||
if (Binding->conn) {
|
if (Binding->conn) {
|
||||||
CancelIo(Binding->conn);
|
CancelIo(Binding->conn);
|
||||||
CloseHandle(Binding->conn);
|
CloseHandle(Binding->conn);
|
||||||
|
@ -272,6 +272,7 @@ static DWORD CALLBACK RPCRT4_server_thread(LPVOID the_arg)
|
|||||||
|
|
||||||
static void RPCRT4_start_listen(void)
|
static void RPCRT4_start_listen(void)
|
||||||
{
|
{
|
||||||
|
TRACE("\n");
|
||||||
if (!InterlockedIncrement(&listen_count)) {
|
if (!InterlockedIncrement(&listen_count)) {
|
||||||
mgr_event = CreateEventA(NULL, FALSE, FALSE, NULL);
|
mgr_event = CreateEventA(NULL, FALSE, FALSE, NULL);
|
||||||
server_thread = CreateThread(NULL, 0, RPCRT4_server_thread, NULL, 0, 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;
|
RpcServerProtseq* ps;
|
||||||
RpcBinding* bind;
|
RpcBinding* bind;
|
||||||
|
|
||||||
|
if (BindingVector)
|
||||||
|
TRACE("(*BindingVector == ^%p)\n", *BindingVector);
|
||||||
|
else
|
||||||
|
ERR("(BindingVector == ^null!!?)\n");
|
||||||
|
|
||||||
EnterCriticalSection(&server_cs);
|
EnterCriticalSection(&server_cs);
|
||||||
/* count bindings */
|
/* count bindings */
|
||||||
count = 0;
|
count = 0;
|
||||||
@ -544,8 +550,21 @@ RPC_STATUS WINAPI RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT
|
|||||||
|
|
||||||
if (DontWait) return RPC_S_OK;
|
if (DontWait) return RPC_S_OK;
|
||||||
|
|
||||||
/* RpcMgmtWaitServerListen(); */
|
return RpcMgmtWaitServerListen();
|
||||||
FIXME("can't wait yet\n");
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* RpcMgmtServerWaitListen (RPCRT4.@)
|
||||||
|
*/
|
||||||
|
RPC_STATUS WINAPI RpcMgmtWaitServerListen( void )
|
||||||
|
{
|
||||||
|
TRACE("\n");
|
||||||
|
|
||||||
|
RPCRT4_start_listen();
|
||||||
|
while (listen_count > -1) {
|
||||||
|
WaitForSingleObject(mgr_event, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
return RPC_S_OK;
|
return RPC_S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ init RPCRT4_LibMain
|
|||||||
@ stub RpcMgmtSetServerStackSize
|
@ stub RpcMgmtSetServerStackSize
|
||||||
@ stub RpcMgmtStatsVectorFree
|
@ stub RpcMgmtStatsVectorFree
|
||||||
@ stub RpcMgmtStopServerListening
|
@ stub RpcMgmtStopServerListening
|
||||||
@ stub RpcMgmtWaitServerListen
|
@ stdcall RpcMgmtWaitServerListen() RpcMgmtWaitServerListen
|
||||||
@ stub RpcNetworkInqProtseqsA
|
@ stub RpcNetworkInqProtseqsA
|
||||||
@ stub RpcNetworkInqProtseqsW
|
@ stub RpcNetworkInqProtseqsW
|
||||||
@ stub RpcNetworkIsProtseqValidA
|
@ stub RpcNetworkIsProtseqValidA
|
||||||
|
@ -169,6 +169,9 @@ RPCRTAPI RPC_STATUS RPC_ENTRY
|
|||||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||||
RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT DontWait );
|
RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT DontWait );
|
||||||
|
|
||||||
|
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||||
|
RpcMgmtWaitServerListen( void );
|
||||||
|
|
||||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||||
RpcServerRegisterIf( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv );
|
RpcServerRegisterIf( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv );
|
||||||
|
|
||||||
@ -202,9 +205,6 @@ RPCRTAPI RPC_STATUS RPC_ENTRY
|
|||||||
LPVOID Arg );
|
LPVOID Arg );
|
||||||
#define RpcServerRegisterAuthInfo WINELIB_NAME_AW(RpcServerRegisterAuthInfo)
|
#define RpcServerRegisterAuthInfo WINELIB_NAME_AW(RpcServerRegisterAuthInfo)
|
||||||
|
|
||||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
|
||||||
RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT DontWait );
|
|
||||||
|
|
||||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||||
RpcStringBindingComposeA( LPSTR ObjUuid, LPSTR Protseq, LPSTR NetworkAddr, LPSTR Endpoint,
|
RpcStringBindingComposeA( LPSTR ObjUuid, LPSTR Protseq, LPSTR NetworkAddr, LPSTR Endpoint,
|
||||||
LPSTR Options, LPSTR* StringBinding );
|
LPSTR Options, LPSTR* StringBinding );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user