From 54c18f732232e1fd1fea70b329002da994e2cccf Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Fri, 20 Sep 2013 10:13:41 +0200 Subject: [PATCH 4/8] Revert "core: Transparently handle non-blocking sockets on Windows" This reverts commit c327850d9e4479a0572b7baaf8dafd737586e5a1 as the workaround in that commit is no longer needed after the real bug has been fixed. Conflicts: src/pulsecore/core-util.c --- src/pulsecore/core-util.c | 38 ++++---------------------------------- 1 file changed, 4 insertions(+), 34 deletions(-) diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index 62d1130..91ef038 100644 --- a/src/pulsecore/core-util.c +++ b/src/pulsecore/core-util.c @@ -154,8 +154,6 @@ static fd_set nonblocking_fds; #ifdef OS_IS_WIN32 -#include "poll.h" - /* Returns the directory of the current DLL, with '/bin/' removed if it is the last component */ char *pa_win32_get_toplevel(HANDLE handle) { static char *toplevel = NULL; @@ -420,26 +418,13 @@ ssize_t pa_read(int fd, void *buf, size_t count, int *type) { #ifdef OS_IS_WIN32 if (!type || *type == 0) { - int err; ssize_t r; -retry: if ((r = recv(fd, buf, count, 0)) >= 0) return r; - err = WSAGetLastError(); - if (err != WSAENOTSOCK) { - /* transparently handle non-blocking sockets, by waiting - * for readiness */ - if (err == WSAEWOULDBLOCK) { - struct pollfd pfd; - pfd.fd = fd; - pfd.events = POLLIN; - if (pa_poll(&pfd, 1, -1) >= 0) { - goto retry; - } - } - errno = err; + if (WSAGetLastError() != WSAENOTSOCK) { + errno = WSAGetLastError(); return r; } @@ -465,11 +450,7 @@ ssize_t pa_write(int fd, const void *buf, size_t count, int *type) { if (!type || *type == 0) { ssize_t r; -#ifdef OS_IS_WIN32 - int err; -retry: -#endif for (;;) { if ((r = send(fd, buf, count, MSG_NOSIGNAL)) < 0) { @@ -483,19 +464,8 @@ retry: } #ifdef OS_IS_WIN32 - err = WSAGetLastError(); - if (err != WSAENOTSOCK) { - /* transparently handle non-blocking sockets, by waiting - * for readiness */ - if (err == WSAEWOULDBLOCK) { - struct pollfd pfd; - pfd.fd = fd; - pfd.events = POLLOUT; - if (pa_poll(&pfd, 1, -1) >= 0) { - goto retry; - } - } - errno = err; + if (WSAGetLastError() != WSAENOTSOCK) { + errno = WSAGetLastError(); return r; } #else -- 1.8.3.1