summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzczepan Zalega <szczepan@nitrokey.com>2017-04-25 22:25:03 +0200
committerSzczepan Zalega <szczepan@nitrokey.com>2017-04-25 22:33:05 +0200
commit6e681f48d058cbc7be60556aaf9643f72101be68 (patch)
tree90159627bad0fc70b71a7bac937727c70e1f45c2
parent6e5847809c5c4c68f916fda4351c0b5e279915ed (diff)
downloadlibnitrokey-6e681f48d058cbc7be60556aaf9643f72101be68.tar.gz
libnitrokey-6e681f48d058cbc7be60556aaf9643f72101be68.tar.bz2
Use own strndup implementation under Windows
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
-rw-r--r--NitrokeyManager.cc12
-rw-r--r--include/NitrokeyManager.h5
2 files changed, 17 insertions, 0 deletions
diff --git a/NitrokeyManager.cc b/NitrokeyManager.cc
index 60c1a24..5939cbf 100644
--- a/NitrokeyManager.cc
+++ b/NitrokeyManager.cc
@@ -14,6 +14,18 @@ namespace nitrokey{
std::mutex mex_dev_com;
+#ifdef __WIN32
+#pragma message "Using own strndup"
+char * strndup(const char* str, size_t maxlen){
+ size_t len = strnlen(str, maxlen);
+ char* dup = (char *) malloc(len + 1);
+ memcpy(dup, str, len);
+ dup[len] = 0;
+ return dup;
+}
+#endif
+
+
/**
* Copies string from pointer to fixed size C-style array. Src needs to be a valid C-string - eg. ended with '\0'.
diff --git a/include/NitrokeyManager.h b/include/NitrokeyManager.h
index 51cd966..e3dcc45 100644
--- a/include/NitrokeyManager.h
+++ b/include/NitrokeyManager.h
@@ -18,6 +18,11 @@ namespace nitrokey {
using namespace nitrokey::proto;
using namespace nitrokey::log;
+
+#ifdef __WIN32
+char * strndup(const char* str, size_t maxlen);
+#endif
+
class NitrokeyManager {
public:
static shared_ptr <NitrokeyManager> instance();