From: Mike Taylor Date: Mon, 24 Nov 2003 11:25:07 +0000 (+0000) Subject: Support the standard ZOOM options "serverImplementationId", X-Git-Tag: YAZ.2.0.6~20 X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=commitdiff_plain;h=bb0c882cc25ef16cea865719e4f51df16f645ea9 Support the standard ZOOM options "serverImplementationId", "serverImplementationName" and "serverImplementationVersion" (as specified in the forthcoming AAPI 1.4), but continue also to support the old "targetImplementationId", "targetImplementationName" and "targetImplementationVersion" for the benefit of old applications.) --- diff --git a/src/zoom-c.c b/src/zoom-c.c index 492c190..0c3e85f 100644 --- a/src/zoom-c.c +++ b/src/zoom-c.c @@ -2,7 +2,7 @@ * Copyright (c) 2000-2003, Index Data * See the file LICENSE for details. * - * $Id: zoom-c.c,v 1.4 2003-11-19 19:07:26 adam Exp $ + * $Id: zoom-c.c,v 1.5 2003-11-24 11:25:07 mike Exp $ * * ZOOM layer for C, connections, result sets, queries. */ @@ -928,7 +928,7 @@ static zoom_ret ZOOM_connection_send_init (ZOOM_connection c) impver = ZOOM_options_get (c->options, "implementationVersion"); ireq->implementationVersion = - (char *) odr_malloc (c->odr_out, strlen("$Revision: 1.4 $") + 2 + + (char *) odr_malloc (c->odr_out, strlen("$Revision: 1.5 $") + 2 + (impver ? strlen(impver) : 0)); strcpy (ireq->implementationVersion, ""); if (impver) @@ -936,7 +936,7 @@ static zoom_ret ZOOM_connection_send_init (ZOOM_connection c) strcat (ireq->implementationVersion, impver); strcat (ireq->implementationVersion, "/"); } - strcat (ireq->implementationVersion, "$Revision: 1.4 $"); + strcat (ireq->implementationVersion, "$Revision: 1.5 $"); *ireq->maximumRecordSize = ZOOM_options_get_int (c->options, "maximumRecordSize", 1024*1024); @@ -2565,6 +2565,16 @@ static void handle_apdu (ZOOM_connection c, Z_APDU *apdu) { case Z_APDU_initResponse: initrs = apdu->u.initResponse; + ZOOM_connection_option_set(c, "serverImplementationId", + initrs->implementationId ? + initrs->implementationId : ""); + ZOOM_connection_option_set(c, "serverImplementationName", + initrs->implementationName ? + initrs->implementationName : ""); + ZOOM_connection_option_set(c, "serverImplementationVersion", + initrs->implementationVersion ? + initrs->implementationVersion : ""); + /* Set the three old options too, for old applications */ ZOOM_connection_option_set(c, "targetImplementationId", initrs->implementationId ? initrs->implementationId : "");