* Copyright (c) 2002-2004, Index Data.
* See the file LICENSE for details.
*
- * $Id: srwutil.c,v 1.9 2004-01-09 19:54:05 adam Exp $
+ * $Id: srwutil.c,v 1.12 2004-02-14 15:58:42 adam Exp $
*/
#include <yaz/srw.h>
*intp = odr_intdup(o, atoi(v));
}
+void yaz_mk_std_diagnostic(ODR o, Z_SRW_diagnostic *d,
+ int code, const char *details)
+{
+ d->uri = (char *) odr_malloc(o, 50);
+ sprintf(d->uri, "info:srw/diagnostic/1/%d", code);
+ d->message = 0;
+ if (details)
+ d->details = odr_strdup(o, details);
+ else
+ d->details = 0;
+}
+
void yaz_add_srw_diagnostic(ODR o, Z_SRW_diagnostic **d,
int *num, int code, const char *addinfo)
{
if (*num)
memcpy (d_new, *d, *num *sizeof(**d));
*d = d_new;
- (*d + *num)->code = odr_intdup(o, code);
- if (addinfo)
- (*d + *num)->details = odr_strdup(o, addinfo);
- else
- (*d + *num)->details = 0;
+
+ yaz_mk_std_diagnostic(o, *d + *num, code, addinfo);
(*num)++;
}
else if (!strcmp(n, "startRecord"))
startRecord = v;
else
- yaz_add_srw_diagnostic(decode, diag, num_diag, 9, n);
+ yaz_add_srw_diagnostic(decode, diag, num_diag, 8, n);
}
}
if (!version)
{5, "Unsupported version"},
{6, "Unsupported parameter value"},
{7, "Mandatory parameter not supplied"},
-{8, "Unknown database"},
-{9, "Unknown parameter type"},
+{8, "Unsupported parameter"},
/* Diagnostics Relating to CQL */
{10, "Query syntax error"},
{11, "Unsupported query type"},
108, 27,
108, 45,
- 109, 9,
+ 109, 2,
110, 37,
111, 1,
112, 58,