From e1ac4d7095d688eeea15f423f0482c72a297e0c2 Mon Sep 17 00:00:00 2001 From: Erik Boasson Date: Sun, 14 Jun 2020 16:05:42 +0200 Subject: [PATCH] IPv6 needs scope_id for link-local addresses This was accidentally deleted in 4df38f5bf9de41c0691c7336df3782d5e40e09f9 Signed-off-by: Erik Boasson --- src/core/ddsi/src/ddsi_udp.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/core/ddsi/src/ddsi_udp.c b/src/core/ddsi/src/ddsi_udp.c index 50f1d20..fb1ae3d 100644 --- a/src/core/ddsi/src/ddsi_udp.c +++ b/src/core/ddsi/src/ddsi_udp.c @@ -457,6 +457,11 @@ static dds_return_t ddsi_udp_create_conn (ddsi_tran_conn_t *conn_out, ddsi_tran_ ipv6 = true; if (bind_to_any) socketname.a6.sin6_addr = ddsrt_in6addr_any; + if (IN6_IS_ADDR_LINKLOCAL (&socketname.a6.sin6_addr)) + { + // A hack that only works if there is only a single interface in use + socketname.a6.sin6_scope_id = gv->interfaceNo; + } break; #endif default: