merge in mnc-dr-release history after reset to mnc-dr-dev
diff --git a/service/java/com/android/server/wifi/WifiConfigStore.java b/service/java/com/android/server/wifi/WifiConfigStore.java
index f3bf62b..e344107 100644
--- a/service/java/com/android/server/wifi/WifiConfigStore.java
+++ b/service/java/com/android/server/wifi/WifiConfigStore.java
@@ -3839,6 +3839,11 @@
mLocalLog.dump(fd, pw, args);
pw.println("WifiConfigStore - Log End ----");
}
+ if (mMOManager.isConfigured()) {
+ pw.println("Begin dump of ANQP Cache");
+ mAnqpCache.dump(pw);
+ pw.println("End dump of ANQP Cache");
+ }
}
public String getConfigFile() {
diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java
index c74f29b..5337a71 100644
--- a/service/java/com/android/server/wifi/WifiServiceImpl.java
+++ b/service/java/com/android/server/wifi/WifiServiceImpl.java
@@ -811,7 +811,7 @@
*/
public int addOrUpdateNetwork(WifiConfiguration config) {
enforceChangePermission();
- if (isValid(config)) {
+ if (isValid(config) && isValidPasspoint(config)) {
WifiEnterpriseConfig enterpriseConfig = config.enterpriseConfig;
@@ -1953,6 +1953,11 @@
return validity == null || logAndReturnFalse(validity);
}
+ public static boolean isValidPasspoint(WifiConfiguration config) {
+ String validity = checkPasspointValidity(config);
+ return validity == null || logAndReturnFalse(validity);
+ }
+
public static String checkValidity(WifiConfiguration config) {
if (config.allowedKeyManagement == null)
return "allowed kmgmt";
@@ -1969,7 +1974,10 @@
return "not PSK or 8021X";
}
}
+ return null;
+ }
+ public static String checkPasspointValidity(WifiConfiguration config) {
if (!TextUtils.isEmpty(config.FQDN)) {
/* this is passpoint configuration; it must not have an SSID */
if (!TextUtils.isEmpty(config.SSID)) {
@@ -1993,8 +2001,6 @@
return "no CA certificate";
}
}
-
- // TODO: Add more checks
return null;
}
diff --git a/service/java/com/android/server/wifi/hotspot2/ANQPData.java b/service/java/com/android/server/wifi/hotspot2/ANQPData.java
index d8dfec3..6db1f9e 100644
--- a/service/java/com/android/server/wifi/hotspot2/ANQPData.java
+++ b/service/java/com/android/server/wifi/hotspot2/ANQPData.java
@@ -67,8 +67,7 @@
mExpiry > System.currentTimeMillis();
}
- @Override
- public String toString() {
+ public String toString(boolean brief) {
StringBuilder sb = new StringBuilder();
sb.append(mNetwork.toKeyString()).append(", domid ").append(mNetwork.getAnqpDomainID());
if (mANQPElements == null) {
@@ -80,8 +79,18 @@
long now = System.currentTimeMillis();
sb.append(Utils.toHMS(now-mCtime)).append(" old, expires in ").
append(Utils.toHMS(mExpiry-now)).append(' ');
- sb.append(expired(now) ? 'x' : '-');
- sb.append(mANQPElements == null ? 'u' : '-');
+ if (brief) {
+ sb.append(expired(now) ? 'x' : '-');
+ sb.append(mANQPElements == null ? 'u' : '-');
+ }
+ else if (mANQPElements != null) {
+ sb.append(" data=").append(mANQPElements);
+ }
return sb.toString();
}
+
+ @Override
+ public String toString() {
+ return toString(true);
+ }
}
diff --git a/service/java/com/android/server/wifi/hotspot2/AnqpCache.java b/service/java/com/android/server/wifi/hotspot2/AnqpCache.java
index 3ffe004..5ca642b 100644
--- a/service/java/com/android/server/wifi/hotspot2/AnqpCache.java
+++ b/service/java/com/android/server/wifi/hotspot2/AnqpCache.java
@@ -5,6 +5,7 @@
import com.android.server.wifi.anqp.ANQPElement;
import com.android.server.wifi.anqp.Constants;
+import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -179,4 +180,11 @@
}
}
}
+
+ public void dump(PrintWriter out) {
+ out.println("Last sweep " + Utils.toHMS(System.currentTimeMillis() - mLastSweep) + " ago.");
+ for (ANQPData anqpData : mANQPCache.values()) {
+ out.println(anqpData.toString(false));
+ }
+ }
}
diff --git a/service/jni/com_android_server_wifi_WifiNative.cpp b/service/jni/com_android_server_wifi_WifiNative.cpp
index 6019f85..f7d3ca0 100644
--- a/service/jni/com_android_server_wifi_WifiNative.cpp
+++ b/service/jni/com_android_server_wifi_WifiNative.cpp
@@ -82,6 +82,7 @@
hal_fn->wifi_set_log_handler = wifi_set_log_handler_stub;
hal_fn->wifi_reset_log_handler = wifi_reset_log_handler_stub;
hal_fn->wifi_set_alert_handler = wifi_set_alert_handler_stub;
+ hal_fn->wifi_reset_alert_handler = wifi_reset_alert_handler_stub;
hal_fn->wifi_get_firmware_version = wifi_get_firmware_version_stub;
hal_fn->wifi_get_ring_buffers_status = wifi_get_ring_buffers_status_stub;
hal_fn->wifi_get_logger_supported_feature_set = wifi_get_logger_supported_feature_set_stub;
@@ -1789,10 +1790,26 @@
static jboolean android_net_wifi_reset_log_handler(JNIEnv *env, jclass cls, jint iface, jint id) {
wifi_interface_handle handle = getIfaceHandle(env, cls, iface);
+
+ //reset alter handler
+ ALOGD("android_net_wifi_reset_alert_handler = %p", handle);
+ int result = hal_fn.wifi_reset_alert_handler(id, handle);
+ if (result != WIFI_SUCCESS) {
+ ALOGE(" Fail to reset alert handler");
+ return false;
+ }
+
+ //reset log handler
ALOGD("android_net_wifi_reset_log_handler = %p", handle);
- int result = hal_fn.wifi_reset_log_handler(id,handle);
- return result == WIFI_SUCCESS;
+ result = hal_fn.wifi_reset_log_handler(id, handle);
+ if (result != WIFI_SUCCESS) {
+ ALOGE("Fail to reset logging handler");
+ return false;
+ }
+
+ return true;
}
+
// ----------------------------------------------------------------------------
// ePno framework
// ----------------------------------------------------------------------------
diff --git a/service/jni/wifi_hal_stub.h b/service/jni/wifi_hal_stub.h
index e76b2b8..bd00947 100644
--- a/service/jni/wifi_hal_stub.h
+++ b/service/jni/wifi_hal_stub.h
@@ -79,6 +79,7 @@
wifi_error wifi_reset_log_handler_stub(wifi_request_id id, wifi_interface_handle iface);
wifi_error wifi_set_alert_handler_stub(wifi_request_id id, wifi_interface_handle iface,
wifi_alert_handler handler);
+wifi_error wifi_reset_alert_handler_stub(wifi_request_id id, wifi_interface_handle iface);
wifi_error wifi_get_firmware_version_stub(wifi_interface_handle iface, char *buffer,
int buffer_size);
wifi_error wifi_get_ring_buffers_status_stub(wifi_interface_handle iface,
diff --git a/service/lib/wifi_hal_stub.cpp b/service/lib/wifi_hal_stub.cpp
index 2e642de..65770f3 100644
--- a/service/lib/wifi_hal_stub.cpp
+++ b/service/lib/wifi_hal_stub.cpp
@@ -170,6 +170,10 @@
return WIFI_ERROR_NOT_SUPPORTED;
}
+wifi_error wifi_reset_alert_handler_stub(wifi_request_id id, wifi_interface_handle iface) {
+ return WIFI_ERROR_NOT_SUPPORTED;
+}
+
wifi_error wifi_get_firmware_version_stub( wifi_interface_handle iface, char *buffer,
int buffer_size) {
return WIFI_ERROR_NOT_SUPPORTED;