Module: wine Branch: master Commit: 63504e9e80acb35666f8689526c67dd99c4fb3ba URL: http://source.winehq.org/git/wine.git/?a=commit;h=63504e9e80acb35666f8689526...
Author: Kai Blin kai.blin@gmail.com Date: Mon Mar 24 13:12:49 2008 +0100
janitorial: Use poll() instead of select().
---
dlls/netapi32/nbt.c | 18 +++++++++++++----- dlls/wininet/internet.c | 17 ++++++++++------- dlls/wininet/netconnection.c | 17 ++++++++++------- 3 files changed, 33 insertions(+), 19 deletions(-)
diff --git a/dlls/netapi32/nbt.c b/dlls/netapi32/nbt.c index 1186572..96309e4 100644 --- a/dlls/netapi32/nbt.c +++ b/dlls/netapi32/nbt.c @@ -67,6 +67,15 @@
#include "config.h" #include <stdarg.h> +#ifdef HAVE_POLL_H +#include <poll.h> +#endif +#ifdef HAVE_SYS_POLL_H +# include <sys/poll.h> +#endif +#ifdef HAVE_SYS_TIME_H +# include <sys/time.h> +#endif
#include "winsock2.h" #include "windef.h" @@ -302,13 +311,12 @@ static UCHAR NetBTWaitForNameResponse(const NetBTAdapter *adapter, SOCKET fd, while (!found && ret == NRC_GOODRET && (now = GetTickCount()) < waitUntil) { DWORD msToWait = waitUntil - now; - struct fd_set fds; - struct timeval timeout = { msToWait / 1000, msToWait % 1000 }; + struct pollfd pfd; int r;
- FD_ZERO(&fds); - FD_SET(fd, &fds); - r = select(fd + 1, &fds, NULL, NULL, &timeout); + pfd.fd = fd; + pfd.events = POLLIN; + r = poll(&pfd, 1, msToWait); if (r < 0) ret = NRC_SYSTEM; else if (r == 1) diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c index a8ae808..be2fa9c 100644 --- a/dlls/wininet/internet.c +++ b/dlls/wininet/internet.c @@ -38,6 +38,12 @@ #ifdef HAVE_SYS_SOCKET_H # include <sys/socket.h> #endif +#ifdef HAVE_POLL_H +#include <poll.h> +#endif +#ifdef HAVE_SYS_POLL_H +# include <sys/poll.h> +#endif #ifdef HAVE_SYS_TIME_H # include <sys/time.h> #endif @@ -3049,22 +3055,19 @@ LPSTR INTERNET_GetResponseBuffer(void)
LPSTR INTERNET_GetNextLine(INT nSocket, LPDWORD dwLen) { - struct timeval tv; - fd_set infd; + struct pollfd pfd; BOOL bSuccess = FALSE; INT nRecv = 0; LPSTR lpszBuffer = INTERNET_GetResponseBuffer();
TRACE("\n");
- FD_ZERO(&infd); - FD_SET(nSocket, &infd); - tv.tv_sec=RESPONSE_TIMEOUT; - tv.tv_usec=0; + pfd.fd = nSocket; + pfd.events = POLLIN;
while (nRecv < MAX_REPLY_LEN) { - if (select(nSocket+1,&infd,NULL,NULL,&tv) > 0) + if (poll(&pfd,1, RESPONSE_TIMEOUT * 1000) > 0) { if (recv(nSocket, &lpszBuffer[nRecv], 1, 0) <= 0) { diff --git a/dlls/wininet/netconnection.c b/dlls/wininet/netconnection.c index 07fb3de..63f3f8e 100644 --- a/dlls/wininet/netconnection.c +++ b/dlls/wininet/netconnection.c @@ -23,6 +23,12 @@ #include "config.h" #include "wine/port.h"
+#ifdef HAVE_POLL_H +#include <poll.h> +#endif +#ifdef HAVE_SYS_POLL_H +# include <sys/poll.h> +#endif #ifdef HAVE_SYS_TIME_H # include <sys/time.h> #endif @@ -610,19 +616,16 @@ BOOL NETCON_getNextLine(WININET_NETCONNECTION *connection, LPSTR lpszBuffer, LPD
if (!connection->useSSL) { - struct timeval tv; - fd_set infd; + struct pollfd pfd; BOOL bSuccess = FALSE; DWORD nRecv = 0;
- FD_ZERO(&infd); - FD_SET(connection->socketFD, &infd); - tv.tv_sec=RESPONSE_TIMEOUT; - tv.tv_usec=0; + pfd.fd = connection->socketFD; + pfd.events = POLLIN;
while (nRecv < *dwBuffer) { - if (select(connection->socketFD+1,&infd,NULL,NULL,&tv) > 0) + if (poll(&pfd,1, RESPONSE_TIMEOUT * 1000) > 0) { if (recv(connection->socketFD, &lpszBuffer[nRecv], 1, 0) <= 0) {