From fa63e1a184aceecfe74cc51218f3980c59396c74 Mon Sep 17 00:00:00 2001
From: Guillem Jover <guillem@hadrons.org>
Date: Mon, 6 Sep 2010 10:52:27 +0200
Subject: [PATCH 1/2] inetd: Change protocol semantics in inetd.conf

Readd parts of the original patch that got botched when applied
upstream.

* src/inetd.c (getconfigent) [IPV6]: Change default family to IPv4 for "tcp"
and "udp". Change "tcp6" and "udp6" to support IPv4 mapped addresses.

Fixes: commit a12021ee959a88b48cd16e947c671f8f59e29c9d
---
 src/inetd.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/inetd.c b/src/inetd.c
index d3d8281b..32432ec1 100644
--- a/src/inetd.c
+++ b/src/inetd.c
@@ -1110,9 +1110,9 @@ getconfigent (FILE *fconfig, const char *file, size_t *line)
       sep->se_proto = newstr (argv[INETD_PROTOCOL]);
 
 #ifdef IPV6
-      /* We default to IPv4. */
+      /* We default to IPv4.  */
       sep->se_family = AF_INET;
-      sep->se_v4mapped = 1;
+      sep->se_v4mapped = 0;
 
       if ((strncmp (sep->se_proto, "tcp", 3) == 0)
 	  || (strncmp (sep->se_proto, "udp", 3) == 0))
@@ -1120,10 +1120,11 @@ getconfigent (FILE *fconfig, const char *file, size_t *line)
 	  if (sep->se_proto[3] == '6')
 	    {
 	      sep->se_family = AF_INET6;
-	      sep->se_v4mapped = 0;
 	      /* Check for tcp6only and udp6only.  */
 	      if (strcmp (&sep->se_proto[3], "6only") == 0)
 	        sep->se_v4mapped = 0;
+	      else
+	        sep->se_v4mapped = 1;
 	    }
 	  else if (sep->se_proto[3] == '4')
 	    {
-- 
2.30.0.284.gd98b1dd5eaa7

