X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=server%2Fseshigh.c;h=e89e830050c058b0d169132e6ed29ea5e2afd690;hb=a0bdc8bbd4d346939e7c24fd7e07b6d361d78643;hp=9646fa72c278a4143c2de77eee2c648e66291a55;hpb=2ae069a121b2105132a7e00702a1b8e439312981;p=yaz-moved-to-github.git diff --git a/server/seshigh.c b/server/seshigh.c index 9646fa7..e89e830 100644 --- a/server/seshigh.c +++ b/server/seshigh.c @@ -4,7 +4,14 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: seshigh.c,v $ - * Revision 1.91 1999-06-01 14:29:12 adam + * Revision 1.93 1999-07-06 12:17:15 adam + * Added option -1 that runs server once (for profiling purposes). + * + * Revision 1.92 1999/06/17 10:54:45 adam + * Added facility to specify implementation version - and name + * for server. + * + * Revision 1.91 1999/06/01 14:29:12 adam * Work on Extended Services. * * Revision 1.90 1999/05/27 13:02:20 adam @@ -447,6 +454,8 @@ void destroy_association(association *h) request_delq(&h->incoming); request_delq(&h->outgoing); xfree(h); + if (control_block && control_block->one_shot) + exit (0); } static void do_close_req(association *a, int reason, char *message, @@ -799,6 +808,8 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb) binitreq.configname = "default-config"; binitreq.auth = req->idAuthentication; binitreq.referenceId = req->referenceId; + binitreq.implementation_version = 0; + binitreq.implementation_name = 0; binitreq.bend_sort = NULL; binitreq.bend_search = NULL; binitreq.bend_present = NULL; @@ -890,7 +901,30 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb) assoc->preferredMessageSize = assoc->maximumRecordSize; resp->preferredMessageSize = &assoc->preferredMessageSize; resp->maximumRecordSize = &assoc->maximumRecordSize; + resp->implementationName = "Index Data/YAZ Generic Frontend Server"; + + if (binitreq.implementation_name) + { + char *nv = (char *) + odr_malloc (assoc->encode, + strlen(binitreq.implementation_name) + 3 + + strlen(resp->implementationName)); + sprintf (nv, "%s %s", + resp->implementationName, binitreq.implementation_name); + resp->implementationName = nv; + } + if (binitreq.implementation_version) + { + char *nv = (char *) + odr_malloc (assoc->encode, + strlen(binitreq.implementation_version) + 3 + + strlen(resp->implementationVersion)); + sprintf (nv, "%s %s", + resp->implementationVersion, binitreq.implementation_version); + resp->implementationVersion = nv; + } + if (binitres->errcode) { logf(LOG_LOG, "Connection rejected by backend.");