X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fseshigh.c;h=880cad3a3d3cb83b773a0dcdea9f5ceba8b9c759;hp=40d40494952a01fca37b40b1381091c758cef504;hb=a38648255b03b429e900f150cdf59eec987a7371;hpb=96886341515b414c7aed9112d41b1f346f95e24c diff --git a/src/seshigh.c b/src/seshigh.c index 40d4049..880cad3 100644 --- a/src/seshigh.c +++ b/src/seshigh.c @@ -2,7 +2,7 @@ * Copyright (c) 1995-2003, Index Data * See the file LICENSE for details. * - * $Id: seshigh.c,v 1.2 2003-11-17 21:32:58 mike Exp $ + * $Id: seshigh.c,v 1.3 2003-11-26 22:47:42 mike Exp $ */ /* @@ -1443,7 +1443,7 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb) Z_APDU *apdu = zget_APDU(assoc->encode, Z_APDU_initResponse); Z_InitResponse *resp = apdu->u.initResponse; bend_initresult *binitres; - + char *version; char options[140]; yaz_log(LOG_LOG, "Got initRequest"); @@ -1581,41 +1581,21 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb) resp->preferredMessageSize = &assoc->preferredMessageSize; resp->maximumRecordSize = &assoc->maximumRecordSize; - resp->implementationName = "GFS/YAZ"; - - if (assoc->init->implementation_id) - { - char *nv = (char *) - odr_malloc (assoc->encode, - strlen(assoc->init->implementation_id) + 10 + - strlen(resp->implementationId)); - sprintf (nv, "%s/%s", - assoc->init->implementation_id, - resp->implementationId); - resp->implementationId = nv; - } - if (assoc->init->implementation_name) - { - char *nv = (char *) - odr_malloc (assoc->encode, - strlen(assoc->init->implementation_name) + 10 + - strlen(resp->implementationName)); - sprintf (nv, "%s/%s", - assoc->init->implementation_name, - resp->implementationName); - resp->implementationName = nv; - } - if (assoc->init->implementation_version) - { - char *nv = (char *) - odr_malloc (assoc->encode, - strlen(assoc->init->implementation_version) + 10 + - strlen(resp->implementationVersion)); - sprintf (nv, "%s/YAZ %s", - assoc->init->implementation_version, - resp->implementationVersion); - resp->implementationVersion = nv; - } + resp->implementationId = odr_prepend(assoc->encode, + assoc->init->implementation_id, + resp->implementationId); + + resp->implementationName = odr_prepend(assoc->encode, + assoc->init->implementation_name, + odr_prepend(assoc->encode, "GFS", resp->implementationName)); + + version = odr_strdup(assoc->encode, "$Revision: 1.3 $"); + if (strlen(version) > 10) /* check for unexpanded CVS strings */ + version[strlen(version)-2] = '\0'; + resp->implementationVersion = odr_prepend(assoc->encode, + assoc->init->implementation_version, + odr_prepend(assoc->encode, &version[11], + resp->implementationVersion)); if (binitres->errcode) {