X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=server%2Fseshigh.c;h=3013c834d94947f3e72b2b2cc3f47a7baf285c15;hb=79430a0c78468168265d169c185c87379b25616b;hp=7425016244bcd8153a782003aecdcb92db247ab4;hpb=5b539981aefd6607b1a4d7747645774c24987f79;p=yaz-moved-to-github.git diff --git a/server/seshigh.c b/server/seshigh.c index 7425016..3013c83 100644 --- a/server/seshigh.c +++ b/server/seshigh.c @@ -1,11 +1,19 @@ /* - * Copyright (c) 1995-1999, Index Data + * Copyright (c) 1995-2000, Index Data * See the file LICENSE for details. - * Sebastian Hammer, Adam Dickmeiss * * $Log: seshigh.c,v $ - * Revision 1.97 1999-11-29 14:36:28 adam - * Implementation_name and implementation_version copied verbatim. + * Revision 1.101 2000-01-12 14:36:07 adam + * Added printing stream (ODR) for backend functions. + * + * Revision 1.100 1999/12/16 23:36:19 adam + * Implemented ILL protocol. Minor updates ASN.1 compiler. + * + * Revision 1.99 1999/11/30 13:47:12 adam + * Improved installation. Moved header files to include/yaz. + * + * Revision 1.98 1999/11/29 15:12:27 adam + * Changed the way implementationName - and version is set. * * Revision 1.96 1999/11/04 14:58:44 adam * Added status elements for backend delete result set handler. @@ -335,7 +343,6 @@ * */ -#include #include #include #ifdef WIN32 @@ -345,17 +352,18 @@ #endif #include -#include -#include +#include +#include +#include #include "eventl.h" #include "session.h" -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -#include +#include static int process_request(association *assoc, request *req, char **msg); void backend_response(IOCHAN i, int event); @@ -828,6 +836,7 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb) yaz_log(LOG_LOG, "Version: %s", req->implementationVersion); binitreq.stream = assoc->encode; + binitreq.print = assoc->print; binitreq.configname = "default-config"; binitreq.auth = req->idAuthentication; binitreq.referenceId = req->referenceId; @@ -928,12 +937,28 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb) resp->preferredMessageSize = &assoc->preferredMessageSize; resp->maximumRecordSize = &assoc->maximumRecordSize; - resp->implementationName = "Index Data/YAZ Generic Frontend Server"; + resp->implementationName = "GFS"; if (binitreq.implementation_name) - resp->implementationName = binitreq.implementation_name; + { + char *nv = (char *) + odr_malloc (assoc->encode, + strlen(binitreq.implementation_name) + 10 + + strlen(resp->implementationName)); + sprintf (nv, "%s / %s", + resp->implementationName, binitreq.implementation_name); + resp->implementationName = nv; + } if (binitreq.implementation_version) - resp->implementationVersion = binitreq.implementation_version; + { + char *nv = (char *) + odr_malloc (assoc->encode, + strlen(binitreq.implementation_version) + 10 + + strlen(resp->implementationVersion)); + sprintf (nv, "YAZ %s / %s", + resp->implementationVersion, binitreq.implementation_version); + resp->implementationVersion = nv; + } if (binitres->errcode) { @@ -1113,6 +1138,7 @@ static Z_Records *pack_records(association *a, char *setname, int start, freq.comp = comp; freq.format = format; freq.stream = a->encode; + freq.print = a->print; freq.surrogate_flag = 0; freq.referenceId = referenceId; if (!(fres = bend_fetch(a->backend, &freq, 0))) @@ -1233,6 +1259,7 @@ static Z_APDU *process_searchRequest(association *assoc, request *reqb, bsrr->query = req->query; bsrr->stream = assoc->encode; bsrr->decode = assoc->decode; + bsrr->print = assoc->print; bsrr->errcode = 0; bsrr->hits = 0; bsrr->errstring = NULL; @@ -1254,6 +1281,7 @@ static Z_APDU *process_searchRequest(association *assoc, request *reqb, bsrq.referenceId = req->referenceId; bsrq.stream = assoc->encode; bsrq.decode = assoc->decode; + bsrq.print = assoc->print; if (!(bsrt = bend_search (assoc->backend, &bsrq, fd))) return 0; bsrr->hits = bsrt->hits; @@ -1419,6 +1447,7 @@ static Z_APDU *process_presentRequest(association *assoc, request *reqb, bprr->comp = req->recordComposition; bprr->referenceId = req->referenceId; bprr->stream = assoc->encode; + bprr->print = assoc->print; bprr->request = reqb; bprr->association = assoc; bprr->errcode = 0; @@ -1469,6 +1498,7 @@ static int bend_default_scan (void *handle, bend_scan_rr *rr) srq.term_position = rr->term_position; srq.num_entries = rr->num_entries; srq.stream = rr->stream; + srq.print = rr->print; srs = bend_scan(handle, &srq, 0); @@ -1542,6 +1572,7 @@ static Z_APDU *process_scanRequest(association *assoc, request *reqb, int *fd) bsrr->term = req->termListAndStartPoint; bsrr->referenceId = req->referenceId; bsrr->stream = assoc->encode; + bsrr->print = assoc->print; if (!(attset = oid_getentbyoid(req->attributeSet)) || attset->oclass != CLASS_RECSYN) bsrr->attributeset = VAL_NONE; @@ -1643,6 +1674,7 @@ static Z_APDU *process_sortRequest(association *assoc, request *reqb, bsrr->output_setname = req->sortedResultSetName; bsrr->sort_sequence = req->sortSequence; bsrr->stream = assoc->encode; + bsrr->print = assoc->print; bsrr->sort_status = Z_SortStatus_failure; bsrr->errcode = 0; @@ -1695,6 +1727,7 @@ static Z_APDU *process_deleteRequest(association *assoc, request *reqb, bdrr->num_setnames = req->num_resultSetList; bdrr->setnames = req->resultSetList; bdrr->stream = assoc->encode; + bdrr->print = assoc->print; bdrr->function = *req->deleteFunction; bdrr->referenceId = req->referenceId; bdrr->statuses = 0; @@ -1852,6 +1885,8 @@ static Z_APDU *process_ESRequest(association *assoc, request *reqb, int *fd) esrequest.esr = reqb->request->u.extendedServicesRequest; esrequest.stream = assoc->encode; + esrequest.decode = assoc->decode; + esrequest.print = assoc->print; esrequest.errcode = 0; esrequest.errstring = NULL; esrequest.request = reqb;