From e6f820835874e6bbf103768665952b7884cd8452 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Tue, 8 Feb 2011 17:56:10 +0100 Subject: s3: Eliminiate sys_select_intr from client.c --- source3/client/client.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'source3/client') diff --git a/source3/client/client.c b/source3/client/client.c index 3e48b01079..1ede29a0e6 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -29,6 +29,7 @@ #include "system/readline.h" #include "../libcli/smbreadline/smbreadline.h" #include "../libcli/security/security.h" +#include "system/select.h" #ifndef REGISTER #define REGISTER 0 @@ -4735,11 +4736,10 @@ static bool finished; static void readline_callback(void) { - fd_set fds; - struct timeval timeout; static time_t last_t; struct timespec now; time_t t; + int ret, revents; clock_gettime_mono(&now); t = now.tv_sec; @@ -4754,18 +4754,14 @@ static void readline_callback(void) if (cli->fd == -1) return; - FD_ZERO(&fds); - FD_SET(cli->fd,&fds); - - timeout.tv_sec = 0; - timeout.tv_usec = 0; - sys_select_intr(cli->fd+1,&fds,NULL,NULL,&timeout); - /* We deliberately use receive_smb_raw instead of client_receive_smb as we want to receive session keepalives and then drop them here. */ - if (FD_ISSET(cli->fd,&fds)) { + + ret = poll_intr_one_fd(cli->fd, POLLIN|POLLHUP, 0, &revents); + + if ((ret > 0) && (revents & (POLLIN|POLLHUP|POLLERR))) { NTSTATUS status; size_t len; -- cgit