diff options
Diffstat (limited to 'windows/nsis-plugins/src/driverlogic/context.cpp')
| -rw-r--r-- | windows/nsis-plugins/src/driverlogic/context.cpp | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/windows/nsis-plugins/src/driverlogic/context.cpp b/windows/nsis-plugins/src/driverlogic/context.cpp index e65900582c..2fe33e22cd 100644 --- a/windows/nsis-plugins/src/driverlogic/context.cpp +++ b/windows/nsis-plugins/src/driverlogic/context.cpp @@ -274,15 +274,28 @@ std::set<Context::NetworkAdapter> GetTapAdapters() // Construct NetworkAdapter // - const std::wstring guid = GetNetCfgInstanceId(devInfo, devInfoData); - GUID guidObj = common::Guid::FromString(guid); + try + { + const std::wstring guid = GetNetCfgInstanceId(devInfo, devInfoData); + GUID guidObj = common::Guid::FromString(guid); - adapters.emplace(Context::NetworkAdapter( - guid, - GetDeviceStringProperty(devInfo, &devInfoData, &DEVPKEY_Device_DriverDesc), - nci.getConnectionName(guidObj), - GetDeviceInstanceId(devInfo, &devInfoData) - )); + adapters.emplace(Context::NetworkAdapter( + guid, + GetDeviceStringProperty(devInfo, &devInfoData, &DEVPKEY_Device_DriverDesc), + nci.getConnectionName(guidObj), + GetDeviceInstanceId(devInfo, &devInfoData) + )); + } + catch (const std::exception &e) + { + // + // Log exception and skip this adapter + // + + std::string msg = "Skipping TAP adapter due to exception caught while iterating: "; + msg.append(e.what()); + PluginLog(std::wstring(msg.begin(), msg.end())); + } } return adapters; |
