Merge "Add new netd event callback for changes to NAT64 prefix"

This commit is contained in:
Nucca Chen
2018-12-18 03:19:45 +00:00
committed by Gerrit Code Review
3 changed files with 33 additions and 0 deletions

View File

@@ -44,6 +44,20 @@ oneway interface INetdEventCallback {
void onDnsEvent(int netId, int eventType, int returnCode, String hostname,
in String[] ipAddresses, int ipAddressesCount, long timestamp, int uid);
/**
* Represents adding or removing a NAT64 prefix.
* This method must not block or perform long-running operations.
*
* @param netId the ID of the network the prefix was performed on.
* @param added true if the NAT64 prefix was added, or false if the NAT64 prefix was removed.
* There is only one prefix at a time for each netId. If a prefix is added, it replaces
* the previous-added prefix.
* @param prefixString the detected NAT64 prefix as a string literal.
* @param prefixLength the prefix length associated with this NAT64 prefix.
*/
void onNat64PrefixEvent(int netId, boolean added, @utf8InCpp String prefixString,
int prefixLength);
/**
* Represents a private DNS validation success or failure.
* This method must not block or perform long-running operations.

View File

@@ -31,6 +31,12 @@ public class BaseNetdEventCallback extends INetdEventCallback.Stub {
// default no-op
}
@Override
public void onNat64PrefixEvent(int netId, boolean added, String prefixString,
int prefixLength) {
// default no-op
}
@Override
public void onPrivateDnsValidationEvent(int netId, String ipAddress,
String hostname, boolean validated) {

View File

@@ -214,6 +214,19 @@ public class NetdEventListenerService extends INetdEventListener.Stub {
}
}
@Override
// 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 {
for (INetdEventCallback callback : mNetdEventCallbackList) {
if (callback != null) {
callback.onNat64PrefixEvent(netId, added, prefixString, prefixLength);
}
}
}
@Override
// Called concurrently by multiple binder threads.
// This method must not block or perform long-running operations.