X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzserver.c;h=87dab70fe5014b1cc51c1937dccbbf4e4a432456;hb=d8e960f5f1060148a5fffa7a767c72391662fbdc;hp=3077ed1e72e18e6db6b024c3026ab599ee41b360;hpb=be946e8fca9b807679467d508ccfe0f4b450f2d0;p=idzebra-moved-to-github.git diff --git a/index/zserver.c b/index/zserver.c index 3077ed1..87dab70 100644 --- a/index/zserver.c +++ b/index/zserver.c @@ -1,6 +1,6 @@ -/* $Id: zserver.c,v 1.126 2004-12-21 22:00:57 adam Exp $ - Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 - Index Data Aps +/* $Id: zserver.c,v 1.131 2005-04-15 10:47:49 adam Exp $ + Copyright (C) 1995-2005 + Index Data ApS This file is part of the Zebra server. @@ -20,8 +20,9 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include #include +#include +#include #include #ifdef WIN32 #include @@ -261,6 +262,8 @@ static void search_terms (ZebraHandle zh, bend_search_rr *r) int bend_search (void *handle, bend_search_rr *r) { ZebraHandle zh = (ZebraHandle) handle; + zint zhits = 0; + ZEBRA_RES res; r->hits = 0; r->errcode = 0; @@ -276,11 +279,18 @@ int bend_search (void *handle, bend_search_rr *r) switch (r->query->which) { case Z_Query_type_1: case Z_Query_type_101: - zebra_search_RPN (zh, r->stream, r->query->u.type_1, - r->setname, &r->hits); - zebra_result (zh, &r->errcode, &r->errstring); - if (!r->errcode) + res = zebra_search_RPN (zh, r->stream, r->query->u.type_1, + r->setname, &zhits); + if (zebra_errCode(zh) == 0) + { + if (zhits > 2147483646) + r->hits = 2147483647; + else + r->hits = (int) zhits; search_terms (zh, r); + } + else + zebra_result (zh, &r->errcode, &r->errstring); break; case Z_Query_type_2: r->errcode = 107; @@ -381,7 +391,7 @@ int bend_delete (void *handle, bend_delete_rr *rr) { ZebraHandle zh = (ZebraHandle) handle; - rr->delete_status = zebra_deleleResultSet(zh, rr->function, + rr->delete_status = zebra_deleteResultSet(zh, rr->function, rr->num_setnames, rr->setnames, rr->statuses); return 0; @@ -637,7 +647,7 @@ int bend_esrequest (void *handle, bend_esrequest_rr *rr) } else { - int r = -1; + ZEBRA_RES r = ZEBRA_FAIL; switch(action) { case 1: r = zebra_insert_record( @@ -649,7 +659,7 @@ int bend_esrequest (void *handle, bend_esrequest_rr *rr) rec->u.octet_aligned->buf, rec->u.octet_aligned->len, 0); - if (r) + if (r == ZEBRA_FAIL) { rr->errcode = 224; rr->errstring = "insert_record failed"; @@ -666,7 +676,7 @@ int bend_esrequest (void *handle, bend_esrequest_rr *rr) rec->u.octet_aligned->buf, rec->u.octet_aligned->len, 1); - if (r) + if (r == ZEBRA_FAIL) { rr->errcode = 224; rr->errstring = "update_record failed"; @@ -682,7 +692,7 @@ int bend_esrequest (void *handle, bend_esrequest_rr *rr) rec->u.octet_aligned->buf, rec->u.octet_aligned->len, 0); - if (r) + if (r == ZEBRA_FAIL) { rr->errcode = 224; rr->errstring = "delete_record failed";