libesd use hardcoded socket-io timeout = 100ms. This is too small for slow WIFI connections and sound servers on Windows. The problem has been solved by the debian team: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637064 On that page, there is a patch, created by Konstantin Khlebnikov, which fixes the problem. That patch should be added to the FreeBSD port audio/esound. Fix: Apply patch found at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637064
Responsible Changed From-To: freebsd-ports-bugs->gnome Over to maintainer (via the GNATS Auto Assign Tool)
Author: mezz Date: Sat Dec 29 05:39:23 2012 New Revision: 309607 URL: http://svnweb.freebsd.org/changeset/ports/309607 Log: The libesd use hardcoded socket-io timeout = 100ms. This is too small for slow WIFI connections and sound servers on Windows. It has been solved by the Debian team. Patch was created by Konstantin Khlebnikov. Bump the PORTREVISION. PR: ports/171616 Submitted by: Gabor Fischer <Gabor.Fischer@gmx.net> Obtained from: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637064 Added: head/audio/esound/files/patch-esound-increase-timeouts (contents, props changed) Modified: head/audio/esound/Makefile (contents, props changed) Modified: head/audio/esound/Makefile ============================================================================== --- head/audio/esound/Makefile Sat Dec 29 05:29:56 2012 (r309606) +++ head/audio/esound/Makefile Sat Dec 29 05:39:23 2012 (r309607) @@ -8,6 +8,7 @@ PORTNAME= esound PORTVERSION= 0.2.41 +PORTREVISION= 1 CATEGORIES= audio MASTER_SITES= GNOME DIST_SUBDIR= gnome Added: head/audio/esound/files/patch-esound-increase-timeouts ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/audio/esound/files/patch-esound-increase-timeouts Sat Dec 29 05:39:23 2012 (r309607) @@ -0,0 +1,62 @@ +libesd cannot connect to server if it work on slow hardware and/or on windows due to +extremely small default read/write timeout = 100ms This patch increases them up to 300ms. + +--- esdlib.c.org 2008-11-18 23:35:19.000000000 +0300 ++++ esdlib.c 2011-04-29 21:58:56.698001331 +0400 +@@ -30,6 +30,11 @@ + + strlen ((ptr)->sun_path)) + #endif + ++#define TCP_CONNECT_TIMEOUT 1000 ++#define UNIX_CONNECT_TIMEOUT 100 ++#define SOCKET_READ_TIMEOUT 300 ++#define SOCKET_WRITE_TIMEOUT 300 ++ + /*******************************************************************/ + /* prototypes */ + int esd_set_socket_buffers( int sock, int src_format, +@@ -89,7 +94,7 @@ + + do { + pfd[0].revents = 0; +- rv = poll (pfd, 1, 100); ++ rv = poll (pfd, 1, SOCKET_READ_TIMEOUT); + } while (rv == -1 && (errno == EINTR || errno == EAGAIN)); + + if (rv < 1 || !(pfd[0].revents & POLLIN)) { +@@ -137,7 +142,7 @@ + + do { + pfd[0].revents = 0; +- rv = poll (pfd, 1, 100); ++ rv = poll (pfd, 1, SOCKET_WRITE_TIMEOUT); + } while (rv == -1 && (errno == EINTR || errno == EAGAIN)); + + if (rv < 1 || (pfd[0].revents & (POLLERR | POLLHUP | POLLOUT)) != POLLOUT) { +@@ -641,7 +646,7 @@ + goto error_out; + } + +- if ( connect_timeout ( socket_out, res->ai_addr, res->ai_addrlen, 1000 ) != -1 ) ++ if ( connect_timeout ( socket_out, res->ai_addr, res->ai_addrlen, TCP_CONNECT_TIMEOUT ) != -1 ) + break; + + close ( socket_out ); +@@ -727,7 +732,7 @@ + + if ( connect_timeout ( socket_out, + (struct sockaddr *) &socket_addr, +- sizeof(struct sockaddr_in), 1000 ) < 0 ) ++ sizeof(struct sockaddr_in), TCP_CONNECT_TIMEOUT ) < 0 ) + goto error_out; + + } +@@ -779,7 +784,7 @@ + socket_unix.sun_family = AF_UNIX; + strncpy(socket_unix.sun_path, ESD_UNIX_SOCKET_NAME, sizeof(socket_unix.sun_path)); + +- if ( connect_timeout ( socket_out, (struct sockaddr *) &socket_unix, SUN_LEN(&socket_unix), 100 ) < 0 ) ++ if ( connect_timeout ( socket_out, (struct sockaddr *) &socket_unix, SUN_LEN(&socket_unix), UNIX_CONNECT_TIMEOUT ) < 0 ) + goto error_out; + + return socket_out; _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
State Changed From-To: open->closed Committed, thanks!