Fixed problem with close of lock file for WIN32.
[idzebra-moved-to-github.git] / index / zebraapi.c
index 69dd5a0..6e2461b 100644 (file)
@@ -3,7 +3,13 @@
  * All rights reserved.
  *
  * $Log: zebraapi.c,v $
- * Revision 1.34  2000-06-09 13:56:38  ian
+ * Revision 1.36  2000-09-06 08:59:36  adam
+ * Using read-only (for now) for server.
+ *
+ * Revision 1.35  2000/07/07 12:49:20  adam
+ * Optimized resultSetInsert{Rank,Sort}.
+ *
+ * Revision 1.34  2000/06/09 13:56:38  ian
  * Added some logging on Authentication and searches.
  *
  * Revision 1.33  2000/05/18 12:01:36  adam
@@ -213,7 +219,7 @@ ZebraHandle zebra_open (ZebraService zs)
     return zh;
 }
 
-static int zebra_register_activate (ZebraService zh);
+static int zebra_register_activate (ZebraService zh, int rw);
 static int zebra_register_deactivate (ZebraService zh);
 
 ZebraService zebra_start (const char *configName)
@@ -227,11 +233,11 @@ ZebraService zebra_start (const char *configName)
     zh->stop_flag = 0;
     zh->active = 0;
     zebra_mutex_cond_init (&zh->session_lock);
-    zebra_register_activate (zh);
+    zebra_register_activate (zh, 0);
     return zh;
 }
 
-static int zebra_register_activate (ZebraService zh)
+static int zebra_register_activate (ZebraService zh, int rw)
 {
     if (zh->active)
        return 0;
@@ -286,17 +292,17 @@ static int zebra_register_activate (ZebraService zh)
            passwd_db_file (zh->passwd_db, res_get (zh->res, "passwd"));
     }
 
-    if (!(zh->records = rec_open (zh->bfs, 1, 0)))
+    if (!(zh->records = rec_open (zh->bfs, rw, 0)))
     {
        logf (LOG_WARN, "rec_open");
        return -1;
     }
-    if (!(zh->dict = dict_open (zh->bfs, FNAME_DICT, 80, 1, 0)))
+    if (!(zh->dict = dict_open (zh->bfs, FNAME_DICT, 80, rw, 0)))
     {
        logf (LOG_WARN, "dict_open");
        return -1;
     }
-    if (!(zh->sortIdx = sortIdx_open (zh->bfs, 0)))
+    if (!(zh->sortIdx = sortIdx_open (zh->bfs, rw)))
     {
        logf (LOG_WARN, "sortIdx_open");
        return -1;
@@ -304,7 +310,7 @@ static int zebra_register_activate (ZebraService zh)
     if (res_get_match (zh->res, "isam", "s", ISAM_DEFAULT))
     {
        struct ISAMS_M_s isams_m;
-       if (!(zh->isams = isams_open (zh->bfs, FNAME_ISAMS, 1,
+       if (!(zh->isams = isams_open (zh->bfs, FNAME_ISAMS, rw,
                                      key_isams_m(zh->res, &isams_m))))
        {
            logf (LOG_WARN, "isams_open");
@@ -314,7 +320,7 @@ static int zebra_register_activate (ZebraService zh)
 #if ZMBOL
     else if (res_get_match (zh->res, "isam", "i", ISAM_DEFAULT))
     {
-       if (!(zh->isam = is_open (zh->bfs, FNAME_ISAM, key_compare, 1,
+       if (!(zh->isam = is_open (zh->bfs, FNAME_ISAM, key_compare, rw,
                                  sizeof (struct it_key), zh->res)))
        {
            logf (LOG_WARN, "is_open");
@@ -325,7 +331,7 @@ static int zebra_register_activate (ZebraService zh)
     {
        struct ISAMC_M_s isamc_m;
        if (!(zh->isamc = isc_open (zh->bfs, FNAME_ISAMC,
-                                   1, key_isamc_m(zh->res, &isamc_m))))
+                                   rw, key_isamc_m(zh->res, &isamc_m))))
        {
            logf (LOG_WARN, "isc_open");
            return -1;
@@ -336,7 +342,7 @@ static int zebra_register_activate (ZebraService zh)
        struct ISAMD_M_s isamd_m;
        
        if (!(zh->isamd = isamd_open (zh->bfs, FNAME_ISAMD,
-                                     1, key_isamd_m(zh->res, &isamd_m))))
+                                     rw, key_isamd_m(zh->res, &isamd_m))))
        {
            logf (LOG_WARN, "isamd_open");
            return -1;
@@ -344,7 +350,7 @@ static int zebra_register_activate (ZebraService zh)
     }
 #endif
     zh->zei = zebraExplain_open (zh->records, zh->dh,
-                                zh->res, 1, 0 /* rGroup */,
+                                zh->res, rw, 0 /* rGroup */,
                                 explain_extract);
     if (!zh->zei)
     {
@@ -374,7 +380,7 @@ void zebra_admin_start (ZebraHandle zh)
     zh->errCode = 0;
     zebra_mutex_cond_lock (&zs->session_lock);
     if (!zs->stop_flag)
-       zebra_register_activate(zs);
+       zebra_register_activate(zs, 0);
     zebra_mutex_cond_unlock (&zs->session_lock);
 }
 
@@ -387,7 +393,7 @@ static int zebra_register_deactivate (ZebraService zh)
     zebra_chdir (zh);
     if (zh->records)
     {
-        zebraExplain_close (zh->zei, 1);
+        zebraExplain_close (zh->zei, 0);
         dict_close (zh->dict);
        sortIdx_close (zh->sortIdx);
        if (zh->isams)