mirror of
https://github.com/X11Libre/xserver.git
synced 2026-03-24 05:54:08 +00:00
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: Jeremie Courreges-Anglas <jca@wxcvbn.org>
This commit is contained in:
committed by
Povilas Kanapickas
parent
aeed57d722
commit
ab8f8c9841
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user