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
Added stop word support for CCL parser. These are configured with
[yaz-moved-to-github.git]
/
src
/
zoom-c.c
diff --git
a/src/zoom-c.c
b/src/zoom-c.c
index
5ba1b32
..
320a925
100644
(file)
--- a/
src/zoom-c.c
+++ b/
src/zoom-c.c
@@
-2,7
+2,7
@@
* Copyright (C) 1995-2007, Index Data ApS
* See the file LICENSE for details.
*
* Copyright (C) 1995-2007, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: zoom-c.c,v 1.121 2007-03-21 10:22:31 adam Exp $
+ * $Id: zoom-c.c,v 1.127 2007-04-30 08:29:07 adam Exp $
*/
/**
* \file zoom-c.c
*/
/**
* \file zoom-c.c
@@
-26,6
+26,8
@@
#include <yaz/srw.h>
#include <yaz/cql.h>
#include <yaz/ccl.h>
#include <yaz/srw.h>
#include <yaz/cql.h>
#include <yaz/ccl.h>
+#include <yaz/query-charset.h>
+#include <yaz/copy_types.h>
static int log_api = 0;
static int log_details = 0;
static int log_api = 0;
static int log_details = 0;
@@
-45,9
+47,10
@@
static char *cql2pqf(ZOOM_connection c, const char *cql);
* This wrapper is just for logging failed lookups. It would be nicer
* if it could cause failure when a lookup fails, but that's hard.
*/
* This wrapper is just for logging failed lookups. It would be nicer
* if it could cause failure when a lookup fails, but that's hard.
*/
-static Odr_oid *zoom_yaz_str_to_z3950oid(ZOOM_connection c,
- int oid_class, const char *str) {
- Odr_oid *res = yaz_str_to_z3950oid(c->odr_out, oid_class, str);
+static int *zoom_yaz_str_to_z3950oid(ZOOM_connection c,
+ int oid_class, const char *str) {
+ int *res = yaz_string_to_oid_odr(yaz_oid_std(), oid_class, str,
+ c->odr_out);
if (res == 0)
yaz_log(YLOG_WARN, "%p OID lookup (%d, '%s') failed",
c, (int) oid_class, str);
if (res == 0)
yaz_log(YLOG_WARN, "%p OID lookup (%d, '%s') failed",
c, (int) oid_class, str);
@@
-393,7
+396,7
@@
static char **set_DatabaseNames(ZOOM_connection con, ZOOM_options options,
}
if (!cp)
cp = "Default";
}
if (!cp)
cp = "Default";
- nmem_strsplit(odr->mem, "+", cp, &databaseNames, num);
+ nmem_strsplit(odr_getmem(odr), "+", cp, &databaseNames, num);
return databaseNames;
}
return databaseNames;
}
@@
-583,7
+586,7
@@
ZOOM_API(int)
s->query_string = odr_strdup(s->odr, str);
s->z_query = (Z_Query *) odr_malloc(s->odr, sizeof(*s->z_query));
s->z_query->which = Z_Query_type_1;
s->query_string = odr_strdup(s->odr, str);
s->z_query = (Z_Query *) odr_malloc(s->odr, sizeof(*s->z_query));
s->z_query->which = Z_Query_type_1;
- s->z_query->u.type_1 = p_query_rpn(s->odr, PROTO_Z3950, str);
+ s->z_query->u.type_1 = p_query_rpn(s->odr, str);
if (!s->z_query->u.type_1)
{
yaz_log(log_details, "%p ZOOM_query_prefix str=%s failed", s, str);
if (!s->z_query->u.type_1)
{
yaz_log(log_details, "%p ZOOM_query_prefix str=%s failed", s, str);
@@
-761,6
+764,7
@@
ZOOM_resultset ZOOM_resultset_create(void)
r->next = 0;
r->databaseNames = 0;
r->num_databaseNames = 0;
r->next = 0;
r->databaseNames = 0;
r->num_databaseNames = 0;
+ r->rpn_iconv = 0;
return r;
}
return r;
}
@@
-791,6
+795,13
@@
ZOOM_API(ZOOM_resultset)
r->query = q;
r->options = ZOOM_options_create_with_parent(c->options);
r->query = q;
r->options = ZOOM_options_create_with_parent(c->options);
+
+ {
+ const char *cp = ZOOM_options_get(r->options, "rpnCharset");
+ if (cp)
+ r->rpn_iconv = yaz_iconv_open(cp, "UTF-8");
+ }
+
start = ZOOM_options_get_int(r->options, "start", 0);
count = ZOOM_options_get_int(r->options, "count", 0);
start = ZOOM_options_get_int(r->options, "start", 0);
count = ZOOM_options_get_int(r->options, "count", 0);
@@
-816,6
+827,8
@@
ZOOM_API(ZOOM_resultset)
r->next = c->resultsets;
c->resultsets = r;
r->next = c->resultsets;
c->resultsets = r;
+
+
if (c->host_port && c->proto == PROTO_HTTP)
{
if (!c->cs)
if (c->host_port && c->proto == PROTO_HTTP)
{
if (!c->cs)
@@
-853,9
+866,16
@@
ZOOM_API(ZOOM_resultset)
return r;
}
return r;
}
-ZOOM_API(int)
+ZOOM_API(void)
ZOOM_resultset_sort(ZOOM_resultset r,
ZOOM_resultset_sort(ZOOM_resultset r,
- const char *sort_type, const char *sort_spec)
+ const char *sort_type, const char *sort_spec)
+{
+ (void) ZOOM_resultset_sort1(r, sort_type, sort_spec);
+}
+
+ZOOM_API(int)
+ ZOOM_resultset_sort1(ZOOM_resultset r,
+ const char *sort_type, const char *sort_spec)
{
ZOOM_connection c = r->connection;
ZOOM_task task;
{
ZOOM_connection c = r->connection;
ZOOM_task task;
@@
-955,6
+975,8
@@
static void resultset_destroy(ZOOM_resultset r)
}
ZOOM_query_destroy(r->query);
ZOOM_options_destroy(r->options);
}
ZOOM_query_destroy(r->query);
ZOOM_options_destroy(r->options);
+ if (r->rpn_iconv)
+ yaz_iconv_close(r->rpn_iconv);
odr_destroy(r->odr);
xfree(r->setname);
xfree(r->schema);
odr_destroy(r->odr);
xfree(r->setname);
xfree(r->schema);
@@
-1165,11
+1187,11
@@
static void otherInfo_attach(ZOOM_connection c, Z_APDU *a, ODR out)
for (i = 0; i<200; i++)
{
size_t len;
for (i = 0; i<200; i++)
{
size_t len;
+ int *oid;
Z_OtherInformation **oi;
char buf[80];
const char *val;
const char *cp;
Z_OtherInformation **oi;
char buf[80];
const char *val;
const char *cp;
- int oidval;
sprintf(buf, "otherInfo%d", i);
val = ZOOM_options_get(c->options, buf);
sprintf(buf, "otherInfo%d", i);
val = ZOOM_options_get(c->options, buf);
@@
-1183,12
+1205,14
@@
static void otherInfo_attach(ZOOM_connection c, Z_APDU *a, ODR out)
len = sizeof(buf)-1;
memcpy(buf, val, len);
buf[len] = '\0';
len = sizeof(buf)-1;
memcpy(buf, val, len);
buf[len] = '\0';
- oidval = oid_getvalbyname(buf);
- if (oidval == VAL_NONE)
+
+ oid = yaz_string_to_oid_odr(yaz_oid_std(), CLASS_USERINFO,
+ buf, out);
+ if (!oid)
continue;
yaz_oi_APDU(a, &oi);
continue;
yaz_oi_APDU(a, &oi);
- yaz_oi_set_string_oidval(oi, out, oidval, 1, cp+1);
+ yaz_oi_set_string_oid(oi, out, oid, 1, cp+1);
}
}
}
}
@@
-1199,13
+1223,15
@@
static int encode_APDU(ZOOM_connection c, Z_APDU *a, ODR out)
{
Z_OtherInformation **oi;
yaz_oi_APDU(a, &oi);
{
Z_OtherInformation **oi;
yaz_oi_APDU(a, &oi);
- yaz_oi_set_string_oidval(oi, out, VAL_COOKIE, 1, c->cookie_out);
+ yaz_oi_set_string_oid(oi, out, yaz_oid_userinfo_cookie,
+ 1, c->cookie_out);
}
if (c->client_IP)
{
Z_OtherInformation **oi;
yaz_oi_APDU(a, &oi);
}
if (c->client_IP)
{
Z_OtherInformation **oi;
yaz_oi_APDU(a, &oi);
- yaz_oi_set_string_oidval(oi, out, VAL_CLIENT_IP, 1, c->client_IP);
+ yaz_oi_set_string_oid(oi, out, yaz_oid_userinfo_client_ip,
+ 1, c->client_IP);
}
otherInfo_attach(c, a, out);
if (!z_APDU(out, &a, 0, 0))
}
otherInfo_attach(c, a, out);
if (!z_APDU(out, &a, 0, 0))
@@
-1284,7
+1310,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.121 $");
+ version = odr_strdup(c->odr_out, "$Revision: 1.127 $");
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 =
@@
-1342,8
+1368,10
@@
static zoom_ret ZOOM_connection_send_init(ZOOM_connection c)
ireq->idAuthentication = auth;
}
if (c->proxy)
ireq->idAuthentication = auth;
}
if (c->proxy)
- yaz_oi_set_string_oidval(&ireq->otherInfo, c->odr_out,
- VAL_PROXY, 1, c->host_port);
+ {
+ yaz_oi_set_string_oid(&ireq->otherInfo, c->odr_out,
+ yaz_oid_userinfo_proxy, 1, c->host_port);
+ }
if (c->charset || c->lang)
{
Z_OtherInformation **oi;
if (c->charset || c->lang)
{
Z_OtherInformation **oi;
@@
-1533,7
+1561,13
@@
static zoom_ret ZOOM_connection_send_search(ZOOM_connection c)
set_ZOOM_error(c, ZOOM_ERROR_INVALID_QUERY, 0);
return zoom_complete;
}
set_ZOOM_error(c, ZOOM_ERROR_INVALID_QUERY, 0);
return zoom_complete;
}
-
+ if (r->query->z_query->which == Z_Query_type_1 && r->rpn_iconv)
+ {
+ search_req->query = yaz_copy_Z_Query(r->query->z_query, c->odr_out);
+
+ yaz_query_charset_convert_rpnquery(search_req->query->u.type_1,
+ c->odr_out, r->rpn_iconv);
+ }
search_req->databaseNames = r->databaseNames;
search_req->num_databaseNames = r->num_databaseNames;
search_req->databaseNames = r->databaseNames;
search_req->num_databaseNames = r->num_databaseNames;
@@
-1639,7
+1673,8
@@
static void response_default_diag(ZOOM_connection c, Z_DefaultDiagFormat *r)
xfree(c->addinfo);
c->addinfo = 0;
set_dset_error(c, *r->condition,
xfree(c->addinfo);
c->addinfo = 0;
set_dset_error(c, *r->condition,
- yaz_z3950oid_to_str(r->diagnosticSetId, &oclass),
+ yaz_oid_to_string(yaz_oid_std(),
+ r->diagnosticSetId, &oclass),
addinfo, 0);
}
addinfo, 0);
}
@@
-1859,7
+1894,9
@@
ZOOM_API(int)
break;
}
if (diagset)
break;
}
if (diagset)
- *diagset = yaz_z3950oid_to_str(ddf->diagnosticSetId, &oclass);
+ *diagset =
+ yaz_oid_to_string(yaz_oid_std(),
+ ddf->diagnosticSetId, &oclass);
}
else
{
}
else
{
@@
-1943,9
+1980,7
@@
ZOOM_API(const char *)
if (npr->which == Z_NamePlusRecord_databaseRecord)
{
Z_External *r = (Z_External *) npr->u.databaseRecord;
if (npr->which == Z_NamePlusRecord_databaseRecord)
{
Z_External *r = (Z_External *) npr->u.databaseRecord;
- oident *ent = oid_getentbyoid(r->direct_reference);
- if (ent)
- desc = ent->desc;
+ desc = yaz_oid_to_string(yaz_oid_std(), r->direct_reference, 0);
}
if (!desc)
desc = "none";
}
if (!desc)
desc = "none";
@@
-1960,7
+1995,7
@@
ZOOM_API(const char *)
if (!strcmp(type, "render"))
{
Z_External *r = (Z_External *) npr->u.databaseRecord;
if (!strcmp(type, "render"))
{
Z_External *r = (Z_External *) npr->u.databaseRecord;
- oident *ent = oid_getentbyoid(r->direct_reference);
+ const int *oid = r->direct_reference;
/* render bibliographic record .. */
if (r->which == Z_External_OPAC)
/* render bibliographic record .. */
if (r->which == Z_External_OPAC)
@@
-1968,7
+2003,7
@@
ZOOM_API(const char *)
r = r->u.opac->bibliographicRecord;
if (!r)
return 0;
r = r->u.opac->bibliographicRecord;
if (!r)
return 0;
- ent = oid_getentbyoid(r->direct_reference);
+ oid = r->direct_reference;
}
if (r->which == Z_External_sutrs)
return record_iconv_return(rec, len,
}
if (r->which == Z_External_sutrs)
return record_iconv_return(rec, len,
@@
-1977,18
+2012,9
@@
ZOOM_API(const char *)
charset);
else if (r->which == Z_External_octet)
{
charset);
else if (r->which == Z_External_octet)
{
- const char *ret_buf;
- switch (ent->value)
+ if (yaz_oid_is_iso2709(oid))
{
{
- case VAL_SOIF:
- case VAL_HTML:
- case VAL_SUTRS:
- break;
- case VAL_TEXT_XML:
- case VAL_APPLICATION_XML:
- break;
- default:
- ret_buf = marc_iconv_return(
+ const char *ret_buf = marc_iconv_return(
rec, YAZ_MARC_LINE, len,
(const char *) r->u.octet_aligned->buf,
r->u.octet_aligned->len,
rec, YAZ_MARC_LINE, len,
(const char *) r->u.octet_aligned->buf,
r->u.octet_aligned->len,
@@
-2017,7
+2043,7
@@
ZOOM_API(const char *)
else if (!strcmp(type, "xml"))
{
Z_External *r = (Z_External *) npr->u.databaseRecord;
else if (!strcmp(type, "xml"))
{
Z_External *r = (Z_External *) npr->u.databaseRecord;
- oident *ent = oid_getentbyoid(r->direct_reference);
+ const int *oid = r->direct_reference;
/* render bibliographic record .. */
if (r->which == Z_External_OPAC)
/* render bibliographic record .. */
if (r->which == Z_External_OPAC)
@@
-2025,7
+2051,7
@@
ZOOM_API(const char *)
r = r->u.opac->bibliographicRecord;
if (!r)
return 0;
r = r->u.opac->bibliographicRecord;
if (!r)
return 0;
- ent = oid_getentbyoid(r->direct_reference);
+ oid = r->direct_reference;
}
if (r->which == Z_External_sutrs)
}
if (r->which == Z_External_sutrs)
@@
-2035,20
+2061,10
@@
ZOOM_API(const char *)
charset);
else if (r->which == Z_External_octet)
{
charset);
else if (r->which == Z_External_octet)
{
- const char *ret_buf;
int marc_decode_type = YAZ_MARC_MARCXML;
int marc_decode_type = YAZ_MARC_MARCXML;
-
- switch (ent->value)
+ if (yaz_oid_is_iso2709(oid))
{
{
- case VAL_SOIF:
- case VAL_HTML:
- case VAL_SUTRS:
- break;
- case VAL_TEXT_XML:
- case VAL_APPLICATION_XML:
- break;
- default:
- ret_buf = marc_iconv_return(
+ const char *ret_buf = marc_iconv_return(
rec, marc_decode_type, len,
(const char *) r->u.octet_aligned->buf,
r->u.octet_aligned->len,
rec, marc_decode_type, len,
(const char *) r->u.octet_aligned->buf,
r->u.octet_aligned->len,
@@
-2265,7
+2281,7
@@
static void handle_records(ZOOM_connection c, Z_Records *sr,
resultset, *start, *count);
/* transfer our response to search_nmem .. we need it later */
resultset, *start, *count);
/* transfer our response to search_nmem .. we need it later */
- nmem_transfer(resultset->odr->mem, nmem);
+ nmem_transfer(odr_getmem(resultset->odr), nmem);
nmem_destroy(nmem);
if (present_phase && p->num_records == 0)
{
nmem_destroy(nmem);
if (present_phase && p->num_records == 0)
{
@@
-2444,7
+2460,7
@@
static int scan_response(ZOOM_connection c, Z_ScanResponse *res)
if (res->entries && res->entries->nonsurrogateDiagnostics)
response_diag(c, res->entries->nonsurrogateDiagnostics[0]);
scan->scan_response = res;
if (res->entries && res->entries->nonsurrogateDiagnostics)
response_diag(c, res->entries->nonsurrogateDiagnostics[0]);
scan->scan_response = res;
- nmem_transfer(scan->odr->mem, nmem);
+ nmem_transfer(odr_getmem(scan->odr), nmem);
if (res->stepSize)
ZOOM_options_set_int(scan->options, "stepSize", *res->stepSize);
if (res->positionOfTerm)
if (res->stepSize)
ZOOM_options_set_int(scan->options, "stepSize", *res->stepSize);
if (res->positionOfTerm)
@@
-2628,21
+2644,21
@@
static zoom_ret send_present(ZOOM_connection c)
}
ZOOM_API(ZOOM_scanset)
}
ZOOM_API(ZOOM_scanset)
- ZOOM_connection_scan_pqf(ZOOM_connection c, const char *start)
+ ZOOM_connection_scan(ZOOM_connection c, const char *start)
{
ZOOM_scanset s;
ZOOM_query q = ZOOM_query_create();
ZOOM_query_prefix(q, start);
{
ZOOM_scanset s;
ZOOM_query q = ZOOM_query_create();
ZOOM_query_prefix(q, start);
- s = ZOOM_connection_scan(c, q);
+ s = ZOOM_connection_scan1(c, q);
ZOOM_query_destroy(q);
return s;
}
ZOOM_API(ZOOM_scanset)
ZOOM_query_destroy(q);
return s;
}
ZOOM_API(ZOOM_scanset)
- ZOOM_connection_scan(ZOOM_connection c, ZOOM_query q)
+ ZOOM_connection_scan1(ZOOM_connection c, ZOOM_query q)
{
char *start;
char *freeme = 0;
{
char *start;
char *freeme = 0;
@@
-2688,6
+2704,20
@@
ZOOM_API(ZOOM_scanset)
p_query_scan(scan->odr, PROTO_Z3950, &scan->attributeSet, start);
xfree(freeme);
p_query_scan(scan->odr, PROTO_Z3950, &scan->attributeSet, start);
xfree(freeme);
+ {
+ const char *cp = ZOOM_options_get(scan->options, "rpnCharset");
+ if (cp)
+ {
+ yaz_iconv_t cd = yaz_iconv_open(cp, "UTF-8");
+ if (cd)
+ {
+ yaz_query_charset_convert_apt(scan->termListAndStartPoint,
+ scan->odr, cd);
+ }
+ }
+ }
+
+
scan->databaseNames = set_DatabaseNames(c, c->options,
&scan->num_databaseNames,
scan->odr);
scan->databaseNames = set_DatabaseNames(c, c->options,
&scan->num_databaseNames,
scan->odr);
@@
-2842,15
+2872,14
@@
ZOOM_API(const char *)
return ZOOM_options_get(scan->options, key);
}
return ZOOM_options_get(scan->options, key);
}
-ZOOM_API(int)
+ZOOM_API(void)
ZOOM_scanset_option_set(ZOOM_scanset scan, const char *key,
const char *val)
{
ZOOM_options_set(scan->options, key, val);
ZOOM_scanset_option_set(ZOOM_scanset scan, const char *key,
const char *val)
{
ZOOM_options_set(scan->options, key, val);
- return 0;
}
}
-static Z_APDU *create_es_package(ZOOM_package p, int type)
+static Z_APDU *create_es_package(ZOOM_package p, const int *oid)
{
const char *str;
Z_APDU *apdu = zget_APDU(p->odr_out, Z_APDU_extendedServicesRequest);
{
const char *str;
Z_APDU *apdu = zget_APDU(p->odr_out, Z_APDU_extendedServicesRequest);
@@
-2860,14
+2889,13
@@
static Z_APDU *create_es_package(ZOOM_package p, int type)
str = ZOOM_options_get(p->options, "package-name");
if (str && *str)
str = ZOOM_options_get(p->options, "package-name");
if (str && *str)
- req->packageName = nmem_strdup(p->odr_out->mem, str);
+ req->packageName = odr_strdup(p->odr_out, str);
str = ZOOM_options_get(p->options, "user-id");
if (str)
str = ZOOM_options_get(p->options, "user-id");
if (str)
- req->userId = nmem_strdup(p->odr_out->mem, str);
+ req->userId = odr_strdup(p->odr_out, str);
- req->packageType = yaz_oidval_to_z3950oid(p->odr_out, CLASS_EXTSERV,
- type);
+ req->packageType = odr_oiddup(p->odr_out, oid);
str = ZOOM_options_get(p->options, "function");
if (str)
str = ZOOM_options_get(p->options, "function");
if (str)
@@
-2911,16
+2939,11
@@
static Z_External *encode_ill_request(ZOOM_package p)
}
else
{
}
else
{
- oident oid;
int illRequest_size = 0;
char *illRequest_buf = odr_getbuf(out, &illRequest_size, 0);
int illRequest_size = 0;
char *illRequest_buf = odr_getbuf(out, &illRequest_size, 0);
- oid.proto = PROTO_GENERAL;
- oid.oclass = CLASS_GENERAL;
- oid.value = VAL_ISO_ILL_1;
-
r = (Z_External *) odr_malloc(out, sizeof(*r));
r = (Z_External *) odr_malloc(out, sizeof(*r));
- r->direct_reference = odr_oiddup(out,oid_getoidbyent(&oid));
+ r->direct_reference = odr_oiddup(out, yaz_oid_general_isoill_1);
r->indirect_reference = 0;
r->descriptor = 0;
r->which = Z_External_single;
r->indirect_reference = 0;
r->descriptor = 0;
r->which = Z_External_single;
@@
-2951,15
+2974,15
@@
static Z_ItemOrder *encode_item_order(ZOOM_package p)
str = ZOOM_options_get(p->options, "contact-name");
req->u.esRequest->toKeep->contact->name = str ?
str = ZOOM_options_get(p->options, "contact-name");
req->u.esRequest->toKeep->contact->name = str ?
- nmem_strdup(p->odr_out->mem, str) : 0;
+ odr_strdup(p->odr_out, str) : 0;
str = ZOOM_options_get(p->options, "contact-phone");
req->u.esRequest->toKeep->contact->phone = str ?
str = ZOOM_options_get(p->options, "contact-phone");
req->u.esRequest->toKeep->contact->phone = str ?
- nmem_strdup(p->odr_out->mem, str) : 0;
+ odr_strdup(p->odr_out, str) : 0;
str = ZOOM_options_get(p->options, "contact-email");
req->u.esRequest->toKeep->contact->email = str ?
str = ZOOM_options_get(p->options, "contact-email");
req->u.esRequest->toKeep->contact->email = str ?
- nmem_strdup(p->odr_out->mem, str) : 0;
+ odr_strdup(p->odr_out, str) : 0;
req->u.esRequest->toKeep->addlBilling = 0;
req->u.esRequest->toKeep->addlBilling = 0;
@@
-2979,7
+3002,7
@@
static Z_ItemOrder *encode_item_order(ZOOM_package p)
odr_malloc(p->odr_out, sizeof(Z_IOResultSetItem));
req->u.esRequest->notToKeep->resultSetItem->resultSetId =
odr_malloc(p->odr_out, sizeof(Z_IOResultSetItem));
req->u.esRequest->notToKeep->resultSetItem->resultSetId =
- nmem_strdup(p->odr_out->mem, str);
+ odr_strdup(p->odr_out, str);
req->u.esRequest->notToKeep->resultSetItem->item =
(int *) odr_malloc(p->odr_out, sizeof(int));
req->u.esRequest->notToKeep->resultSetItem->item =
(int *) odr_malloc(p->odr_out, sizeof(int));
@@
-2990,8
+3013,10
@@
static Z_ItemOrder *encode_item_order(ZOOM_package p)
str = ZOOM_options_get(p->options, "doc");
if (str)
str = ZOOM_options_get(p->options, "doc");
if (str)
+ {
req->u.esRequest->notToKeep->itemRequest =
req->u.esRequest->notToKeep->itemRequest =
- z_ext_record(p->odr_out, VAL_TEXT_XML, str, strlen(str));
+ z_ext_record_xml(p->odr_out, str, strlen(str));
+ }
else
req->u.esRequest->notToKeep->itemRequest = encode_ill_request(p);
else
req->u.esRequest->notToKeep->itemRequest = encode_ill_request(p);
@@
-3002,7
+3027,7
@@
Z_APDU *create_admin_package(ZOOM_package p, int type,
Z_ESAdminOriginPartToKeep **toKeepP,
Z_ESAdminOriginPartNotToKeep **notToKeepP)
{
Z_ESAdminOriginPartToKeep **toKeepP,
Z_ESAdminOriginPartNotToKeep **notToKeepP)
{
- Z_APDU *apdu = create_es_package(p, VAL_ADMINSERVICE);
+ Z_APDU *apdu = create_es_package(p, yaz_oid_extserv_admin);
if (apdu)
{
Z_ESAdminOriginPartToKeep *toKeep;
if (apdu)
{
Z_ESAdminOriginPartToKeep *toKeep;
@@
-3015,9
+3040,7
@@
Z_APDU *create_admin_package(ZOOM_package p, int type,
if (num_db > 0)
first_db = db[0];
if (num_db > 0)
first_db = db[0];
- r->direct_reference =
- yaz_oidval_to_z3950oid(p->odr_out, CLASS_EXTSERV,
- VAL_ADMINSERVICE);
+ r->direct_reference = odr_oiddup(p->odr_out, yaz_oid_extserv_admin);
r->descriptor = 0;
r->indirect_reference = 0;
r->which = Z_External_ESAdmin;
r->descriptor = 0;
r->indirect_reference = 0;
r->which = Z_External_ESAdmin;
@@
-3052,7
+3075,7
@@
Z_APDU *create_admin_package(ZOOM_package p, int type,
static Z_APDU *create_xmlupdate_package(ZOOM_package p)
{
static Z_APDU *create_xmlupdate_package(ZOOM_package p)
{
- Z_APDU *apdu = create_es_package(p, VAL_XMLES);
+ 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");
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");
@@
-3083,19
+3106,26
@@
static Z_APDU *create_update_package(ZOOM_package p)
const char *recordIdNumber = ZOOM_options_get(p->options, "recordIdNumber");
const char *record_buf = ZOOM_options_get(p->options, "record");
const char *syntax_str = ZOOM_options_get(p->options, "syntax");
const char *recordIdNumber = ZOOM_options_get(p->options, "recordIdNumber");
const char *record_buf = ZOOM_options_get(p->options, "record");
const char *syntax_str = ZOOM_options_get(p->options, "syntax");
- int syntax_oid = VAL_NONE;
int action_no = -1;
int action_no = -1;
-
- if (syntax_str)
- syntax_oid = oid_getvalbyname(syntax_str);
+ int *syntax_oid = 0;
+
+ if (!syntax_str)
+ syntax_str = "xml";
if (!record_buf)
{
record_buf = "void";
if (!record_buf)
{
record_buf = "void";
- syntax_oid = VAL_SUTRS;
+ syntax_str = "SUTRS";
}
}
- if (syntax_oid == VAL_NONE)
- syntax_oid = VAL_TEXT_XML;
-
+
+ if (syntax_str)
+ {
+ syntax_oid = yaz_string_to_oid_odr(yaz_oid_std(),
+ CLASS_RECSYN, syntax_str,
+ p->odr_out);
+ }
+ if (!syntax_oid)
+ return 0;
+
if (num_db > 0)
first_db = db[0];
if (num_db > 0)
first_db = db[0];
@@
-3115,7
+3145,7
@@
static Z_APDU *create_update_package(ZOOM_package p)
else
return 0;
else
return 0;
- apdu = create_es_package(p, VAL_DBUPDATE);
+ apdu = create_es_package(p, yaz_oid_extserv_database_update);
if (apdu)
{
Z_IUOriginPartToKeep *toKeep;
if (apdu)
{
Z_IUOriginPartToKeep *toKeep;
@@
-3124,10
+3154,10
@@
static Z_APDU *create_update_package(ZOOM_package p)
odr_malloc(p->odr_out, sizeof(*r));
apdu->u.extendedServicesRequest->taskSpecificParameters = r;
odr_malloc(p->odr_out, sizeof(*r));
apdu->u.extendedServicesRequest->taskSpecificParameters = r;
+
- r->direct_reference =
- yaz_oidval_to_z3950oid(p->odr_out, CLASS_EXTSERV,
- VAL_DBUPDATE);
+ r->direct_reference = odr_oiddup(p->odr_out,
+ yaz_oid_extserv_database_update);
r->descriptor = 0;
r->which = Z_External_update;
r->indirect_reference = 0;
r->descriptor = 0;
r->which = Z_External_update;
r->indirect_reference = 0;
@@
-3175,8
+3205,8
@@
static Z_APDU *create_update_package(ZOOM_package p)
notToKeep->elements[0]->supplementalId = 0;
notToKeep->elements[0]->correlationInfo = 0;
notToKeep->elements[0]->record =
notToKeep->elements[0]->supplementalId = 0;
notToKeep->elements[0]->correlationInfo = 0;
notToKeep->elements[0]->record =
- z_ext_record(p->odr_out, syntax_oid,
- record_buf, strlen(record_buf));
+ z_ext_record_oid(p->odr_out, syntax_oid,
+ record_buf, strlen(record_buf));
}
if (0 && apdu)
{
}
if (0 && apdu)
{
@@
-3201,14
+3231,13
@@
ZOOM_API(void)
p->buf_out = 0;
if (!strcmp(type, "itemorder"))
{
p->buf_out = 0;
if (!strcmp(type, "itemorder"))
{
- apdu = create_es_package(p, VAL_ITEMORDER);
+ apdu = create_es_package(p, yaz_oid_extserv_item_order);
if (apdu)
{
Z_External *r = (Z_External *) odr_malloc(p->odr_out, sizeof(*r));
if (apdu)
{
Z_External *r = (Z_External *) odr_malloc(p->odr_out, sizeof(*r));
- r->direct_reference =
- yaz_oidval_to_z3950oid(p->odr_out, CLASS_EXTSERV,
- VAL_ITEMORDER);
+ r->direct_reference =
+ odr_oiddup(p->odr_out, yaz_oid_extserv_item_order);
r->descriptor = 0;
r->which = Z_External_itemOrder;
r->indirect_reference = 0;
r->descriptor = 0;
r->which = Z_External_itemOrder;
r->indirect_reference = 0;
@@
-3299,12
+3328,11
@@
ZOOM_API(const char *)
}
}
-ZOOM_API(int)
+ZOOM_API(void)
ZOOM_package_option_set(ZOOM_package p, const char *key,
const char *val)
{
ZOOM_options_set(p->options, key, val);
ZOOM_package_option_set(ZOOM_package p, const char *key,
const char *val)
{
ZOOM_options_set(p->options, key, val);
- return 0;
}
static int ZOOM_connection_exec_task(ZOOM_connection c)
}
static int ZOOM_connection_exec_task(ZOOM_connection c)
@@
-3504,8
+3532,8
@@
static void recv_apdu(ZOOM_connection c, Z_APDU *apdu)
else
{
char *cookie =
else
{
char *cookie =
- yaz_oi_get_string_oidval(&apdu->u.initResponse->otherInfo,
- VAL_COOKIE, 1, 0);
+ yaz_oi_get_string_oid(&apdu->u.initResponse->otherInfo,
+ yaz_oid_userinfo_cookie, 1, 0);
xfree(c->cookie_in);
c->cookie_in = 0;
if (cookie)
xfree(c->cookie_in);
c->cookie_in = 0;
if (cookie)
@@
-3653,7
+3681,7
@@
static void handle_srw_response(ZOOM_connection c,
odr_malloc(c->odr_in, sizeof(Z_External));
npr->u.databaseRecord->descriptor = 0;
npr->u.databaseRecord->direct_reference =
odr_malloc(c->odr_in, sizeof(Z_External));
npr->u.databaseRecord->descriptor = 0;
npr->u.databaseRecord->direct_reference =
- yaz_oidval_to_z3950oid(c->odr_in, CLASS_RECSYN, VAL_TEXT_XML);
+ odr_oiddup(c->odr_in, yaz_oid_recsyn_xml);
npr->u.databaseRecord->which = Z_External_octet;
npr->u.databaseRecord->u.octet_aligned = (Odr_oct *)
npr->u.databaseRecord->which = Z_External_octet;
npr->u.databaseRecord->u.octet_aligned = (Odr_oct *)
@@
-3679,7
+3707,7
@@
static void handle_srw_response(ZOOM_connection c,
}
}
nmem = odr_extract_mem(c->odr_in);
}
}
nmem = odr_extract_mem(c->odr_in);
- nmem_transfer(resultset->odr->mem, nmem);
+ nmem_transfer(odr_getmem(resultset->odr), nmem);
nmem_destroy(nmem);
}
#endif
nmem_destroy(nmem);
}
#endif
@@
-3868,20
+3896,18
@@
ZOOM_API(const char *)
return ZOOM_options_getl(c->options, key, lenp);
}
return ZOOM_options_getl(c->options, key, lenp);
}
-ZOOM_API(int)
+ZOOM_API(void)
ZOOM_connection_option_set(ZOOM_connection c, const char *key,
const char *val)
{
ZOOM_options_set(c->options, key, val);
ZOOM_connection_option_set(ZOOM_connection c, const char *key,
const char *val)
{
ZOOM_options_set(c->options, key, val);
- return 0;
}
}
-ZOOM_API(int)
+ZOOM_API(void)
ZOOM_connection_option_setl(ZOOM_connection c, const char *key,
const char *val, int len)
{
ZOOM_options_setl(c->options, key, val, len);
ZOOM_connection_option_setl(ZOOM_connection c, const char *key,
const char *val, int len)
{
ZOOM_options_setl(c->options, key, val, len);
- return 0;
}
ZOOM_API(const char *)
}
ZOOM_API(const char *)
@@
-3890,12
+3916,11
@@
ZOOM_API(const char *)
return ZOOM_options_get(r->options, key);
}
return ZOOM_options_get(r->options, key);
}
-ZOOM_API(int)
+ZOOM_API(void)
ZOOM_resultset_option_set(ZOOM_resultset r, const char *key,
const char *val)
{
ZOOM_options_set(r->options, key, val);
ZOOM_resultset_option_set(ZOOM_resultset r, const char *key,
const char *val)
{
ZOOM_options_set(r->options, key, val);
- return 0;
}
}