summaryrefslogtreecommitdiffstats
path: root/service/java/com/android/server/wifi/WifiNetworkFactory.java
diff options
context:
space:
mode:
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);