diff options
author | Szczepan Zalega <szczepan@nitrokey.com> | 2017-01-31 18:17:58 +0100 |
---|---|---|
committer | Szczepan Zalega <szczepan@nitrokey.com> | 2017-03-11 15:41:41 +0100 |
commit | 9bc6b85e12d73a43b8d85ba109acff8778f4c08a (patch) | |
tree | 48295a08b01988a8aa12674162385681dd937824 /device.cc | |
parent | 03f444905d3a7af3091c2401280e83146f08443a (diff) | |
download | libnitrokey-9bc6b85e12d73a43b8d85ba109acff8778f4c08a.tar.gz libnitrokey-9bc6b85e12d73a43b8d85ba109acff8778f4c08a.tar.bz2 |
Throw before communicating with device if it is not initialized
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Diffstat (limited to 'device.cc')
-rw-r--r-- | device.cc | 13 |
1 files changed, 9 insertions, 4 deletions
@@ -7,6 +7,7 @@ #include "include/device.h" #include "include/log.h" #include <mutex> +#include "DeviceCommunicationExceptions.h" std::mutex mex_dev_com; @@ -60,8 +61,10 @@ int Device::send(const void *packet) { std::lock_guard<std::mutex> lock(mex_dev_com); Log::instance()(std::string(__FUNCTION__) + std::string(" *IN* "), Loglevel::DEBUG_L2); - if (mp_devhandle == nullptr) - throw std::runtime_error("Attempted HID send on an invalid descriptor."); //TODO migrate except to library_error + if (mp_devhandle == nullptr) { + Log::instance()(std::string("Connection fail") , Loglevel::DEBUG_L2); + throw DeviceNotConnected("Attempted HID send on an invalid descriptor."); + } return (hid_send_feature_report( mp_devhandle, (const unsigned char *)(packet), HID_REPORT_SIZE)); @@ -75,8 +78,10 @@ int Device::recv(void *packet) { int retry_count = 0; - if (mp_devhandle == nullptr) - throw std::runtime_error("Attempted HID receive on an invalid descriptor."); //TODO migrate except to library_error + if (mp_devhandle == nullptr){ + Log::instance()(std::string("Connection fail") , Loglevel::DEBUG_L2); + throw DeviceNotConnected("Attempted HID receive on an invalid descriptor."); + } // FIXME extract error handling and repeating to parent function in // device_proto:192 |