Possible compatibility problems with earlier versions marked with '*'.
+Added support for SRW sort in Generic Frontend Server. Patch
+by Ko van der Sloot. Member srw_sortKeys in bend_search_rr holds
+sortKeys - or NULL if none is provided.
+
Fixed bug #307: It was impossible to specify indefinite/no timeout
for ZOOM_event. Special timeout value -1 now means indefinite timeout
(i.e. no timeout).
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*
- * $Id: backend.h,v 1.30 2005-03-03 23:16:20 adam Exp $
+ * $Id: backend.h,v 1.31 2005-05-20 19:29:18 adam Exp $
*/
/**
int errcode; /* 0==OK */
char *errstring; /* system error string or NULL */
Z_OtherInformation *search_info; /* additional search info */
+ char *srw_sortKeys; /* holds SRU/SRW sortKeys info */
} bend_search_rr;
/* extended present handler. Does not replace bend_fetch. */
* Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: seshigh.c,v 1.55 2005-05-11 12:07:48 adam Exp $
+ * $Id: seshigh.c,v 1.56 2005-05-20 19:29:18 adam Exp $
*/
/**
* \file seshigh.c
*http_code = 200;
yaz_log(log_requestdetail, "Got SRW SearchRetrieveRequest");
srw_bend_init(assoc, &srw_res->diagnostics, &srw_res->num_diagnostics);
- if (srw_req->sort_type != Z_SRW_sort_type_none)
- yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics,
- &srw_res->num_diagnostics,
- YAZ_SRW_SORT_UNSUPP, 0);
- else if (srw_res->num_diagnostics == 0 && assoc->init)
+ if (srw_res->num_diagnostics == 0 && assoc->init)
{
bend_search_rr rr;
rr.setname = "default";
rr.num_bases = 1;
rr.basenames = &srw_req->database;
rr.referenceId = 0;
+ rr.srw_sortKeys = 0;
rr.query = (Z_Query *) odr_malloc (assoc->decode, sizeof(*rr.query));
rr.query->u.type_1 = 0;
rr.decode = assoc->decode;
rr.print = assoc->print;
rr.request = req;
+ if ( srw_req->sort.sortKeys )
+ rr.srw_sortKeys = odr_strdup(assoc->encode,
+ srw_req->sort.sortKeys );
rr.association = assoc;
rr.fd = 0;
rr.hits = 0;
assoc->init->implementation_name,
odr_prepend(assoc->encode, "GFS", resp->implementationName));
- version = odr_strdup(assoc->encode, "$Revision: 1.55 $");
+ version = odr_strdup(assoc->encode, "$Revision: 1.56 $");
if (strlen(version) > 10) /* check for unexpanded CVS strings */
version[strlen(version)-2] = '\0';
resp->implementationVersion = odr_prepend(assoc->encode,
bsrr->association = assoc;
bsrr->referenceId = req->referenceId;
save_referenceId (reqb, bsrr->referenceId);
+ bsrr->srw_sortKeys = 0;
yaz_log (log_requestdetail, "ResultSet '%s'", req->resultSetName);
if (req->databaseNames)