Refactors common scope id setup code into utility function

Bug: 279691947
Test: atest NetworkStackIntegrationTests NetworkStackRootTests
Test: atest CtsNetTestCases:android.net.cts.NsdManagerTest
Change-Id: I5627037c95b5b9cf4af46018bccffb4f16b402a8
This commit is contained in:
Yuyang Huang
2023-04-24 13:33:34 +09:00
parent d8321ef84f
commit a6a6ff93b2

View File

@@ -61,6 +61,7 @@ import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.State; import com.android.internal.util.State;
import com.android.internal.util.StateMachine; import com.android.internal.util.StateMachine;
import com.android.net.module.util.DeviceConfigUtils; import com.android.net.module.util.DeviceConfigUtils;
import com.android.net.module.util.InetAddressUtils;
import com.android.net.module.util.PermissionUtils; import com.android.net.module.util.PermissionUtils;
import com.android.net.module.util.SharedLog; import com.android.net.module.util.SharedLog;
import com.android.server.connectivity.mdns.ExecutorProvider; import com.android.server.connectivity.mdns.ExecutorProvider;
@@ -1240,16 +1241,10 @@ public class NsdService extends INsdManager.Stub {
} }
for (String ipv6Address : v6Addrs) { for (String ipv6Address : v6Addrs) {
try { try {
final InetAddress addr = InetAddresses.parseNumericAddress(ipv6Address); final Inet6Address addr = (Inet6Address) InetAddresses.parseNumericAddress(
if (addr.isLinkLocalAddress()) { ipv6Address);
final Inet6Address v6Addr = Inet6Address.getByAddress( addresses.add(InetAddressUtils.withScopeId(addr, serviceInfo.getInterfaceIndex()));
null /* host */, addr.getAddress(), } catch (IllegalArgumentException e) {
serviceInfo.getInterfaceIndex());
addresses.add(v6Addr);
} else {
addresses.add(addr);
}
} catch (IllegalArgumentException | UnknownHostException e) {
Log.wtf(TAG, "Invalid ipv6 address", e); Log.wtf(TAG, "Invalid ipv6 address", e);
} }
} }