summaryrefslogtreecommitdiff
path: root/packages/Tethering/src/android/net/util/TetheringUtils.java
diff options
context:
space:
mode:
authormarkchien <markchien@google.com>2020-03-16 21:49:48 +0800
committermarkchien <markchien@google.com>2020-03-17 00:11:16 +0800
commitb69c39ad837ffa1343dd1b6f692cd57f6e0995f6 (patch)
tree6716a8948efaea6e311e11d3c809121735437bf4 /packages/Tethering/src/android/net/util/TetheringUtils.java
parent11fcab68b770e033f9c00d3a437c33ffb35a52ce (diff)
Support static address configuration
Application can specify static ipv4 server and client address to setup tethering and this is one shot configuration. Tethering service would not save the configuration and the configuration would be reset when tethering stop or start failure. When startTethering callback fired, it just mean tethering is requested successful. Therefore, callers may call startTethering again if startTethering successful but do not receive following tethering active notification for a while. Tethering service never actually does anything synchronously when startTethering is called: -startProvisioningIfNeeded just posts a message to the handler thread. -enableTetheringInternal doesn't do anything synchronously, it just asks the downstreams to get their interfaces ready and waits for callbacks. If tethering is already enabled with a different request, tethering would be disabled and re-enabled. Bug: 141256482 Test: -build, flash, boot -atest TetheringTests -atest CtsTetheringTest Change-Id: I0399917e7cefa1547d617e688225544c4fc1a231
Diffstat (limited to 'packages/Tethering/src/android/net/util/TetheringUtils.java')
-rw-r--r--packages/Tethering/src/android/net/util/TetheringUtils.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/packages/Tethering/src/android/net/util/TetheringUtils.java b/packages/Tethering/src/android/net/util/TetheringUtils.java
index 5a6d5c1cbfb0..dd67dddae1cd 100644
--- a/packages/Tethering/src/android/net/util/TetheringUtils.java
+++ b/packages/Tethering/src/android/net/util/TetheringUtils.java
@@ -15,8 +15,11 @@
*/
package android.net.util;
+import android.net.TetheringRequestParcel;
+
import java.io.FileDescriptor;
import java.net.SocketException;
+import java.util.Objects;
/**
* Native methods for tethering utilization.
@@ -38,4 +41,17 @@ public class TetheringUtils {
public static int uint16(short s) {
return s & 0xffff;
}
+
+ /** Check whether two TetheringRequestParcels are the same. */
+ public static boolean isTetheringRequestEquals(final TetheringRequestParcel request,
+ final TetheringRequestParcel otherRequest) {
+ if (request == otherRequest) return true;
+
+ return request != null && otherRequest != null
+ && request.tetheringType == otherRequest.tetheringType
+ && Objects.equals(request.localIPv4Address, otherRequest.localIPv4Address)
+ && Objects.equals(request.staticClientAddress, otherRequest.staticClientAddress)
+ && request.exemptFromEntitlementCheck == otherRequest.exemptFromEntitlementCheck
+ && request.showProvisioningUi == otherRequest.showProvisioningUi;
+ }
}