X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=ztest%2Fztest.c;h=77e2406feef41ca4bbaacd092bacb9b11c4eabc2;hb=9a32992b1041bf622fdc4825262f5f7110494cce;hp=c7e0679a4eb1b2daf8a27a69be1c6d88df36a4d5;hpb=6bffc65936ba634077acb9f42ace217bc4737539;p=yaz-moved-to-github.git
diff --git a/ztest/ztest.c b/ztest/ztest.c
index c7e0679..77e2406 100644
--- a/ztest/ztest.c
+++ b/ztest/ztest.c
@@ -1,8 +1,8 @@
/*
- * Copyright (c) 1995-2003, Index Data.
+ * Copyright (c) 1995-2004, Index Data.
* See the file LICENSE for details.
*
- * $Id: ztest.c,v 1.57 2003-03-24 22:26:51 adam Exp $
+ * $Id: ztest.c,v 1.65 2004-09-30 21:54:22 adam Exp $
*/
/*
@@ -34,6 +34,15 @@ int ztest_search (void *handle, bend_search_rr *rr)
rr->errcode = 23;
return 0;
}
+#if NMEM_DEBUG
+ /* if database is stop, stop this process.. For debugging only. */
+ if (!yaz_matchstr (rr->basenames[0], "stop"))
+ {
+ nmem_print_list_l(LOG_LOG);
+ exit(0);
+ }
+#endif
+ /* Throw Database unavailable if other than Default */
if (yaz_matchstr (rr->basenames[0], "Default"))
{
rr->errcode = 109;
@@ -386,6 +395,10 @@ int ztest_esrequest (void *handle, bend_esrequest_rr *rr)
}
}
}
+ else if (rr->esr->taskSpecificParameters->which == Z_External_update0)
+ {
+ yaz_log(LOG_LOG, "Received DB Update (version 0)");
+ }
else
{
yaz_log (LOG_WARN, "Unknown Extended Service(%d)",
@@ -409,7 +422,7 @@ int ztest_delete (void *handle, bend_delete_rr *rr)
int ztest_sort (void *handle, bend_sort_rr *rr)
{
rr->errcode = 0;
- rr->sort_status = Z_SortStatus_success;
+ rr->sort_status = Z_SortResponse_success;
return 0;
}
@@ -424,7 +437,7 @@ int ztest_present (void *handle, bend_present_rr *rr)
int ztest_fetch(void *handle, bend_fetch_rr *r)
{
char *cp;
- r->errstring = 0;
+
r->last_in_set = 0;
r->basename = "Default";
r->output_format = r->request_format;
@@ -476,12 +489,20 @@ int ztest_fetch(void *handle, bend_fetch_rr *r)
fread (r->record, size, 1, f);
fclose (f);
}
- else if (r->request_format == VAL_TEXT_XML &&
- (cp = dummy_xml_record (r->number, r->stream)))
+ else if (r->request_format == VAL_TEXT_XML)
{
- r->len = strlen(cp);
- r->record = cp;
- r->output_format = VAL_TEXT_XML;
+ if ((cp = dummy_xml_record (r->number, r->stream)))
+ {
+ r->len = strlen(cp);
+ r->record = cp;
+ r->output_format = VAL_TEXT_XML;
+ }
+ else
+ {
+ r->errcode = 14;
+ r->surrogate_flag = 1;
+ return 0;
+ }
}
else if ((cp = dummy_marc_record(r->number, r->stream)))
{
@@ -598,12 +619,15 @@ int ztest_scan(void *handle, bend_scan_rr *q)
static int ztest_explain(void *handle, bend_explain_rr *rr)
{
- rr->explain_buf = "\n"
- "\t\n"
- "\t\tlocalhost\n"
- "\t\t210\n"
- "\t\n"
- "\n";
+ if (rr->database && !strcmp(rr->database, "Default"))
+ {
+ rr->explain_buf = "\n"
+ "\t\n"
+ "\t\tlocalhost\n"
+ "\t\t210\n"
+ "\t\n"
+ "\n";
+ }
return 0;
}
@@ -625,6 +649,7 @@ bend_initresult *bend_init(bend_initrequest *q)
q->bend_fetch = ztest_fetch;
q->bend_scan = ztest_scan;
q->bend_explain = ztest_explain;
+
return r;
}