Index: device/geolocation/wifi_data_provider_win.cc |
diff --git a/device/geolocation/wifi_data_provider_win.cc b/device/geolocation/wifi_data_provider_win.cc |
index 58e622ff7103b57d42eaaa91eabf961ebfbbd560..20336eeb91ea8ab000e1a7dd5e08702f1b079ca4 100644 |
--- a/device/geolocation/wifi_data_provider_win.cc |
+++ b/device/geolocation/wifi_data_provider_win.cc |
@@ -36,7 +36,7 @@ |
#include "device/geolocation/wifi_data_provider_manager.h" |
// Taken from ndis.h for WinCE. |
-#define NDIS_STATUS_INVALID_LENGTH ((NDIS_STATUS)0xC0010014L) |
+#define NDIS_STATUS_INVALID_LENGTH ((NDIS_STATUS)0xC0010014L) |
#define NDIS_STATUS_BUFFER_TOO_SHORT ((NDIS_STATUS)0xC0010016L) |
namespace device { |
@@ -49,41 +49,39 @@ const int kMaximumBufferSize = 2 << 20; // 2MB |
const int kStringLength = 512; |
// The time periods, in milliseconds, between successive polls of the wifi data. |
-const int kDefaultPollingInterval = 10000; // 10s |
-const int kNoChangePollingInterval = 120000; // 2 mins |
-const int kTwoNoChangePollingInterval = 600000; // 10 mins |
-const int kNoWifiPollingIntervalMilliseconds = 20 * 1000; // 20s |
+const int kDefaultPollingInterval = 10000; // 10s |
+const int kNoChangePollingInterval = 120000; // 2 mins |
+const int kTwoNoChangePollingInterval = 600000; // 10 mins |
+const int kNoWifiPollingIntervalMilliseconds = 20 * 1000; // 20s |
// WlanOpenHandle |
-typedef DWORD (WINAPI* WlanOpenHandleFunction)(DWORD dwClientVersion, |
- PVOID pReserved, |
- PDWORD pdwNegotiatedVersion, |
- PHANDLE phClientHandle); |
+typedef DWORD(WINAPI* WlanOpenHandleFunction)(DWORD dwClientVersion, |
+ PVOID pReserved, |
+ PDWORD pdwNegotiatedVersion, |
+ PHANDLE phClientHandle); |
// WlanEnumInterfaces |
-typedef DWORD (WINAPI* WlanEnumInterfacesFunction)( |
+typedef DWORD(WINAPI* WlanEnumInterfacesFunction)( |
HANDLE hClientHandle, |
PVOID pReserved, |
PWLAN_INTERFACE_INFO_LIST* ppInterfaceList); |
// WlanGetNetworkBssList |
-typedef DWORD (WINAPI* WlanGetNetworkBssListFunction)( |
+typedef DWORD(WINAPI* WlanGetNetworkBssListFunction)( |
HANDLE hClientHandle, |
const GUID* pInterfaceGuid, |
- const PDOT11_SSID pDot11Ssid, |
+ const PDOT11_SSID pDot11Ssid, |
DOT11_BSS_TYPE dot11BssType, |
BOOL bSecurityEnabled, |
PVOID pReserved, |
- PWLAN_BSS_LIST* ppWlanBssList |
-); |
+ PWLAN_BSS_LIST* ppWlanBssList); |
// WlanFreeMemory |
-typedef VOID (WINAPI* WlanFreeMemoryFunction)(PVOID pMemory); |
+typedef VOID(WINAPI* WlanFreeMemoryFunction)(PVOID pMemory); |
// WlanCloseHandle |
-typedef DWORD (WINAPI* WlanCloseHandleFunction)(HANDLE hClientHandle, |
- PVOID pReserved); |
- |
+typedef DWORD(WINAPI* WlanCloseHandleFunction)(HANDLE hClientHandle, |
+ PVOID pReserved); |
// Local classes and functions |
class WindowsWlanApi : public WifiDataProviderCommon::WlanApiInterface { |
@@ -165,11 +163,9 @@ WifiDataProvider* WifiDataProviderManager::DefaultFactoryFunction() { |
return new WifiDataProviderWin(); |
} |
-WifiDataProviderWin::WifiDataProviderWin() { |
-} |
+WifiDataProviderWin::WifiDataProviderWin() {} |
-WifiDataProviderWin::~WifiDataProviderWin() { |
-} |
+WifiDataProviderWin::~WifiDataProviderWin() {} |
WifiDataProviderCommon::WlanApiInterface* WifiDataProviderWin::NewWlanApi() { |
// Use the WLAN interface if we're on Vista and if it's available. Otherwise, |
@@ -182,18 +178,16 @@ WifiDataProviderCommon::WlanApiInterface* WifiDataProviderWin::NewWlanApi() { |
} |
WifiPollingPolicy* WifiDataProviderWin::NewPollingPolicy() { |
- return new GenericWifiPollingPolicy<kDefaultPollingInterval, |
- kNoChangePollingInterval, |
- kTwoNoChangePollingInterval, |
- kNoWifiPollingIntervalMilliseconds>; |
+ return new GenericWifiPollingPolicy< |
+ kDefaultPollingInterval, kNoChangePollingInterval, |
+ kTwoNoChangePollingInterval, kNoWifiPollingIntervalMilliseconds>; |
} |
// Local classes and functions |
namespace { |
// WindowsWlanApi |
-WindowsWlanApi::WindowsWlanApi(HINSTANCE library) |
- : library_(library) { |
+WindowsWlanApi::WindowsWlanApi(HINSTANCE library) : library_(library) { |
GetWLANFunctions(library_); |
} |
@@ -211,9 +205,8 @@ WindowsWlanApi* WindowsWlanApi::Create() { |
} |
DCHECK(!system_directory.empty()); |
base::string16 dll_path = system_directory + L"wlanapi.dll"; |
- HINSTANCE library = LoadLibraryEx(dll_path.c_str(), |
- NULL, |
- LOAD_WITH_ALTERED_SEARCH_PATH); |
+ HINSTANCE library = |
+ LoadLibraryEx(dll_path.c_str(), NULL, LOAD_WITH_ALTERED_SEARCH_PATH); |
if (!library) { |
return NULL; |
} |
@@ -228,29 +221,21 @@ void WindowsWlanApi::GetWLANFunctions(HINSTANCE wlan_library) { |
GetProcAddress(wlan_library, "WlanEnumInterfaces")); |
WlanGetNetworkBssList_function_ = |
reinterpret_cast<WlanGetNetworkBssListFunction>( |
- GetProcAddress(wlan_library, "WlanGetNetworkBssList")); |
+ GetProcAddress(wlan_library, "WlanGetNetworkBssList")); |
WlanFreeMemory_function_ = reinterpret_cast<WlanFreeMemoryFunction>( |
GetProcAddress(wlan_library, "WlanFreeMemory")); |
WlanCloseHandle_function_ = reinterpret_cast<WlanCloseHandleFunction>( |
GetProcAddress(wlan_library, "WlanCloseHandle")); |
- DCHECK(WlanOpenHandle_function_ && |
- WlanEnumInterfaces_function_ && |
- WlanGetNetworkBssList_function_ && |
- WlanFreeMemory_function_ && |
+ DCHECK(WlanOpenHandle_function_ && WlanEnumInterfaces_function_ && |
+ WlanGetNetworkBssList_function_ && WlanFreeMemory_function_ && |
WlanCloseHandle_function_); |
} |
void WindowsWlanApi::LogWlanInterfaceCount(int count) { |
- UMA_HISTOGRAM_CUSTOM_COUNTS( |
- "Net.Wifi.InterfaceCount", |
- count, |
- 1, |
- 5, |
- 6); |
+ UMA_HISTOGRAM_CUSTOM_COUNTS("Net.Wifi.InterfaceCount", count, 1, 5, 6); |
} |
-bool WindowsWlanApi::GetAccessPointData( |
- WifiData::AccessPointDataSet* data) { |
+bool WindowsWlanApi::GetAccessPointData(WifiData::AccessPointDataSet* data) { |
DCHECK(data); |
// Get the handle to the WLAN API. |
@@ -260,8 +245,7 @@ bool WindowsWlanApi::GetAccessPointData( |
// lower version of the client WLAN API. It seems that the negotiated version |
// is the Vista version irrespective of what we pass! |
static const int kXpWlanClientVersion = 1; |
- if ((*WlanOpenHandle_function_)(kXpWlanClientVersion, |
- NULL, |
+ if ((*WlanOpenHandle_function_)(kXpWlanClientVersion, NULL, |
&negotiated_version, |
&wlan_handle) != ERROR_SUCCESS) { |
LogWlanInterfaceCount(0); |
@@ -294,8 +278,7 @@ bool WindowsWlanApi::GetAccessPointData( |
continue; |
} |
GetInterfaceDataWLAN(wlan_handle, |
- interface_list->InterfaceInfo[i].InterfaceGuid, |
- data); |
+ interface_list->InterfaceInfo[i].InterfaceGuid, data); |
} |
// Free interface_list. |
@@ -311,19 +294,17 @@ bool WindowsWlanApi::GetAccessPointData( |
// Appends the data for a single interface to the data vector. Returns the |
// number of access points found, or -1 on error. |
-int WindowsWlanApi::GetInterfaceDataWLAN( |
- const HANDLE wlan_handle, |
- const GUID& interface_id, |
- WifiData::AccessPointDataSet* data) { |
+int WindowsWlanApi::GetInterfaceDataWLAN(const HANDLE wlan_handle, |
+ const GUID& interface_id, |
+ WifiData::AccessPointDataSet* data) { |
DCHECK(data); |
const base::TimeTicks start_time = base::TimeTicks::Now(); |
// WlanGetNetworkBssList allocates bss_list. |
WLAN_BSS_LIST* bss_list = NULL; |
- if ((*WlanGetNetworkBssList_function_)(wlan_handle, |
- &interface_id, |
- NULL, // Use all SSIDs. |
+ if ((*WlanGetNetworkBssList_function_)(wlan_handle, &interface_id, |
+ NULL, // Use all SSIDs. |
dot11_BSS_type_any, |
false, // bSecurityEnabled - unused |
NULL, // reserved |
@@ -338,13 +319,9 @@ int WindowsWlanApi::GetInterfaceDataWLAN( |
const base::TimeDelta duration = base::TimeTicks::Now() - start_time; |
- UMA_HISTOGRAM_CUSTOM_TIMES( |
- "Net.Wifi.ScanLatency", |
- duration, |
- base::TimeDelta::FromMilliseconds(1), |
- base::TimeDelta::FromMinutes(1), |
- 100); |
- |
+ UMA_HISTOGRAM_CUSTOM_TIMES("Net.Wifi.ScanLatency", duration, |
+ base::TimeDelta::FromMilliseconds(1), |
+ base::TimeDelta::FromMinutes(1), 100); |
int found = 0; |
for (int i = 0; i < static_cast<int>(bss_list->dwNumberOfItems); ++i) { |
@@ -368,8 +345,7 @@ WindowsNdisApi::WindowsNdisApi( |
interface_service_names_.swap(*interface_service_names); |
} |
-WindowsNdisApi::~WindowsNdisApi() { |
-} |
+WindowsNdisApi::~WindowsNdisApi() {} |
WindowsNdisApi* WindowsNdisApi::Create() { |
std::vector<base::string16> interface_service_names; |
@@ -418,26 +394,18 @@ bool WindowsNdisApi::GetInterfacesNDIS( |
std::vector<base::string16>* interface_service_names_out) { |
HKEY network_cards_key = NULL; |
if (RegOpenKeyEx( |
- HKEY_LOCAL_MACHINE, |
- L"Software\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards", |
- 0, |
- KEY_READ, |
- &network_cards_key) != ERROR_SUCCESS) { |
+ HKEY_LOCAL_MACHINE, |
+ L"Software\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards", 0, |
+ KEY_READ, &network_cards_key) != ERROR_SUCCESS) { |
return false; |
} |
DCHECK(network_cards_key); |
- for (int i = 0; ; ++i) { |
+ for (int i = 0;; ++i) { |
TCHAR name[kStringLength]; |
DWORD name_size = kStringLength; |
FILETIME time; |
- if (RegEnumKeyEx(network_cards_key, |
- i, |
- name, |
- &name_size, |
- NULL, |
- NULL, |
- NULL, |
+ if (RegEnumKeyEx(network_cards_key, i, name, &name_size, NULL, NULL, NULL, |
&time) != ERROR_SUCCESS) { |
break; |
} |
@@ -451,10 +419,7 @@ bool WindowsNdisApi::GetInterfacesNDIS( |
TCHAR service_name[kStringLength]; |
DWORD service_name_size = kStringLength; |
DWORD type = 0; |
- if (RegQueryValueEx(hardware_key, |
- L"ServiceName", |
- NULL, |
- &type, |
+ if (RegQueryValueEx(hardware_key, L"ServiceName", NULL, &type, |
reinterpret_cast<LPBYTE>(service_name), |
&service_name_size) == ERROR_SUCCESS) { |
interface_service_names_out->push_back(service_name); |
@@ -466,7 +431,6 @@ bool WindowsNdisApi::GetInterfacesNDIS( |
return true; |
} |
- |
bool WindowsNdisApi::GetInterfaceDataNDIS(HANDLE adapter_handle, |
WifiData::AccessPointDataSet* data) { |
DCHECK(data); |
@@ -482,11 +446,10 @@ bool WindowsNdisApi::GetInterfaceDataNDIS(HANDLE adapter_handle, |
while (true) { |
bytes_out = 0; |
- result = PerformQuery(adapter_handle, buffer.get(), |
- oid_buffer_size_, &bytes_out); |
+ result = PerformQuery(adapter_handle, buffer.get(), oid_buffer_size_, |
+ &bytes_out); |
if (result == ERROR_GEN_FAILURE || // Returned by some Intel cards. |
- result == ERROR_INSUFFICIENT_BUFFER || |
- result == ERROR_MORE_DATA || |
+ result == ERROR_INSUFFICIENT_BUFFER || result == ERROR_MORE_DATA || |
result == NDIS_STATUS_INVALID_LENGTH || |
result == NDIS_STATUS_BUFFER_TOO_SHORT) { |
// The buffer we supplied is too small, so increase it. bytes_out should |
@@ -536,10 +499,9 @@ bool GetNetworkData(const WLAN_BSS_ENTRY& bss_entry, |
bool UndefineDosDevice(const base::string16& device_name) { |
// We remove only the mapping we use, that is \Device\<device_name>. |
base::string16 target_path = L"\\Device\\" + device_name; |
- return DefineDosDevice( |
- DDD_RAW_TARGET_PATH | DDD_REMOVE_DEFINITION | DDD_EXACT_MATCH_ON_REMOVE, |
- device_name.c_str(), |
- target_path.c_str()) == TRUE; |
+ return DefineDosDevice(DDD_RAW_TARGET_PATH | DDD_REMOVE_DEFINITION | |
+ DDD_EXACT_MATCH_ON_REMOVE, |
+ device_name.c_str(), target_path.c_str()) == TRUE; |
} |
bool DefineDosDeviceIfNotExists(const base::string16& device_name) { |
@@ -557,15 +519,14 @@ bool DefineDosDeviceIfNotExists(const base::string16& device_name) { |
return false; |
} |
- if (!DefineDosDevice(DDD_RAW_TARGET_PATH, |
- device_name.c_str(), |
+ if (!DefineDosDevice(DDD_RAW_TARGET_PATH, device_name.c_str(), |
target_path.c_str())) { |
return false; |
} |
// Check that the device is really there. |
return QueryDosDevice(device_name.c_str(), target, kStringLength) > 0 && |
- target_path.compare(target) == 0; |
+ target_path.compare(target) == 0; |
} |
HANDLE GetFileHandle(const base::string16& device_name) { |
@@ -573,10 +534,9 @@ HANDLE GetFileHandle(const base::string16& device_name) { |
// \\.\<device_name>. |
base::string16 formatted_device_name = L"\\\\.\\" + device_name; |
- return CreateFile(formatted_device_name.c_str(), |
- GENERIC_READ, |
+ return CreateFile(formatted_device_name.c_str(), GENERIC_READ, |
FILE_SHARE_READ | FILE_SHARE_WRITE, // share mode |
- 0, // security attributes |
+ 0, // security attributes |
OPEN_EXISTING, |
0, // flags and attributes |
INVALID_HANDLE_VALUE); |
@@ -587,14 +547,8 @@ int PerformQuery(HANDLE adapter_handle, |
DWORD buffer_size, |
DWORD* bytes_out) { |
DWORD oid = OID_802_11_BSSID_LIST; |
- if (!DeviceIoControl(adapter_handle, |
- IOCTL_NDIS_QUERY_GLOBAL_STATS, |
- &oid, |
- sizeof(oid), |
- buffer, |
- buffer_size, |
- bytes_out, |
- NULL)) { |
+ if (!DeviceIoControl(adapter_handle, IOCTL_NDIS_QUERY_GLOBAL_STATS, &oid, |
+ sizeof(oid), buffer, buffer_size, bytes_out, NULL)) { |
return GetLastError(); |
} |
return ERROR_SUCCESS; |
@@ -609,8 +563,8 @@ bool ResizeBuffer(int requested_size, |
return false; |
} |
- buffer->reset(reinterpret_cast<BYTE*>( |
- realloc(buffer->release(), requested_size))); |
+ buffer->reset( |
+ reinterpret_cast<BYTE*>(realloc(buffer->release(), requested_size))); |
return buffer != NULL; |
} |