X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fyaz-z-server-sr.cpp;h=0fb2ce4a045b945a91acb101a5d724e7d7299015;hb=805b4fdf7b70b0e9b298064f24ceff0c1d38e05b;hp=b07b83969cbc9b006e19ea2147d1525928af8d20;hpb=8353663886b90d762d43790780be6cb58fb93c8a;p=yazpp-moved-to-github.git diff --git a/src/yaz-z-server-sr.cpp b/src/yaz-z-server-sr.cpp index b07b839..0fb2ce4 100644 --- a/src/yaz-z-server-sr.cpp +++ b/src/yaz-z-server-sr.cpp @@ -1,8 +1,11 @@ /* This file is part of the yazpp toolkit. - * Copyright (C) 1998-2011 Index Data and Mike Taylor + * Copyright (C) 1998-2013 Index Data and Mike Taylor * See the file LICENSE for details. */ +#if HAVE_CONFIG_H +#include +#endif #include #include @@ -108,15 +111,15 @@ void Yaz_Facility_Retrieval::fetch_via_piggyback (Z_Server *s, { bool_t *sr = (bool_t *)odr_malloc (odr_encode(), sizeof(*sr)); *sr = 1; - + int toget = 0; - + Z_RecordComposition comp, *compp = 0; int hits = *res->resultCount; - + Odr_int *nulint = (Odr_int *)odr_malloc (odr_encode(), sizeof(*nulint)); *nulint = 0; - + comp.which = Z_RecordComp_simple; /* how many records does the user agent want, then? */ if (hits <= *req->smallSetUpperBound) @@ -133,14 +136,14 @@ void Yaz_Facility_Retrieval::fetch_via_piggyback (Z_Server *s, if ((comp.u.simple = req->mediumSetElementSetNames)) compp = ∁ } - + if (toget && !res->records) { res->presentStatus = (Odr_int *) odr_malloc (odr_encode(), sizeof(Odr_int)); *res->presentStatus = Z_PresentStatus_success; res->records = - pack_records(s, req->resultSetName, 1, toget, compp, + pack_records(s, req->resultSetName, 1, toget, compp, res->nextResultSetPosition, res->presentStatus, req->preferredRecordSyntax); @@ -168,7 +171,7 @@ void Yaz_Facility_Retrieval::fetch_via_present (Z_Server *s, Z_PresentResponse *res) { res->records = - pack_records (s, req->resultSetId,*req->resultSetStartPoint, + pack_records (s, req->resultSetId,*req->resultSetStartPoint, *req->numberOfRecordsRequested, req->recordComposition, res->nextResultSetPosition, @@ -184,7 +187,7 @@ int Yaz_Facility_Retrieval::init(Z_Server *s, Z_InitRequest *initRequest, { Z_Options *req = initRequest->options; Z_Options *res = initResponse->options; - + if (ODR_MASK_GET(req, Z_Options_search)) ODR_MASK_SET(res, Z_Options_search); if (ODR_MASK_GET(req, Z_Options_present)) @@ -205,7 +208,7 @@ ODR Yaz_Facility_Retrieval::odr_decode() } int Yaz_Facility_Retrieval::recv(Z_Server *s, Z_APDU *apdu_request) -{ +{ Z_APDU *apdu_response; m_odr_encode = s->odr_encode(); m_odr_decode = s->odr_decode();