From cc533f5e1cbc5c58102668105dff9f3044767ca9 Mon Sep 17 00:00:00 2001
From: ANTA <arcticshine999@gmail.com>
Date: Mon, 15 Jul 2019 19:25:33 +0400
Subject: [PATCH] 1.1-11-Win

---
 CMakeLists.txt                   | 20 +++++++++++++++++++-
 dap_chain_global_db.c            |  5 ++++-
 dap_chain_global_db_driver_cdb.c | 16 ++++++++++++++--
 3 files changed, 37 insertions(+), 4 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index ecaf5ef..bc89b69 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,9 +4,27 @@ project (dap_chain_global_db)
 file(GLOB DAP_CHAIN_GLOBAL_DB_SRC *.c)
 file(GLOB DAP_CHAIN_GLOBAL_DB_HDR *.h)
 
+if(WIN32)
+  include_directories(../libdap/src/win32/)
+  include_directories(../3rdparty/libmemcached/)
+  include_directories(../3rdparty/libmemcached/win32/)
+  include_directories(../3rdparty/wepoll/include/)
+  include_directories(../3rdparty/uthash/src/)
+  include_directories(../3rdparty/libjson-c/)
+  include_directories(../3rdparty/libmagic/src/)
+  include_directories(../3rdparty/curl/include/)
+  include_directories(../3rdparty/libsqlite3/)
+endif()
+
 add_library(${PROJECT_NAME} STATIC ${DAP_CHAIN_GLOBAL_DB_SRC} ${DAP_CHAIN_GLOBAL_DB_HDR})
 
-target_link_libraries(dap_chain_global_db dap_core dap_crypto dap_chain dap_chain_crypto ldb talloc tevent sqlite3 ${CMAKE_CURRENT_SOURCE_DIR}/libcuttdb.a)
+if(WIN32)
+  target_link_libraries(dap_chain_global_db dap_core dap_crypto dap_chain dap_chain_crypto)
+endif()
+if(UNIX)
+  target_link_libraries(dap_chain_global_db dap_core dap_crypto dap_chain dap_chain_crypto ldb talloc tevent sqlite3 ${CMAKE_CURRENT_SOURCE_DIR}/libcuttdb.a)
+endif()
+
 target_include_directories(dap_chain_global_db INTERFACE .)
 
 set(${PROJECT_NAME}_DEFINITIONS CACHE INTERNAL "${PROJECT_NAME}: Definitions" FORCE)
diff --git a/dap_chain_global_db.c b/dap_chain_global_db.c
index 1d8b482..8dd906a 100755
--- a/dap_chain_global_db.c
+++ b/dap_chain_global_db.c
@@ -77,7 +77,10 @@ char * extract_group_prefix(const char * a_group)
 {
     char * l_group_prefix = NULL, *l_delimeter;
     size_t l_group_prefix_size;
-    l_delimeter = index(a_group, '.');
+
+//    l_delimeter = index(a_group, '.');
+    l_delimeter = strchr(a_group, '.');
+
     if(l_delimeter == NULL) {
         l_group_prefix = dap_strdup(a_group);
         l_group_prefix_size = dap_strlen(l_group_prefix) + 1;
diff --git a/dap_chain_global_db_driver_cdb.c b/dap_chain_global_db_driver_cdb.c
index 67742a3..85ac361 100644
--- a/dap_chain_global_db_driver_cdb.c
+++ b/dap_chain_global_db_driver_cdb.c
@@ -187,7 +187,13 @@ int dap_db_driver_cdb_init(const char *a_cdb_path, dap_db_driver_callbacks_t *a_
     if(s_cdb_path[strlen(s_cdb_path)] == '/') {
         s_cdb_path[strlen(s_cdb_path)] = '\0';
     }
+
+#ifdef _WIN32
+    mkdir(s_cdb_path);
+#else
     mkdir(s_cdb_path, 0755);
+#endif
+
     struct dirent *d;
     DIR *dir = opendir(s_cdb_path);
     if (!dir) {
@@ -229,7 +235,13 @@ int dap_cdb_add_group(const char *a_group) {
     strcat(l_cdb_path, s_cdb_path);
     strcat(l_cdb_path, "/");
     strcat(l_cdb_path, a_group);
+
+#ifdef _WIN32
+    mkdir(l_cdb_path);
+#else
     mkdir(l_cdb_path, 0755);
+#endif
+
     return 0;
 }
 
@@ -312,7 +324,7 @@ dap_store_obj_t *dap_db_driver_cdb_read_store_obj(const char *a_group, const cha
         if(a_count_out) {
             *a_count_out = l_count_out;
         }
-        for (ulong i = 0; i < l_count_out; ++i) {
+        for (uint64_t i = 0; i < l_count_out; ++i) {
             l_arg.o[i].group = dap_strdup(a_group);
         }
         l_obj = l_arg.o;
@@ -360,7 +372,7 @@ dap_store_obj_t* dap_db_driver_cdb_read_cond_store_obj(const char *a_group, uint
     if(a_count_out) {
         *a_count_out = l_count_out;
     }
-    for (ulong i = 0; i < l_count_out; ++i) {
+    for (uint64_t i = 0; i < l_count_out; ++i) {
         l_arg.o[i].group = dap_strdup(a_group);
     }
     return l_arg.o;
-- 
GitLab