From: Ronnie Sahlberg Date: Sun, 28 Aug 2011 09:48:01 +0000 (+1000) Subject: WIN32: win32 does not have poll() X-Git-Tag: upstream/1.9.6^2~326^2~5 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=0ad9a1f134cd85fd69dc9c6939379e3e891d4385;p=deb_libnfs.git WIN32: win32 does not have poll() add trivial replacement function --- diff --git a/lib/libnfs.c b/lib/libnfs.c index 5fd91ea..8a0adba 100644 --- a/lib/libnfs.c +++ b/lib/libnfs.c @@ -3081,3 +3081,35 @@ const char *nfs_get_server(struct nfs_context *nfs) { const char *nfs_get_export(struct nfs_context *nfs) { return nfs->export; } + + +#if defined(WIN32) +int poll(struct pollfd *fds, int nfsd, int timeout) +{ + fd_set rfds, wfds, efds; + int ret; + + FD_ZERO(&rfds); + FD_ZERO(&wfds); + FD_ZERO(&efds); + if (fds->events & POLLIN) { + FD_SET(fds->fd, &rfds); + } + if (fds->events & POLLOUT) { + FD_SET(fds->fd, &wfds); + } + FD_SET(fds->fd, &efds); + select(fds->fd + 1, &rfds, &wfds, &efds, NULL); + fds->revents = 0; + if (FD_ISSET(fds->fd, &rfds)) { + fds->revents |= POLLIN; + } + if (FD_ISSET(fds->fd, &wfds)) { + fds->revents |= POLLOUT; + } + if (FD_ISSET(fds->fd, &efds)) { + fds->revents |= POLLHUP; + } +} +#endif +