diff options
author | Roshan Pius <rpius@google.com> | 2018-11-08 09:08:23 -0800 |
---|---|---|
committer | Roshan Pius <rpius@google.com> | 2018-11-16 16:30:41 -0800 |
commit | 26672dba37034ce8ffdaa1350e9fb1529e2f0b70 (patch) | |
tree | e7fc53e586bffcc0966119de22438ee4961fdc2a /service/java/com/android/server/wifi/WifiNetworkFactory.java | |
parent | ca7e72ad7fb48243cf0f00cec05c4d03d984d7ed (diff) | |
download | android_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.java | 19 |
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); |