Bug#525618: esound: IPv6 support disables public IPv4 support

Nicolas Trecourt fosco at fosconetwork.org
Sun Apr 26 01:45:01 UTC 2009


Package: esound
Version: 0.2.41-3
Severity: normal
Tags: patch

when IPv6 is configured and esd is started with -tcp, it only listens on 
IPv6.

$ esd -tcp  -nobeeps & 
[1] 14753

$ netstat -apn | grep esd 
tcp6       0      0 ::1:16001               :::*                    LISTEN      14753/esd       

I don't see any option to specify what protocol to use, so I added an 
option to force usage of IPv4 when needed.

--- esound-0.2.41.orig/esd.c    2008-11-18 21:35:19.000000000 +0100
+++ esound-0.2.41.ipv4fix/esd.c 2009-04-26 03:23:37.000000000 +0200
@@ -112,6 +112,7 @@
 int esd_use_ipv6 = 0;          /* We need it in accept () to know if we use 
                                        AF_NET or AF_INET6*/   
 #endif
+int esd_use_ipv4 = 0;          /* force usage of IPv4 */
 static char *programname = NULL;
 
 /*******************************************************************/
@@ -401,7 +402,7 @@
     /* create the socket, and set for non-blocking */
     if (esd_use_tcpip) {
 #if defined(ENABLE_IPV6)
-      if(have_ipv6()) {
+      if(have_ipv6() && ! esd_use_ipv4 ) {
        memset(&hints, 0, sizeof(hints));
        hints.ai_socktype = SOCK_STREAM;
    
@@ -782,6 +783,8 @@
            esd_use_tcpip = 0;
        } else if ( !strcmp( opts[ arg ], "-tcp" ) ) {
            esd_use_tcpip = 1;
+       } else if ( !strcmp( opts[ arg ], "-ipv4" ) ) {
+           esd_use_ipv4 = 1;
        } else if ( !strcmp( opts[ arg ], "-public" ) ) {
            esd_public = 1;
        } else if ( !strcmp( opts[ arg ], "-promiscuous" ) ) {
@@ -812,6 +815,7 @@
            fprintf( stderr, "  -as SECS      free audio device after SECS of inactivity (-1 to disable)\n" );
            fprintf( stderr, "  -unix         use unix domain sockets instead of tcp/ip\n" );
            fprintf( stderr, "  -tcp          use tcp/ip sockets instead of unix domain\n" );
+           fprintf( stderr, "  -ipv4         force use of IPv4\n" );
            fprintf( stderr, "  -public       make tcp/ip access public (other than localhost)\n" );
            fprintf( stderr, "  -promiscuous  start unlocked and owned (disable authenticaton) NOT RECOMMENDED\n" );
            fprintf( stderr, "  -terminate    terminate esd daemon after last client exits\n" );


-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.27.10 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/bash

Versions of packages esound depends on:
ii  esound-common                 0.2.41-3   Enlightened Sound Daemon - Common 
ii  libaudiofile0                 0.2.6-7    Open-source version of SGI's audio
ii  libc6                         2.9-4      GNU C Library: Shared libraries
ii  libesd0                       0.2.36-3   Enlightened Sound Daemon - Shared 
ii  libwrap0                      7.6.q-16   Wietse Venema's TCP wrappers libra

esound recommends no packages.

esound suggests no packages.

-- no debconf information
-------------- next part --------------
A non-text attachment was scrubbed...
Name: esound-0.2.41-ipv4fix.diff
Type: text/x-diff
Size: 1781 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-gnome-maintainers/attachments/20090426/9f8f3401/attachment.diff>


More information about the pkg-gnome-maintainers mailing list