X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=ztest%2Fztest.c;h=77e2406feef41ca4bbaacd092bacb9b11c4eabc2;hb=c23776e0c46dc3ae8bff5e4f4a2086a44fedbf07;hp=72741309706d80629bd42aec0989bd0700465db5;hpb=9dcf8b86675f48ecc89588960ec2b7a785aa05bc;p=yaz-moved-to-github.git diff --git a/ztest/ztest.c b/ztest/ztest.c index 7274130..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.56 2003-02-28 15:59:02 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))) { @@ -596,6 +617,20 @@ int ztest_scan(void *handle, bend_scan_rr *q) return 0; } +static int ztest_explain(void *handle, bend_explain_rr *rr) +{ + if (rr->database && !strcmp(rr->database, "Default")) + { + rr->explain_buf = "\n" + "\t\n" + "\t\tlocalhost\n" + "\t\t210\n" + "\t\n" + "\n"; + } + return 0; +} + bend_initresult *bend_init(bend_initrequest *q) { bend_initresult *r = (bend_initresult *) @@ -613,6 +648,8 @@ bend_initresult *bend_init(bend_initrequest *q) q->bend_delete = ztest_delete; q->bend_fetch = ztest_fetch; q->bend_scan = ztest_scan; + q->bend_explain = ztest_explain; + return r; }