X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzserver.c;h=565e652c9fb245ed2ccf9830173aa7564eacf49f;hb=060a5dbb2b5cf572656bd6513395e52ee103b8f0;hp=aeddd418d9af8b1d653ce9ae94129f0035fcff18;hpb=c6959870998f868e6a0e9201739fb54aef696bc6;p=idzebra-moved-to-github.git diff --git a/index/zserver.c b/index/zserver.c index aeddd41..565e652 100644 --- a/index/zserver.c +++ b/index/zserver.c @@ -1,4 +1,4 @@ -/* $Id: zserver.c,v 1.143 2005-12-09 10:45:05 adam Exp $ +/* $Id: zserver.c,v 1.145 2006-03-31 15:58:04 adam Exp $ Copyright (C) 1995-2005 Index Data ApS @@ -391,10 +391,11 @@ int bend_sort (void *handle, bend_sort_rr *rr) { ZebraHandle zh = (ZebraHandle) handle; - zebra_sort (zh, rr->stream, - rr->num_input_setnames, (const char **) rr->input_setnames, - rr->output_setname, rr->sort_sequence, &rr->sort_status); - zebra_result (zh, &rr->errcode, &rr->errstring); + if (zebra_sort (zh, rr->stream, + rr->num_input_setnames, (const char **) rr->input_setnames, + rr->output_setname, rr->sort_sequence, &rr->sort_status) + != ZEBRA_OK) + zebra_result (zh, &rr->errcode, &rr->errstring); return 0; } @@ -408,8 +409,9 @@ int bend_delete (void *handle, bend_delete_rr *rr) return 0; } -static int es_admin_request (ZebraHandle zh, Z_AdminEsRequest *r) +static void es_admin_request (bend_esrequest_rr *rr, ZebraHandle zh, Z_AdminEsRequest *r) { + ZEBRA_RES res = ZEBRA_OK; if (r->toKeep->databaseName) { yaz_log(YLOG_LOG, "adm request database %s", r->toKeep->databaseName); @@ -418,22 +420,26 @@ static int es_admin_request (ZebraHandle zh, Z_AdminEsRequest *r) { case Z_ESAdminOriginPartToKeep_reIndex: yaz_log(YLOG_LOG, "adm-reindex"); + rr->errcode = YAZ_BIB1_ES_IMMEDIATE_EXECUTION_FAILED; + rr->errstring = "adm-reindex not implemented yet"; break; case Z_ESAdminOriginPartToKeep_truncate: + rr->errcode = YAZ_BIB1_ES_IMMEDIATE_EXECUTION_FAILED; + rr->errstring = "adm-reindex not implemented yet"; yaz_log(YLOG_LOG, "adm-truncate"); break; case Z_ESAdminOriginPartToKeep_drop: yaz_log(YLOG_LOG, "adm-drop"); - zebra_drop_database (zh, r->toKeep->databaseName); + res = zebra_drop_database (zh, r->toKeep->databaseName); break; case Z_ESAdminOriginPartToKeep_create: yaz_log(YLOG_LOG, "adm-create %s", r->toKeep->databaseName); - zebra_create_database (zh, r->toKeep->databaseName); + res = zebra_create_database (zh, r->toKeep->databaseName); break; case Z_ESAdminOriginPartToKeep_import: yaz_log(YLOG_LOG, "adm-import"); - zebra_admin_import_begin (zh, r->toKeep->databaseName, - r->toKeep->u.import->recordType); + res = zebra_admin_import_begin (zh, r->toKeep->databaseName, + r->toKeep->u.import->recordType); break; case Z_ESAdminOriginPartToKeep_refresh: yaz_log(YLOG_LOG, "adm-refresh"); @@ -441,12 +447,17 @@ static int es_admin_request (ZebraHandle zh, Z_AdminEsRequest *r) case Z_ESAdminOriginPartToKeep_commit: yaz_log(YLOG_LOG, "adm-commit"); if (r->toKeep->databaseName) - zebra_select_database(zh, r->toKeep->databaseName); + { + if (zebra_select_database(zh, r->toKeep->databaseName) != + ZEBRA_OK) + yaz_log(YLOG_WARN, "zebra_select_database failed in " + "adm-commit"); + } zebra_commit(zh); break; case Z_ESAdminOriginPartToKeep_shutdown: yaz_log(YLOG_LOG, "shutdown"); - zebra_admin_shutdown(zh); + res = zebra_admin_shutdown(zh); break; case Z_ESAdminOriginPartToKeep_start: yaz_log(YLOG_LOG, "start"); @@ -454,24 +465,26 @@ static int es_admin_request (ZebraHandle zh, Z_AdminEsRequest *r) break; default: yaz_log(YLOG_LOG, "unknown admin"); + rr->errcode = YAZ_BIB1_ES_IMMEDIATE_EXECUTION_FAILED; + rr->errstring = "adm-reindex not implemented yet"; } - return 0; + if (res != ZEBRA_OK) + zebra_result(zh, &rr->errcode, &rr->errstring); } -static int es_admin (ZebraHandle zh, Z_Admin *r) +static void es_admin (bend_esrequest_rr *rr, ZebraHandle zh, Z_Admin *r) { switch (r->which) { case Z_Admin_esRequest: - es_admin_request (zh, r->u.esRequest); - break; - case Z_Admin_taskPackage: - yaz_log (YLOG_LOG, "adm taskpackage (unhandled)"); - break; + es_admin_request (rr, zh, r->u.esRequest); + return; default: break; } - return 0; + yaz_log (YLOG_WARN, "adm taskpackage (unhandled)"); + rr->errcode = YAZ_BIB1_ES_IMMEDIATE_EXECUTION_FAILED; + rr->errstring = "adm-task package (unhandled)"; } int bend_segment (void *handle, bend_segment_rr *rr) @@ -501,9 +514,7 @@ int bend_esrequest (void *handle, bend_esrequest_rr *rr) } else if (rr->esr->taskSpecificParameters->which == Z_External_ESAdmin) { - es_admin (zh, rr->esr->taskSpecificParameters->u.adminService); - - zebra_result (zh, &rr->errcode, &rr->errstring); + es_admin(rr, zh, rr->esr->taskSpecificParameters->u.adminService); } else if (rr->esr->taskSpecificParameters->which == Z_External_update) { @@ -723,7 +734,11 @@ int bend_esrequest (void *handle, bend_esrequest_rr *rr) } } } - zebra_end_trans (zh); + if (zebra_end_trans (zh) != ZEBRA_OK) + { + yaz_log(YLOG_WARN, "zebra_end_trans failed for" + " extended service operation"); + } } } }