rpc_G_PL0

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

 




No need for a repeat of the server stuff; rpc_F_PL0_r1 still applies without incident.

Clearly, we are close to some kind of meaningful result, here.
This patchlevel is capable (using the MSDN DCE Interop example
w/ ncalrpc) of actual inter-process communication (of a sort)
without a crash. The server responds to a packet by calling stubs;
the round-trip does not complete, and the client hangs as a result.

LICENSE: X11

CHANGELOG:

* dlls/rpcrt4: ndr_marshall.c, ndr_midl.c, rpc_binding.c, rpcrt4.spec;
  include: rpcndr.h: Greg Turner <gmturner007@ameritech.net>
- clean up and enhance some traces
- stubs for NdrConvert, NdrConvert2, and NdrServerInitializeNew.

-- 
gmt

"The purpose of government is to rein in the rights of the people"
 --President Bill Clinton, MTV interview, 1993
diff -ur -x CVS -x 'bigdif*' ../wine.test/dlls/rpcrt4/ndr_marshall.c ./dlls/rpcrt4/ndr_marshall.c
--- ../wine.test/dlls/rpcrt4/ndr_marshall.c	2002-10-25 21:17:10.000000000 -0500
+++ ./dlls/rpcrt4/ndr_marshall.c	2002-10-26 03:37:45.000000000 -0500
@@ -106,8 +106,26 @@
 unsigned char *WINAPI NdrConformantStringUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char** ppMemory,
   PFORMAT_STRING pFormat, unsigned char fMustAlloc )
 {
-  FIXME("stub\n");
+  FIXME("(pStubMsg == ^%p, *pMemory == ^%p, pFormat == ^%p, fMustAlloc == %u): stub.\n",
+    pStubMsg, *ppMemory, pFormat, fMustAlloc);
   return NULL;
 }
 
+/***********************************************************************
+ *           NdrConvert [RPCRT4.@]
+ */
+void WINAPI NdrConvert( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat )
+{
+  FIXME("(pStubMsg == ^%p, pFormat == ^%p): stub.\n", pStubMsg, pFormat);
+}
+
+/***********************************************************************
+ *           NdrConvert2 [RPCRT4.@]
+ */
+void WINAPI NdrConvert2( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat, long NumberParams )
+{
+  FIXME("(pStubMsg == ^%p, pFormat == ^%p, NumberParams == %ld): stub.\n", pStubMsg, pFormat, NumberParams);
+}
+
+
 #undef BUFFER_PARANOIA
diff -ur -x CVS -x 'bigdif*' ../wine.test/dlls/rpcrt4/ndr_midl.c ./dlls/rpcrt4/ndr_midl.c
--- ../wine.test/dlls/rpcrt4/ndr_midl.c	2002-10-25 21:17:10.000000000 -0500
+++ ./dlls/rpcrt4/ndr_midl.c	2002-10-26 03:18:54.000000000 -0500
@@ -193,6 +193,16 @@
 }
 
 /***********************************************************************
+ *             NdrServerInitializeNew [RPCRT4.@]
+ */
+unsigned char* WINAPI NdrServerInitializeNew( PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg,
+                                              PMIDL_STUB_DESC pStubDesc )
+{
+  FIXME("(pRpcMsg == ^%p, pStubMsg == ^%p, pStubDesc == ^%p): stub.\n", pRpcMsg, pStubMsg, pStubDesc);
+  return NULL;
+}
+
+/***********************************************************************
  *           NdrGetBuffer [RPCRT4.@]
  */
 unsigned char *WINAPI NdrGetBuffer(MIDL_STUB_MESSAGE *stubmsg, unsigned long buflen, RPC_BINDING_HANDLE handle)
diff -ur -x CVS -x 'bigdif*' ../wine.test/dlls/rpcrt4/rpc_binding.c ./dlls/rpcrt4/rpc_binding.c
--- ../wine.test/dlls/rpcrt4/rpc_binding.c	2002-10-23 23:17:52.000000000 -0500
+++ ./dlls/rpcrt4/rpc_binding.c	2002-10-26 03:08:22.000000000 -0500
@@ -231,7 +231,7 @@
 
 RPC_STATUS RPCRT4_OpenBinding(RpcBinding* Binding)
 {
-  TRACE("  (Binding == ^%p)\n", Binding);
+  TRACE("(Binding == ^%p)\n", Binding);
   if (!Binding->conn) {
     if (Binding->server) { /* server */
       /* protseq=ncalrpc: supposed to use NT LPC ports,
diff -ur -x CVS -x 'bigdif*' ../wine.test/dlls/rpcrt4/rpc_server.c ./dlls/rpcrt4/rpc_server.c
--- ../wine.test/dlls/rpcrt4/rpc_server.c	2002-10-23 23:17:52.000000000 -0500
+++ ./dlls/rpcrt4/rpc_server.c	2002-10-26 02:07:13.000000000 -0500
@@ -402,7 +402,7 @@
 {
   RpcServerProtseq* ps;
 
-  TRACE("(%s,%u,%s,%p,{%u,%lu,%lu}): stub\n", debugstr_a( Protseq ), MaxCalls,
+  TRACE("(%s,%u,%s,%p,{%u,%lu,%lu})\n", debugstr_a( Protseq ), MaxCalls,
        debugstr_a( Endpoint ), SecurityDescriptor,
        lpPolicy->Length, lpPolicy->EndpointFlags, lpPolicy->NICFlags );
 
@@ -422,7 +422,7 @@
 {
   RpcServerProtseq* ps;
 
-  TRACE("(%s,%u,%s,%p,{%u,%lu,%lu}): stub\n", debugstr_w( Protseq ), MaxCalls,
+  TRACE("(%s,%u,%s,%p,{%u,%lu,%lu})\n", debugstr_w( Protseq ), MaxCalls,
        debugstr_w( Endpoint ), SecurityDescriptor,
        lpPolicy->Length, lpPolicy->EndpointFlags, lpPolicy->NICFlags );
 
diff -ur -x CVS -x 'bigdif*' ../wine.test/dlls/rpcrt4/rpcrt4.spec ./dlls/rpcrt4/rpcrt4.spec
--- ../wine.test/dlls/rpcrt4/rpcrt4.spec	2002-10-26 03:46:58.000000000 -0500
+++ ./dlls/rpcrt4/rpcrt4.spec	2002-10-26 03:45:08.000000000 -0500
@@ -209,8 +209,8 @@
 @ stdcall NdrClientInitializeNew(ptr ptr ptr long) NdrClientInitializeNew
 @ stub NdrContextHandleInitialize
 @ stub NdrContextHandleSize
-@ stub NdrConvert
-@ stub NdrConvert2
+@ stdcall NdrConvert(ptr ptr) NdrConvert
+@ stdcall NdrConvert2(ptr ptr long) NdrConvert2
 @ stub NdrCorrelationFree
 @ stub NdrCorrelationInitialize
 @ stub NdrCorrelationPass
@@ -349,7 +349,7 @@
 @ stub NdrServerContextUnmarshall
 @ stub NdrServerInitialize
 @ stub NdrServerInitializeMarshall
-@ stub NdrServerInitializeNew
+@ stdcall NdrServerInitializeNew(ptr ptr ptr) NdrServerInitializeNew
 @ stub NdrServerInitializeUnmarshall
 @ stub NdrServerMarshall
 @ stub NdrServerUnmarshall
diff -ur -x CVS -x 'bigdif*' ../wine.test/include/rpcndr.h ./include/rpcndr.h
--- ../wine.test/include/rpcndr.h	2002-10-25 21:17:10.000000000 -0500
+++ ./include/rpcndr.h	2002-10-26 03:14:50.000000000 -0500
@@ -309,6 +309,8 @@
   NdrClientInitializeNew( PRPC_MESSAGE pRpcMessage, PMIDL_STUB_MESSAGE pStubMsg, 
                           PMIDL_STUB_DESC pStubDesc, unsigned int ProcNum );
 RPCRTAPI unsigned char* RPC_ENTRY
+  NdrServerInitializeNew( PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDesc );  
+RPCRTAPI unsigned char* RPC_ENTRY
   NdrGetBuffer( MIDL_STUB_MESSAGE *stubmsg, unsigned long buflen, RPC_BINDING_HANDLE handle );
 RPCRTAPI void RPC_ENTRY
   NdrFreeBuffer( MIDL_STUB_MESSAGE *pStubMsg );

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

  Powered by Linux