Blame SOURCES/xinetd-2.3.14-bind-ipv6.patch

4a9f2a
--- xinetd-2.3.14/xinetd/service.c.old	2007-05-16 15:33:41.000000000 +0200
4a9f2a
+++ xinetd-2.3.14/xinetd/service.c	2007-05-16 15:29:53.000000000 +0200
4a9f2a
@@ -335,6 +335,15 @@
4a9f2a
 
4a9f2a
    if ( SVC_FD(sp) == -1 )
4a9f2a
    {
4a9f2a
+      if (SC_BIND_ADDR(scp) == NULL && SC_IPV6( scp )) 
4a9f2a
+      {
4a9f2a
+         /* there was no bind address configured and IPv6 fails. Try IPv4 */
4a9f2a
+         msg( LOG_NOTICE, func, "IPv6 socket creation failed for service %s, trying IPv4", SC_ID( scp ) ) ; 
4a9f2a
+         M_CLEAR(SC_XFLAGS(scp), SF_IPV6);
4a9f2a
+         M_SET(SC_XFLAGS(scp), SF_IPV4);
4a9f2a
+         return svc_activate(sp);
4a9f2a
+      }
4a9f2a
+
4a9f2a
       msg( LOG_ERR, func,
4a9f2a
                   "socket creation failed (%m). service = %s", SC_ID( scp ) ) ;
4a9f2a
       return( FAILED ) ;
4a9f2a
--- xinetd-2.3.14/xinetd/confparse.c.old	2007-05-16 15:33:26.000000000 +0200
4a9f2a
+++ xinetd-2.3.14/xinetd/confparse.c	2007-05-16 15:15:22.000000000 +0200
4a9f2a
@@ -245,7 +245,7 @@
4a9f2a
              M_SET(SC_XFLAGS(scp), SF_IPV6);
4a9f2a
       }
4a9f2a
       else
4a9f2a
-         M_SET(SC_XFLAGS(scp), SF_IPV4);
4a9f2a
+         M_SET(SC_XFLAGS(scp), SF_IPV6); /*try bind IPv6 by default*/
4a9f2a
    }
4a9f2a
 
4a9f2a
    if (SC_ORIG_BIND_ADDR(scp))