Author: gedmurphy Date: Tue Jul 24 12:20:12 2007 New Revision: 27794
URL: http://svn.reactos.org/svn/reactos?rev=27794&view=rev Log: add a diff so rpcrt4 can be synched with Wine
Added: trunk/reactos/dll/win32/rpcrt4_new/rpcrt4_ros.diff
Added: trunk/reactos/dll/win32/rpcrt4_new/rpcrt4_ros.diff URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rpcrt4_new/rpcrt4... ============================================================================== --- trunk/reactos/dll/win32/rpcrt4_new/rpcrt4_ros.diff (added) +++ trunk/reactos/dll/win32/rpcrt4_new/rpcrt4_ros.diff Tue Jul 24 12:20:12 2007 @@ -1,0 +1,101 @@ +Index: rpc_transport.c +=================================================================== +--- rpc_transport.c (revision 27793) ++++ rpc_transport.c (working copy) +@@ -56,9 +56,6 @@ + #include <sys/poll.h> + #endif + +-#include <winsock2.h> +-#include <ws2tcpip.h> +- + #include "windef.h" + #include "winbase.h" + #include "winnls.h" +@@ -76,8 +73,6 @@ + #include "rpc_server.h" + #include "epm_towers.h" + +-#include "unix_func.h" +- + #ifndef SOL_TCP + # define SOL_TCP IPPROTO_TCP + #endif +@@ -781,7 +776,7 @@ + + /* RPC depends on having minimal latency so disable the Nagle algorithm */ + val = 1; +- setsockopt(sock, SOL_TCP, TCP_NODELAY, (char *)&val, sizeof(val)); ++ setsockopt(sock, SOL_TCP, TCP_NODELAY, &val, sizeof(val)); + + tcpc->sock = sock; + +@@ -804,7 +799,6 @@ + struct addrinfo *ai_cur; + struct addrinfo hints; + RpcConnection *first_connection = NULL; +- u_long blocking; + + TRACE("(%p, %s)\n", protseq, endpoint); + +@@ -855,7 +849,7 @@ + { + WARN("bind failed: %s\n", strerror(errno)); + close(sock); +- if (errno == WSAEADDRINUSE) ++ if (errno == EADDRINUSE) + status = RPC_S_DUPLICATE_ENDPOINT; + else + status = RPC_S_CANT_CREATE_ENDPOINT; +@@ -884,8 +878,7 @@ + * race-condition (poll() says it is readable, connection drops, + * and accept() blocks until the next connection comes...) + */ +- blocking = 1; +- ret = ioctlsocket(sock, FIONBIO, &blocking); ++ ret = fcntl(sock, F_SETFL, O_NONBLOCK); + if (ret < 0) + { + WARN("couldn't make socket non-blocking, error %d\n", ret); +@@ -928,7 +921,6 @@ + int ret; + struct sockaddr_in address; + socklen_t addrsize; +- u_long blocking; + RpcConnection_tcp *server = (RpcConnection_tcp*) old_conn; + RpcConnection_tcp *client = (RpcConnection_tcp*) new_conn; + +@@ -940,8 +932,7 @@ + return RPC_S_OUT_OF_RESOURCES; + } + /* reset to blocking behaviour */ +- blocking = 0; +- ret = ioctlsocket(ret, FIONBIO, &blocking); ++ fcntl(ret, F_SETFL, 0); + client->sock = ret; + TRACE("Accepted a new TCP connection\n"); + return RPC_S_OK; +@@ -1125,12 +1116,10 @@ + if (ps) + { + int fds[2]; +- u_long blocking; + if (!socketpair(PF_UNIX, SOCK_DGRAM, 0, fds)) + { +- blocking = 1; +- ioctlsocket(fds[0], FIONBIO, &blocking); +- ioctlsocket(fds[1], FIONBIO, &blocking); ++ fcntl(fds[0], F_SETFL, O_NONBLOCK); ++ fcntl(fds[1], F_SETFL, O_NONBLOCK); + ps->mgr_event_rcv = fds[0]; + ps->mgr_event_snd = fds[1]; + } +@@ -1211,7 +1200,7 @@ + + if (!poll_info) + return -1; +- ++ + ret = poll(poll_info, count, -1); + if (ret < 0) + {