From c3a132ce4aea3bb358b185ef58781b4bef8745fc Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Thu, 30 Mar 1995 09:09:24 +0000 Subject: [PATCH] Added state-handle and some support for asynchronous activities. --- server/seshigh.c | 14 ++++++++++---- server/session.h | 6 +++++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/server/seshigh.c b/server/seshigh.c index edda495..cb815fb 100644 --- a/server/seshigh.c +++ b/server/seshigh.c @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: seshigh.c,v $ - * Revision 1.12 1995-03-29 15:40:16 quinn + * Revision 1.13 1995-03-30 09:09:24 quinn + * Added state-handle and some support for asynchronous activities. + * + * Revision 1.12 1995/03/29 15:40:16 quinn * Ongoing work. Statserv is now dynamic by default * * Revision 1.11 1995/03/28 09:16:21 quinn @@ -94,6 +97,8 @@ void destroy_association(association *h) free(h->encode_buffer); if (h->input_buffer) free(h->input_buffer); + if (h->backend) + bend_close(h->backend); free(h); } @@ -209,6 +214,7 @@ static int process_initRequest(IOCHAN client, Z_InitRequest *req) return -1; } + assoc->backend = binitres->handle; apdup = &apdu; apdu.which = Z_APDU_initResponse; apdu.u.initResponse = &resp; @@ -244,7 +250,7 @@ static int process_initRequest(IOCHAN client, Z_InitRequest *req) resp.result = &result; resp.implementationId = "YAZ"; resp.implementationName = "Index Data/YAZ Generic Frontend Server"; - resp.implementationVersion = "$Revision: 1.12 $"; + resp.implementationVersion = "$Revision: 1.13 $"; resp.userInformationField = 0; if (!z_APDU(assoc->encode, &apdup, 0)) { @@ -346,7 +352,7 @@ static Z_Records *pack_records(association *a, char *setname, int start, } freq.setname = setname; freq.number = recno; - if (!(fres = bend_fetch(&freq))) + if (!(fres = bend_fetch(a->backend, &freq, 0))) { *pres = Z_PRES_FAILURE; return diagrec(a->proto, 2, "Backend interface problem"); @@ -465,7 +471,7 @@ static int process_searchRequest(IOCHAN client, Z_SearchRequest *req) bsrq.basenames = req->databaseNames; bsrq.query = req->query; - if (!(bsrt = bend_search(&bsrq))) + if (!(bsrt = bend_search(assoc->backend, &bsrq, 0))) return -1; else if (bsrt->errcode) resp.records = diagrec(assoc->proto, bsrt->errcode, diff --git a/server/session.h b/server/session.h index 179b2ce..a5ac134 100644 --- a/server/session.h +++ b/server/session.h @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: session.h,v $ - * Revision 1.2 1995-03-27 08:34:29 quinn + * Revision 1.3 1995-03-30 09:09:27 quinn + * Added state-handle and some support for asynchronous activities. + * + * Revision 1.2 1995/03/27 08:34:29 quinn * Added dynamic server functionality. * Released bindings to session.c (is now redundant) * @@ -35,6 +38,7 @@ typedef struct association int input_apdu_len; int state; oid_proto proto; + void *backend; #define ASSOC_UNINIT 0 #define ASSOC_IDLE 1 -- 1.7.10.4