Hello again,

on a dual stacked system, having shishid(8) listen
on a naive AF_INET6 wildcard address, is causing
a bind failure for any AF_INET wildcard address.
It is better to set the socket option IPV6_V6ONLY
on all AF_INET6 listening sockets in order that
no AF_INET socket be rejected, causing an annoying
error message of no use. Patch included.

Best regards,

  Mats E A
>From e32501684d96e690d56c76dca1b0856edbfe81b3 Mon Sep 17 00:00:00 2001
From: Mats Erik Andersson <[email protected]>
Date: Wed, 15 Aug 2012 09:39:28 +0200
Subject: [PATCH] shishid: Use single stacked AF_INET6 sockets.

On dual stacked hosts, running an AF_INET6 wildcard
socket blocks AF_INET wildcards. Make it single
stacked using IPV6_V6ONLY instead.
---
 src/shishid.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/src/shishid.c b/src/shishid.c
index ebc128d..25fd468 100644
--- a/src/shishid.c
+++ b/src/shishid.c
@@ -63,6 +63,17 @@ kdc_listen (void)
 	  goto error;
 	}
 
+#ifdef IPV6_V6ONLY
+      if (ls->ai.ai_family == AF_INET6)
+	{
+	  yes = 1;
+	  if (setsockopt (ls->sockfd, IPPROTO_IPV6, IPV6_V6ONLY,
+			  (char *) &yes, sizeof (yes)) < 0)
+	    error (0, errno, "Cannot restrict %s to AF_INET6 only.",
+		   ls->addrname);
+	}
+#endif
+
       yes = 1;
       if (setsockopt (ls->sockfd, SOL_SOCKET, SO_REUSEADDR,
 		      (char *) &yes, sizeof (yes)) < 0)
-- 
1.7.2.5

_______________________________________________
Help-shishi mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-shishi

Reply via email to