Added MARC filter - type grs.marc.<syntax> where syntax refers
[idzebra-moved-to-github.git] / index / zserver.c
index 3e38dad..6fa3fae 100644 (file)
@@ -4,7 +4,17 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: zserver.c,v $
- * Revision 1.43  1996-11-15 15:03:58  adam
+ * Revision 1.46  1997-07-28 08:30:47  adam
+ * Server returns diagnostic 14 when record doesn't exist.
+ *
+ * Revision 1.45  1996/12/23 15:30:45  adam
+ * Work on truncation.
+ * Bug fix: result sets weren't deleted after server shut down.
+ *
+ * Revision 1.44  1996/12/11 12:08:01  adam
+ * Added better compression.
+ *
+ * Revision 1.43  1996/11/15 15:03:58  adam
  * Logging of execution speed by using the times(2) call.
  *
  * Revision 1.42  1996/11/08  11:10:36  adam
 #include <recctrl.h>
 #include <dmalloc.h>
 
-#ifdef __LINUX__
+#define USE_TIMES 1
+#ifdef __linux__
 #define USE_TIMES 1
 #endif
 
@@ -382,12 +393,8 @@ static int record_fetch (ZServerInfo *zi, int sysno, int score, ODR stream,
     rec = rec_get (zi->records, sysno);
     if (!rec)
     {
-        char *msg = "Record is deleted\n";
-        *output_format = VAL_SUTRS;
-        *rec_bufp = msg;
-        *rec_lenp = strlen (msg);
         logf (LOG_DEBUG, "rec_get fail on sysno=%d", sysno);
-        return 0;
+        return 14;
     }
     file_type = rec->info[recInfo_fileType];
     fname = rec->info[recInfo_filename];
@@ -415,15 +422,11 @@ static int record_fetch (ZServerInfo *zi, int sysno, int score, ODR stream,
     {
         if ((fd = open (fname, O_RDONLY)) == -1)
         {
-            char *msg = "Record doesn't exist\n";
-            logf (LOG_WARN|LOG_ERRNO, "Retrieve: Open record file %s", fname);
-            *output_format = VAL_SUTRS;
-            *rec_bufp = msg;
-            *rec_lenp = strlen (msg);
+            logf (LOG_WARN|LOG_ERRNO, "Retrieve fail; missing file: %s",
+                 fname);
             rec_rm (&rec);
-            return 0;     /* or 14: System error in presenting records */
+            return 14;
         }
-
         memcpy (&record_offset, rec->info[recInfo_offset],
                 sizeof(record_offset));
 
@@ -525,6 +528,7 @@ void bend_close (void *handle)
 {
     if (server_info.records)
     {
+        resultSetDestroy (&server_info);
         dict_close (server_info.dict);
         if (server_info.isam)
             is_close (server_info.isam);