Windows 7 - fix nativewifi bearer plugin

The plugin code only handled the 2 events from windows XP, while
there are more events defined on vista/7. As the scan complete event
was being ignored, updates did not complete.

Task-number: QTBUG-24503
Change-Id: Ib1fd6883b0fd6962f61dab7830e577b9292163ef
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
This commit is contained in:
Shane Kearns 2012-05-04 09:13:40 +01:00 committed by Qt by Nokia
parent ba2f772dff
commit b45f0418e3
2 changed files with 21 additions and 7 deletions

View File

@ -45,8 +45,11 @@
#include <wtypes.h> #include <wtypes.h>
#undef interface #undef interface
//proper header is wlanapi.h, but that is not included in windows XP
#define WLAN_MAX_NAME_LENGTH 256 #define WLAN_MAX_NAME_LENGTH 256
#define WLAN_MAX_PHY_TYPE_NUMBER 8 #define WLAN_MAX_PHY_TYPE_NUMBER 8
#define WLAN_NOTIFICATION_SOURCE_ACM 0x00000008
#define WLAN_NOTIFICATION_SOURCE_ALL 0x0000ffff #define WLAN_NOTIFICATION_SOURCE_ALL 0x0000ffff
#define WLAN_AVAILABLE_NETWORK_CONNECTED 1 #define WLAN_AVAILABLE_NETWORK_CONNECTED 1
#define WLAN_AVAILABLE_NETWORK_HAS_PROFILE 2 #define WLAN_AVAILABLE_NETWORK_HAS_PROFILE 2

View File

@ -69,13 +69,24 @@ void qNotificationCallback(WLAN_NOTIFICATION_DATA *data, QNativeWifiEngine *d)
{ {
Q_UNUSED(d); Q_UNUSED(d);
switch (data->NotificationCode) { if (data->NotificationSource == WLAN_NOTIFICATION_SOURCE_ACM) {
case wlan_notification_acm_connection_complete: switch (data->NotificationCode) {
case wlan_notification_acm_disconnected: case wlan_notification_acm_connection_complete:
QMetaObject::invokeMethod(d, "scanComplete", Qt::QueuedConnection); case wlan_notification_acm_disconnected:
break; case wlan_notification_acm_scan_complete:
default: case wlan_notification_acm_scan_fail:
; QMetaObject::invokeMethod(d, "scanComplete", Qt::QueuedConnection);
break;
default:
#ifdef BEARER_MANAGEMENT_DEBUG
qDebug() << "wlan acm notification" << (int)data->NotificationCode;
#endif
break;
}
} else {
#ifdef BEARER_MANAGEMENT_DEBUG
qDebug() << "wlan notification source" << (int)data->NotificationSource << "code" << (int)data->NotificationCode;
#endif
} }
} }