Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Feb 2014 22:35:46 +0000 (UTC)
From:      Mikhail Teterin <mi@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r343828 - in head/net/udt: . files
Message-ID:  <201402112235.s1BMZkf7034231@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mi
Date: Tue Feb 11 22:35:45 2014
New Revision: 343828
URL: http://svnweb.freebsd.org/changeset/ports/343828
QAT: https://qat.redports.org/buildarchive/r343828/

Log:
  Add a patch to make the invocation of select(2) work in CEPoll::wait() method.
  Applicable only to non-Linux platforms, such as FreeBSD.
  
  Bump PORTREVISION.
  
  Obtained from:	https://sourceforge.net/p/udt/patches/12/

Added:
  head/net/udt/files/patch-fix-select-call   (contents, props changed)
Modified:
  head/net/udt/Makefile

Modified: head/net/udt/Makefile
==============================================================================
--- head/net/udt/Makefile	Tue Feb 11 22:12:21 2014	(r343827)
+++ head/net/udt/Makefile	Tue Feb 11 22:35:45 2014	(r343828)
@@ -3,6 +3,7 @@
 
 PORTNAME=	udt
 PORTVERSION=	4.11
+PORTREVISION=	1
 CATEGORIES=	net
 MASTER_SITES=	SF
 DISTNAME=	udt.sdk.${PORTVERSION}

Added: head/net/udt/files/patch-fix-select-call
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/udt/files/patch-fix-select-call	Tue Feb 11 22:35:45 2014	(r343828)
@@ -0,0 +1,30 @@
+From
+	http://sourceforge.net/p/udt/patches/12/
+
+--- src/epoll.cpp
++++ src/epoll.cpp
+@@ -256,18 +256,23 @@ int CEPoll::wait(const int eid, set<UDTSOCKET>* readfds, set<UDTSOCKET>* writefd
+          FD_ZERO(&readfds);
+          FD_ZERO(&writefds);
+ 
++         //"select" needs to know the max file descriptor that is set in the fd_set structs
++         SYSSOCKET max_fd = 0;
++
+          for (set<SYSSOCKET>::const_iterator i = p->second.m_sLocals.begin(); i != p->second.m_sLocals.end(); ++ i)
+          {
+             if (lrfds)
+                FD_SET(*i, &readfds);
+             if (lwfds)
+                FD_SET(*i, &writefds);
++            if (*i > max_fd)
++               max_fd = *i;
+          }
+ 
+          timeval tv;
+          tv.tv_sec = 0;
+          tv.tv_usec = 0;
+-         if (::select(0, &readfds, &writefds, NULL, &tv) > 0)
++         if (::select(max_fd + 1, &readfds, &writefds, NULL, &tv) > 0)
+          {
+             for (set<SYSSOCKET>::const_iterator i = p->second.m_sLocals.begin(); i != p->second.m_sLocals.end(); ++ i)
+             {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201402112235.s1BMZkf7034231>