summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Suprabh Shukla <suprabh@google.com> 2023-02-13 21:06:00 -0800
committer Suprabh Shukla <suprabh@google.com> 2023-02-14 08:44:25 -0800
commit7adf98bebbf7db005748e2fd65440ca88bb58516 (patch)
tree55436e1becd1c01c9762769e5d5df2756b2dd85b
parent30eb433a3f1d889f115f81ddd9ccf861e75585bb (diff)
NetdEventListenerService extends BaseNetdEventListener
Extending the newly created BaseNetdEventListener which has default implementations so adding new methods doesn't break NetdEventListenerService on branches where those implementations aren't available. Implementation can be provided in BaseNetdEventListener which is in the same project as INetdEventListener. Test: atest FrameworksNetTests:NetdEventListenerServiceTest Bug: 265742148 Change-Id: Ifed011441624cc9075111819effd93cdb3e33239
-rw-r--r--services/core/java/com/android/server/connectivity/NetdEventListenerService.java43
1 files changed, 28 insertions, 15 deletions
diff --git a/services/core/java/com/android/server/connectivity/NetdEventListenerService.java b/services/core/java/com/android/server/connectivity/NetdEventListenerService.java
index ee5bda3abc91..3a4aaa76d633 100644
--- a/services/core/java/com/android/server/connectivity/NetdEventListenerService.java
+++ b/services/core/java/com/android/server/connectivity/NetdEventListenerService.java
@@ -28,7 +28,6 @@ import android.net.NetworkCapabilities;
import android.net.NetworkRequest;
import android.net.metrics.ConnectStats;
import android.net.metrics.DnsEvent;
-import android.net.metrics.INetdEventListener;
import android.net.metrics.NetworkMetrics;
import android.net.metrics.WakeupEvent;
import android.net.metrics.WakeupStats;
@@ -44,6 +43,7 @@ import com.android.internal.util.BitUtils;
import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.RingBuffer;
import com.android.internal.util.TokenBucket;
+import com.android.net.module.util.BaseNetdEventListener;
import com.android.server.connectivity.metrics.nano.IpConnectivityLogClass.IpConnectivityEvent;
import java.io.PrintWriter;
@@ -54,7 +54,7 @@ import java.util.StringJoiner;
/**
* Implementation of the INetdEventListener interface.
*/
-public class NetdEventListenerService extends INetdEventListener.Stub {
+public class NetdEventListenerService extends BaseNetdEventListener {
public static final String SERVICE_NAME = "netd_listener";
@@ -208,15 +208,18 @@ public class NetdEventListenerService extends INetdEventListener.Stub {
// Called concurrently by multiple binder threads.
// This method must not block or perform long-running operations.
public synchronized void onDnsEvent(int netId, int eventType, int returnCode, int latencyMs,
- String hostname, String[] ipAddresses, int ipAddressesCount, int uid)
- throws RemoteException {
+ String hostname, String[] ipAddresses, int ipAddressesCount, int uid) {
long timestamp = System.currentTimeMillis();
getMetricsForNetwork(timestamp, netId).addDnsResult(eventType, returnCode, latencyMs);
for (INetdEventCallback callback : mNetdEventCallbackList) {
if (callback != null) {
- callback.onDnsEvent(netId, eventType, returnCode, hostname, ipAddresses,
- ipAddressesCount, timestamp, uid);
+ try {
+ callback.onDnsEvent(netId, eventType, returnCode, hostname, ipAddresses,
+ ipAddressesCount, timestamp, uid);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
}
}
}
@@ -225,11 +228,14 @@ public class NetdEventListenerService extends INetdEventListener.Stub {
// Called concurrently by multiple binder threads.
// This method must not block or perform long-running operations.
public synchronized void onNat64PrefixEvent(int netId,
- boolean added, String prefixString, int prefixLength)
- throws RemoteException {
+ boolean added, String prefixString, int prefixLength) {
for (INetdEventCallback callback : mNetdEventCallbackList) {
if (callback != null) {
- callback.onNat64PrefixEvent(netId, added, prefixString, prefixLength);
+ try {
+ callback.onNat64PrefixEvent(netId, added, prefixString, prefixLength);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
}
}
}
@@ -238,11 +244,14 @@ public class NetdEventListenerService extends INetdEventListener.Stub {
// Called concurrently by multiple binder threads.
// This method must not block or perform long-running operations.
public synchronized void onPrivateDnsValidationEvent(int netId,
- String ipAddress, String hostname, boolean validated)
- throws RemoteException {
+ String ipAddress, String hostname, boolean validated) {
for (INetdEventCallback callback : mNetdEventCallbackList) {
if (callback != null) {
- callback.onPrivateDnsValidationEvent(netId, ipAddress, hostname, validated);
+ try {
+ callback.onPrivateDnsValidationEvent(netId, ipAddress, hostname, validated);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
}
}
}
@@ -251,13 +260,17 @@ public class NetdEventListenerService extends INetdEventListener.Stub {
// Called concurrently by multiple binder threads.
// This method must not block or perform long-running operations.
public synchronized void onConnectEvent(int netId, int error, int latencyMs, String ipAddr,
- int port, int uid) throws RemoteException {
+ int port, int uid) {
long timestamp = System.currentTimeMillis();
getMetricsForNetwork(timestamp, netId).addConnectResult(error, latencyMs, ipAddr);
for (INetdEventCallback callback : mNetdEventCallbackList) {
if (callback != null) {
- callback.onConnectEvent(ipAddr, port, timestamp, uid);
+ try {
+ callback.onConnectEvent(ipAddr, port, timestamp, uid);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
}
}
}
@@ -315,7 +328,7 @@ public class NetdEventListenerService extends INetdEventListener.Stub {
}
@Override
- public int getInterfaceVersion() throws RemoteException {
+ public int getInterfaceVersion() {
return this.VERSION;
}