Use system API to obtain IDnsResolver IBinder

Connectivity service module is using a ServiceManager @hide API
to get IDnsResolver IBinder. Replace it with
DnsResolverServiceManager system API for incoming mainline.

Bug: 170598012
Test: atest FrameworksNetTests
Test: Manually connect and disconnect Wi-Fi/Cellular network
Change-Id: I457dccd44e5adc8c4d9b3c2853323228db3a0d89
This commit is contained in:
paulhu
2020-11-10 15:32:56 +08:00
committed by Paul Hu
parent 2d32316de4
commit a10d821111

View File

@@ -83,6 +83,7 @@ import android.net.ConnectivityDiagnosticsManager.ConnectivityReport;
import android.net.ConnectivityDiagnosticsManager.DataStallReport;
import android.net.ConnectivityManager;
import android.net.DataStallReportParcelable;
import android.net.DnsResolverServiceManager;
import android.net.ICaptivePortal;
import android.net.IConnectivityDiagnosticsCallback;
import android.net.IConnectivityManager;
@@ -577,9 +578,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
return sMagicDecoderRing.get(what, Integer.toString(what));
}
private static IDnsResolver getDnsResolver() {
return IDnsResolver.Stub
.asInterface(ServiceManager.getService("dnsresolver"));
private static IDnsResolver getDnsResolver(Context context) {
return IDnsResolver.Stub.asInterface(DnsResolverServiceManager.getService(context));
}
/** Handler thread used for all of the handlers below. */
@@ -951,7 +951,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
public ConnectivityService(Context context, INetworkManagementService netManager,
INetworkStatsService statsService, INetworkPolicyManager policyManager) {
this(context, netManager, statsService, policyManager, getDnsResolver(),
this(context, netManager, statsService, policyManager, getDnsResolver(context),
new IpConnectivityLog(), NetdService.getInstance(), new Dependencies());
}