Using zebra_rec_keys for per-record key store
[idzebra-moved-to-github.git] / index / zebraapi.c
index db941d8..cc7fd51 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: zebraapi.c,v 1.190 2005-10-20 18:28:10 quinn Exp $
+/* $Id: zebraapi.c,v 1.193 2005-10-28 09:22:50 adam Exp $
    Copyright (C) 1995-2005
    Index Data ApS
 
@@ -113,6 +113,7 @@ ZebraHandle zebra_open(ZebraService zs, Res res)
     zh->res = 0; 
     zh->session_res = res_open(zs->global_res, res);
     zh->user_perm = 0;
+    zh->dbaccesslist = 0;
 
     zh->reg_name = xstrdup ("");
     zh->path_reg = 0;
@@ -325,14 +326,13 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name,
 
     reg->key_buf = 0;
 
-    reg->keys.buf_max = 0;
-    reg->keys.buf = 0;
-    reg->keys.codec_handle = iscz1_start();
+    reg->keys = zebra_rec_keys_open();
 
+#if NATTR
+    reg->sortKeys = zebra_rec_keys_open();
+#else
     reg->sortKeys.buf = 0;
     reg->sortKeys.buf_max = 0;
-#if NATTR
-    reg->sortKeys.codec_handle = iscz1_start();
 #endif
 
     reg->records = 0;
@@ -495,14 +495,13 @@ static void zebra_register_close (ZebraService zs, struct zebra_register *reg)
     bfs_destroy (reg->bfs);
     data1_destroy (reg->dh);
 
-    xfree(reg->sortKeys.buf);
-    xfree(reg->keys.buf);
-    if (reg->keys.codec_handle)
-       iscz1_stop(reg->keys.codec_handle);
+    zebra_rec_keys_close(reg->keys);
 #if NATTR
-    if (reg->sortKeys.codec_handle)
-       iscz1_stop(reg->sortKeys.codec_handle);
+    zebra_rec_keys_close(rec->sortKeys);
+#else
+    xfree(reg->sortKeys.buf);
 #endif
+
     xfree(reg->key_buf);
     xfree(reg->name);
     xfree(reg);
@@ -554,8 +553,7 @@ ZEBRA_RES zebra_close (ZebraHandle zh)
 
     xfree(zh->record_encoding);
 
-    if (zh->dbaccesslist)
-       xfree(zh->dbaccesslist);
+    xfree(zh->dbaccesslist);
 
     for (i = 0; i < zh->num_basenames; i++)
         xfree(zh->basenames[i]);
@@ -1239,7 +1237,7 @@ ZEBRA_RES zebra_auth (ZebraHandle zh, const char *user, const char *pass)
     if (astring)
        zh->dbaccesslist = xstrdup(astring);
     else
-       zh->dbaccesslist = NULL;
+       zh->dbaccesslist = 0;
 
     /* users that don't require a password .. */
     if (zh->user_perm && strchr(zh->user_perm, 'a'))