From 5b26cfe14395ce09461de9423bd745570702fd9e Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Mon, 7 Feb 2011 17:19:03 +0100 Subject: [PATCH] s3: Eliminate sys_select from do_smb_resolve() -- untested --- source3/client/dnsbrowse.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/source3/client/dnsbrowse.c b/source3/client/dnsbrowse.c index c62f27beeaa..c252b253438 100644 --- a/source3/client/dnsbrowse.c +++ b/source3/client/dnsbrowse.c @@ -61,7 +61,6 @@ static void do_smb_resolve(struct mdns_smbsrv_result *browsesrv) int mdnsfd; int fdsetsz; int ret; - fd_set *fdset = NULL; struct timeval tv; DNSServiceErrorType err; @@ -78,24 +77,14 @@ static void do_smb_resolve(struct mdns_smbsrv_result *browsesrv) mdnsfd = DNSServiceRefSockFD(mdns_conn_sdref); for (;;) { - if (fdset != NULL) { - TALLOC_FREE(fdset); - } - - fdsetsz = howmany(mdnsfd + 1, NFDBITS) * sizeof(fd_mask); - fdset = TALLOC_ZERO(ctx, fdsetsz); - FD_SET(mdnsfd, fdset); - - tv.tv_sec = 1; - tv.tv_usec = 0; + int revents; - /* Wait until response received from mDNS daemon */ - ret = sys_select(mdnsfd + 1, fdset, NULL, NULL, &tv); + ret = poll_one_fd(mdnsfd, POLLIN|POLLHUP, 1000, &revents); if (ret <= 0 && errno != EINTR) { break; } - if (FD_ISSET(mdnsfd, fdset)) { + if (revents & (POLLIN|POLLHUP|POLLERR)) { /* Invoke callback function */ DNSServiceProcessResult(mdns_conn_sdref); break; -- 2.34.1