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
Render OID as string when used in error-messages.
[yaz-moved-to-github.git]
/
src
/
retrieval.c
diff --git
a/src/retrieval.c
b/src/retrieval.c
index
4c2ee60
..
450be15
100644
(file)
--- a/
src/retrieval.c
+++ b/
src/retrieval.c
@@
-2,7
+2,7
@@
* Copyright (C) 2005-2006, Index Data ApS
* See the file LICENSE for details.
*
* Copyright (C) 2005-2006, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: retrieval.c,v 1.3 2006-05-07 14:48:25 adam Exp $
+ * $Id: retrieval.c,v 1.8 2006-05-09 11:09:09 mike Exp $
*/
/**
* \file retrieval.c
*/
/**
* \file retrieval.c
@@
-21,12
+21,10
@@
#include <yaz/tpath.h>
#include <yaz/proto.h>
#include <yaz/tpath.h>
#include <yaz/proto.h>
-#if HAVE_XSLT
+#if HAVE_XML2
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <libxml/xinclude.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <libxml/xinclude.h>
-#include <libxslt/xsltutils.h>
-#include <libxslt/transform.h>
/** \brief The internal structure for yaz_retrieval_t */
struct yaz_retrieval_struct {
/** \brief The internal structure for yaz_retrieval_t */
struct yaz_retrieval_struct {
@@
-171,7
+169,7
@@
static int conf_retrieval(yaz_retrieval_t p, const xmlNode *ptr)
}
if (!el->syntax)
{
}
if (!el->syntax)
{
- wrbuf_printf(p->wr_error, "Missing 'syntax' attribute.", attr->name);
+ wrbuf_printf(p->wr_error, "Missing 'syntax' attribute");
return -1;
}
return -1;
}
@@
-241,9
+239,12
@@
int yaz_retrieval_request(yaz_retrieval_t p,
int **backend_syntax)
{
struct yaz_retrieval_elem *el = p->list;
int **backend_syntax)
{
struct yaz_retrieval_elem *el = p->list;
-
int syntax_matches = 0;
int schema_matches = 0;
int syntax_matches = 0;
int schema_matches = 0;
+
+ wrbuf_rewind(p->wr_error);
+ if (!el)
+ return 0;
for(; el; el = el->next)
{
int schema_ok = 0;
for(; el; el = el->next)
{
int schema_ok = 0;
@@
-255,6
+256,8
@@
int yaz_retrieval_request(yaz_retrieval_t p,
schema_ok = 1;
if (!schema)
schema_ok = 1;
schema_ok = 1;
if (!schema)
schema_ok = 1;
+ if (schema && !el->schema)
+ schema_ok = 1;
if (syntax && el->syntax && !oid_oidcmp(syntax, el->syntax))
syntax_ok = 1;
if (syntax && el->syntax && !oid_oidcmp(syntax, el->syntax))
syntax_ok = 1;
@@
-278,13
+281,17
@@
int yaz_retrieval_request(yaz_retrieval_t p,
return 0;
}
}
return 0;
}
}
- if (syntax_matches && !schema_matches)
- return 1;
- if (!syntax_matches && schema_matches)
+ if (!syntax_matches && syntax)
+ {
+ char buf[100];
+ wrbuf_printf(p->wr_error, "%s", oid_to_dotstring(syntax, buf));
return 2;
return 2;
- if (!syntax_matches && !schema_matches)
- return 3;
- return 4;
+ }
+ if (schema)
+ wrbuf_printf(p->wr_error, "%s", schema);
+ if (!schema_matches)
+ return 1;
+ return 3;
}
const char *yaz_retrieval_get_error(yaz_retrieval_t p)
}
const char *yaz_retrieval_get_error(yaz_retrieval_t p)