diff -Nru esound-0.2.41.orig/esd.c esound-0.2.41.ipv4fix/esd.c
--- 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" );