From 0648638fef56a65f9389c8a98f66c57663e8c401 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 18 May 2006 19:49:44 +0000 Subject: r15700: Make nmbd udp sockets non-blocking to prevent problem with select returning true but no data being available. Fix for bug #3779. Jeremy. (This used to be commit e5787cf75b2e7d50f551f34f28d280c27b0aa134) --- source3/lib/util_sock.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source3/lib') diff --git a/source3/lib/util_sock.c b/source3/lib/util_sock.c index de90b29294..1a73a310b6 100644 --- a/source3/lib/util_sock.c +++ b/source3/lib/util_sock.c @@ -278,7 +278,12 @@ ssize_t read_udp_socket(int fd,char *buf,size_t len) memset((char *)&lastip,'\0',sizeof(lastip)); ret = (ssize_t)sys_recvfrom(fd,buf,len,0,(struct sockaddr *)&sock,&socklen); if (ret <= 0) { - DEBUG(2,("read socket failed. ERRNO=%s\n",strerror(errno))); + /* Don't print a low debug error for a non-blocking socket. */ + if (errno == EAGAIN) { + DEBUG(10,("read socket returned EAGAIN. ERRNO=%s\n",strerror(errno))); + } else { + DEBUG(2,("read socket failed. ERRNO=%s\n",strerror(errno))); + } return(0); } -- cgit