RPC Merge D_PL1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




A few small things.

Changelog: 

* dlls/rpcrt4: rpcrt4.spec, ndr_stubless.c, rpc_binding.c, rpc_server.c;
  include/rpcdce.h: Greg Turner <gmturner007@ameritech.net>
- (try to) implement RpcMgmtWaitServerListen
- remove duplicate RpcServerListen declaration in rpcdce.h
- some TRACEs

LICENSE: X11

-- 
gmt

"It has been well said that really up-to-date liberals
do not care what people do, as long as it is compulsory."

-George F. Will
--- dlls/rpcrt4/rpcrt4.spec.D_PL0	2002-10-13 14:45:22.000000000 -0500
+++ dlls/rpcrt4/rpcrt4.spec	2002-10-13 14:46:05.000000000 -0500
@@ -89,7 +89,7 @@
 @ stub RpcMgmtSetServerStackSize
 @ stub RpcMgmtStatsVectorFree
 @ stub RpcMgmtStopServerListening
-@ stub RpcMgmtWaitServerListen
+@ stdcall RpcMgmtWaitServerListen() RpcMgmtWaitServerListen
 @ stub RpcNetworkInqProtseqsA
 @ stub RpcNetworkInqProtseqsW
 @ stub RpcNetworkIsProtseqValidA
Index: dlls/rpcrt4/ndr_stubless.c
===================================================================
RCS file: /home/wine/wine/dlls/rpcrt4/ndr_stubless.c,v
retrieving revision 1.1
diff -u -r1.1 ndr_stubless.c
--- dlls/rpcrt4/ndr_stubless.c	10 Oct 2002 19:23:33 -0000	1.1
+++ dlls/rpcrt4/ndr_stubless.c	13 Oct 2002 19:53:29 -0000
@@ -41,7 +41,20 @@
 
 LONG_PTR RPCRT4_NdrClientCall2(PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pFormat, va_list args)
 {
-  FIXME("(%p,%p,...)\n", pStubDesc, pFormat);
+
+  FIXME("(pStubDec == ^%p,pFormat = \"%s\",...): stub\n", pStubDesc, pFormat);
+
+  PRPC_CLIENT_INTERFACE rpc_cli_if = (PRPC_CLIENT_INTERFACE) pStubDesc;
+ 
+  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;
 }
 
Index: dlls/rpcrt4/rpc_binding.c
===================================================================
RCS file: /home/wine/wine/dlls/rpcrt4/rpc_binding.c,v
retrieving revision 1.1
diff -u -r1.1 rpc_binding.c
--- dlls/rpcrt4/rpc_binding.c	7 Oct 2002 21:49:49 -0000	1.1
+++ dlls/rpcrt4/rpc_binding.c	13 Oct 2002 19:53:29 -0000
@@ -110,6 +110,12 @@
 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_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_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_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_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_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_CloseBinding(RpcBinding* Binding)
 {
+  TRACE("  (Binding == ^%p)\n", Binding);
   if (Binding->conn) {
     CancelIo(Binding->conn);
     CloseHandle(Binding->conn);
Index: dlls/rpcrt4/rpc_server.c
===================================================================
RCS file: /home/wine/wine/dlls/rpcrt4/rpc_server.c,v
retrieving revision 1.1
diff -u -r1.1 rpc_server.c
--- dlls/rpcrt4/rpc_server.c	11 Oct 2002 17:52:37 -0000	1.1
+++ dlls/rpcrt4/rpc_server.c	13 Oct 2002 19:53:30 -0000
@@ -272,6 +272,7 @@
 
 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 @@
   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 @@
 
   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;
 }
 
Index: include/rpcdce.h
===================================================================
RCS file: /home/wine/wine/include/rpcdce.h,v
retrieving revision 1.9
diff -u -r1.9 rpcdce.h
--- include/rpcdce.h	9 Aug 2002 01:11:39 -0000	1.9
+++ include/rpcdce.h	13 Oct 2002 19:53:30 -0000
@@ -170,6 +170,9 @@
   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 );
 
 RPCRTAPI RPC_STATUS RPC_ENTRY
@@ -201,9 +204,6 @@
   RpcServerRegisterAuthInfoW( LPWSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
                               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,

[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux