diff options
author | Robin Krahl <me@robin-krahl.de> | 2019-01-14 19:03:53 +0100 |
---|---|---|
committer | Robin Krahl <me@robin-krahl.de> | 2019-01-14 19:03:53 +0100 |
commit | be6fd465ded13b4dd5b8ea10834a296efb8f1424 (patch) | |
tree | 886f7cff72ce1d13c4ce1a598bbc1b259d313ff3 | |
parent | 1f3da5c76acb20b2183ac52373ed3b0b63e1151e (diff) | |
download | libnitrokey-fix/progress-bar-error.tar.gz libnitrokey-fix/progress-bar-error.tar.bz2 |
Return -2 if an error occured in NK_get_progress_bar_valuefix/progress-bar-error
NK_get_progress_bar_value returns the progress value from 0 to 100 or -1
if there is no pending operation. In the previous implementation, it
also returned zero if an error occurred, making it impossible to
distinguish progress zero and an error. Therefore, we change the return
value to -2 if an error occured.
-rw-r--r-- | NK_C_API.cc | 4 | ||||
-rw-r--r-- | NK_C_API.h | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/NK_C_API.cc b/NK_C_API.cc index 7d0a10e..aa2d452 100644 --- a/NK_C_API.cc +++ b/NK_C_API.cc @@ -697,9 +697,9 @@ NK_C_API char* NK_get_SD_usage_data_as_string() { NK_C_API int NK_get_progress_bar_value() { auto m = NitrokeyManager::instance(); - return get_with_result([&]() { + return std::get<1>(get_with_status([&]() { return m->get_progress_bar_value(); - }); + }, -2)); } NK_C_API int NK_get_major_firmware_version() { @@ -747,7 +747,8 @@ extern "C" { /** * Get progress value of current long operation. * Storage only - * @return int in range 0-100 or -1 if device is not busy + * @return int in range 0-100 or -1 if device is not busy or -2 if an + * error occured */ NK_C_API int NK_get_progress_bar_value(); |