Commit ab8f8c98 authored by Jérémie Courrèges-Anglas's avatar Jérémie Courrèges-Anglas Committed by Povilas Kanapickas
Browse files

xserver/os: safer IPv6 "kame hack" fix, only override sin6_scope_id if zero



This helps on KAME-based systems which want to get rid of this hack.
The assumption is that if sin6_scope_id is set, then the interface index
is no longer embedded in the address.
Signed-off-by: Jérémie Courrèges-Anglas's avatarJeremie Courreges-Anglas <jca@wxcvbn.org>
parent aeed57d7
Pipeline #295169 passed with stages
in 10 minutes and 44 seconds
......@@ -581,7 +581,7 @@ static void
in6_fillscopeid(struct sockaddr_in6 *sin6)
{
#if defined(__KAME__)
if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) {
if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr) && sin6->sin6_scope_id == 0) {
sin6->sin6_scope_id =
ntohs(*(u_int16_t *) &sin6->sin6_addr.s6_addr[2]);
sin6->sin6_addr.s6_addr[2] = sin6->sin6_addr.s6_addr[3] = 0;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment