From c5ad0f47251199b0d137bfdb085f189afbe3ddd2 Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Mon, 25 May 2009 22:34:20 -0400 Subject: wifi: Fix problem parsing RSSI when the AP name contains a space. Signed-off-by: Mike Lockwood --- core/jni/android_net_wifi_Wifi.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'core') diff --git a/core/jni/android_net_wifi_Wifi.cpp b/core/jni/android_net_wifi_Wifi.cpp index 25670df..9f93e2f 100644 --- a/core/jni/android_net_wifi_Wifi.cpp +++ b/core/jni/android_net_wifi_Wifi.cpp @@ -317,8 +317,13 @@ static jint android_net_wifi_getRssiCommand(JNIEnv* env, jobject clazz) } // reply comes back in the form " rssi XX" where XX is the // number we're interested in. if we're associating, it returns "OK". + // beware - can contain spaces. if (strcmp(reply, "OK") != 0) { - sscanf(reply, "%*s %*s %d", &rssi); + char* lastSpace = strrchr(reply, ' '); + // lastSpace should be preceded by "rssi" and followed by the value + if (lastSpace && !strncmp(lastSpace - 4, "rssi", 4)) { + sscanf(lastSpace + 1, "%d", &rssi); + } } return (jint)rssi; } -- cgit v1.1