projects
/
yaz-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Renamed wrbuf_put to wrbuf_vputs and changed prototype.
[yaz-moved-to-github.git]
/
src
/
zoom-c.c
diff --git
a/src/zoom-c.c
b/src/zoom-c.c
index
8befe19
..
b59c14a
100644
(file)
--- a/
src/zoom-c.c
+++ b/
src/zoom-c.c
@@
-1,8
+1,6
@@
-/*
- * Copyright (C) 1995-2007, Index Data ApS
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2008 Index Data
* See the file LICENSE for details.
* See the file LICENSE for details.
- *
- * $Id: zoom-c.c,v 1.152 2007-11-30 11:44:47 adam Exp $
*/
/**
* \file zoom-c.c
*/
/**
* \file zoom-c.c
@@
-1356,7
+1354,7
@@
static zoom_ret ZOOM_connection_send_init(ZOOM_connection c)
odr_prepend(c->odr_out, "ZOOM-C",
ireq->implementationName));
odr_prepend(c->odr_out, "ZOOM-C",
ireq->implementationName));
- version = odr_strdup(c->odr_out, "$Revision: 1.152 $");
+ version = odr_strdup(c->odr_out, "$Revision: 1.154 $");
if (strlen(version) > 10) /* check for unexpanded CVS strings */
version[strlen(version)-2] = '\0';
ireq->implementationVersion =
if (strlen(version) > 10) /* check for unexpanded CVS strings */
version[strlen(version)-2] = '\0';
ireq->implementationVersion =
@@
-1448,7
+1446,6
@@
static Z_SRW_PDU *ZOOM_srw_get_pdu(ZOOM_connection c, int type) {
return sr;
}
return sr;
}
-
#if YAZ_HAVE_XML2
static zoom_ret ZOOM_connection_srw_send_search(ZOOM_connection c)
{
#if YAZ_HAVE_XML2
static zoom_ret ZOOM_connection_srw_send_search(ZOOM_connection c)
{
@@
-1534,8
+1531,7
@@
static zoom_ret ZOOM_connection_srw_send_search(ZOOM_connection c)
sr->u.request->recordPacking = odr_strdup(c->odr_out, option_val);
option_val = ZOOM_resultset_option_get(resultset, "extraArgs");
sr->u.request->recordPacking = odr_strdup(c->odr_out, option_val);
option_val = ZOOM_resultset_option_get(resultset, "extraArgs");
- if (option_val)
- sr->extra_args = odr_strdup(c->odr_out, option_val);
+ yaz_encode_sru_extra(sr, c->odr_out, option_val);
return send_srw(c, sr);
}
#else
return send_srw(c, sr);
}
#else
@@
-2902,8
+2898,7
@@
static zoom_ret ZOOM_connection_srw_send_scan(ZOOM_connection c)
c->odr_out, ZOOM_options_get_int(scan->options, "position", 1));
option_val = ZOOM_options_get(scan->options, "extraArgs");
c->odr_out, ZOOM_options_get_int(scan->options, "position", 1));
option_val = ZOOM_options_get(scan->options, "extraArgs");
- if (option_val)
- sr->extra_args = odr_strdup(c->odr_out, option_val);
+ yaz_encode_sru_extra(sr, c->odr_out, option_val);
return send_srw(c, sr);
}
#else
return send_srw(c, sr);
}
#else
@@
-3121,6
+3116,7
@@
static Z_ItemOrder *encode_item_order(ZOOM_package p)
{
Z_ItemOrder *req = (Z_ItemOrder *) odr_malloc(p->odr_out, sizeof(*req));
const char *str;
{
Z_ItemOrder *req = (Z_ItemOrder *) odr_malloc(p->odr_out, sizeof(*req));
const char *str;
+ int len;
req->which = Z_IOItemOrder_esRequest;
req->u.esRequest = (Z_IORequest *)
req->which = Z_IOItemOrder_esRequest;
req->u.esRequest = (Z_IORequest *)
@@
-3172,11
+3168,11
@@
static Z_ItemOrder *encode_item_order(ZOOM_package p)
(str ? atoi(str) : 1);
}
(str ? atoi(str) : 1);
}
- str = ZOOM_options_get(p->options, "doc");
+ str = ZOOM_options_getl(p->options, "doc", &len);
if (str)
{
req->u.esRequest->notToKeep->itemRequest =
if (str)
{
req->u.esRequest->notToKeep->itemRequest =
- z_ext_record_xml(p->odr_out, str, strlen(str));
+ z_ext_record_xml(p->odr_out, str, len);
}
else
req->u.esRequest->notToKeep->itemRequest = encode_ill_request(p);
}
else
req->u.esRequest->notToKeep->itemRequest = encode_ill_request(p);
@@
-3239,10
+3235,14
@@
static Z_APDU *create_xmlupdate_package(ZOOM_package p)
Z_APDU *apdu = create_es_package(p, yaz_oid_extserv_xml_es);
Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest;
Z_External *ext = (Z_External *) odr_malloc(p->odr_out, sizeof(*ext));
Z_APDU *apdu = create_es_package(p, yaz_oid_extserv_xml_es);
Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest;
Z_External *ext = (Z_External *) odr_malloc(p->odr_out, sizeof(*ext));
- const char *doc = ZOOM_options_get(p->options, "doc");
+ int len;
+ const char *doc = ZOOM_options_getl(p->options, "doc", &len);
if (!doc)
if (!doc)
+ {
doc = "";
doc = "";
+ len = 0;
+ }
req->taskSpecificParameters = ext;
ext->direct_reference = req->packageType;
req->taskSpecificParameters = ext;
ext->direct_reference = req->packageType;
@@
-3251,8
+3251,7
@@
static Z_APDU *create_xmlupdate_package(ZOOM_package p)
ext->which = Z_External_octet;
ext->u.single_ASN1_type =
ext->which = Z_External_octet;
ext->u.single_ASN1_type =
- odr_create_Odr_oct(p->odr_out, (const unsigned char *) doc,
- strlen(doc));
+ odr_create_Odr_oct(p->odr_out, (const unsigned char *) doc, len);
return apdu;
}
return apdu;
}
@@
-3263,9
+3262,13
@@
static Z_APDU *create_update_package(ZOOM_package p)
int num_db;
char **db = set_DatabaseNames(p->connection, p->options, &num_db, p->odr_out);
const char *action = ZOOM_options_get(p->options, "action");
int num_db;
char **db = set_DatabaseNames(p->connection, p->options, &num_db, p->odr_out);
const char *action = ZOOM_options_get(p->options, "action");
- const char *recordIdOpaque = ZOOM_options_get(p->options, "recordIdOpaque");
+ int recordIdOpaque_len;
+ const char *recordIdOpaque = ZOOM_options_getl(p->options, "recordIdOpaque",
+ &recordIdOpaque_len);
const char *recordIdNumber = ZOOM_options_get(p->options, "recordIdNumber");
const char *recordIdNumber = ZOOM_options_get(p->options, "recordIdNumber");
- const char *record_buf = ZOOM_options_get(p->options, "record");
+ int record_len;
+ const char *record_buf = ZOOM_options_getl(p->options, "record",
+ &record_len);
const char *syntax_str = ZOOM_options_get(p->options, "syntax");
const char *version = ZOOM_options_get(p->options, "updateVersion");
const char *syntax_str = ZOOM_options_get(p->options, "syntax");
const char *version = ZOOM_options_get(p->options, "updateVersion");
@@
-3284,6
+3287,7
@@
static Z_APDU *create_update_package(ZOOM_package p)
if (!record_buf)
{
record_buf = "void";
if (!record_buf)
{
record_buf = "void";
+ record_len = 4;
syntax_str = "SUTRS";
}
syntax_str = "SUTRS";
}
@@
-3382,7
+3386,7
@@
static Z_APDU *create_update_package(ZOOM_package p)
notToKeep->elements[0]->u.opaque =
odr_create_Odr_oct(p->odr_out,
(const unsigned char *) recordIdOpaque,
notToKeep->elements[0]->u.opaque =
odr_create_Odr_oct(p->odr_out,
(const unsigned char *) recordIdOpaque,
- strlen(recordIdOpaque));
+ recordIdOpaque_len);
}
else if (recordIdNumber)
{
}
else if (recordIdNumber)
{
@@
-3407,7
+3411,7
@@
static Z_APDU *create_update_package(ZOOM_package p)
notToKeep->elements[0]->correlationInfo = 0;
notToKeep->elements[0]->record =
z_ext_record_oid(p->odr_out, syntax_oid,
notToKeep->elements[0]->correlationInfo = 0;
notToKeep->elements[0]->record =
z_ext_record_oid(p->odr_out, syntax_oid,
- record_buf, strlen(record_buf));
+ record_buf, record_len);
}
if (0 && apdu)
{
}
if (0 && apdu)
{
@@
-3528,6
+3532,11
@@
ZOOM_API(const char *)
return ZOOM_options_get(p->options, key);
}
return ZOOM_options_get(p->options, key);
}
+ZOOM_API(const char *)
+ ZOOM_package_option_getl(ZOOM_package p, const char *key, int *lenp)
+{
+ return ZOOM_options_getl(p->options, key, lenp);
+}
ZOOM_API(void)
ZOOM_package_option_set(ZOOM_package p, const char *key,
ZOOM_API(void)
ZOOM_package_option_set(ZOOM_package p, const char *key,
@@
-3536,6
+3545,13
@@
ZOOM_API(void)
ZOOM_options_set(p->options, key, val);
}
ZOOM_options_set(p->options, key, val);
}
+ZOOM_API(void)
+ ZOOM_package_option_setl(ZOOM_package p, const char *key,
+ const char *val, int len)
+{
+ ZOOM_options_setl(p->options, key, val, len);
+}
+
static int ZOOM_connection_exec_task(ZOOM_connection c)
{
ZOOM_task task = c->tasks;
static int ZOOM_connection_exec_task(ZOOM_connection c)
{
ZOOM_task task = c->tasks;