* Copyright (c) 1995-2004, Index Data
* See the file LICENSE for details.
*
- * $Id: client.c,v 1.229 2004-02-14 15:44:15 adam Exp $
+ * $Id: client.c,v 1.236 2004-03-17 10:59:41 adam Exp $
*/
#include <stdio.h>
static char *outputCharset = 0;
static char *marcCharset = 0;
static char* yazLang = 0;
+static char* http_version = "1.1";
static char last_cmd[32] = "?";
static FILE *marc_file = 0;
yaz_oi_APDU(apdu, &p);
if ((p0=yaz_oi_update(p, out, NULL, 0, 0))) {
- ODR_MASK_SET(req->options, Z_Options_negotiationModel);
-
- p0->which = Z_OtherInfo_externallyDefinedInfo;
- p0->information.externallyDefinedInfo =
- yaz_set_proposal_charneg(
- out,
- (const char**)&negotiationCharset,
- negotiationCharset ? 1 : 0,
- (const char**)&yazLang, yazLang ? 1 : 0, 1);
+ ODR_MASK_SET(req->options, Z_Options_negotiationModel);
+
+ p0->which = Z_OtherInfo_externallyDefinedInfo;
+ p0->information.externallyDefinedInfo =
+ yaz_set_proposal_charneg(
+ out,
+ (const char**)&negotiationCharset,
+ negotiationCharset ? 1 : 0,
+ (const char**)&yazLang, yazLang ? 1 : 0, 1);
}
}
if (ent && r->which == Z_External_octet)
{
Z_ext_typeent *type = z_ext_getentbyref(ent->value);
- void *rr;
+ char *rr;
if (type)
{
*/
odr_setbuf(in, (char*)r->u.octet_aligned->buf,
r->u.octet_aligned->len, 0);
- if (!(*type->fun)(in, (char **)&rr, 0, 0))
+ if (!(*type->fun)(in, &rr, 0, 0))
{
odr_perror(in, "Decoding constructed record.");
fprintf(stdout, "[Near %d]\n", odr_offset(in));
printf ("shelvingLocation: %s\n", data->shelvingLocation);
if (data->callNumber)
printf ("callNumber: %s\n", data->callNumber);
+ if (data->shelvingData)
+ printf ("shelvingData: %s\n", data->shelvingData);
if (data->copyNumber)
printf ("copyNumber: %s\n", data->copyNumber);
if (data->publicNote)
strcpy(path+1, databaseNames[0]);
gdu = z_get_HTTP_Request(out);
+ gdu->u.HTTP_Request->version = http_version;
gdu->u.HTTP_Request->path = odr_strdup(out, path);
if (host_port)
sr = yaz_srw_get(out, Z_SRW_searchRetrieve_request);
sr->u.request->query_type = Z_SRW_query_type_cql;
sr->u.request->query.cql = odr_strdup(out, arg);
+
+ sr->u.request->maximumRecords = odr_intdup(out, 0);
+
if (record_schema)
sr->u.request->recordSchema = record_schema;
+ if (recordsyntax == VAL_TEXT_XML)
+ sr->u.explain_request->recordPacking = "xml";
return send_srw(sr);
}
#endif
/* save this for later .. when fetching individual records */
sr = yaz_srw_get(out, Z_SRW_explain_request);
+ if (recordsyntax == VAL_TEXT_XML)
+ sr->u.explain_request->recordPacking = "xml";
send_srw(sr);
return 2;
}
sr->u.request->maximumRecords = odr_intdup(out, nos);
if (record_schema)
sr->u.request->recordSchema = record_schema;
+ if (recordsyntax == VAL_TEXT_XML)
+ sr->u.request->recordPacking = "xml";
return send_srw(sr);
}
#endif
for (i = 0; i<res->num_diagnostics; i++)
{
- printf ("SRW diagnostic %s\n",
- res->diagnostics[i].code);
+ if (res->diagnostics[i].uri)
+ printf ("SRW diagnostic %s\n",
+ res->diagnostics[i].uri);
+ else
+ printf ("SRW diagnostic missing or could not be decoded\n");
if (res->diagnostics[i].message)
printf ("Message: %s\n", res->diagnostics[i].message);
if (res->diagnostics[i].details)