+
+void Yaz_Z_ServerUtility::create_diagnostics (
+ ODR odr, int error, const char *addinfo,
+ Z_DiagRec ***dreca, int *num)
+{
+ Z_DiagRec *drec = (Z_DiagRec *) odr_malloc (odr, sizeof(*drec));
+ Z_DefaultDiagFormat *dr = (Z_DefaultDiagFormat *)
+ odr_malloc (odr, sizeof(*dr));
+
+ *num = 1;
+ *dreca = (Z_DiagRec **) odr_malloc (odr, sizeof(*dreca));
+ (*dreca)[0] = drec;
+
+ drec->which = Z_DiagRec_defaultFormat;
+ drec->u.defaultFormat = dr;
+ dr->diagnosticSetId =
+ yaz_oidval_to_z3950oid (odr, CLASS_DIAGSET, VAL_BIB1);
+ dr->condition = odr_intdup (odr, error);
+ dr->which = Z_DefaultDiagFormat_v2Addinfo;
+ dr->u.v2Addinfo = odr_strdup (odr, addinfo ? addinfo : "");
+}