summaryrefslogtreecommitdiffstats
path: root/service/java/com/android/server/wifi/WifiNetworkFactory.java
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2018-11-08 09:08:23 -0800
committerRoshan Pius <rpius@google.com>2018-11-16 16:30:41 -0800
commit26672dba37034ce8ffdaa1350e9fb1529e2f0b70 (patch)
treee7fc53e586bffcc0966119de22438ee4961fdc2a /service/java/com/android/server/wifi/WifiNetworkFactory.java
parentca7e72ad7fb48243cf0f00cec05c4d03d984d7ed (diff)
downloadandroid_frameworks_opt_net_wifi-26672dba37034ce8ffdaa1350e9fb1529e2f0b70.tar.gz
android_frameworks_opt_net_wifi-26672dba37034ce8ffdaa1350e9fb1529e2f0b70.tar.bz2
android_frameworks_opt_net_wifi-26672dba37034ce8ffdaa1350e9fb1529e2f0b70.zip
ClientModeImpl: Attach WifiNetworkAgentSpecifier
This is needed for matching the specific network request with the network agent created for servicing it. Note: WifiNetworkAgentSpecifier will continue to match any generic requests. So, we can always send the specifier. The requestorUid will be -1 if there is no specific request active. Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: act.py -c wifi_manager.config -tb dut-name -tc WifiManagerTest Change-Id: I0c8b4b3a552b7765069520f1fc57fa70c9ade8b7
Diffstat (limited to 'service/java/com/android/server/wifi/WifiNetworkFactory.java')
-rw-r--r--service/java/com/android/server/wifi/WifiNetworkFactory.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/WifiNetworkFactory.java b/service/java/com/android/server/wifi/WifiNetworkFactory.java
index 01453fa33..1c1d5e57c 100644
--- a/service/java/com/android/server/wifi/WifiNetworkFactory.java
+++ b/service/java/com/android/server/wifi/WifiNetworkFactory.java
@@ -40,6 +40,7 @@ import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
import android.os.Messenger;
+import android.os.Process;
import android.os.RemoteException;
import android.os.WorkSource;
import android.text.TextUtils;
@@ -429,6 +430,24 @@ public class WifiNetworkFactory extends NetworkFactory {
return mGenericConnectionReqCount > 0 || mActiveSpecificNetworkRequest != null;
}
+ /**
+ * Return the uid of the specific network request being processed if connected to the requested
+ * network.
+ *
+ * @param connectedNetwork WifiConfiguration corresponding to the connected network.
+ * @return uid of the specific request (if any), else -1.
+ */
+ public int getActiveSpecificNetworkRequestUid(@NonNull WifiConfiguration connectedNetwork) {
+ if (mUserSelectedNetwork == null || connectedNetwork == null) return Process.INVALID_UID;
+ if (!isUserSelectedNetwork(connectedNetwork)) {
+ Log.w(TAG, "Connected to unknown network " + connectedNetwork + ". Ignoring...");
+ return Process.INVALID_UID;
+ }
+ return mActiveSpecificNetworkRequestSpecifier != null
+ ? mActiveSpecificNetworkRequestSpecifier.requestorUid
+ : Process.INVALID_UID;
+ }
+
private void handleConnectToNetworkUserSelection(WifiConfiguration network) {
Log.d(TAG, "User initiated connect to network: " + network.SSID);