From 4596f20b71b10d330cc26cc657741b1b3607f274 Mon Sep 17 00:00:00 2001
From: Alam Ed Arias <alam@srb2.org>
Date: Sat, 1 Feb 2025 11:00:44 -0500
Subject: [PATCH] Check for ENODEV for hosts with IPv6 disabled while running
 in IPv6 mode

---
 src/netcode/i_tcp.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/netcode/i_tcp.c b/src/netcode/i_tcp.c
index 89cee2a6c0..282b2ce94e 100644
--- a/src/netcode/i_tcp.c
+++ b/src/netcode/i_tcp.c
@@ -836,6 +836,12 @@ static SOCKET_TYPE UDP_Bind(int family, struct sockaddr *addr, socklen_t addrlen
 			{
 				e = errno;
 				CONS_Alert(CONS_WARNING, M_GetText("Could not register multicast address\n"));
+				if (e == ENODEV)
+				{
+					close(s);
+					I_OutputMsg("Binding failed: no IPv6 device\n");
+					return (SOCKET_TYPE)ERRSOCKET;
+				}
 				I_OutputMsg("setting IPV6_JOIN_GROUP failed: #%u, %s \n", e, strerror(e));
 			}
 		}
-- 
GitLab