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
For decoding of OIDs, do more sanity checks , so that we don't end up
[yaz-moved-to-github.git]
/
src
/
srw.c
diff --git
a/src/srw.c
b/src/srw.c
index
47718b4
..
406af9f
100644
(file)
--- a/
src/srw.c
+++ b/
src/srw.c
@@
-2,7
+2,7
@@
* Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
* Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: srw.c,v 1.40 2005-11-11 22:07:11 adam Exp $
+ * $Id: srw.c,v 1.44 2006-03-01 22:33:06 adam Exp $
*/
/**
* \file srw.c
*/
/**
* \file srw.c
@@
-321,7
+321,7
@@
static int yaz_srw_record(ODR o, xmlNodePtr pptr, Z_SRW_record *rec,
}
if (rec->recordPosition)
add_xsd_integer(ptr, "recordPosition", rec->recordPosition );
}
if (rec->recordPosition)
add_xsd_integer(ptr, "recordPosition", rec->recordPosition );
- if (*extra)
+ if (extra && *extra)
{
xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "extraRecordData",
0);
{
xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "extraRecordData",
0);
@@
-367,7
+367,8
@@
static int yaz_srw_records(ODR o, xmlNodePtr pptr, Z_SRW_record **recs,
{
xmlNodePtr rptr = xmlNewChild(pptr, 0, BAD_CAST "record",
0);
{
xmlNodePtr rptr = xmlNewChild(pptr, 0, BAD_CAST "record",
0);
- yaz_srw_record(o, rptr, (*recs)+i, *extra + i, client_data, ns);
+ yaz_srw_record(o, rptr, (*recs)+i, (*extra ? *extra + i : 0),
+ client_data, ns);
}
}
return 0;
}
}
return 0;
@@
-591,8
+592,8
@@
int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data,
else if (match_xsd_string(ptr, "recordXPath", o,
&req->recordXPath))
;
else if (match_xsd_string(ptr, "recordXPath", o,
&req->recordXPath))
;
- else if (match_xsd_string(ptr, "resultSetTTL", o,
- &req->database))
+ else if (match_xsd_integer(ptr, "resultSetTTL", o,
+ &req->resultSetTTL))
;
else if (match_xsd_string(ptr, "sortKeys", o,
&req->sort.sortKeys))
;
else if (match_xsd_string(ptr, "sortKeys", o,
&req->sort.sortKeys))
@@
-603,7
+604,6
@@
int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data,
else if (match_xsd_string(ptr, "database", o,
&req->database))
;
else if (match_xsd_string(ptr, "database", o,
&req->database))
;
- /* missing is xQuery, xSortKeys .. */
}
}
else if (!xmlStrcmp(method->name, BAD_CAST "searchRetrieveResponse"))
}
}
else if (!xmlStrcmp(method->name, BAD_CAST "searchRetrieveResponse"))
@@
-1089,8
+1089,8
@@
int yaz_ucp_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data,
if ((*p)->which == Z_SRW_update_request)
{
Z_SRW_updateRequest *req = (*p)->u.update_request;
if ((*p)->which == Z_SRW_update_request)
{
Z_SRW_updateRequest *req = (*p)->u.update_request;
- xmlNodePtr ptr = xmlNewChild(pptr, 0, "updateRequest", 0);
- ns_srw = xmlNewNs(ptr, ns, "zu");
+ xmlNodePtr ptr = xmlNewChild(pptr, 0, BAD_CAST "updateRequest", 0);
+ ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zu");
xmlSetNs(ptr, ns_srw);
add_xsd_string(ptr, "version", (*p)->srw_version);
xmlSetNs(ptr, ns_srw);
add_xsd_string(ptr, "version", (*p)->srw_version);
@@
-1100,8
+1100,9
@@
int yaz_ucp_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data,
else if ((*p)->which == Z_SRW_update_response)
{
Z_SRW_updateResponse *res = (*p)->u.update_response;
else if ((*p)->which == Z_SRW_update_response)
{
Z_SRW_updateResponse *res = (*p)->u.update_response;
- xmlNodePtr ptr = xmlNewChild(pptr, 0, "updateResponse", 0);
- ns_srw = xmlNewNs(ptr, ns, "zu");
+ xmlNodePtr ptr = xmlNewChild(pptr, 0, (xmlChar *)
+ "updateResponse", 0);
+ ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zu");
xmlSetNs(ptr, ns_srw);
add_xsd_string(ptr, "version", (*p)->srw_version);
xmlSetNs(ptr, ns_srw);
add_xsd_string(ptr, "version", (*p)->srw_version);
@@
-1113,13
+1114,13
@@
int yaz_ucp_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data,
add_xsd_string(ptr, "recordChecksum", res->recordChecksum );
if (res->record.recordData_len)
{
add_xsd_string(ptr, "recordChecksum", res->recordChecksum );
if (res->record.recordData_len)
{
- xmlNodePtr rptr = xmlNewChild(ptr, 0, "record", 0);
+ xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "record", 0);
yaz_srw_record(o, rptr, &res->record, &res->extra_record,
client_data, ns);
}
if (res->num_diagnostics)
{
yaz_srw_record(o, rptr, &res->record, &res->extra_record,
client_data, ns);
}
if (res->num_diagnostics)
{
- xmlNodePtr rptr = xmlNewChild(ptr, 0, "diagnostics", 0);
+ xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "diagnostics", 0);
yaz_srw_diagnostics(o, rptr, &res->diagnostics,
&res->num_diagnostics, client_data, ns);
}
yaz_srw_diagnostics(o, rptr, &res->diagnostics,
&res->num_diagnostics, client_data, ns);
}