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>
#undef interface
//proper header is wlanapi.h, but that is not included in windows XP
#define WLAN_MAX_NAME_LENGTH 256
#define WLAN_MAX_PHY_TYPE_NUMBER 8
#define WLAN_NOTIFICATION_SOURCE_ACM 0x00000008
#define WLAN_NOTIFICATION_SOURCE_ALL 0x0000ffff
#define WLAN_AVAILABLE_NETWORK_CONNECTED 1
#define WLAN_AVAILABLE_NETWORK_HAS_PROFILE 2

View File

@ -69,13 +69,24 @@ void qNotificationCallback(WLAN_NOTIFICATION_DATA *data, QNativeWifiEngine *d)
{
Q_UNUSED(d);
switch (data->NotificationCode) {
case wlan_notification_acm_connection_complete:
case wlan_notification_acm_disconnected:
QMetaObject::invokeMethod(d, "scanComplete", Qt::QueuedConnection);
break;
default:
;
if (data->NotificationSource == WLAN_NOTIFICATION_SOURCE_ACM) {
switch (data->NotificationCode) {
case wlan_notification_acm_connection_complete:
case wlan_notification_acm_disconnected:
case wlan_notification_acm_scan_complete:
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
}
}