Fixed bug #740: Handle SRU records referring to xmlns's outside recordData.
+Fixed bug #722: Allow Z39.50 Init Options to be specified / retrieved.
+Client code may now interrogate options such as "init_opt_sort" to
+find out whether the server claims to support various options.
+
--- 2.1.40 2006/11/27
Added utilities yaz_{set,get}_esn to set/get element set name from
ZOOM_connection_scan1 (ZOOM_connection c, ZOOM_query startterm)
ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
-->
-<!-- $Id: zoom.xml,v 1.54 2006-10-31 14:08:01 adam Exp $ -->
+<!-- $Id: zoom.xml,v 1.55 2006-12-06 11:12:14 mike Exp $ -->
<chapter id="zoom"><title>ZOOM</title>
<para>
&zoom; is an acronym for 'Z39.50 Object-Orientation Model' and is
mediumSetElementSetName</entry><entry>
The element set name to be for medium-sized result sets.
</entry><entry>none</entry></row>
+ <row><entry>
+ init_opt_search, init_opt_present, init_opt_delSet, etc.</entry><entry>
+ After a successful Init, these options may be interrogated to
+ discover whether the server claims to support the specified
+ operations.
+ </entry><entry>none</entry></row>
</tbody>
</tgroup>
</table>
* Copyright (C) 1995-2006, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: zoom-c.c,v 1.100 2006-11-30 17:07:50 mike Exp $
+ * $Id: zoom-c.c,v 1.101 2006-12-06 11:12:14 mike Exp $
*/
/**
* \file zoom-c.c
odr_prepend(c->odr_out, "ZOOM-C",
ireq->implementationName));
- version = odr_strdup(c->odr_out, "$Revision: 1.100 $");
+ version = odr_strdup(c->odr_out, "$Revision: 1.101 $");
if (strlen(version) > 10) /* check for unexpanded CVS strings */
version[strlen(version)-2] = '\0';
ireq->implementationVersion =
}
}
+
+static void set_init_option(const char *name, void *clientData) {
+ ZOOM_connection c = clientData;
+ char buf[80];
+
+ sprintf(buf, "init_opt_%.70s", name);
+ ZOOM_connection_option_set(c, buf, "1");
+}
+
+
static void recv_apdu(ZOOM_connection c, Z_APDU *apdu)
{
Z_InitResponse *initrs;
ZOOM_connection_option_set(c, "targetImplementationVersion",
initrs->implementationVersion ?
initrs->implementationVersion : "");
+
+ /* Make initrs->options available as ZOOM-level options */
+ yaz_init_opt_decode(initrs->options, set_init_option, (void*) c);
+
if (!*initrs->result)
{
Z_External *uif = initrs->userInformationField;