aboutsummaryrefslogtreecommitdiffstats
path: root/api/adapter.c
diff options
context:
space:
mode:
Diffstat (limited to 'api/adapter.c')
-rw-r--r--api/adapter.c41
1 files changed, 14 insertions, 27 deletions
diff --git a/api/adapter.c b/api/adapter.c
index c929b64..774433a 100644
--- a/api/adapter.c
+++ b/api/adapter.c
@@ -471,40 +471,27 @@ static BOOL
IsPoolMember(_In_z_ const WCHAR *Pool, _In_ HDEVINFO DevInfo, _In_ SP_DEVINFO_DATA *DevInfoData)
{
WCHAR *DeviceDesc = GetDeviceRegistryString(DevInfo, DevInfoData, SPDRP_DEVICEDESC);
- if (!DeviceDesc)
- {
- LOG(WINTUN_LOG_ERR, L"Failed to get adapter description");
- return FALSE;
- }
+ WCHAR *FriendlyName = GetDeviceRegistryString(DevInfo, DevInfoData, SPDRP_FRIENDLYNAME);
DWORD LastError = ERROR_SUCCESS;
BOOL Ret = FALSE;
- WCHAR *FriendlyName = GetDeviceRegistryString(DevInfo, DevInfoData, SPDRP_FRIENDLYNAME);
- if (!FriendlyName)
- {
- LastError = LOG(WINTUN_LOG_ERR, L"Failed to get adapter friendly name");
- goto cleanupDeviceDesc;
- }
WCHAR PoolDeviceTypeName[MAX_POOL_DEVICE_TYPE];
if (!GetPoolDeviceTypeName(Pool, PoolDeviceTypeName))
{
LastError = GetLastError();
- goto cleanupFriendlyName;
- }
- if (!_wcsicmp(FriendlyName, PoolDeviceTypeName) || !_wcsicmp(DeviceDesc, PoolDeviceTypeName))
- {
- Ret = TRUE;
- goto cleanupFriendlyName;
- }
- RemoveNumberedSuffix(FriendlyName);
- RemoveNumberedSuffix(DeviceDesc);
- if (!_wcsicmp(FriendlyName, PoolDeviceTypeName) || !_wcsicmp(DeviceDesc, PoolDeviceTypeName))
- {
- Ret = TRUE;
- goto cleanupFriendlyName;
- }
-cleanupFriendlyName:
+ goto cleanupNames;
+ }
+ Ret = (FriendlyName && !_wcsicmp(FriendlyName, PoolDeviceTypeName)) ||
+ (DeviceDesc && !_wcsicmp(DeviceDesc, PoolDeviceTypeName));
+ if (Ret)
+ goto cleanupNames;
+ if (FriendlyName)
+ RemoveNumberedSuffix(FriendlyName);
+ if (DeviceDesc)
+ RemoveNumberedSuffix(DeviceDesc);
+ Ret = (FriendlyName && !_wcsicmp(FriendlyName, PoolDeviceTypeName)) ||
+ (DeviceDesc && !_wcsicmp(DeviceDesc, PoolDeviceTypeName));
+cleanupNames:
Free(FriendlyName);
-cleanupDeviceDesc:
Free(DeviceDesc);
SetLastError(LastError);
return Ret;