X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=server%2Fseshigh.c;h=ee0f7f2ecb5d9b40a9b464967dedd43a34356f10;hb=29ad0d85b05dd7ed7a68a01b87ebce5195bdbb85;hp=7425016244bcd8153a782003aecdcb92db247ab4;hpb=5b539981aefd6607b1a4d7747645774c24987f79;p=yaz-moved-to-github.git diff --git a/server/seshigh.c b/server/seshigh.c index 7425016..ee0f7f2 100644 --- a/server/seshigh.c +++ b/server/seshigh.c @@ -1,11 +1,22 @@ /* - * 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.102 2000-03-15 12:59:49 adam + * Added handle member to statserv_control. + * + * 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 +346,6 @@ * */ -#include #include #include #ifdef WIN32 @@ -345,17 +355,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,7 +839,7 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb) yaz_log(LOG_LOG, "Version: %s", req->implementationVersion); binitreq.stream = assoc->encode; - binitreq.configname = "default-config"; + binitreq.print = assoc->print; binitreq.auth = req->idAuthentication; binitreq.referenceId = req->referenceId; binitreq.implementation_version = 0; @@ -928,12 +939,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 +1140,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 +1261,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 +1283,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 +1449,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 +1500,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 +1574,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 +1676,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 +1729,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 +1887,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;