From af16f037031e62d0b7fbcea9fa8b3f6cd83b93aa Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Mon, 15 Jul 2019 01:05:21 -0700 Subject: [PATCH] Stringify IPv6 addresses with scope IDs if present --- Limelight/Network/MDNSManager.m | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Limelight/Network/MDNSManager.m b/Limelight/Network/MDNSManager.m index 90fa5507..0d072d56 100644 --- a/Limelight/Network/MDNSManager.m +++ b/Limelight/Network/MDNSManager.m @@ -70,7 +70,12 @@ static NSString* NV_SERVICE_TYPE = @"_nvstream._tcp"; inet_ntop(addr->sa_family, &((struct sockaddr_in*)addr)->sin_addr, addrStr, sizeof(addrStr)); } else { - inet_ntop(addr->sa_family, &((struct sockaddr_in6*)addr)->sin6_addr, addrStr, sizeof(addrStr)); + struct sockaddr_in6* sin6 = (struct sockaddr_in6*)addr; + inet_ntop(addr->sa_family, &sin6->sin6_addr, addrStr, sizeof(addrStr)); + if (sin6->sin6_scope_id != 0) { + // Link-local addresses with scope IDs are special + return [NSString stringWithFormat: @"%s%%%u", addrStr, sin6->sin6_scope_id]; + } } return [NSString stringWithFormat: @"%s", addrStr]; }