Author: fireball
Date: Fri Jan 11 18:28:28 2008
New Revision: 31721
URL:
http://svn.reactos.org/svn/reactos?rev=31721&view=rev
Log:
- Merge leftovers.
Modified:
trunk/reactos/dll/win32/rpcrt4/rpc_server.c
trunk/reactos/dll/win32/rpcrt4/rpc_transport.c
trunk/reactos/dll/win32/rpcrt4/rpcrt4_ros.diff
Modified: trunk/reactos/dll/win32/rpcrt4/rpc_server.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rpcrt4/rpc_serve…
==============================================================================
--- trunk/reactos/dll/win32/rpcrt4/rpc_server.c (original)
+++ trunk/reactos/dll/win32/rpcrt4/rpc_server.c Fri Jan 11 18:28:28 2008
@@ -1019,7 +1019,7 @@
*/
RPC_STATUS WINAPI RpcMgmtWaitServerListen( void )
{
- TRACE("()\n");
+ RpcServerProtseq *cps;
EnterCriticalSection(&listen_cs);
@@ -1027,10 +1027,18 @@
LeaveCriticalSection(&listen_cs);
return RPC_S_NOT_LISTENING;
}
-
+
+ do
+ {
+ LeaveCriticalSection(&listen_cs);
+
+ LIST_FOR_EACH_ENTRY(cps, &protseqs, RpcServerProtseq, entry)
+ WaitForSingleObject(cps->server_ready_event, INFINITE);
+
+ EnterCriticalSection(&listen_cs);
+ } while (!std_listen);
+
LeaveCriticalSection(&listen_cs);
-
- FIXME("not waiting for server calls to finish\n");
return RPC_S_OK;
}
Modified: trunk/reactos/dll/win32/rpcrt4/rpc_transport.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rpcrt4/rpc_trans…
==============================================================================
--- trunk/reactos/dll/win32/rpcrt4/rpc_transport.c (original)
+++ trunk/reactos/dll/win32/rpcrt4/rpc_transport.c Fri Jan 11 18:28:28 2008
@@ -375,7 +375,7 @@
break;
ret = GetOverlappedResult(npc->pipe, &npc->ovl[0], &bytes_read, TRUE);
- if (!ret /*&& GetLastError() != ERROR_MORE_DATA*/)
+ if (!ret && GetLastError() != ERROR_MORE_DATA)
break;
bytes_left -= bytes_read;
@@ -400,7 +400,7 @@
break;
ret = GetOverlappedResult(npc->pipe, &npc->ovl[1], &bytes_written,
TRUE);
- if (!ret /*&& GetLastError() != ERROR_MORE_DATA*/)
+ if (!ret && GetLastError() != ERROR_MORE_DATA)
break;
bytes_left -= bytes_written;
Modified: trunk/reactos/dll/win32/rpcrt4/rpcrt4_ros.diff
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rpcrt4/rpcrt4_ro…
==============================================================================
--- trunk/reactos/dll/win32/rpcrt4/rpcrt4_ros.diff (original)
+++ trunk/reactos/dll/win32/rpcrt4/rpcrt4_ros.diff Fri Jan 11 18:28:28 2008
@@ -1,5 +1,40 @@
---- H:\Working Copies\wine\dlls\rpcrt4\rpc_transport.c Sun Jan 06 19:27:38 2008
-+++ H:\Working Copies\ReactOS\trunk\reactos\dll\win32\rpcrt4\rpc_transport.c Mon Jan 07
16:02:15 2008
+--- rpc_server.c Tue Jan 01 13:09:34 2008
++++ rpc_server.c Fri Jan 11 15:58:57 2008
+@@ -1017,22 +1017,30 @@
+ /***********************************************************************
+ * RpcMgmtServerWaitListen (RPCRT4.@)
+ */
+ RPC_STATUS WINAPI RpcMgmtWaitServerListen( void )
+ {
+- TRACE("()\n");
++ RpcServerProtseq *cps;
+
+ EnterCriticalSection(&listen_cs);
+
+ if (!std_listen) {
+ LeaveCriticalSection(&listen_cs);
+ return RPC_S_NOT_LISTENING;
+ }
+
++ do
++ {
+ LeaveCriticalSection(&listen_cs);
+
+- FIXME("not waiting for server calls to finish\n");
++ LIST_FOR_EACH_ENTRY(cps, &protseqs, RpcServerProtseq, entry)
++ WaitForSingleObject(cps->server_ready_event, INFINITE);
++
++ EnterCriticalSection(&listen_cs);
++ } while (!std_listen);
++
++ LeaveCriticalSection(&listen_cs);
+
+ return RPC_S_OK;
+ }
+
+ /***********************************************************************
+--- rpc_transport.c Sun Jan 06 19:27:38 2008
++++ rpc_transport.c Fri Jan 11 15:59:32 2008
@@ -54,10 +54,13 @@
#endif
#ifdef HAVE_SYS_POLL_H
@@ -127,7 +162,7 @@
break;
+
+ ret = GetOverlappedResult(npc->pipe, &npc->ovl[0], &bytes_read,
TRUE);
-+ if (!ret /*&& GetLastError() != ERROR_MORE_DATA*/)
++ if (!ret && GetLastError() != ERROR_MORE_DATA)
+ break;
+
bytes_left -= bytes_read;
@@ -148,7 +183,7 @@
break;
+
+ ret = GetOverlappedResult(npc->pipe, &npc->ovl[1], &bytes_written,
TRUE);
-+ if (!ret /*&& GetLastError() != ERROR_MORE_DATA*/)
++ if (!ret && GetLastError() != ERROR_MORE_DATA)
+ break;
+
bytes_left -= bytes_written;