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
SRU/SRW Explain for Frontend server
[yaz-moved-to-github.git]
/
zutil
/
srw.c
diff --git
a/zutil/srw.c
b/zutil/srw.c
index
68f7912
..
d77cd65
100644
(file)
--- a/
zutil/srw.c
+++ b/
zutil/srw.c
@@
-2,7
+2,7
@@
* Copyright (c) 2002-2003, Index Data.
* See the file LICENSE for details.
*
* Copyright (c) 2002-2003, Index Data.
* See the file LICENSE for details.
*
- * $Id: srw.c,v 1.11 2003-03-23 20:27:16 adam Exp $
+ * $Id: srw.c,v 1.12 2003-03-24 22:26:51 adam Exp $
*/
#include <yaz/srw.h>
*/
#include <yaz/srw.h>
@@
-373,6
+373,7
@@
int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data,
{
Z_SRW_PDU **p = handler_data;
Z_SRW_explainResponse *res;
{
Z_SRW_PDU **p = handler_data;
Z_SRW_explainResponse *res;
+ xmlNodePtr ptr = method->children;
*p = odr_malloc(o, sizeof(**p));
(*p)->which = Z_SRW_explain_response;
*p = odr_malloc(o, sizeof(**p));
(*p)->which = Z_SRW_explain_response;
@@
-380,8
+381,12
@@
int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data,
res->explainData_buf = 0;
res->explainData_len = 0;
res->explainPacking = Z_SRW_recordPacking_string;
res->explainData_buf = 0;
res->explainData_len = 0;
res->explainPacking = Z_SRW_recordPacking_string;
- match_xsd_string_n(method, "explainResponse", o,
- &res->explainData_buf, &res->explainData_len);
+ for (; ptr; ptr = ptr->next)
+ {
+ match_xsd_string_n(ptr, "Explain", o,
+ &res->explainData_buf,
+ &res->explainData_len);
+ }
}
else
return -1;
}
else
return -1;
@@
-469,12
+474,8
@@
int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data,
xmlSetNs(ptr, ns_srw);
xmlSetNs(ptr, ns_srw);
- if (res->explainData_buf)
- {
- xmlNodePtr t = xmlNewTextLen(res->explainData_buf,
- res->explainData_len);
- xmlAddChild(ptr, t);
- }
+ add_xsd_string_n(ptr, "Explain", res->explainData_buf,
+ res->explainData_len);
}
else
return -1;
}
else
return -1;