Merge "Stop using BaseNetdEventListener in ConnectivityService." am: 883c34a45d am: 90c612a9b1

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1541209

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I14f7ce15ba13a96ed070370fe75b73010352a415
This commit is contained in:
Treehugger Robot
2021-01-07 11:54:59 +00:00
committed by Automerger Merge Worker

View File

@@ -89,7 +89,6 @@ import android.net.IConnectivityManager;
import android.net.IDnsResolver; import android.net.IDnsResolver;
import android.net.IIpConnectivityMetrics; import android.net.IIpConnectivityMetrics;
import android.net.INetd; import android.net.INetd;
import android.net.INetdEventCallback;
import android.net.INetworkManagementEventObserver; import android.net.INetworkManagementEventObserver;
import android.net.INetworkMonitor; import android.net.INetworkMonitor;
import android.net.INetworkMonitorCallbacks; import android.net.INetworkMonitorCallbacks;
@@ -131,6 +130,7 @@ import android.net.UidRangeParcel;
import android.net.Uri; import android.net.Uri;
import android.net.VpnManager; import android.net.VpnManager;
import android.net.VpnService; import android.net.VpnService;
import android.net.metrics.INetdEventListener;
import android.net.metrics.IpConnectivityLog; import android.net.metrics.IpConnectivityLog;
import android.net.metrics.NetworkEvent; import android.net.metrics.NetworkEvent;
import android.net.netlink.InetDiagMessage; import android.net.netlink.InetDiagMessage;
@@ -207,7 +207,6 @@ import com.android.server.connectivity.NetworkRanker;
import com.android.server.connectivity.PermissionMonitor; import com.android.server.connectivity.PermissionMonitor;
import com.android.server.connectivity.ProxyTracker; import com.android.server.connectivity.ProxyTracker;
import com.android.server.connectivity.Vpn; import com.android.server.connectivity.Vpn;
import com.android.server.net.BaseNetdEventCallback;
import com.android.server.net.BaseNetworkObserver; import com.android.server.net.BaseNetworkObserver;
import com.android.server.net.LockdownVpnTracker; import com.android.server.net.LockdownVpnTracker;
import com.android.server.net.NetworkPolicyManagerInternal; import com.android.server.net.NetworkPolicyManagerInternal;
@@ -1904,8 +1903,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
return true; return true;
} }
@VisibleForTesting private class NetdEventCallback extends INetdEventListener.Stub {
protected final INetdEventCallback mNetdEventCallback = new BaseNetdEventCallback() {
@Override @Override
public void onPrivateDnsValidationEvent(int netId, String ipAddress, public void onPrivateDnsValidationEvent(int netId, String ipAddress,
String hostname, boolean validated) { String hostname, boolean validated) {
@@ -1921,8 +1919,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
} }
@Override @Override
public void onDnsEvent(int netId, int eventType, int returnCode, String hostname, public void onDnsEvent(int netId, int eventType, int returnCode, int latencyMs,
String[] ipAddresses, int ipAddressesCount, long timestamp, int uid) { String hostname, String[] ipAddresses, int ipAddressesCount, int uid) {
NetworkAgentInfo nai = getNetworkAgentInfoForNetId(netId); NetworkAgentInfo nai = getNetworkAgentInfoForNetId(netId);
// Netd event only allow registrants from system. Each NetworkMonitor thread is under // Netd event only allow registrants from system. Each NetworkMonitor thread is under
// the caller thread of registerNetworkAgent. Thus, it's not allowed to register netd // the caller thread of registerNetworkAgent. Thus, it's not allowed to register netd
@@ -1941,21 +1939,42 @@ public class ConnectivityService extends IConnectivityManager.Stub
String prefixString, int prefixLength) { String prefixString, int prefixLength) {
mHandler.post(() -> handleNat64PrefixEvent(netId, added, prefixString, prefixLength)); mHandler.post(() -> handleNat64PrefixEvent(netId, added, prefixString, prefixLength));
} }
};
private void registerNetdEventCallback() { @Override
final IIpConnectivityMetrics ipConnectivityMetrics = mDeps.getIpConnectivityMetrics(); public void onConnectEvent(int netId, int error, int latencyMs, String ipAddr, int port,
if (ipConnectivityMetrics == null) { int uid) {
Log.wtf(TAG, "Missing IIpConnectivityMetrics");
return;
} }
@Override
public void onWakeupEvent(String prefix, int uid, int ethertype, int ipNextHeader,
byte[] dstHw, String srcIp, String dstIp, int srcPort, int dstPort,
long timestampNs) {
}
@Override
public void onTcpSocketStatsEvent(int[] networkIds, int[] sentPackets, int[] lostPackets,
int[] rttsUs, int[] sentAckDiffsMs) {
}
@Override
public int getInterfaceVersion() throws RemoteException {
return this.VERSION;
}
@Override
public String getInterfaceHash() {
return this.HASH;
}
};
@VisibleForTesting
protected final INetdEventListener mNetdEventCallback = new NetdEventCallback();
private void registerNetdEventCallback() {
try { try {
ipConnectivityMetrics.addNetdEventCallback( mDnsResolver.registerEventListener(mNetdEventCallback);
INetdEventCallback.CALLBACK_CALLER_CONNECTIVITY_SERVICE,
mNetdEventCallback);
} catch (Exception e) { } catch (Exception e) {
loge("Error registering netd callback: " + e); loge("Error registering DnsResolver callback: " + e);
} }
} }