Initial work to move buzhash into libzck
authorJonathan Dieter <jdieter@gmail.com>
Sun, 8 Jul 2018 19:54:27 +0000 (20:54 +0100)
committerJonathan Dieter <jdieter@gmail.com>
Sun, 8 Jul 2018 19:54:32 +0000 (20:54 +0100)
Signed-off-by: Jonathan Dieter <jdieter@gmail.com>
src/lib/zck.c
src/lib/zck_private.h

index a0c35787c8b81e63a837c524aed20f76edd2a318..e45c0299b42f6befa73d220ab07b989c72750191 100644 (file)
@@ -68,7 +68,6 @@ static void zck_clear(zckCtx *zck) {
     index_free(zck);
     if(zck->header)
         free(zck->header);
-    zck->fd = -1;
     zck->header = NULL;
     zck->header_size = 0;
     if(!comp_close(zck))
@@ -89,6 +88,7 @@ static void zck_clear(zckCtx *zck) {
         close(zck->temp_fd);
         zck->temp_fd = 0;
     }
+    zck->fd = -1;
 }
 
 static int hex_to_int (char c) {
@@ -337,6 +337,8 @@ zckCtx PUBLIC *zck_create() {
     }
     zck->prep_hash_type = -1;
     zck->prep_hdr_size = -1;
+    zck->buzhash_width = DEFAULT_BUZHASH_WIDTH;
+    zck->buzhash_match_bits = (2^DEFAULT_BUZHASH_BITS) - 1;
     return zck;
 }
 
index 84948b2bdf88f133e02213c4d3748c1dd14e15fd..61b6a6ce1dec6d67d553b82acd6805156ad087d2 100644 (file)
@@ -12,6 +12,9 @@
 #define ZCK_MODE_READ 0
 #define ZCK_MODE_WRITE 1
 
+#define DEFAULT_BUZHASH_WIDTH 48
+#define DEFAULT_BUZHASH_BITS 15
+
 #define zmalloc(x) calloc(1, x)
 
 #define PUBLIC __attribute__((visibility("default")))
@@ -204,6 +207,9 @@ typedef struct zckCtx {
 
     char *data;
     size_t data_size;
+
+    int buzhash_width;
+    int buzhash_match_bits;
 } zckCtx;
 
 int get_tmp_fd()