diff options
author | Robin Krahl <me@robin-krahl.de> | 2018-04-04 23:54:07 +0200 |
---|---|---|
committer | Szczepan Zalega <szczepan@nitrokey.com> | 2018-04-10 08:14:23 +0200 |
commit | 5a56b83084d797728e5ed557cce2637b3a1e7e56 (patch) | |
tree | c153252fee78ad705c7784737606d750b3eb9978 /NK_C_API.cc | |
parent | 45a0b1cecde0eeecf8b8be75ec24d1ecc3ad884f (diff) | |
download | libnitrokey-5a56b83084d797728e5ed557cce2637b3a1e7e56.tar.gz libnitrokey-5a56b83084d797728e5ed557cce2637b3a1e7e56.tar.bz2 |
Add NK_login_enum to the C API
As with the C++ API, identifying the model by the first character of a
string is not intuitive. This patch adds the NK_login_enum function to
the C API that accepts an enum value instead of a string. It also adds
a new enum NK_device_model as device::DeviceModel is an enum class and
therefore cannot be used in C.
Diffstat (limited to 'NK_C_API.cc')
-rw-r--r-- | NK_C_API.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/NK_C_API.cc b/NK_C_API.cc index 64355f5..b245940 100644 --- a/NK_C_API.cc +++ b/NK_C_API.cc @@ -161,6 +161,22 @@ extern "C" { return 0; } + NK_C_API int NK_login_enum(NK_device_model device_model) { + const char *model_string; + switch (device_model) { + case NK_PRO: + model_string = "P"; + break; + case NK_STORAGE: + model_string = "S"; + break; + default: + /* no such enum value -- return error code */ + return 0; + } + return NK_login(model_string); + } + NK_C_API int NK_logout() { auto m = NitrokeyManager::instance(); return get_without_result([&]() { |