X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzebrasrv.c;h=d7989774b7ffcd2348051aacd99437b2ec554290;hb=85c5e09eacc5c89eda6e1ffa6f039fa1e8dd7221;hp=234fae042e703ef6f6d623dcf740302388b676b1;hpb=0f563f23506dabd7c84bdb750d4539b2b6cacf02;p=idzebra-moved-to-github.git diff --git a/index/zebrasrv.c b/index/zebrasrv.c index 234fae0..d798977 100644 --- a/index/zebrasrv.c +++ b/index/zebrasrv.c @@ -1,4 +1,4 @@ -/* $Id: zebrasrv.c,v 1.6 2007-01-16 15:01:15 adam Exp $ +/* $Id: zebrasrv.c,v 1.10 2007-02-02 13:48:13 adam Exp $ Copyright (C) 1995-2007 Index Data ApS @@ -261,6 +261,15 @@ static void search_terms(ZebraHandle zh, bend_search_rr *r) } } + +static int break_handler(void *client_data) +{ + bend_association assoc =(bend_association) client_data; + if (!bend_assoc_is_alive(assoc)) + return 1; + return 0; +} + int bend_search(void *handle, bend_search_rr *r) { ZebraHandle zh = (ZebraHandle) handle; @@ -274,6 +283,7 @@ int bend_search(void *handle, bend_search_rr *r) zebra_result (zh, &r->errcode, &r->errstring); return 0; } + zebra_set_break_handler(zh, break_handler, r->association); yaz_log (YLOG_DEBUG, "ResultSet '%s'", r->setname); switch (r->query->which) { @@ -299,6 +309,7 @@ int bend_search(void *handle, bend_search_rr *r) default: r->errcode = YAZ_BIB1_QUERY_TYPE_UNSUPP; } + zebra_set_break_handler(zh, 0, 0); return 0; } @@ -765,7 +776,7 @@ static void bend_start (struct statserv_options_block *sob) zebra_stop((ZebraService) sob->handle); res_set(default_res, "profilePath", DEFAULT_PROFILE_PATH); res_set(default_res, "modulePath", DEFAULT_MODULE_PATH); - sob->handle = zebra_start(sob->configname); + sob->handle = zebra_start_res(sob->configname, default_res, 0); res_close(default_res); if (!sob->handle) {